Bus Pirate firmware change history

From DP

Revision as of 16:08, 9 September 2016 by Mikeb (Talk | contribs)
Jump to: navigation , search


  • The first release of Bus Pirate Community Firmware project - v7.0 firmware version
  • Includes the important fixes and clean-ups, to fix a lot of bugs at BPv4 operations
  • Currently the latest firmware version available (added to Download page)


  • Some bug fixes. This is the latest official firmware, unfortunately DangerousPrototypes have abandoned it...

v6.2 beta 1

  • Includes updated STK500v2 firmware for v3 hardware
  • Fix a bunch of strange bugs with Bus Pirate v4: SPI speed, SUMP logic analyzer mode, V4 UART bridge (maybe), UART TX invert not set in invert mode, USB interrupt problems effecting all modes

v6.1 January 11, 2012

  • Fixed broken SUMP logic analyzer mode
  • Detect v3a/v3b/v3.5/eBay version in v3 hardware
  • Verified v4 firmware detect chip revision
  • Verified v4 has no 8 and 48 byte USB stack errors
  • UART autobaud detect improvements, make the ‘Nearest Common Baud’ function smarter (v4) Thanks Brent!
  • Verified UART autobaud to macro (v4)
  • Trimmed the autobaud text a little for size (v4)
  • Bus Pirate bitbang mode IO fix. Thanks tes! (v4)
  • Verified the USB led (v4)
  • Moved SVN completely to Dangerous Prototypes hardware SVN

v6.0 January 04, 2012

  • Enable OpenOCD support in v3. Note: OpenOCD currently not available for BPv4 due to lack of new USB system support. Added to Docs
  • Added advanced AUX control to I2C mode, documented here
  • Added frequency counter access to BBIO mode, documented here
  • Terminal supports Vt100 home and end keys
  • Updated servo position function. Documentation, guide
  • AVR Dude 40x speed improvement, documentation
  • Replaced 1-Wire routines with public domain version
  • Code compiles for v3/v4 automatically
  • Removed the color labels on the 'v'
  • Fixed the '?' and 'v' glitch
  • Removed obsolete files
  • Defined PPS in hardware setup
  • V4 only: Added UART autobaud measurement function
  • V4 only: Added k/K to the ? menu (c/C/k/K Aux select (A1/CS/A2/A3)
  • V4 only: Fixes for UART/SPI mode PPS
  • V4 only: Fixes to SPI slave (sniffer) PPS
  • V4 only: AUX1/2/3 fix
  • V4 only: Fixed AVRDUDE binmode issues
  • V4 only: Fixed SPI mode issues in all modes
  • V4 only: Fixed UART
  • V4 only: Fixed HD44780 LCD mode

v5.10 November 19, 2010

  • Removed space after prompt for AVRDude compatibility
  • Added SPI write/read function (no CS) for AVRDude
  • Updated README.TXT with more details, upgrade instructions and links
  • Pirate-loader source included
  • Less annoying file names (in Linux)
  • Code cleanup and modernization
  • No new v5.10 addons, the v5.9 addons were included again

v5.9 October 28, 2010

  • New VT100 terminal support: up/down arrow keys scroll through history; left/right arrow key, delete/insert support for editing (thanks Eric!)
  • Bulk SPI write/read command fix
  • Bulk I2C write/read command added
  • Removed reset confirmation to restore AVRdude compatibility
  • First bonus firmware
  • Source includes support for hardware v4

v5.8 September 29, 2010

  • SPI sniffer updates
  • new fast SPI write/read command for flashrom
  • added SPI settings macros to change phase/polarity/clock edge on the fly
  • added continuous binary ADC sampling for oscilloscope
  • fixed bug in basic scripting engine
  • partial read/write are extended to max 16 bit (currently raw2wire, raw3wire only)
  • only the bits used in partial read/write are displayed
  • auto-switching between 8 and 16 bit display
  • no need to enter ‘NEW’ when entering the first program into the scripting engine
  • added 9 bit coms to the UART library. When 9 bits is selected, the numbits is automatically set

v5.7 August 20, 2010

  • Improved SPI sniffer, higher max speed
  • Clear terminal buffer overflow error

v5.6 August 13, 2010

  • Fixed swapped SPI sniffer macros
  • Stop PWM/servo between modes
  • Fixed servo prompt and error
  • Prevent servo in hiz
  • Updated the text for servo code
  • Added servo command to the help

v5.5 August 6, 2010

  • New servo controller (‘S’), thanks Randy
  • New SPI binary bulk read/write should speed up Flashrom
  • Updated commands to support piratePICprog
  • Some bug fixes, as usual

v5.4 July 30, 2010

  • Selectable CS pin direction in SPI and raw3wire protocol
  • Partial writes (less then 8 bits) in raw2wire and raw3wire protocol
  • Command ‘i’ is compacted and displays the settings of the current protocol
  • Binmode extended to support buffered writes
  • Support for the new LCD adapter (support for old adapter is discontinued)
  • Updated help screen
  • Some bugfixes, as usual

v5.3 July 16, 2010

  • Reviewed and updated terminal text
  • SPI sniffer update (reduced minimum CS delay from 50us to 120ns)
  • Removed sniff while CS high option from SPI sniffer (for now)
  • I2C sniffer update (increased max speed from ~70kHz to >100kHz)
  • Corrected LSB/MSB menu quirks
  • Added least significant bit configuration to all modes
  • Added |X command to convert byte X bitorder
  • Code cleanup: removed allowLSB and allowPULLUP variables
  • Fixed wrong CS terminal text in raw3wire mode

v5.2 July 9, 2010

  • UART baudrate can be manually set to any speed for pcside (uart1) and protocol (uart2)
  • Warning when the speed of uart2 is faster then uart1
  • Fixed text formatting in self-test
  • PWM and power are forbidden in HiZ
  • Eliminated vpullup and vreg tracking variable
  • Power supplies tested 2ms after W – if they are too low (short circuit) the BP throws an error and turns them off.
  • Source cleanup. Removed lots of v0a and v2a defines (no longer supported since v3.6).
  • Added a general any key to exit message
  • I2C address search checks for a low bus and exits with a warning instead of showing 256 addresses. Good bye support nightmare :).
  • Error if the I2C bus is low (no pullups or contention) at the I2C start bit,
  • Fixed double display stuff in the raw2wire ATR macros
  • Fixed the frequency measure after voltage bug
  • Removed the repeat on /\-_
  • The 1-wire library – and _ set the data state variable but don’t send a bit. This is more consistent with other bus modes.
  • Added a peek function to 1-wire that returns the stored data state.

