Free PCB coupon via Facebook to 2 random commenters


Every Friday we give away some extra PCBs via Facebook. This post was announced on Facebook, and on Monday we’ll send coupon codes to two random commenters. The coupon code usually go to Facebook ‘Other’ Messages Folder . More PCBs via Twitter on Tuesday and the blog every Sunday. Don’t forget there’s free PCBs three times every week:

Some stuff:

  • Yes, we’ll mail it anywhere in the world!
  • We’ll contact you via Facebook with a coupon code for the PCB drawer.
  • Limit one PCB per address per month, please.
  • Like everything else on this site, PCBs are offered without warranty.

We try to stagger free PCB posts so every time zone has a chance to participate, but the best way to see it first is to subscribe to the RSS feed, follow us on Twitter, or like us on Facebook.

from Dangerous Prototypes

PROTOTYPE: Bus Pirate Next Gen v1


Sjaak, fresh off his ARM adventures at SMDprutser, hacked together an STM32-based Bus Pirate prototype we’ve been calling NG1 (Next Gen version 1). NG1 uses a modern ARM chip with completely open tools and libraries, and sports an integrated logic analyzer . The firmware is very usable, but largely untested. Let’s have a look at the biggest changes.

STM32 ARM-based design


NG1 is built around an STM32F103CBT6, a modern ARM chip with 128K flash and 20K RAM running at 72MIPS.

All the extra resources let us use a proper printf function for terminal display, instead of the crappy obscure way of storing strings we invented for the v3.x hardware. The current firmware uses about half of the flash (78 of 128K). If we fill the chip, like we did with the Bus Pirate v3.x, STM32 has a full line of compatible chips with up to 512K of flash.

ARM has completely open toolchains, while the Microchip PIC used in previous Bus Pirates is still straggling with free-but-not-open-not-distributableand-crippled compilers and libraries. The ARM GCC compiler is open source and freely available for multiple operating systems. Several active open source libraries support the chip’s features, such as multiple USB endpoints. NG1 uses an open source peripheral library, libopencm3, so the complete source and libraries can be redistributed under the GPL.


Like most chips, STM32 doesn’t have a Peripheral Pin Select feature. PPS on the PIC24FJ64GA002 is what makes the original Bus Pirate v3.x design so elegant (left layout). Most major hardware modules like UART, SPI, timers, PWM, etc can be assigned to almost any pin using PPS – just one PIC pin is needed for each of the 5 Bus Pirate IO connections.

STM32 hardware modules are fixed to specific pins. Each Bus Pirate IO pin is connected to up to five STM32 pins to provide the necessary features. This kind of design uses a lot more pins (28 vs 64), and the PCB is a lot more complicated (right layout).

On-board Logic Analyzer


Frequently we use the Bus Pirate along side a logic analyzer like the Logic Pirate. NG1 has an SRAM-based logic analyzer directly on-board. The logic analyzer records bus activity every time the Bus Pirate writes or reads commands.

This adds an additional layer of debugging when things go wrong, without any extra cables or connections. Talk to a chip through the terminal, then check the logic analyzer to verify what actually happened on the bus. Terminal mode and the logic analyzer work at the same time because they each have a dedicated USB endpoint in the STM32. Microchip 23LC1024 SRAMs provide 256K samples per channel at 20MSPS on the current prototype, but we’ve found an alternate SRAM chip with over 10M samples per channel.

Currently NG1 uses a 74LVC573 single direction latch between the logic analyzer and bus. The next revision uses a 74LVC245 bidirectional latch[link] so the logic analyzer can also work as a signal generator without any additional hardware. Maybe we could toss on a resistor ladder to make an analog signal generator too.

So far we’ve focused on capturing bus activity while the Bus Pirate is writing and reading commands, but the hardware should work as a stand-alone logic analyzer as well. The high latency of STM32 pin interrupts could contribute to really sloppy capture triggers, especially at high capture speeds, but there’s still a lot to learn about this chip.

Selectable 3.3volt, 5volt, external pull-up voltage


