APM2.5.2 & 2.6 MIC5219-3.3YM5 (GL33) Regulator Mod & Alternate Capacitor Mod
Supplies Needed:
MIC5219-3.3YM5 SOT23-5 Package 3.3V Fixed Voltage Regulator
0402 or 0603 size SMD 470Ω Resistor ( Marked [471] )
(1) 1206 size 100uf 6.3V Ceramic Capacitor or (2) 1206 size 47uf 6.3V Ceramic Capacitors; more if you want to fully "Harden" the APM board at all plug-in headers.
Good, temperature-controlled soldering iron with 0.5mm Conical Tip
Chem-Wick or similar professional-quality desoldering braid in "Fine" size/guage; I recommend against Radio Shack for this due to poor quality
0.015" super-thin solder; I prefer 62/32/2 Silver-Bearing Alloy (Radio Shack # 64-035 is a good substitute)
Teeny-Tiny Needle-Point Tweezers
"Dilbert-Level" Mad Micro-Soldering Skillzz
Optical Magnification and Lighting Devices:
THE Mod:
Some time after blogging my LM1117-3.3 Regulator Mod, I found myself reading reading Joe Abrams' infamous Post # 1491; in it he describes his recommended diode protection Mod and makes mention of substituting another regulator, the MIC5219-3.3YM5 ( I will hereafter refer to it as the GL33, its common name after the case marking found on the SOT23-5 package variant).
It was one of several I had considered at the time I started on my Mod; it is a descendant of the LM1117, only in a smaller SMD package. I did in fact spend some time searching for one either in my parts bin or that could be salvaged from scrap electronics; in the end, I went with the LM1117-3.3 mostly because it was handy, and larger, so easier to handle.
So now I found myself wondering... "Indeed... why NOT the GL33, Mr. Abrams?" It comes in the same SOT23-5 package, and is a pin-for-pin substitute, only with much broader operating voltages and is again known to be nearly bulletproof in this sort of application.
The only problem is the need to drive the ENable pin HI rather than LO; and its EN pin is rated for direct connection to V-IN, so simple enough to modify to fit. I decided then to order some; a couple weeks later they arrived via the slow boat from China, and I was ready with another faulty APM board.
First off, we prep the board by removing the old 3.3V regulator. Philip of DIY Drones has an EXCELLENT video tutorial HERE for replacing the stock TPS79133 regulator; we'll be doing precisely this process, only we'll Mod the GL33 regulator so we can add a tiny SMD 470Ω resistor across the V-IN and ENable pins, so only 4 of the 5 legs of the regulator will be soldered to the board.
The reason for using this resistor is twofold: First, it has an insulated ceramic body, so can be safely used as a jumper passing over the GND pin between the V-IN and ENable pins. Secondly, it will limit maximum current flow through the ENable circuit to approx 10ma; this means that in the worst case scenario, if the enable pin is shorted to ground by some foreign object or crash accident, the worst that will happen is it turns off the regulator. We are in effect making a buffered connection known as a "Pull-up Resistor" circuit.
If this sounds like I'm speaking to you in Martian, I suggest that you may wish to consider having a geekoid friend do this work. You DEFINITELY need to be in touch with your Dilbert side to be able to do this Mod; it involves VERY tiny soldering which one has to get right the first time. ;)
Here you can see my APM2.5.2 board all prepped for the new regulator (Circled in RED); the APM 2.6 board will be the same.
While I have this excellent pic up, I'd like to point out another potential failure which can mimic the shorted 3.3V regulator fault. This board arrived with the 3.3V regulator already replaced, but still had 5V on the 3.3V rail. After removing the 3.3V regulator, I tested again to be sure nothing else appeared wrong; I found it STILL had 5V present on the 3.3V Rail!
Close inspection of the board revealed a solder bridge across the 3.3V-IN and 5V-IN pins of the TXB0104 Level Converter for the FLASH RAM; it is VERY likely this fault existed from the factory as a wave soldering defect, and only exhibited issues after the faster clock rate of recent firmwares caused issues.
There are TWO of these Level Converters on the board; either can cause this failure, and those pins are TINY and very close together. Inspect VERY closely if hunting a similarly persistent 5V fault on these boards.
Here we have the LG33 regulator; we are going to Mod it by flattening the ENable pin between the tips of a pair of tweezers so that is protrudes horizontally from the case. Really, that is all the force needed; just a squeeze from a pair of tweezers.
When we're done, it will look like this. Now, we're going to install it on the board as shown in Philip's video; the only thing we're going to do differently is NOT solder down the ENable pin which we just flattened. Here it is again so you can review it:
Next, we're going to install the 470Ω resistor across the V-IN and ENable pins:
The one I used is 0402 size (1mm L x 0.50mm W); 0603 size (1.6mm L x 0.80mm W) is also small enough to fit here.
Tack down one side to the ENable pin, then solder the other end to the V-IN pin like this, so that the dark side with [471] printed on it faces up. It is okay for the white side of the resistor to lay across the GND pin underneath; it is the ceramic substrate of the resistor, and has a higher insulative value than pretty much anything else on the board. Just make sure there are no solder bridges to the center GND pin from either adjacent pin as seen here.
Now I'm going to clean the flux from the repair area by scrubbing with a stiff paintbrush dipped in alcohol; be sure to protect the barometer from contamination by covering the holes in the metal can with a finger as shown here. Removing the flux is optional; unless the flux residue is contaminated by another liquid later, it will cause no harm to the APM board. I find it is easier to inspect the quality of my work with it removed, however. If you already have a foam square over the baro, you may prefer to skip this step.
And here's the finished product, ready for testing. First, we test with a meter across all legs of the regulator for obvious shorts, then plug it into USB on the computer and wait for it to complete its Power On Self Test. I then check the 3.3V rail at the I2C bus, and if all appears okay, I disconnect, add GPS, and verify that all sensors test OK in Mission Planner's Terminal applet.
If everything tests good, I move onto the Flight Data/HUD screen and do a manual ""Reality Check" to see that it reacts as expected when I change the orientation of the board and that it doesn't have any massive jitters.
Bench Testing:
My bench testing for this Mod was similar to my testing with the LM1117-3.3; first, I connected it to my PC via USB ONLY as Philip did in his article on the DIYDrones thread on this failure.
A DVM is connected via plug-in patch cables to the 3.3V rail at the I2C port and another to the 5V rail at the INPUTS header; both are monitored throughout testing.
I have streamlined my hot-plug testing a bit; of all the RX and other surge load devices I tested before, I only used the worst offender, my ORX RX3S 3 Axis Gyro/DSM2 RX, as a test load with this setup. It offers a fairly stiff combination of resistive current draw and large, Low-ESR ceramic capacitor of approx 150uF total value in the primary power input section, and was by far the most aggressively disruptive device I tested with my LM1117-3.3 regulator Mod.
My testing was simple, yet strenuous (at least for my patience); 20 cycles of hot-plug, monitor effects, reset and test again.
Without any other mods to the board, I would hot-plug my RX into the INPUT 1 port of the Input header; although I never heard the distinctive "Bing-Bong" noise from the PC indicating that a USB device had been unplugged, MP would disconnect each time, and I would be unable to reconnect until I unplugged USB and plugged it back in again.
After 20 cycles, I experienced the same exact results each time; and monitoring with MIN/MAX on both meters indicated 3.3V fluctuated from 3.21 Min to 3.330V Max, with 3.28V typical read on display. 5V fluctuated from 2.22V Min to 5.05V Max, with 4.97V typical read on display. Typical voltage input at USB header is right on at 5.01V; however, a small voltage drop (0.07V) occurs across F1 directly after USB header.
Overall, this suggests that capacitor filtering at the 3.3V rail is sufficient to prevent the 3.3V from fluctuating very much, but just as Philip suggested, the 5V rail fluctuates greatly, with PC power supply for USB port possibly even going into shutdown for a micro-fraction of a second.
Alternate Capacitor Mod:
At this point, I felt it was time to move onto the next part of my Mod; adding Protection/Buffer Capacitors at the 5V input Rail as per Philip's Mod. My variation on this Mod attempts to make a completely user-transparent upgrade to the board.
I wanted the end product to fit inside the ArduPilot case with no modifications required, and I wanted it to NOT disable ANY I/O header on the board; as I have discovered after speaking with many users, there really is no way to predict which headers a user is going to need.
After fighting with commonly available 1210-Size (3.20mm L x 2.50mm W x 2.50mm H) 100uf Ceramic capacitors for space to install; it occurred to me that 1206-size (3.20mm L x 1.6mm W x 1.6mm H) capacitors would be small enough to fit on the bottom of the board and allow clearance to fit inside the case; and as a bonus, they fit very neatly in between the pins of all the main plug-in headers!
This flexibility of mounting allowed me to place the buffer capacitors where I felt they MOST needed to be: right at the point of attack, where the RX was plugged in at the INPUT 1 Header.
As luck would have it, I found that 100uf Ceramic capacitors of this size ARE available, but not exactly cheap; averaging approx $1.50-$2 each in small lots on fleaBay. I DID, however, find a vendor offering 50pcs of 47uf 6.3V 1206 size ceramic capacitors for $10.00 shipped, and a US vendor to boot!
1206 Size 47uf Capacitors on eBay
Here we are desoldering in the space between the GND and 5V pins at INPUT 1 and INPUT 2.
We are doing this so that the capacitor will have room to lie flat and flush against the board between the pins.
Here we are placing the first capacitor...
...and here it is soldered in place.
If you are using 2 47uf capacitors as I did, you'll want to do the same thing in the space between Input 2 and Input 3; here it is and the resultant measurements from my ESR meter. SUHWEET!
Testing the Capacitor Mod:
As before, I would repeatedly hot-plug my RX into the INPUT 1 port of the Input header; now I was unable to make MP disconnect, and live data remained constantly available throughout test period.
After 20 cycles, I experienced the same exact results each time; monitoring with MIN/MAX on both meters indicated 3.3V had no measurable fluctuation, remaining rock-steady at 3.28V with Min/Max reading the same.
5V no longer dropped and spiked as before; It simply dropped from 4.98V to 4.88-4.89V; voltage dropped across F1 now measures 0.11V due to increased load from ORX RX3S 3 Axis Gyro/DSM2 RX.
"Fully Hardened" APM Board:
I consider these results to be an unqualified success; but I'm still not done. As I've stated before, it is sound engineering practice to place buffer capacitors at the power rails of any user-accessible plug-in connectors; to this end, I've installed additional 47uf capacitors at the Analog, Output and I2C header connectors to fully harden this board against voltage fluctuations caused by the many depredations of exposed plug-in connectors.
These are of course optional; however, it's not like it costs much to add a little more protection, so why not?
As promised; the entire point of this complicated Mod was to make it so it would fit inside the ArduPilot case; and here is the finished product. Only you will know it's now a TankDuPilot; well, you and of course the Gremlins. ;)
In Closing:
Please remember, as with my APM LM1117-3.3 3.3V Regulator Mod, this is a Mod which is still in Beta.
PLEASE, PLEASE, do not attempt to fly in any Autonomous mode without first testing as extensively as possible on the bench, and then verifying that all manual modes work correctly BEFORE enabling any Autonomous flight modes. I REALLY don't want to copy all the scary warning stuff I put on that Build Log over to this one; but if y'all don't behave, I WILL. :D
mnem
*HARDENED*
Comments
Yeah, sure... PM me and we can work out terms. :D
mnem
*zoom*
4/28/14 - NOTE:
Cap issue resolved with judicious application of capital. You may now resume abusing my Bandwidth.
mnem
"As usual; once you flash the cash, the establishment gets much friendlier."
4/27/14 - NOTE:
I've recently discovered that PhotoBucket has capped my bandwidth on the photos in this Mod; I'm away for the weekend and will address it as soon as I can be at my PC.
mnem
"It's always sumthin' !" ~ Rosanne Rosanna-Danna
There is a confirmed point of failure in the 3.3V Regulator; that failure is the entire reason for this experiment and the associated Mods. See Philip's experimentation and resolution outlined at the top of the thread here:
3.3V Regulator Thread
The fault in the trace layout of one of the level converters as you describe does exist; however the associated inputs are 5V tolerant so it makes no functional difference, the circuit still functions correctly.
The only way the level converters can cause this fault is if they are damaged and short out internally; in that event it would make no difference if the level converter was wired correctly or incorrectly, or even which of the two level converters was involved.
Either of the level converters on the APM could theoretically short out internally under the correct sort of abuse; the end result would be the same as the solder bridge fault I found on this board.
Paul
Some said the volt reg, and others found a design flaw where the low and high sides of a level converter were reversed.
Regards, Søren
Thanks Rob.
I really like the end result; it met all my design specifications in the first iteration (well, technically it IS my 2nd revision, but only because I didn't have any LG33s on hand), and I gained some valuable troubleshooting intel to pass on as a byproduct. If it helps someone else fix a faulty board, then I'm glad. If it helps improve the breed, which I think it will, even better.
I'm also hopeful I'll have folks report back that they've found similar faults in their own boards and fixed them; this is a case where lower quality assembly process from clone manufacturers can REALLY make a bunch of messed up boards. Wave soldering is a crucial process where cutting corners usually results in lots of bad product; this is the kind of thing that separates the pros from the wannabes.
Paul
Nice hacking. And good work finding the solder bridge. That's an important observation when trying to troubleshoot a board which arrives DOA.
Works for me... We can start a new thread; entry fee is one dead APM 2.5 family board for me to experiment on. Winner gets my first resurrected board out of the lot to flog like a red-headed stepchild. ;)
mnem
No, no, NO. The Gamma Irradiator goes here; the Quantum Flux Capacitor goes over THERE."
That photo is just asking for a caption contest. :-)