v5.1 July 2, 2010

  • Fixed OpenOCD support in v5
  • Fixed output mode adjust bug
  • Added v3a/v3b detection
  • Updated SPI sniffer – ‘r’ resets, new binary output format for higher speeds,
  • Minor text and display tweaks (terminal speed adjust, SPI sniffer)
  • New PIC 18F/24F programming commands in raw2wire
  • Other bug fixes

v5.0 June 21, 2010

  • h – see a history of recent commands and replay them
  • s – a script mode that runs simple BASIC-like commands
  • i – an updated info menu with probe color hints, mode specific pin labels, and pin direction/state display
  •  ? – updated, reformatted help screen
  • Completely revamped command line processor that gives more feedback about syntax errors
  • Accepts strings of commands at once (configure a mode in one line)
  • Removed sub-menus for pull-up resistor configuration (now uses P/p, like power W/w)
  • ASCII values can be sent to directly to a bus using “quotes”
  • A few secrets and hidden treasure :)
  • Too many other improvements to list

v4.5 June 8, 2010

  • New binary rawwire command for PIC programmer (Logic Sniffer rescue)
  • OpenOCD support (may have been missing from v4.2)
  • Fix to terminal input parser accepting out-of-range characters bug
  • Other minor fixes

v4.2 March 5, 2010

  • OpenOCD JTAG debugging support (thanks robots!)
  • New speed settings in I2C, raw2/3wire, updated also in binmode
  • Fixed error in 1-wire reset command in binmode (thanks Mike!)
  • Includes pirate-loader console app
  • Minor bug fixes

v4.1 January 18, 2010

  • Voltage readings to two decimal points of precision
  • Continuous ADC probe reading mode
  • Print bootloader version info
  • Enter bootloader without a jumper
  • First major release for v4 bootloader. Archive includes v4.2 bootloader.
  • Includes updated STK500v2 and OpenOCD firmwares for v4 bootloader.

v3.6 January 12, 2010

  • Fixed version string. v3.5 displayed ‘Firmware 3.5′ instead of ‘Firmware v3.5′. This caused issues with Bus Pirate support in AVRdude.
  • Added pause with lit MODE and VREG LED to self-test.

