Mikrokopter BL-Ctrl updating then dead

Hi all

I was updating one of my BL-Ctrl 1,2 got an error at 99%, and now nothing???

It's dead no lights.

Is the ATImega thats somehow blown or what else could it be wrong.
 

Crash

Defies Psychics
Hi all

I was updating one of my BL-Ctrl 1,2 got an error at 99%, and now nothing???

It's dead no lights.

Is the ATImega thats somehow blown or what else could it be wrong.

Take a photo of how you have it wired to MKUSB.

It's not dead though. Just needs CPR.
 

Hi Crash

I had successfully loaded the firmware a couple of times, so my connections should be fine. I was testing a new build of firmware.

So my issue now is how do I reload the boot loader? have not done this before, someone else said that would solve the issue?

can I do it with a MKUSB? I have a sercon with USB to serial converter!

Thanks
 

Crash

Defies Psychics
Hi Crash

I had successfully loaded the firmware a couple of times, so my connections should be fine. I was testing a new build of firmware.

So my issue now is how do I reload the boot loader? have not done this before, someone else said that would solve the issue?

can I do it with a MKUSB? I have a sercon with USB to serial converter!

Thanks
MKUSB cannot do it. The Sercon and USB adapter would be a good way to really screw up the chip. Use an AVR programmer that is made for USB.

Have you tried the usual rescue method of powering the board when MKTool is waiting to send the firmware?
 

I have tried that but no luck just get timeout errors

Can I use the sercon if i have a real serial port? (i have a serial pci card i could install)?

Or where can I get an AVR Programer?
What program would I use to do this AVR Studio?
 

Crash

Defies Psychics
I have tried that but no luck just get timeout errors

Can I use the sercon if i have a real serial port? (i have a serial pci card i could install)?

Or where can I get an AVR Programer?
What program would I use to do this AVR Studio?

Can you see any messages in the terminal when the BL-Ctrl boots up?

I use an AVR MKII and AVR Studio but there are others.