The Bus Pirate has on-board pull-up resistors (10K) to use with 1Wire, I2C, and any other situation where an open drain bus is used. The on-board pull-up resistors can be connected to one of three voltage sources straight from the Bus Pirate terminal. Select from the on-board 3.3volt or 5volt power supplies, or use an external supply through the Vpull-up pin. Selecting the pull-up voltage from the terminal is really convenient new feature.


Two BL1551 analog switches are chained together so that three input sources (3.3volt, 5volt, Vpu pin) are controlled by two pins. If this seems familiar, it’s the same switch hardware we tested on the v3.x update.

Integrated USB and USB Micro B connector

STM32F103CBT6 has integrated USB hardware with actively developed open source driver libraries. Not only is the USB interface faster than a USB-to-serial converter chip, it supports multiple USB endpoints at the same time. Currently we’ve implemented one “low speed” USB endpoint for the terminal and DFU bootloader updates, and a second “high speed” USB endpoint for the on-board logic analyzer.

USB Micro B is by far the most common USB connector at the moment. NG1 uses a Micro B connector so it works with the phone cable that’s probably already on your desk.

However, we don’t like the Micro B connector as much as the Mini B. Every hand-soldered USB Micro B connector eventually broke off of the PCB. After re-soldering it numerous times the pads and tracks get to the point of no repair.

On the most recent hardware revision we removed the cheap “standard” Chinese Micro B connector and used a much more expensive Molex 47589-001 USB connector with through-hole tabs for reinforcement.

1x10pin keyed locking connector


Previous Bus Pirates use a 2x5pin IDC connector. These are easy to use with 0.1” jumper wires from your parts box, but there’s not many options for probe cables using an ICD connector.

NG1 uses a 1x10pin 2543/TJC8S-10AW (equivalent to Molex 70553-0044)connector, a common 0.1” header inside a keyed/locking shroud. The pins are 0.1” pitch, so jumper wires still work great, but now we can make high quality keyed/locking probe cables with tangle-free silicone wire.


The NG1 has a hardware reset button and a user configurable button. The user configurable button is currently only used for activating the bootloader during power-up. We haven’t decided yet on a good secondary purpose for it, but we are open for suggestions.

Second UART

A hardware UART is exposed for debugging without using USB. The code supports debugging via the UART, though we started debugging through the second USB CDC port after USB was up and running.

Taking it further

A logic analyzer, selectable pull-up resistor voltage supply, more memory and a totally open toolchain are probably the four biggest improvements to Bus Pirate NG1. The next revision will also support a hardware signal generator.

Hardware files are available here. The hardware is not final, but the current version addresses all known bugs. Quick order the latest PCB version at DirtyPCBs, or wait a week and we’ll have some to give away for free.

Firmware repository is here, it builds with the ARM GCC compiler. Use the command ‘git clone –recursive‘ to clone our git repository. That command should also take care of getting the right libopencm3 version. Be sure to run make in the ‘/libopencm3/‘ folder first, then switch to the ‘/source/‘ folder and run make again to built the firmware. We’ll walk through the toolchain setup next week.

from Dangerous Prototypes

How to build your Energy Load manager


A detailed instructions of how to build an Energy Load manager from Open Electronics:

When the instantaneous power consumption exceeds the set values, it selectively disconnects the users, in order to prevent the electric meter to cut the power to disconnect.
The management of the electricity users at home, intended as the possibility to define the operating priorities and to momentarily disconnect the ones that may be “sacrificed”, is something that has become important since the coming of the electronic meters. With respect to the traditional ones, such meters are in fact a bit less tolerant towards the overloads, and they could suddenly leave us without power. Given that nowadays the electric meter is almost always outside and that in order to rearm it we should get out of the house; not to mention that the disconnection will probably turn off the computer that is sending files via the Internet, or that a user might not be able to shut down. In order to prevent such a situation, we created the load manager: in the previous installment, we described its hardware. It is now the moment to deal with the software governing it, and with the management of its functioning via the user interface.

Project info at

from Dangerous Prototypes

Rescuing the Defcon badge with the Bus Pirate


Brandon Vandegrift @bmv437 tweeted, “Got my @defcon badge working again! I must have shorted out either R9 or R10, which are pull-up resistors for the I2C data lines. Without that, the PIC32 can’t communicate with the LED driver board. @dangerousproto Bus Pirate to the rescue, with it’s built in pull-up resistors!”

