Possible issue with voltage regulation on some Bus Pirates

BP-SFE

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

BP-SFE

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

BP-v3a

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.

BP-v35b

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.

BP-v36

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.

The fix

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!

Join the Conversation

20 Comments

    1. I took a look again at the datasheet, it’s marketed as a 400 ma low noise LDO, according to the specs, output cap is optional, a 0.1 uf cap is needed on the input.
      This looks like a proper part replacement for all the people concerned about the noise on the 3.3 supply pin.

  1. That’s the key thing that I maybe didn’t stress enough – I’ve used the Bus Pirate hundreds of times with no issue. It’s purely something observed on an oscilloscope.

  2. Will be interesting to see what I get when I build up my free BPSOICV3.5a, I expect it will be OK. Reg was TC1185-5.0VCT713

  3. When doing the patch where you add an electrolytic (I had a 10uF) onto the existing ceramic cap you may want to check you don’t have a temporary regulation failure like I had where 5V is being put out of the 3.3V reg (at power up) for a second or two. The problem is that some chips have a V-Absolute-Max that may be exceeded.

    1. I’m surprised adding a cap works, just shows how sensitive it is I’ve seen boards with LDOs and ceramic caps that worked at 5.0V but oscillated at 4.75V

      the standard precaution is to add a footprint for a small resistor ~1R in series with the cap, can always mount 0R if it isn’t needed

  4. “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.”

    It is my understanding that in China, you can request a certain part, and separately you can also request what markings and what mfr. logo you want put on that part :-).

  5. I have a SparkFun Bus Pirate which has KB33/KB50-marked regulators. I don’t remember when I bought it, but the PCB has the date 10/22/09 etched into the copper.

  6. The 3.3V output rail on my sparkfun BP gives a nasty ramp oscilation at 14.28 KHz
    and a swing of 0.171V. Wow. I never noticed that before. Normally when I use that
    rail, it’s connected to a device with both a reservoir and decoupling cap. Time for
    some rework.

    My sparkfun PCB says “10/22/09” and the regulator says “KB33”. 5V rail is fine.

  7. My Sparkfun BP dated 2/10/2010 also has a 11khz oscillation on the 3.3 output. Mine is just over 200 mV. Regulator marked kb33. 5V rail is fine.

  8. I would check out where they were manufactured, it could have been a ‘job lot’ of substandard components were used.
    In China you can get batches that have failed the QA and are sold off cheap because they don’t meet the spec.

    1. The fact that this is documented in at least one data sheet suggests pretty strongly that it’s a known problem, be it a Chinese clone or a Name brand unit. The simple solution is to use Tantalum or electro that has a more common level of ESR (or more specifically, not an ultra-low ESR), providing it will fit, or like Ian suggested, double up with a larger value Ceramic, worst case, fit a series resistor as the datasheet suggests.

  9. I’ve only skimmed it, but that’s a very interesting app note with good info on stability with LDO’s. Section 12 is particularly interesting and explains why Ceramics or Electros are not desirable for LDO stability, but instead recommends Tantalums (which have long been used in regulator apps).

    Good reading for anybody interested in this subject, nice one Jim! :)

  10. I have a Bus Pirate v3.5c from SeedStudio and I have the same problem. At 3.3V there is an oscillation about 100mVpp and at 5V is good. The problem is not the size of capacitor in v3.5c is 1uF but the ESR, in my version they are ceramic. I changed C8 with tantalum 4.7uF and oscillation disappear, is stable as at 5V.

Leave a comment

Your email address will not be published. Required fields are marked *

Notify me of followup comments via e-mail. You can also subscribe without commenting.