A sercon should work with a real serial port. Do NOT use the 'real' serial port on a laptop. They can contain hidden USB to serial convertors. (Don't ask how I know this. ;) )

The sercon is very sensitive to timing. Make sure whatever computer it is running on is as 'clean' as possible. Stop all unnecessary programs and stop any virus scanners, etc. A bad flash with a sercon can lock you completely out of the chip with zero chance of recovery.

Details on using the sercon and programming should be in the .de wiki. You may have to translate the German language pages.
 

AVR MKII this is a USB device! so I can use it with a laptop!
This only has a 6 pin connector how would you connect to the bl?

What about the USB STK500v2 Compatible AVR Programmer?

No I did not see anything in the terminal window.

This is what I get for trying to play, I found some code in the source that shuts the motor down if there is too much current on start up, the avrotos only draw a fraction more on start up than the roxxys but it's enough to trip the controller. This was about my 20th time i had flashed the controller while testing tweaked builds.

Ryan
 
Last edited by a moderator:

Crash

Defies Psychics
The STK500 should do it. I don't know anything about them though. I had to make an adapter cable to go from my 6 pin to the BL-Ctrls 10 pin.

You will find that on other MK boards (FC), you will also need to make an adapter because they use a non-standard pinout. IIRC, the BL-Ctrl and MK3Mag use a standard pinout for 10 pins. BTW, Servo extension cables will work for adapter cables.

The current measuring abilities of the BL-Ctrl is not that great. Old man Mike on RCGroups developed a modification for the shunt circuit, and Rusty developed a firmware hack. I used the shunt mod on my boards.
 

I did try Rusty's tweaked firmware but still the same.

Just so I don't waste time here, this can't be a timing issue 710kv vs 770kv, or can it? I should not think voltage should effect this but I could be wrong.

Damm I wish I could find the off button in the code.


++++++++++++++++++++++++++++++++++++++++++++++ if ( phase ! = altPhase ) / / there was a Commutation in interrupt { MotorGestoppt = 0 ; time for calculations = 0 , / / immediately after a commutation time MinUpmPulse = setDelay ( 250 ) ; / / timeout if one engine stops altPhase = phase ; } / / +++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++++ if ( ! PWM ) / / If value == 0 { MotorAnwerfen = 0 , / / no attempt at starting time for calculations = 0 ; / / After 1.5 seconds the engine stopped as Launch attempt MotorGestopptTimer = setDelay ( 1500 ) ; } if ( MotorGestoppt & ! TEST_SCHUB ) PWM = 0 ; SetPWM ( ) ; / / GRN_ON; FastADConvert ( ) ; } if ( SIO_DEBUG ) { debug ( ) , / / which values ​​are to be displayed? if ( ! UebertragungAbgeschlossen ) SendUart ( ) ; else TRANSMISSION ( ) ; } / / Calculate the average current for the (slow) current limit if ( check delay ( medium current timer ) ) { medium current timer = setDelay ( 50 ) ; / / every 50ms if ( average power < power ) means current + +; / / average current ? Current at the limit { if ( MaxPWM ) MaxPWM -, / / then the Maximum PWM shutdown PORTC | = RED ; } else { if ( MaxPWM < MAX_PWM ) MaxPWM + +; } } if ( check delay ( speed-measuring timer ) ) / / Is speed determine { speed-measuring timer = setDelay ( 10 ) ; SIO_Drehzahl = CntKommutierungen ; / / (6 * CntKommutierungen) / (number of poles / 2); CntKommutierungen = 0 ; / / if (PPM_Timeout == 0) / / no PPM signals ZeitZumAdWandeln = 1 ; } # if TEST_SCHUB == Engine Stand short synchronizing PWM = 15 ; SetPWM ( ) ; MinUpmPulse = setDelay ( 300 ) ; while ( ! check delay ( MinUpmPulse ) ) / / short go-around { if ( current > LIMIT_STROM / 2 ) { STEUER_OFF ; / / shut down due to short-circuit red flashing ( 10 ) ; MotorAnwerfen = 1 ; } } / / speed measurement again time for calculations } / / while (1) - main loop }
 
Last edited by a moderator:

Crash

Defies Psychics
I looked at the source and nothing jumped out at me. I don't know C or German so that's not unexpected. ;)

There are some variables in main.h as I recall. Maybe try searching the .de forums for them being mentioned. I think I recall PWM variable changes being needed for some motors on the 2.0 boards but don't hold me to that.

I think the .de site may be your best bet for help anyway. I don't know of anyone here who has looked at the BL-Ctrl code. There are more in Germany.

Have you done the usual troubleshooting? Swap motors, try different BL-Ctrl? Try the motor test in MKTool? Make sure it isn't something silly like not remembering to calibrate the gyros?

Kirk
 

Haha found the code it's near the top of the main.c file, tried it on another bl-ctrl and its works. I will do some testing before flashing the rest.

Now my only issue is the controller that is "dead", looks like my sercon is not working and a AVR device is roughly the same price as a new bl-ctrl.
 


Crash

Defies Psychics
Hi crash

Getting an avr mkii in the next day or so, can you tell me how to make the adapter
Please

On the wiki, there are some pics of people using card edge connectors or even just 10 pin connectors that are wedged onto solder blobs on the pads. Two servo extension will work if you rewire them.

Below is the MK II pinout and the BL-Ctrl pinout. Just match up the wires and make sure you get pin 1 right on both ends. Look for the '1' on the BLC and the arrow on the MKII.

You will need to power the board - the programmer won't do it.
 

Attachments

  • AVR MKII 6 Pin.jpg
    AVR MKII 6 Pin.jpg
    25.4 KB · Views: 171
  • screenshot.416.jpg
    screenshot.416.jpg
    29.2 KB · Views: 186


Top