Bus Pirate users MightyOhm and A connected Ape reported oscillations of 150mV-400mV on the 3.3volt supply pin. A huge thanks to them both, as well as numerous investigators in the forum for looking into the problem.
This appears to effect SparkFun Bus Pirates, and some Seeed Studio v3a/v3b Bus Pirates. It does not appear to be a bug in current production Bus Pirate v3.6. If your Bus Pirate is unfortunate enough to have this bug, it’s unlikely to ever cause a problem.
I pulled every version of manufactured Bus Pirate we have on file and looked at the regulator output with an oscilloscope. Keep reading our investigation below.
Not versions were available, v3b for example is only available as my original hand soldered prototype.
Looking at the 3.3volt rail
Here’s the 3.3volt output of a very old SparkFun Bus Pirate. Probably from the first batch. It’s oscillating about 40mV, much lower than some have observed. It’s not the raw Vpp – difference between high and low voltages – that poses a concern. It’s the regularity of the up-down, up-down that tells us there’s a problem.
The SparkFun board uses the MIC5205 3.3volt switchable regular in SOT-23-5 package with a 1uF ceramic capacitor. This is known to cause oscillations. From page 8 of the datasheet:
The output capacitor should have an ESR (effective series resistance) of about 5Ω or less and a resonant frequency above 1MHz. Ultra-low-ESR capacitors can cause a low amplitude oscillation on the output and/or underdamped transient response.
Jeff also mentions he has a very old SparkFun Bus Pirate. SparkFun originally recommended the MIC5205 voltage regulator type used on the Bus Pirate, so it is likely to be this part. However, they may have swapped parts since because the MIC5205 is quite old and obsolete (read: expensive). More on this below.
Regulator markings: KB33/RB50
Here’s the Seeed Studio Bus Pirate v3a, initial production version. A bit of noise, no regular oscillation. Regulator markings: LB33/LB50
I followed the Micrel datasheet example circuit for the v3a layout and used 2.2uF tantalum capacitors. This is shown both in the example on page 1 of the datasheet, and specified on page 8:
Most tantalum or aluminum electrolytic capacitors are adequate; film types will work, but are more expensive.
Curiously enough, Connected Ape DID see oscillations in his v3a which clearly has tantalum capacitors in the picture. Perhaps they have ultra low ESR, but they are the cheapest available, nothing special.
Here’s the 3.3volt output of the Bus Pirate v3.5b. Less noise, no oscillations. Regulator markings: KB33/KB50
Beginning with Bus Pirate v3b the tantalum caps were removed to save money and avoid using a conflict mineral. We gave Seeed a list of compatible regulators that work with ceramic capacitors from Mouser and they sourced something locally.
The markings on the chips didn’t change though, which is quite curious.
Here’s the output of the latest Bus Pirate v3.6 production version. I had 5 in the workshop and tested them all. Less noise still and no oscillation. Regulator markings: KB33/KB50
The regulators are marked the same as the MIC5205 still, but don’t appear to exhibit this issue. It’s not clear if they are actually MIC5205s, equivalents with the same markings, or if this only effects a certain percent of the regulators.
A little history on the Bus Pirate voltage regulator evolution
Switchable voltage regulators arrived on v1a of the Bus Pirate in the forum of an expensive Texas Instruments part I could sample. For the next version, Nate at SparkFun emailed and recommended the MIC5205. SparkFun also lists the MIC5205 in their Bus Pirate bill of materials, but they could be substituting another part instead.
I didn’t get that exact part because it was obsolete or out of stock at mouser, but I followed the MIC5205 datasheet anyways. v2go and v3a both have 2.2uF tantalum regulator output capacitors.
SparkFun’s Bus Pirate has always used ceramic output capacitors, so we followed suit in the v3b update. We also gave Seeed links to several newer, cheaper, and more feature-rich regulators that work with ceramic capacitors. Generally we never give Seeed exact part numbers for things like regulators. We describe it in the BOM as “3.3volt regulator with enable 150mA in common SOT-23-5 pinout” and give a handful of examples to encourage them to get it locally rather than import the exact (more expensive) partnumber.
One problem is there’s really no standard part number for little SOT-23-5 switchable regulators like there are for 7805s. New parts come and go so fast that both the models we list on the partlist wiki are already unavailable. Manufacturers use long and meaningless names for most of the parts.
I have the terrible habit of using MIC5205 as a generic name. You will find it on all the partlists for the Bus Pirate. The MIC5205 will be removed from all Bus Pirate partlists to avoid potential confusion.
The issues around substituting parts like the MIC5205 is a common problem for Seeed when working with new projects from new developers. Eric and I did a breakout session about this at the Open Hardware Summit in 2011. This problem is the inspiration for our partlist wiki, and eventually we hope to offer an open part kit with and open ‘datasheets’ to that help the community select cheap, commonly available SMD parts and equivalents.
I’ve written Seeed to get the exact part number used in current production Bus Pirates, as well as a datasheet, and will share it here on the blog. Tracking what exact part was used in each batch of Seeed Bus Pirate is probably impossible, we’re doing fairly small batches of stuff really cheap. I doubt there’s a long paper trail.
If the currently used regulators are compatible with ceramic capacitors, and I really think they are, no update is needed. I’ll check to make sure future part changes are also compatible.
Probably the only way you’ll notice the oscillation is by probing with an oscilloscope. It is highly unlikely it will cause any problems using the Bus Pirate and has gone unnoticed until now. If you want to fix it yourself, you can add a 1uF or larger electrolytic or tantalum capacitor to the output pin of the 3.3volt switchable regulator. That’s VR3 in v3a/b, and VR2 in v3.5+.
A huge thanks for your investigation and bug reports! The Open Hardware community is amazing!