So a few months ago GearBest sent me an emax Nighthawk Pro 280 ARF to review (I've linked part 1 of my review as a related article below.) The all in one board on this quad uses a variant of emax's 12a "Blheli" ESC's but like all emax ESC's it's not the same version of BlHeli that you get if you flash your own ESC's. Instead emax modifies it to work with their programming cards and makes some changes that I consider a little bit backwards. Since I'm not a fan of emax's modifications to blheli I've been really itching to try official blheli on these since I got this quad - I've been afriad to do so though due to the risk of damaging an entire $60 all in one board if it turns out that the ESC's aren't really compatible with the same firmware as emax's standalone 20A BLheli ESC's.
2dogrc (www.2dogrc.com) has been a big community supporter of this quad and has contacts at emax who've been very good abot providing technical information to him. He was able to provide a diagram of the flashing headers shortly after the quad was released:
He was also able to get confirmation from the emax engineers that the "Emax 20A" version of blheli is correct for them. So that's takes care of all the information needed to reflash these - it was just a matter of finding someone willing to risk their board to confirm it all works.
Enter RCGroups user Marco67. He decided to take one for the team and be the first guinnea pig! He when ahead and made some mods to his board to facilitate flashing as well as provide cleaner vbat/buzzer wiring:
As you can see from his photo he just used some servo extensions as programming headers. My initial plan was to use a 6 pin socket due to how flashign siLabs based ESC's work. Programming SiLabs based ESC's uses 3 wires: GND (ground), C2D (Data), C2CK (ClocK) when programming multiple ESC's you can share the GND and C2D lines across all of the ESC's - only the C2CK lines need to be unique. So for 4 ESC's you really only need 6 wires total - 1 GND that goes to all 4 ESC's, 1 C2D that goes to all 4 ESC's, and a separate C2CK wire for each ESC. Unfortunately I was out of 6 pin sockets :( I later realized I could have just used two servo extension headers glued togther to make a 6 pin socket...but for now I just went ahead and used Marco67's method because I was really itching to try this.
So that's what I did. I fired up the soldering iron and hot glue gun and added 4 individual 3 pin headers. The video of this is kind of long...and rather boring unless you like listening to me talk about what I'm doing. I'd call it a "Let's Solder" video but I wasn't even able to get decent video of the actual soldering itself...But I do talk about some of the difficulties I run into and solutions to them. I also show you to disassemble the quad to get the AIO board out so at least the first few minutes may be worth watching:
Few tips for anyone else who tries this:
1) It's easy to remember the pad designations as they all follow the same pattern even though they're in different orientations. In a line from the outside of the board to the inside they all start GND then 3.3v (which we can disregard) followed by C2CK and C2D closest to the inside of the board.
2) Marco's method of grabbing the ground from nearby connectors is MUCH easier than using the GND pads on the programming headers. 2 of the programming headers have 3 tiny caps right next to the GND pads making them VERY difficult to solder to.
3) If you use the servo cable method try to use ultra light cables if you have them. I used standard and it works, but the smaller gauge wire of ultra light cables would have been much easier to work with given the small size of the pads.
4) As I mentioned above this could be done with half as many connectors by sharing the C2D and GND lines across all four ESC's. I plan on making an external harness that will allow me to flash all four at once but a 6 wire solution would have been much cleaner - I may do that next time I open this quad up.
So at this point I've got 4 shiny new programming headers on my board!
(You can see on the one on the lower left where I took the ground off the vbat socket instead because the GND on the programming header was surrounded by tiny components and very hard to get to.)
Here's a closeup of the first one I did:
On the one above the GND pad wasn't that bad to get to - but still had components really close to it on two sides that gave me a few issues. I'd just take the GND off the USB plug if I did this again.
So now we're ready to flash!
No. Not so fast.
I've been flashing ESC's for two years and have flashed at least 2 dozen of them (most of those 2 dozen several times over) with various versions of simonK and BlHeli including some rather untested beta versions and some custom modified versions. I've been stupid. I have not used a current limiter either when flashing or when putting power to them after flashing. I knew I was taking a silly risk doing that but individual ESC's are fairly cheap so I was willing to risk smoking one. This full AIO board is a different story. If one ESC has a problem the whole board is basically trash. So I decided I better go ahead and make that current limiter I've been meaning to make.
Mnemennth on RCGroups came up with a very easy to build clean and simple current limiter design using a common automotive taillight and shared his method about a year and a half ago. I've had a pack of bulbs sitting on my desk and have been meaning to try it...but honestly I've been using KISS ESC's on my last few builds and haven't been flashing ESC's much lately. So I made a current limiter next:
After I made that video I added a JST connector to the output side of the limiter and then grabbed a JST->XT-60 adapter I had so I could power the 280's AIO board with it, dug out my arduino and got ready to flash:
I happen to have a couple of somewhat beatup Arduino Mega's on hand since I used them as homemade MultiWii flight controllers on my first quad (See related "Ultra budget knuckle quad" article below.) This particular board has had it's 3.3v regulator knocked off. Still works otherwise and I don't need 3.3v for this so it was the easiest choice for me. If you don't have an arduino on hand then an arduino Uno or nano may be a cheaper choice and would still work just as well for this.
I didn't setup multi ESC flashing just yet, so I had to move the cable from ESC to ESC but the flashing is fairly straightforward. I did make one setup change to enable damped light after flashing but otherwise I just left all the BlHeli defaults as is.
After that I powered it up with the current limiter still in place but using the 2.5a connection instead of the 0.5amp connection I used while flashing. I confirmed that I was able to power up the board and all 4 ESC's responded. As noted in my video the LED's for each ESC no longer light up but that's to be expected as stock blheli doesn't know about the LED's so it doesn't try to light them. With the initial smoke test passed using the current limiter I took it out and gave it full battery power. Did a quick calibration of the ESC's...and it seemed to pass bench tests!
The next morning I took it out for a quick test flight. The pack I had on hand was already partly discharged so I only got a few minutes of flight - but it was enough to confirm that it works and I'm pretty sure I felt damped light doing it's thing a bit more effectively than on the stock firmware:
The motors also sounded a little quieter and seemed a little cooler...but since it wasn't a full pack I can't be 100% sure.
Overall I'm happy. The tune for that test flight was still far from optimal. I just started trying to improve the tune on this quad over the stock baseflight settings it comes with. I'm still on baseflight on it as well (I want to see how far I can push it before swapping to cleanflight, betaflight, or Tau Labs all of which I plan on experimenting with on here soon.) With the new and improved BlHeli 14.2 on there now I can probably improve this tune a little further still.
So would I suggest this as an upgrade? Well....it's really nice to have but it does require some very fine careful soldering. If you don't have experience with surface mount soldering this probably isn't the place to start. Though really the C2D and C2CK pads aren't that bad other than one or two of them. And you can grab GND off other points - so it's not that horrible...but it's still not a beginner level soldering job. If you do try it just be sure to use a current limiter so if you slip up and create a solder bridge or anything you've got a fighting chance of correcting it before really bad things happen!
If you want more info about this quad please check out my on-going thread in the FT forums about it: http://forum.flitetest.com/showthread.php?21218-EMAX-Nighthawk-Pro-280-ARF
And if you're interested in this quad be sure to consider GearBest: http://goo.gl/28ZA8U
Or if you'd like a US based distributor please consider 2dogrc who's been doign a great job providing community support on RCGroups.com: http://www.2dogrc.com/emax-250-arf-racing-quad-complete-and-built.html
Log In to reply
Log In to reply
Log In to reply
Log In to reply
Log In to reply
Log In to reply
happy flights...
Log In to reply
First - the version of BlHeli that emax flashes from the factory doesn't use the normal bootloader - so you have to flash a new bootloader before you can communicate over the signal lines.
Second - even once you flash the bootloader you still can't use the signal lines because emax has a resistor and capacitor on the lines for filtering which messes up the programming signal. You could remove those and then use that connector - but...I haven't been able to trace the circuit to locate them with the coating on the board. I've talked to someone who has a connection to the emax engineers to see if they can identify the location of the resistors and caps on this layout - but haven't heard back.
But even if you removed them I'm not convinced it's worth it. Removing them can degrade your control signal and introduce noise. And the effort to remove two tiny passives like that is just as much or more work than adding programming ports. I assume most people fly more than they flash so it doesn't really make a lot of sense to me to make a hardware change that can degrade flying performance just to make flashing easier.
Log In to reply
Log In to reply
Log In to reply