Get your own handy Bus Pirate for $30, including world-wide shipping. Also available from our friendly distributors.

from Dangerous Prototypes

#FreePCB via Twitter to 2 random RTs


Every Tuesday we give away two coupons for the free PCB drawer via Twitter. This post was announced on Twitter, and in 24 hours we’ll send coupon codes to two random retweeters. Don’t forget there’s free PCBs three times a every week:

  • Hate Twitter and Facebook? Free PCB Sunday is the classic PCB giveaway. Catch it every Sunday, right here on the blog
  • Tweet-a-PCB Tuesday. Follow us and get boards in 144 characters or less
  • Facebook PCB Friday. Free PCBs will be your friend for the weekend

Some stuff:

  • Yes, we’ll mail it anywhere in the world!
  • Check out how we mail PCBs worldwide video.
  • We’ll contact you via Twitter with a coupon code for the PCB drawer.
  • Limit one PCB per address per month please.
  • Like everything else on this site, PCBs are offered without warranty.

We try to stagger free PCB posts so every time zone has a chance to participate, but the best way to see it first is to subscribe to the RSS feed, follow us on Twitter, or like us on Facebook.

from Dangerous Prototypes

Updated Bus Pirate v3.x concept design



Development on is winding down, so I’ve had some time to play with hardware. I’ve said the same thing for a few years now, but this time it really happened!

This update of Bus Pirate v3.x crams in a major new feature, and slightly lowers the total cost. Two China-sourced analog switches enable pull-up resistor voltage selection – 3.3volts, 5volts, or External – directly from the terminal menu. A new IO header is compatible with fancy tangle-free silicone wire probe cables. An updated USB to serial converter chip reduces the BOM to offset the cost of the new features.

Pull-up voltage select 3.3v/5v/Vpu pin

Bus Pirate v3.x has on-board pull-up resistors for 1Wire, I2C, and any other situation where an open drain bus is used. Currently the pull-up resistors are fed through the Vpull-up pin (Vpu). In almost all cases I use a wire to connect the Vpu pin to the on-board 3.3volt or 5volt power supply.


It would be so much more convenient to select one of the on-board power supplies from the Bus Pirate menu, instead of connecting an extra wire to the Vpu pin. The v4 hardware made an attempt at this, but with a circuit that creates a lot of voltage drop.


I spotted the BL1551 analog switch while browsing Chinese chip datasheets at JLC. BL1551 is a $0.04 analog switch with low on-resistance (2.7ohm at 5.0volts) and high current capacity. It seemed like a good candidate for switching the pull-up resistor source.


Two BL1551 are chained together so that three input sources (3.3volt, 5volt, Vpu pin) are controlled by two pins. All the PIC microcontroller pins are already used, but a little hack lets the hardware version ID pins drive the BL1551.

1 x 10pin keyed locking connector, corrected pinout


Bus Pirate v3.x has always used a 2x5pin IDC connector. These are super common and easy to use with 0.1” jumper wires from the parts box. Unfortunately there aren’t many good cable options for an IDC connector, a probe cable made from ribbon wire always feels cheap. I rolled a few versions with various JST connectors, but a custom cable makes everything less handy.

Eventually I settled on a 1x10pin 2543/TJC8S-10AW connector (equivalent to Molex 70553-0044), a common 0.1” pin header inside a keyed/locking shroud. Jumper wires still work great because the pins are 0.1” pitch, but now we can make high quality keyed/locking probe cables with tangle-free silicone wire.

The pinout on the new connector is corrected to MOSI-CLOCK-MISO-AUX-ADC-Vext-3.3V-5V-GND. The original v3.x pinout was mangled in early revisions, and the current mess has been grandfathered-in since the first production run.

FT230X USB to serial converter


The FT232RL has been the go-to USB-to-serial converter chip for a decade (IC2, left). It’s used on the Bus Pirate v3.x, as well as oh-so-many Arduinos. FT230X is a new version that uses the same FTDI drivers everyone already has installed, but it’s half the price and comes in a smaller package (IC4, right).

