Walking The Plank: Add-Ons For The Bus Pirate

The Bus Pirate multi-tool has held a place of honor in many a hardware hacker’s toolbox for years, and the latest generation of the gadget powered by the Raspberry Pi RP2040/RP2350 offers significantly enhanced capabilities over the original PIC versions. We took a look at the new Bus Pirate when it started shipping back in February, and while the firmware was still in the early stages back then, it was already clear that creator [Ian Lesnet] and his team had put together a compelling product.

Over the last several months, the Bus Pirate software has improved dramatically. New features have started showing off the hardware’s capabilities, and the user experience is far improved over where it was at release. Following the firmware development is a roller coaster ride, with [Ian] sometimes pushing out several updates a day. Luckily, like the Pi Pico itself, updating the new Bus Pirate only takes a second.

But as impressive and important as those software updates have been, that’s not what we’re talking about today. In this post, we’ll take a look at one of the most exciting aspects of the new Bus Pirate — the ability to easily develop add-on modules for it.

Bus Pirate Versions

Before we get too far, I should mention that there are now a couple of new Bus Pirate versions on the market, which makes talking about the product a little confusing.

The new Bus Pirate 6

The Bus Pirate 5, which started shipping in February and remains available, is powered by the RP2040. It is the first major version of the hardware to see a wide release since the Bus Pirate 3. Since the team got early access to the RP2350 chip, they were also able to produce two new variants: the 5XL and the 6.

What are the differences between them all? The 5XL uses the RP2350A and is essentially just a faster version of the 5 thanks to the more powerful cores and additional RAM offered by the new Raspberry Pi silicon. The 6 is based on the RP2350B and takes advantage of the additional GPIO pins by deleting some of the I/O expander chips that were necessary on the 5 and 5XL. This not only makes I/O faster but frees up space on the board to implement a “follow along” logic analyzer that automatically records everything that’s happening on the bus.

All that being said, for the purposes of this article, it doesn’t actually matter.

One Port To Rule Them All

Regardless of which version of the Bus Pirate you get (5/5XL/6), they all feature the same 10-pin connector on the side. This is where you’d normally connect up your probes, and thanks to the display on the top of the Bus Pirate, you don’t even have to remember the pinout — when you switch modes on the device, the screen will be updated to show which pin does what.

This is where things start to get interesting. Since the connector on the side is nothing more exotic than a male 2.54 mm pitch header, interfacing with it through custom hardware is incredibly simple. You don’t need to hunt down some special connector — making a board that can plug into the BP5 (or beyond) can be as easy as soldering a female header onto a scrap of perfboard. Even better, since you don’t have to worry about creating a custom footprint, developing your own add-on PCBs is a breeze.

Designing Custom Expansions

Creating your own piece of hardware that plugs into the Bus Pirate is as easy as adding a right-angle 2.54 mm female header to the edge of your PCB. You might think the fact that the pinout changing depending on what mode the device is in would be a problem, but in practice, your add-on is likely going to require the user to set a corresponding mode anyway (I2C, SPI, UART, etc).

Over on the Bus Pirate forums, user [grymoire] is responsible for coming up with the idea of calling these expansions “planks” after drawing comparisons with the “hats” and “shields” used by other development boards. Why a plank? Well, for one, it fits the pirate theme. When plugged into the Bus Pirate, the expansions also look a bit like a plank hanging out over the side of a pirate ship.

As an example, I recently put together the SAO Plank: a small adapter that lets me connect three Simple Add-Ons to the Bus Pirate. This is not only a convenient way of powering the badge expansions and monitoring their current consumption using the Bus Pirate’s onboard display, but it also provides a way to debug and test I2C communications between several SAOs — a capability that will become more useful as we get closer to Supercon 2024.

There’s really not much going on in the SAO Plank, and frankly, I could have wired the thing up on a perfboard. Even the power LED I added is technically superfluous, as the technicolor lights produced by the Bus Pirate leave no question as to whether or not it’s turned on. But it was so cheap and easy to turn this into its own board, so why not?

I’m eager to see what the community comes up with when presented with such a low-friction path to coming up with custom Bus Pirate expansions.

Collect Em’ All

Bus Pirate planks aren’t just limited to DIY. Since releasing the Bus Pirate 5, a number of official planks have been introduced. Some of these are still in development, such as the “IR Toy” that [Ian] has been documenting in a thread on the forums. Others are already available for purchase, such as an assortment of adapters that make it easier to work with SPI flash chips and one for interfacing with SLE4442 Secure Memory Cards.

One of the advantages of the official planks is that the firmware is likely to get baked-in support for any special functions they may have. Even though the IR Toy hasn’t officially been released, last week a new mode was added to the stable build of the firmware that can interface with it and send NEC IR codes. Then again, as the firmware is open source, even DIY planks could get their own modes should somebody be so inclined to write the code for them.

Whether they’re an official product or a homebrew project from the community, the Bus Pirate Planks are a very exciting addition to an already fantastic tool. If you happen to see an interesting Plank in the wild, or end up making one yourself, be sure to let us know.

4 thoughts on “Walking The Plank: Add-Ons For The Bus Pirate

    1. From https://forum.buspirate.com/t/rp2350-bus-pirate-5xl-and-6/529 :

      I also found a silicon bug. When a GPIO pin is configured as an input with its pull-down resistor enabled, it acts like a bus hold. We use the pull-down on the button, which connects to 3.3volts when pressed. During the self-test pressing the button works, but then it never goes low again, it sits at 2.15volts.

      I know the dreaded 2.15volts because my logic analyzer has bus hold pins that sit at 2.15volts when connected to the Bus Pirate. It freaks me out every time. Rpi confirmed the issue and added it to the datasheet. Shout out to @henrygab because his cleanup of the self-test made finding this bug instantly possible.

      The PCB was revised so the button uses the pull-up and connects to ground, but we also rely heavily on the pull-downs when doing open collector bus types. The pull-down holds the IO pin low behind the buffer, so the PIO can just manipulate the buffer direction without also managing the GPIO direction. Boards will have 100K GPIO pull-downs installed (instead of the usual 1M ohm) until there is a solution.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.