Bus Pirate firmware v2.3

bpf23

Bus Pirate firmware v2.3 is available for download. This version fixes a major bug with the speed settings in all modes, but especially in the UART library.

There’s also two new binary IO modes for controlling the Bus Pirate from a PC, which should allow a number of complicated programmer functions that couldn’t fit in the firmware. The first new mode is a raw bitbang IO mode, similar to the bitbang mode of an FTDI232 chip. The second mode is a raw SPI mode written for high-speed communications with AVRDude.

On a side note, our reticence to include programmer functions in the Bus Pirate was wrong. We had always thought about it as uploading a .HEX to the Bus Pirate, and the Bus Pirate knowing how to program the .HEX into a chip. This would take a ton of code space and be difficult to maintain.

Michal’s patch for AVRDude presented a much better alternative: control the Bus Pirate’s pins from existing PC software. The Bus Pirate just twiddles pins, software handles the programming algorithms. This also makes it easier for PC software developers to use their Bus Pirate in new ways. We hope to soon have Bus Pirate support in AVR and JTAG programming software.

Tags: ,

  1. I’m getting nothing, terminal doesn’t even respond, you guys change the default baud rate perhaps? flashing back to v2.2 works fine but v2.3 doesn’t. I’m using a BPv2go.

    Reply

    1. What update software and terminal program are you using? Is your terminal program sending a null character when it opens the connection?

      Reply

  2. Update: Some baud rates do give a response, 14400 echoes back characters but 115200 echoes back null on each keypress.

    Reply

  3. I just tested v2.3 on both my v2go Bus Pirates and didn’t have a problem with the windows updater and Tera Term. I think there is a problem with some terminals putting the Bus Pirate into its new binary IO mode.

    Reply

  4. Could you please test this update. I crippled the new binary mode to see if that was the problem:

    http://the-bus-pirate.googlecode.com/svn/trunk/firmware/v2-nightly/BPv2go/v25-Firmware-v2.3-crippled.hex

    Reply

  5. The updated one works from time to time and I’ve gotten the original v2.3 to work once but they’re extremely temperamental. I’m using the windows updater and Tera Term. Thanks for all the trouble, think it might be my board though, if no one else mentions this in a day or so I guess that’s the problem. When updating the firmware I get a list of errors almost a thousand lines long, that acceptable?

    Reply

  6. posted version 2.3 works fine for me using teraterm @ 115k.. I have version v2go from seed (second preorder).. I think it has a b5 processor.

    Reply

  7. Thanks for the reports.

    @ James – I’m really sorry you’re having troubles, it seems like it wouldn’t be a hardware problem if v2.2 works fine. The crippled version removed any new code and reverted to 2.2 with the UART fix, I don’t know why it would have the same problems. I’ll keep looking into it.

    Reply

  8. @Ian – FWIW the original v2.3 does NOT give me a prompt with my v2.go board, while v2.3-crippled DOES give me a prompt (using SecureCRT as terminal)

    Reply

  9. @James – Where are the errors at (the address range)? Between 0×400 and 0xC00 is ok, outside of that range there are problems.

    There are sometimes a lot of errors if you forget to erase the chip before programming, or forget to press the green play button after bootloading.

    Reply

  10. @Ton – Thanks for the report.

    If you are willing, would you try running PORTMON while you connect with the terminal and look for the value 0×00 from the PC->Bus Pirate:

    http://technet.microsoft.com/en-us/sysinternals/bb896644.aspx

    Reply

    1. @ Ian – Here are the results of both versions

      v2.3-crippled
      SecureCRT.EXE IRP_MJ_READ VCP2 TIMEOUT Length 1: 3F
      SecureCRT.EXE IRP_MJ_WRITE VCP2 SUCCESS Length 1: 3F
      SecureCRT.EXE IRP_MJ_READ VCP2 TIMEOUT Length 49: 0D 0A 4D 45 4E 55 53 0D 0A 3F 20 48 65 6C 70 0D 0A 49 20 53 74
      SecureCRT.EXE IRP_MJ_WRITE VCP2 SUCCESS Length 1: 0D

      v2.3-normal
      SecureCRT.EXE IRP_MJ_READ VCP6 TIMEOUT Length 1: 00
      SecureCRT.EXE IRP_MJ_WRITE VCP6 SUCCESS Length 1: 3F
      SecureCRT.EXE IRP_MJ_READ VCP6 TIMEOUT Length 1: 00
      SecureCRT.EXE IRP_MJ_WRITE VCP6 SUCCESS Length 1: 0D
      SecureCRT.EXE IRP_MJ_READ VCP6 Length 64

      Reply

      1. Thank you. That makes me think it’s going into binary bitbang mode even before the terminal is active, like when the FTDI chip connects it sends a bit of garbage, or there’s a 0×00 being read out of the RX buffer once it’s engaged. Your terminal writes 3f (00111111) and the Bus Pirate responds 0×00 (illegal command code in bitbang mode).

        If you’ve got it working with the crippled version and the new 2.4 nightly, then I think we’ve found the culprit. There were only two changes to 2.3, and that was the one that would cause a dead terminal. You can try the 2.4 nightly here:

        http://dangerousprototypes.com/2009/10/09/bus-pirate-firmware-v2-3-problems/

    2. v2.4-nightly works fine.

      v2.4-nightly
      SecureCRT.EXE IRP_MJ_READ VCP9 TIMEOUT Length 1: 3F
      SecureCRT.EXE IRP_MJ_WRITE VCP9 SUCCESS Length 1: 3F
      SecureCRT.EXE IRP_MJ_READ VCP9 SUCCESS Length 64: 0D 0A 4D 45 4E 55 53 0D 0A 3F 20 48 65 6C 70 0D 0A 49 20 53 74
      SecureCRT.EXE IRP_MJ_WRITE VCP9 SUCCESS Length 1: 0D

      Good job!

      Reply

  11. v2.4 works perfectly :)

    Reply

  12. Thanks for the confirmation. Between Ton and James it looks like the NULL character was the problem, though I’m not sure why the crippled version didn’t work for James.

    If I can get one more confirmation of failure to success cases, then I’ll release a v2.4 with the fix.

    Reply

  13. Lots of confirmations, download v2.4.

    Reply