v3.5 January 6, 2010

  • All bitbang libraries updated to include 100kHz and 400kHz speeds (I2C, raw2wire, raw3wire).
  • Updated self-test, includes over voltage check.
  • Transparent UART bridge macro with hardware flow control pass-through (v2go/v3 only).
  • Removed experimental hardware I2C mode.
  • User interface touch up.
  • Bug fixes here and there.

v3.1 December 19, 2009

  • Bug fixes

v3.0 November 9, 2009

  • Added backend for SUMP logic analyzer.
  • User terminal input buffer moded to bpconfig struct, shared with SUMP logic analyzer.
  • Added binary access to SPI and I2C sniffers
  • Improved SPI, I2C sniffers. Added a 4096byte ring buffer
  • Pull-up bit triggers AUX2 on v1a hardware in binary protocol modes
  • UART fixes (bridge auto clears overrun, turns off LED)
  • Binary mode added ADC and PWM access
  • Minor fixes

v2.8 October 23, 2009

  • Complete suit of binary modes (1-Wire, I2C, UART, SPI, bitbang)
  • Reworked user UART mode
  • Integrated MIDI into UART library
  • Migrated to a central command data structure
  • Removed XON command from start-up (no longer used)
  • Reordered information printout (command i) to be more logical
  • Reorganized binary mode functions into protocol libraries
  • Added binary self-test modes (long and short)

v2.5 October 13, 2009

  • Bug fixes

v2.4 October 9, 2009

  • Bug fixes

v2.3 October 8, 2009

  • Bug fixes

v2.2 September 21, 2009

  • Firmware v2.2 IS compatible with bootloader v0f and v0g, and v2. Upgrade to bootloader V2 if possible.
  • V3 hardware compiles in all languages.
  • Small fix to smartcard macros.
  • Transparent UART bridge macro.
  • Updated Spanish translation.

v2.1 August 27, 2009

  • Firmware v2 IS compatible with bootloader v0f and v0g, and v2. Upgrade to bootloader V2 if possible.
  • Press ‘i’ to get your PIC revision and config bits.
  • Hardware I2C added, major I2C bug fixes.
  • Bulk writes (0xff:12) for most libraries.
  • Press ‘=’ for HEX/DEC/BIN conversion.
  • New public domain software I2C library, bugs fixed.
  • All software libraries now use central bitbang routines with speed settings.
  • JTAG XSFV programmer removed to make room. We’ll replace it with a ‘real’ SFV programmer in the future.
  • JTAG chain probe now detects multiple devices, fixed numbering error, refreshed interface.
  • Smartcard marco updated. RESET signal now controlled by Bus Pirate CS pin. LSB reads forced for ease of use and ISO compliance, added warning.
  • Spanish, Italian translations.
  • Firmware for Bus Pirate v3 first release.
  • Better translation use, cleaner terminal text.
  • General spelling and menu fixes.
  • Small bug fixes here and there.

v2.1-RC2 August 21, 2009

  • Hardware versions

v2.1-RC1 August 18, 2009

  • Experimental hardware I2C library for PICs that support it.
  • PIC chip revision detection.
  • New public domain I2C library, fixes bugs with read ACK/NACKs. I2C no longer GPL. More on the new I2C features tomorrow.
  • Universal bitbang abstraction saves a ton of space for new features, adds speed option to I2C, raw2/3wire, LCD.
  • Removed JTAG XSVF programmer, we ran out of space. It’s big, ugly, and I don’t think anyone uses it. It will be replaced with a real SVF programmer in an upcoming build.
  • Raw2wire macro cleanup.
  • Spelling, other translation fixes.
  • More

v2.0 July 26, 2009

  • Added hardware self-test for v2go hardware. Type ‘~’ in the terminal and follow the directions for the self-test. You’ll need to connect the ADC pin to the 3.3volt supply pin, and the Vpullup pin to the 5volt supply pin. Read more about it in the forum.
  • Added ‘#’ reset command. Type ‘#’ in the terminal to reset the Bus Pirate. This command can be used to reset into the bootloader without detaching the USB cable; put a jumper between the PGC and PGD pins, issue the reset command ‘#’, and the Bus Pirate should be ready for a firmware update.
  • Added character LCD library. Currently interfaces HD44780 LCDs using a PCF8574 I2C adapter board.
  • Compiled with new C compiler/MPLAB version 8.33.