Touch display with RGB silicone buttons for Bus Pirate Ultra

This is the prototype display board for the next, and possibly final, revision of Bus Pirate “Ultra” v1. We went a bit wild, but we’re thrilled at the possibilities: 2.8″ IPS LCD with capacitive touch display. The capacitive touch sensor is I2C based, so we added an I2C bus and interrupt pin to the flex […]

App note: Battery Fuel Gauging LSI [Smart LiB Gauge] for 1-Cell Lithium-ion/Polymer with LC709204F

App note from ON Semiconductor on their Smart Fuel gauge LC709204F. Link here (PDF) LC709204F is a Fuel Gauge for 1−Cell Lithium−ion/ Polymer batteries. It is a part of our Smart LiB Gauge family of Fuel Gauges which measure the battery RSOC (Relative State Of Charge) using its unique algorithm called HG−CVR2. The HG−CVR2 algorithm […]

Bus Pirate “Ultra” HDL moves from simulation to real hardware

The HDL is complete enough to start testing on real hardware. This update puts almost every feature under control of the state machine in the FPGA so commands can be pipelined with repeatable precision. Commands (write/read SPI, set/clear pin, measure voltage, update PWM, enable pull-up resistors, etc) are pushed into a FIFO buffer using a […]

Bus Pirate “Ultra”: using ADS7042 12bit Analog to Digital Converter from the FPGA

Beginning with Bus Pirate “Ultra” prototype v1d, all analog measurements are handled by the FPGA using an external serial Analog to Digital Converter chip. This lets us pipeline ADC measurements into the command queue so that bus interactions can be done with very precise timing. We’ll be using Texas Instruments’ series of tiny ADCs with […]

Bus Pirate Ultra 2.8 inch display and the danger of Taobao suppliers

We’ve been prototyping the Bus Pirate Ultra with a 240 x 320 pixel 2 inch LCD, but it’s just a bit small and hard to read from a distance. A 2.8 inch version is available that fits the full width of the Bus Pirate PCB, with the trade off of bigger pixels/lower pixel density. We […]

Bus Pirate Ultra prototype v1d: the last alpha

Bus Pirate “Ultra” v1d is stuffed and about half tested. This should be the last alpha “figuring out if we can pull this off” version. New in this revision: Analog voltage measurement is now done from the FPGA using a 12bit 1 million samples per second ADS7042 Analog to Digital Converter. This will let us […]

Bus Pirate cables arrive from DirtyPCBs.com custom cable service

We received 100 Bus Pirate cables using our pinout color scheme from DirtyPCBs.com custom cable service. The cables were just over $1 each for 100 pieces. The primary reason we ordered these now is to get a feel for how the pinout color scheme works in practice before we commit to it permanently. The leads […]

Bus Pirate Ultra v1d 2.8 inch display board

In addition to the 2 inch IPS LCD we’re been using with the Bus Pirate prototype “Ultra”, we’re also sending off a PCB for a larger 2.8 inch display. Both panels are 240*320 pixels, so the larger version probably won’t look quite as stunning as the smaller display with high pixel density. If it does […]

APP NOTE: make an analog to digital converter using FPGA pins

A differential pin pair can be used as a comparator to create a basic ADC. This app note shows how to design a low speed (1 KHz) and “high” speed (50 Khz) ADC technique using only FPGA pins, a resistor and a capacitor. Regardless of whether we ever use this technique, it is illuminating to […]

APP NOTE: Give your voltage regulator the margin it deserves

Texas instruments has an app note and video explaining how to make a programmable output power supply using a typical LDO voltage regulator and a DAC. This is the technique we used for the Bus Pirate Ultra power supply to get 0.8 to 5volts output, and it works a treat! Consider the currents going in […]

Bus Pirate Ultra display board v1d

The LCD carrier board for Bus Pirate prototype “Ultra” v1d went out today. This update matches the form factor of Ultra v1d (in progress) and has several minor changes: Uses 10 pin 0.5mm flexible PCB connector, wired to the main board with a 1:N connection. This connector is much smaller and thinner than the 1.25mm […]

BUS PIRATE: ADS7042 Analog to Digital Converter chip

In Bus Pirate prototype “Ultra” v1b we added analog voltage measurement to all the IO pins using a 74HCT4051 8:1 analog multiplexer and an op-amp. In the next revision we’re moving control of as many peripherals as possible into the FPGA. The FPGA doesn’t have an Analog to Digital Converter feature, so we need to […]

BUS PIRATE: three inexpensive SPI Digital to Analog Converters

As much as possible, we’d like to move control of all the Bus Pirate peripheral hardware to the FPGA. Then everything can be controlled through the state machine command pipeline. In Ultra v1c we moved analog voltage measurement to the FPGA by adding an SPI ADC. In a future revision it would make sense to […]

BUS PIRATE: pipelined and non-pipelined commands

Bus Pirate prototype Ultra v1b uses an FPGA to process commands sent through a FIFO buffer to a state machine. Pipelined commands can be loaded into the FIFO and executed by the state machine with per-clock repeatability. Non-pipelined commands halt the state machine while the MCU takes over to perform the command, the delay is […]

BUS PIRATE: first test of Ultra v1b with SPI EEPROM

Bus Pirate prototype “Ultra” v1b successfully wrote to and read back from a 25LC020A SPI EEPROM chip. The image shows the Bus Pirate reading 8 bytes of 0x02 from the EEPROM at address 0x00, and the bus activity can be verified on the logic analyzer graph. Still a long way to go, but it’s nice […]

Evolution of the Bus Pirate, the road to Ultra

Sjaak @ SMDprutser has been instrumental in pushing the Bus Pirate firmware and hardware ever forward. Check out his history of the evolution Bus Pirate “Ultra” for some great background: Unfortunately we run more or less into the same issues as we had with the Microchip controller: USB need regularly attention, which interferes with our […]

BUS PIRATE: pin order and cable colors

The Bus Pirate pinout was supposed to be intuitive, except for one Arduino-like mistake. Each protocol uses the same pin for similar functions, and the pins used are supposed to “walk” up the row. 1-Wire uses Master Out Slave In (MOSI, pin number 1). I2C uses MOSI (1) and CLOCK (2). UART uses MOSI (1) […]

BUS PIRATE: 2bit anti aliased font for small color LCDs

Bus Pirate prototype “Ultra” v1b has an IPS LCD to show pinout labels, voltage levels, and other useful info. The background image was done in Photoshop and is stored in the 32Mbit flash chip on the board. Pin labels and voltage readings are drawn on top of the background image with a fixed-width font. Most […]

Chinese cable and connector vocabulary

Bus Pirate prototype “Ultra” v1c will use a 0.5mm flex cable (FFC/FPC) to connect the display board. Of course we could just order the standard parts from Mouser or SZLCSC, but rooting around on Taobao is fun and gives a better idea of the range of stuff out there. Here’s some Chinese vocabulary that helped […]