Moving to the FT230X frees up board space for some PCB tweaks, and reduces the BOM cost by about $2 in single quantity.

USB Micro B

What kind of USB cables do you have laying around these days? I’ve got a ton of USB Micro B cables from phones and phone chargers, and those are slowly being replaced by USB C cables. The Mini B connector on v3.x is a relic.

My updated board uses a USB Micro B connector. It’s not hand-solder-hobby-friendly like the USB Mini B connector. To be completely honest, every hand-soldered prototype connector eventually broke off the board, often lifting traces with it. There are two versions of this hardware in git – one with a generic Chinese USB connector, and one using an expensive Molex connector with through-hole reinforcement.

5cmx5cm PCB size


Swapping the IO connector and USB chip made it possible to fit everything on a 5cmx5cm PCB. This version fits on the super cheap 5x5cm PCB prototype packs sold at most board houses.

Taking it further

This Bus Pirate has been on my bench for about six months, and it’s hard to go back to an older version. Selecting the pull-up voltage from the terminal is really convenient. The IO header pinout makes a lot more sense, and the cable options are pretty sweet. The Micro B connector may be the best update, now the Bus Pirate works with the phone cables I always have around.

The Eagle schematic and PCB files are in git. The hardware is significantly different from v3.x and needs a custom firmware build, so I called it v5. The version isn’t set in stone. There is also a firmware branch with support for the new hardware.

There are no plans to produce this version of the board without lots more testing and community feedback. PCBs for the Molex USB version should be available in the free PCB drawer in a few days.

from Dangerous Prototypes

Build a Multisensor Shield for ESP8266


Rui Santos has a great write-up on building a Multisensor Shield for ESP8266, that is available on GitHub:

In this project you’ll discover how to design and create a Multisensor Shield for the ESP8266 Wemos D1 Mini board. The shield has temperature sensor (DS18B20), a PIR motion sensor, an LDR, and a terminal to connect a relay module. We’ll start by preparing all the hardware and then program it.

See the full post on Random Nerd Tutorials blog.

from Dangerous Prototypes

Tool battery teardowns: Craftsman 19.2V and Ridgid 12V


Russell Graves did teardown of a Craftsman 19.2V DieHard battery and a Ridgid 12V battery:

It’s time for more tool battery teardowns!  This week, I’ve got a Craftsman 19.2V DieHard battery, and a cute little Ridgid 12V battery.  They’re both lithium, and I’m going to dig into both of them, because that’s what I do with old batteries I pick up out of junk bins.
If you’re bored of tool battery teardowns, you could always send me more interesting things to mess with!  I enjoy poking around tool batteries, and a lot of the ones I pull apart are “new to the internet” in that they haven’t had a detailed teardown before.   It’s always interesting to see how different companies approach much the same problem.

More details on Syonyk’s Project blog.

from Dangerous Prototypes

Free PCB Sunday: Pick your PCB


We go through a lot of prototype PCBs, and end up with lots of extras that we’ll never use. Every Sunday we give away a few PCBs from one of our past or future projects, or a related prototype. Our PCBs are made through Seeed Studio’s Fusion board service. This week two random commenters will get a coupon code for the free PCB drawer tomorrow morning. Pick your own PCB. You get unlimited free PCBs now – finish one and we’ll send you another! Don’t forget there’s free PCBs three times every week:

Some stuff:

  • Yes, we’ll mail it anywhere in the world!
  • Be sure to use a real e-mail in the address field so we can contact you with the coupon.
  • Limit one PCB per address per month please.
  • Like everything else on this site, PCBs are offered without warranty.
  • PCBs are scrap and have no value, due to limited supply it is not possible to replace a board lost in the post

Be the first to comment, subscribe to the RSS feed.

from Dangerous Prototypes

App note: The reduction of input voltage spike on power switches


Another app note from Richtek introducing solutions for reducing the input voltage spike on power switches. Link here

The power switch is a low voltage, single N-Channel MOSFET high-side power switch, optimized for self-powered and bus- powered Universal Serial Bus (USB) applications.

In worse operating condition, an input voltage spike may over the chip’s maximum input voltage specification to damage the chip.

from Dangerous Prototypes