3DR Solo ESCs Firmware: Updates?

I don't feel comfortable discussing the exact procedure in public, but it *might* be possible to trigger it in general flying on AC3.5. Stock firmware has the rate skew limiter built in.
 
I went through the "crash-o-matic" procedure to reproduce the ESC failure with AC3.5 running on the stock Solo cube and stock returnhome.py smartshot.

Short version - my Solo is alive and kicking - no crashes or misbehaviors after about 15 test cycles.

Long version - the PWM signal level can be compromised by millisecond voltage drops caused by high current peaks in high g maneuvers. In combination with the ground level shift issue of the Solo ESCs this can lead to a millisecond lower PWM signal level and subsequent ESC failure. Its less the max PWM output aka full throttle what causes the issue, it’s the slew rate how fast over time the PWM signal and with that, motor current increases. Maneuvers with the steepest PWM slew rate I have logged so far is a full descend at max (rabbit) speed or full fast forward flight while pressing the RTH button which makes Solo to instantly shoot up in the air.

Main difference between my Solos and the green cube parameters is that I have a much lower value set for the MOT_BAT_CURR_MAX parameter at 40 Amps (instead of 50), similar to the original 3DR setting of 42A. My logs show that the current limiter in my Solos reliably cuts off between 40 and 42A during all tests cycles. Here is one example of how PWM-out shoots up after pressing RTH in such maneuvers and the corresponding current slew rate, nicely capped at 40A.
DD484D35-2BF7-4185-9ED7-C8C86BD48F09.jpeg
So it seems that this parameter setting does the trick to prevent a critical voltage drop and subsequent ESC failure with the stock cube and AC3.5 - at least in all situations I could test so far.

This is by no means a perfect solution for the problem. The slew rate limiter as implemented in the 3DR code monitors each of the 4 motors individually, hence is more precise. The green cube (or level shifters) simply increase the PWM voltage level to compensate glitches caused by voltage drops in the original 3.3V PWM Signals and is the safer way to go.
A word of caution: this is an edge case. If you want to try this out do it only in areas where a crash can’t harm people or property!
 
Last edited:
Can anyone speak to this? I want to set about flashing the firmware on the ESCs, but I don't know what connection is required.

I was under the assumption that to access the pins on the chips necessary for updating the firmware, you'd have to use the double row of copper pads on the ESC. Each row corresponds to one of the two chips on the ESC - 88 and 8A.
I checked these pads with a meter, and none seems connected to the 8 pin connector beside ground.
 
Oscar Liang's website has a bunch of info.... might get you started.

simon k esc firmwareflash - Google Search
I've flashed firmware on things before, I'm concerned specifically about the physical interface for flashing on the Solo ESC/Motor Pods since they're different to what I'm used to seeing with other devices where signal/ground/voltage are broken out more easily.

Do I need a special harness? Do I need to solder to the pads on the motor pod? Can I just use the motor pod wires with the bullet connectors?

Thanks for the linky though, I'll read up on there as well.
 
I've flashed firmware on things before, I'm concerned specifically about the physical interface for flashing on the Solo ESC/Motor Pods since they're different to what I'm used to seeing with other devices where signal/ground/voltage are broken out more easily.

Do I need a special harness? Do I need to solder to the pads on the motor pod? Can I just use the motor pod wires with the bullet connectors?

Thanks for the linky though, I'll read up on there as well.

There are pinouts on the ESC and there is also an awesome adapter that fits directly over the chip... oscar liang is your friend.

Flash ESC SimonK Firmware Using Arduino Without USBasp adapter - Oscar Liang
Flash Blue Series 12A ESC SimonK Arduino ATMega Tool - Oscar Liang
You searched for simonk - Oscar Liang
You searched for simonk firmware flash - Oscar Liang
Change Bootloader on ESC - ATMEL - Oscar Liang
 
  • Like
Reactions: Saijin_Naib
Do I need a special harness? Do I need to solder to the pads on the motor pod? Can I just use the motor pod wires with the bullet connectors?

Oscar's tool that fits over the chip uses MOSI, MISO, SCK, reset and, of course, vcc and ground pins. These are the exact pins broken out in that double row of pads for the two chips on Solo ESCs, so I'm going to assume those are there for flashing the chips.

I'm not enormously knowledgeable on the manufacturing process, but my guess would be that the chips are all soldered on "blank", and then programmed through these pads later.

Since none of those pads are connected to the 8 pin connector on the ESC, it seems likely that you'd have to either temporarily solder to those pads to flash the chips or probably just hold some wires there. The spacing on those pads is the standard 2.5mm spacing of common header pins, so you could just use a 6 pin section and hold it while you flash. If you wanted to get really fancy, you could use some pogo pins to make sure you were getting good contact on all the pads, but probably not necessary.
 
  • Like
Reactions: Saijin_Naib
This is the unit I have, with this header connector:
Vojtech Bubnik, OK1IAK: Analysing the BAITE USBasp_H6 AVR programmer clone
1Lot-2PCS-1PCS-USBasp-H6-USB-ISP-5V-font-b-AVR-b-font-font-b-Programmer.jpg


I have some DuPont 2.54mm wires that I made into a 6-pin header out to the raw wire ends to either solder or affix some other way. I'm thinking about ordering a few packs of DuPont female wires/headers to solder in place on each ESC to facilitate future flashings.

It looks like there are two flashable chips on the ESC: 8A/8B. What is this for? Fail-over? Something else? Are all ESCs like this?
 
Last edited:
This is nothing more than an assumption, but one chip could be dedicated to handing the lights, and the other the actual ESC functions.
Do you think that would be apparent if/when I can read the firmware from both ATMegas using AVRDUDE?

