The Bus Pirate, created by Ian Lesnet and featured on Hack a Day, is a troubleshooting tool that communicates between a PC and any embedded device over most standard serial protocols, which include I2C, SPI, and asynchronous serial - all at voltages from 0-5.5VDC. This product eliminates a ton of early prototyping effort when working with new or unknown chips.
Working with the Bus Pirate is simple and effective - type commands into a terminal on your computer, those commands are interpreted by the Bus Pirate and sent via the proper protocol. The Pirate will also interpret data sent from your embedded device back to your computer terminal. A big bonus is the bootloader installed on the PIC, which allows you to easily update the firmware and change the functionality of the board.
The main components of the Bus Pirate are PIC24FJ64 processor and an FT232RL USB-to-Serial chip. A Mini-B USB connector is populated on the board, and when you plug it into your computer it will come up as a virtual COM port. The pinout of the 2x5 I/O header is documented here.
Order now! We are setup to build these in house regularly. Lead times should remain less than a week.
Note: This product is a collaboration with Ian Lesnet. A portion of each sales goes back to them for product support and continued development.
If a board needs code or communicates somehow, you're going to need to know how to program or interface with it. The programming skill is all about communication and code.
Skill Level: Rookie - You will need a better fundamental understand of what code is, and how it works. You will be using beginner-level software and development tools like Arduino. You will be dealing directly with code, but numerous examples and libraries are available. Sensors or shields will communicate with serial or TTL.
See all skill levels
If it requires power, you need to know how much, what all the pins do, and how to hook it up. You may need to reference datasheets, schematics, and know the ins and outs of electronics.
Skill Level: Noob - You don't need to reference a datasheet, but you will need to know basic power requirements.
See all skill levels
We welcome your comments and suggestions below. However, if you are looking for solutions to technical questions please see our Technical Assistance page.
Based on 8 ratings:
1 of 1 found this helpful:
They could have called this product the Babelfish, for everything it does. From serial to SPI, if it has a digital communication protocol, chances are the Bus Pirate supports it well. Using the Pirate is fast and easy on whatever platform you like, since all of the processing is handled on the board. You only need a serial terminal to use it fast and effectively.
The Bus Pirate also includes a lot of macros for a variety of purposes. One macro reads voltage from a pin, another one detects serial speed, and there are several for behaving as a completely transparent bridge between your protocol of choice and the serial console.
Finally, avrdude supports the bus pirate natively, so you can use it to flash firmware/fuses/whatever onto AVR chips, such as the Arduino.
Cons: The plastic surround on this Bus Pirate is backwards, so if you buy the colored cable for it, the colors will be backwards.
should have a simple GUI that also does scripting, etc. all built in. it is not very user friendly to learn and start with. I've looked at the 3 or 4 GUI's out there and they all suck except for one and none of them appears to read in scripts or anything. This thing is kind of time consuming to learn all the commands and stuff. command line prompting kind of sucks now a days. It would be nice to have a more Saelae logic type analyzer GUI that interprets whats going on on the I2C or SPI bus and dumps the data for you too.
Everyone who does serial communication troubleshooting or design should have one of these. By far the easiest piece of test gear to set up and use. Make sure you get high quality test hooks. Most available are adequate but do not work if you try to hook up to an SMD IC.
I love this thing. during my first few years it has helped me greatly in various debugging. it helps to have a device you know is talking correctly.
I especially like to use in combination with OLS as a simple slow logic analyzer to check wether my own microcontrollers are indeed talking in the protocol i want them. without this i would never guessed that my xmega was failing to send anything except for ACK over SPI due to a code error!
Item performs as described and offers one many features that are easy to implement in software. Would purchase again.
i use eeprom read and write work's good but Oscilloscope not work for me
0 of 2 found this helpful:
I bought this instead of logic analyser 'cause I didn't wanna spend the major bucks for that just yet. I haven't had the time to try this out as yet, but like all things I've ordered from Sparkfun I imagine this one'll be awesome as well:)
The Bus Pirate is a great product. I've just been having trouble finding good official documentation. Maybe this is all beyond my skill set, but I've been having trouble figuring out how to interface my Microchip 24AA256 EEPROM(specifically reading and writing to). If anyone could point me in the right direction it would be greatly appreciated.
Is this still the version 3 or version 4? It looks like the old version 3 from the pictures.
It is apparently called "v36", while the new version is "v3.6a". Confusing.
Because we build our own this is neither version 3 nor version 4. It is based off the version 3 design though and the pictures are correct. When/if we come out with a new version it will get a new product page and new pictures.
Took way too long to figure out the pinout. Would not have taken so long if as some had noted the connector is not installed backwards! For reference here it is:
Why the hell is there no pinout on the main connector?
There is a top AND bottom silkscreen. There is NO good reason for not having the pinout of the 2X5 header, at least on the bottom of the board.
I must agree. Why is there no pinout???
Can anyone tell me which of the pinouts in the given link is correct for the sparkfun BP?
I like the pictures at the manual's Bus Pirate I/O Pin Descriptions, they're the most clear to me (there seem to be lots of competing attempts to document the pinout in the manual).
Notice that the pin header's physical layout is the same across all Bus Pirate 3.Xs, no matter who manufactures them. The top-left pin is GND, the bottom-right pin is MISO.
The only difference is in the plastic IDC shroud. SparkFun (and some hand-built SOIC bus pirates) stick it on with the notch to the right, meaning that the bottom-right pin, MISO is pin 1, real Bus Pirates put the notch to the left, meaning the top-left pin, GND is pin 1.
The firmware always assumes that you have a normal bus pirate, and it shows pin numbering as being pin 1 = GND. Bus Pirate cables also always have brown as pin 1, so on normal bus pirates GND = brown, but if you plug the same cable into a SparkFun pirate, MISO will be brown. Again, the firmware assumes that ground is brown, even on Sparkfun bus pirates.
SparkFun are technically correct here, the original schematics show that MISO is pin 1, and SparkFun started using a keyed shroud before the dangerous prototypes guys added it to the real bus pirate and stuck it on backwards, but their "backwards" ground = pin 1 is how it is now, and SparkFun owners just have to deal with their pirates being reversed from the "standard" everyone now assumes, and the firmware shows.
But it's really easy to pry the plastic shroud up off your SparkFun-manufactured Bus Pirate, rotate it 180 degrees (notch towards the USB), and pop it back on. Worth doing to make it match the "standard". Makes the firmware's number / color hints useful again, and also allows you to use a straight-through IDC ribbon with genuine bus pirate accessories (like the LCD backpack) without shorting anything out.
Is this Buspirate v3b or v3.5b?
This pirate is based on the V3 design (however its a sparkfun custom design)
the V3B has different leds and slightly different Regulator caps. the V3.5 has a simplified hardware design,is resized and has a shrouded header(which the sparkfun version already has).
the important thing is that all the buspirates are identical in features, so it shouldn't matter which you get as they all should work just as well.
Ok, thanks Chiel.
This is a terrific tool that saves a lot of time. Rather than changing code in a PIC I can hack away at a part while reading the datasheet. The interaction with a chip is immediate, and really satisfying when what I've sent it yields results. I had breakthroughs in an afternoon with the MCP4725 DAC and a 24LC16 EEPROM, and now I'm confident enough to send code to them through software.
The only oddity I've noticed is that the pullup resistors will drop out at odd times, even when I've enabled them and given the blue wire a direct connection to Vdd. But I'm happily working through all the parts in my collection, and the working method with this board is like having a dialog with the electronics.
Hi,
Is it the version v3a or v3b ??
We do not use the same version numbers as Dagnerous Prototypes. Read up on the changes in 3a and 3b, they were pretty minor and ours already had some of those changes done:
http://dangerousprototypes.com/2010/04/29/prototype-bus-pirate-v3b/
I got one from s***studio when it first dropped, then my order got lost, then I got a unit that shipped without the firmware. . .
Eventually, I did get it working, and its very useful, I just wish I would have waited to buy from SFE, instead of some place in China.
Going to have to agree with this. Had I known SFE would have picked these up I would have waited. Ordered mine from the same place and took over 2 weeks to arrive. Pic programmer header is populated, don't really need that. also the header for the main cable is not keyed, just 2 rows of 1x6 headers side by side. A little cheap and fun to poke fingers on.
I wish there was a way to know what products you -might- pick up in the future, better quality!
Hey guys, I'm Ian, I develop the Bus Pirate. Thank you for buying one from Seeed Studio, those sales made it possible to develop the hardware and firmware to the point where a 'big company' like SparkFun started selling a clone.
@KillerSpud - I'm sorry your Bus Pirate shipped without a firmware. It sounds like you got a Bus Pirate from Hack a Day's preorder 2 that shipped with the bootloader only. I setup the preorders as a fund raiser for Hack a Day, I'm sorry HaD never followed-up to let people know they need to load the latest firmware.
Iandp - You are awesome. Thanks for the great prototyping tool. I purchased v3 from seedstudio (don't worry sparkfun, I order plenty of stuff from you already). It took a while to deliver from china, but well worth the wait. Thanks!
Gonna have to redesign the case now for this footprint :)
From the this one:
http://www.flickr.com/photos/31697990@N00/4120700966/in/set-72157622843495976/
Oh well think I could "borrow" one :) for testing ?
ril3y
Beautiful!
It would be better if the FTDI driver link was http://www.ftdichip.com/Drivers/VCP.htm I think that it would improve the board to put the version number on the silkscreen.
I'd really like to know why this has export restrictions on it - it doesn't seem to void any Department of Trade rules, and from what I saw on this electronics.stackexchange thread, it shouldn't be restricted. Sparkfun, can you give an answer?
I can't currently access our internal system to double check, but usually things like this are restricted because a component on the board is restricted. Unfortunately, all it takes is one IC to restrict the entire product :/
If you intend to use this board with the S********o LCD interface boad or their 10 way cable breakout you will have to reverse the header. Strangely when I emailed Sparkfun level 2 support a month ago they said they were unaware of this issue, but from the comments below its been known for a while!
I got a Bus Pirate from you at the end of 2010, but I had no need for it until now. Today I tried to fire it up via HyperTerminal under Windows 7/64, but it is not recognized. I have the latest FTDI drivers, and Windows identifies the VID/PID of the port as 0x0403 and 0x6001, but the board is inert. Its Power LED is on, and its RX & TX LEDs flash for < 1 second when it is first plugged in, but that's it. Certainly, it never sends anything to HyperTerminal. I imagine that there is an INF file missing somewhere. Is this a recognized problem?
Because your board is so old (in computer terms), I'd recommend emailing tech support. They can take a look at your order history and see exactly what board you got and if this might be a recognized problem with that version.
Any one know what hardware/ firmware version this is? I am assuming a firmware update will be required, but as they are assembled regularly, one can hope that everything is up to date.
It's hardware version 3.6. I'd have to double check on the firmware version, but it should be up to date for you.
Your GitHub link for bus pirate is dead.
Oops! Should be fixed for you now. Sorry about that.
Thanks for putting MSIO on pin 1... It now matches the documentation ! ! ! I just bought a S***d Studio version and noticed the slot was/is facing inward (wrong). Pin 1 is to the left on a 2 X N header. Guess it was just an oversight years ago that became a "standard" like the 0.050" pin offset in the Arduino. Too bad open source has no way to catch stuff like this before it becomes so widespread / viral a product that it can't be corrected. P.S. Love your products !
I try to connect the buspirate using minicom but no success. There is only blue and white leds tx and rx blinking. also with ols but no answer from buspirate. Maybe there is no firmware inside. Tomorrow I am going to try newly
Just got my Sparkfun Bus Pirates and you might want to check the output caps for the Micrel LDOs for NON Low-ESR, I was running a HOPE RF module and noticed that the switched 3.3V was giving ~0.2V P-P of ramp noise. Added a 10uF Electrolytic across the output cap (as suggested here http://mightyohm.com/blog/2013/02/simple-fix-for-bus-pirate-power-supply-oscillations/) and Voila!, ramp gone. The device datasheet has more explanations for this requirement.
No CAN? And is the PC side a bring your own or is there a PC/Mac/Linux host program?
I know it's an old comment, but…
I would guess there is no CAN on the bus pirate because the CAN bus has some electrical requirements that would necessitate extra hardware that could be switched into the circuit (unlike, e.g., I2C and SPI). CAN is a differential configured serial bus that requires termination resistors at each node, and generally at least a transceiver IC (see, e.g., microchip MCP2551: http://www.alldatasheet.com/view.jsp?Searchword=MCP2551) to implement the interface.
Note that you could pretty easily use the BP to interface with a CAN bus by using something like the Microchip MCP2510, which is a full CAN controller implementation (see datasheet, http://www.cl.cam.ac.uk/research/srg/han/Lambda/webdocs/mcp2510.pdf - also a good CAN overview), along with a CAN transceiver and required external components. The MCP2510 speaks SPI on the backend, so it could interface with the BP via its SPI port.
TL;DR - My impression is that interfacing with CAN requires a level of electrical and timing specialization that would have made its integration into the BP itself difficult to justify in terms of added complexity and parts cost. I don't work on the project, though, so I don't know for sure.
I don't see CAN as a listed protocol, but the code is always being upgraded so this might be available in the future.
The interface is human-readable serial (with a binary mode good for easier machine control). All you need is a terminal program to access the menu system.
I just powered this up yesterday (after letting it sit for a year) to debrick my embedded web server. It had bootloader 4.4 and firmware 5.10, but in the serial menu, JTAG was nowhere to be found. I tried flashing several different firmwares (from 5.9 to 6.2-beta, as well as 5.9 "extras" - per this article: http://dangerousprototypes.com/docs/JTAG), and nothing seems to enable JTAG as an option. Any ideas?
Question about the hardware: What is the purpose of the analog switch (IC 4016)? I assume it is to control the direction of analyzer traffic, i.e. the bus pirate can listen to a SPI bus but also inject data. How does it work?
IC3 (on the schematic, unmarked on the SparkFun silkscreen) lets the software switch the data lines' pull-up resistors between the VPU pin or disabled.
One of the big upgrades on the v4 bus pirate is that the software can also switch the VPU line to one of the onboard power supplies, instead of making you manually wire it up yourself. The v4 hardware guide has a good snippet of the schematic on the description of the pull-up circuit, the only difference on the v4 is that the 4066 is named IC2 instead of IC3.
Great, thanks for the explanation
Can I please get a confirmation as to the version of this?
This is the Bus pirate V3 and should work as its supposed to be. (the V3b only has different leds and regulator caps so it shouldnt matter) i don't know about the Firmware, but since it has a Bootloader it should be upgradable without any external tools.
what version of Bus Pirate is this?? v3 or v4?? The v4 hardware and firmware version has been recently taken out of development to the public... will you be selling it? or at least have it for the FreeDay?? (chuckles)
which version is this product?
I bought one a few months ago and just now got the time to sit down with it to troubleshoot some i2c sensors. I can't seem to get it to work though. When I first plug it in, the lights blink for a moment then go out, after that the thing seems dead. It doesn't show up on my or my rommate's machines at all. I don't really have enough experience with the thing to know is it doa, or is there some other solution?
BAUD Rate issues. I have tested the whole list of possible values. I can see that "115200" is close to the right value, but not right. I do get a few echoed char that are close to correct.
Do you have any ideas why the USB Serial Interface is not working?
I found a document that explained that some older designs only work at 9600 on 1% of the boards due to clock issues.
I have no way to adjust the board to try a lower rate. The board does "light up" and I see the serial is active on the LED.
What is the next step?
Can the Buss Pirate be the SPI slave? I need to monitor the mosi coming from a master that is external to the Buss Pirate.
Great product. Will the device retain the configuration settings between power ups so I can configure it and hand it off to someone to use?
I found this excellent reference sheet about pinout, only to realize few agonizing moments later that in sparkfun's cable, colors are in opposite order. I updated the sheet for sparkfun's cable, if you like, you can download it here
WTF are you are shipping v3.0 firmware when the current version is v5.10? Thanks for NOT pointing a new customer to the exact web page(s) required to upgrade your old Bus Pirate firmware to the latest. Yes I finally read enough web pages to get through the mess, but you get an 'F' for user experience!
I'm looking at my fresh-out-of-the-box-ordered-one-month-ago Bus Pirate and it reports:
SPI>i
Bus Pirate v3a
Firmware v5.10 (r559) Bootloader v4.4
DEVID:0x0447 REVID:0x3043 (24FJ64GA002 B5)
http://dangerousprototypes.com
CFG1:0xFFDF CFG2:0xFF7F
Looks up to date to me.
If I were to buy this board, and a new firmware is released, will the board be compatible with the new firmware ?
That depends on the new firmware
Hi everybody!. Today I bought a Sparkfun BusPirate. Unfortunately, I wasn`t able to communicate it with the PC even though I've followed the tutorial on dangerousprototypes. I tried to enter bootloader mode so as to update firmware connecting PGC-PGD but mode led doesn't blink at all. Could you give me an advise??
Please can you confirm that the header on the device has the same pin out as the original connector so that I can use the wiring harness and child boards such as the HD44780 one.
Thanks Dave
Here is my version of a perspex case for the Sparkfun Bus Pirate. I've included the DXF and an NC file for EMC2 here: http://www.fromorbit.com/content/sparkfun-bus-pirate-cnc-perspex-case
This thing is great! I've been debugging an I2C pressure sensor for days and with this I finally got it to work.
There are a lot of different cases for the Bus Pirate. Unfortunately, because the Sparkfun version has different headers, most of these are not compatible. I found that a Tic Tac case with a couple of modifications works well with this version though.
You can see some pics here:
http://bit.ly/aej59C
what should I do if I accidentaly used version 5.7 with bootloader version 2??
be careful with this link:
http://dangerousprototypes.com/2009/08/06/bus-pirate-firmware-upgrades-on-linux-osx/#comment-4439
BE CAREFUL WITH STEP 3!!!!!!!!!!!!!
Download the latest Python PIC24F programmer script. Future firmware releases (>2.0) will include the Python programmer script.
IMPORTANT!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
STOP DO NOT UPLOAD A V4 FIRMWARE TO A V2 BOOTLOADER WITH P24QP.PY!!! The Python utility erases the entire chip, including the ?configuration words? that determine how the pic behaves on start-up. The v4 firmware does not contain replacement configuration words, so the Bus Pirate won?t start from the correct clock after programming a v4 firmware to a v2 bootloader with p24qp.py. Only Upload v2 firmware or BPv3-v2blupdaterVa3-v4.1.hex with P24QP.PY.
I LOST MY BUS PIRATE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
For the next hardware, it would be super helpful if you could put in a three pin header:
1 - +3.3V
2 - Vpullup
3 - +5V
That would avoid ungainly jumpering around on the target board, by allowing a single jumper to address 99% of the pull-up issues.
Hello!
Is this the same as Bus Pirate v3 sold here:
http://www.seeedstudio.com/depot/bus-pirate-v3-assembled-p-609.html?cPath=61_68
Thanks!
Make that version 3b
http://dangerousprototypes.com/2010/04/29/prototype-bus-pirate-v3b/
Be warned the IDC header is facing the wrong way the notch on the shroud should be facing into the BP not outwards.
Your probe cable will be backwards and you pin/color codes will be too.
I bought my probes form adafruit which uses the seeedstudio/dangersprotptypes standard.
SparkFuns version does not use this standard.
SF should remove the shroud and just use bare headers.
Just thought you should know.
Sparkfunnnnnn... WHY did you mess up with the voltage regulator? 3.3V != 5V. According to Ian, this will eventually damage the chip and make this a $30 coaster (since the PIC is a 3.3V PIC). Er...
Hi Josh,
Please contact us about this. A few of the early Bus Pirates got out with the wrong Vregs, but we've since corrected this issue. We should be able to get you a replacement.
- techsupport at sparkfun.com
To follow up on this, I already have a replacement Bus Pirate on my way with a correct VReg on it and a return label for my old part from Sparkfun. Within one day. Well done, Sparkfun!
If you are measuring incorrect voltages or are having problems with the device (I started to encounter erratic behavior after using it some), check your voltages, as described above, and drop Sparkfun a line, if so.
Thanks!
Also, you'd be right in removing:
'0-6volt measurement probe'
Since this functionality is rendered useless because of the incorrect voltages. (See wd6cmu's problem)
Lol @ the sparkpirate
Hey Sparkfun, sell some buspirate cases, like the one I made!
http://www.instructables.com/id/Introducing-the-SparkPirate/
Any updates from SparkFun on when these will be in the production queue? I've got one backordered and have a few projects that it would be useful on.
My Bus Pirate shows the voltages as "5V: 3.3 | 3.3V: 2.2" when I use the 'v' voltage monitor command. My DVM says the are actually the correct 5V and 3.3V. Anybody know why it is doing this? Firmware is v3.0.
You might check the voltage to the PIC (measure between the +3v3 and GND pins on the 5-pin ICSP header, it should be 3.3volts. The prototype I received had a 5volt regulator for the PIC (VR2, 24FJ64GA002 is 3v3 max), that could account for the additional offset in the Bus Pirate voltage monitor.
Ian, what should I do, in this case? The one I rcv'd from SparkFun is giving 5V at the ICSP. As a result, all of my ADC measurements are fubar'd.
An awesome product from ian.
When it will be in stock again?
Has it been out of stock this whole time?
Why is this under "hand tools"? I need exactly this sort of thing and I never saw this before...
What I really want to know, is can it do multi-master I2C? Mainly for general-calls sent by slaves attached to the bus...
I want to know that too!
Which version is this?
This would be the latest BusPirate v3
Y'all should also sell this probe kit (for us lazy folk - breaks the header out to ribbon with probes on the end):
http://www.seeedstudio.com/depot/bus-pirate-probe-kit-p-526.html?zenid=10f3175530f67204f13cf77e2ceb5dee
That's actually on its way, just waiting for the chip leads to come in. Hopefully in time for the next product post.