Also, stupid question, but how do I know which SimonK hex file to use? I read that older 3DR ESCs were just the standard tgy.hex, but I have not seen anything for the Solo ESCs in specific.
 
Getting closer! Have my harness made up finally.
 

Attachments

  • WP_20171011_20_49_49_Pro_LI.jpg
    WP_20171011_20_49_49_Pro_LI.jpg
    1.1 MB · Views: 47
Do you think that would be apparent if/when I can read the firmware from both ATMegas using AVRDUDE?

Also, stupid question, but how do I know which SimonK hex file to use? I read that older 3DR ESCs were just the standard tgy.hex, but I have not seen anything for the Solo ESCs in specific.

Sorry I didn't reply sooner, been crazy busy with work.

I'm not sure it's possible to read the program off an ATMega chip. I looked into it briefly when I lost a sketch I wrote but had it uploaded to a Nano. There didn't seem to be any particularly easy way to even dump what was in memory in whatever format that would be, much less decompile it back to any type of understandable
form.

The only way I could see to confirm the assumption that one chip is for the lights would be to either trace the signal traces from the lights back to one of the chips, or possible read the pins with an oscilloscope and see if any look to correspond to what the lights are doing.

Can't help you on what SimonK firmware to try. You've surpassed my manlihood when it comes to trying to mod the Solo! :p
 
Sorry I didn't reply sooner, been crazy busy with work.
I know that feeling. I work two jobs/7 days a week, so my hobby progress is pretty glacial. Thanks for getting back to me when you had time.
I'm not sure it's possible to read the program off an ATMega chip. I looked into it briefly when I lost a sketch I wrote but had it uploaded to a Nano. There didn't seem to be any particularly easy way to even dump what was in memory in whatever format that would be, much less decompile it back to any type of understandable
form.
That makes no sense to me, but that could just be how it is. One would assume that being able to read some sort of version/ID string from the chip before you flash it would be standard. This may present me with some difficulties.
The only way I could see to confirm the assumption that one chip is for the lights would be to either trace the signal traces from the lights back to one of the chips, or possible read the pins with an oscilloscope and see if any look to correspond to what the lights are doing.
I don't have access to a scope or even a multimeter that can read duty cycle or frequency, so I think that's a non-starter beyond the fact that my MEE skills are minimal and I don't trust myself to trace the circuit properly.
Can't help you on what SimonK firmware to try. You've surpassed my manlihood when it comes to trying to mod the Solo! :p
Not brave, just stupid/bored :)
 
That makes no sense to me, but that could just be how it is. One would assume that being able to read some sort of version/ID string from the chip before you flash it would be standard. This may present me with some difficulties.

Oh, maybe I misunderstood your earlier post. I thought you were hoping to read the actual code loaded on the chip to confirm what the chip is being used for.

I don't have access to a scope or even a multimeter that can read duty cycle or frequency, so I think that's a non-starter beyond the fact that my MEE skills are minimal and I don't trust myself to trace the circuit properly.

I put one of these together pretty easily, it's decidedly rudimentary, but as long as you just want an "in the ballpark" peek, it works. https://www.amazon.com/JYETech-Sour...08013083&sr=8-3&keywords=diy+oscilloscope+kit

Not brave, just stupid/bored :).

Ha! Yea, I've been there, plenty of times, just not with the Solo... yet!
 
Oh, maybe I misunderstood your earlier post. I thought you were hoping to read the actual code loaded on the chip to confirm what the chip is being used for.
Apparently, the Atmels on the Solo ESC are not copy-protected according to info I got on the Solo Mod Club FB page, so a dump/read should be doable.

You predicted right: One AtMega is the LED driver, one the motor driver. I was not told which was which.

Apparently, the 3DR fork of the SimonK firmware is substantially different from master. One key difference is the baked-in ESC calibration. I was not made aware of any other differences.

The general consensus is that I'm wasting my time and effort and that this pursuit will only end in me hurting someone and destroying my Solo. I'd like to think I'm a bit more conscientious than that, but whatever.

So, long and short of it seems to be that we'll be getting no further assistance or information from those who know best. Time to dig.

I put one of these together pretty easily, it's decidedly rudimentary, but as long as you just want an "in the ballpark" peek, it works. https://www.amazon.com/JYETech-Sour...08013083&sr=8-3&keywords=diy+oscilloscope+kit
I think I'll go for the DSO150, though I'm not sure I need one at present since we have more of an idea what is what now.

Ha! Yea, I've been there, plenty of times, just not with the Solo... yet!
Get there soon, I'm in over my head on this.
 
An incredibly generous forum member has sent me a spare motor pod to assist in more easily connecting to/toying with/experimenting with the firmware on the 3DR Solo ESCs. Many thanks go out to them! I was looking only for one that was electrically intact, but I got a much nicer piece of kit still in retail packaging. The community here is pretty exceptional.

I will begin my attempts to connect to 8A and 88 with the goal of first reading what is on each so it is known what they are (one is ESC, one is lighting controller).
 

Attachments

  • WP_20171115_12_00_52_Rich_LI (2).jpg
    WP_20171115_12_00_52_Rich_LI (2).jpg
    2.5 MB · Views: 44
  • Like
Reactions: OldCoder
Update:
Got the software side settled with winavr/avrdudess GUI and my usbASP ready to go.

Roadblock: The usbASP does not appear to provide sufficient voltage/current to actually power the ESC so that it'll connect/enumerate to the usbASP.
The motor pod has been verified to be working by installing in my Solo, so I know the board and both Atmel processors are functional.

Does anyone have any thoughts on how to power the pod so that I can connect it with the usbASP?
 

New Posts

Members online

No members online now.

Forum statistics

Threads
13,095
Messages
147,750
Members
16,065
Latest member
alan r pfennig