Any GUI for bus pirate?

I love the hardware & firmware functionality of the Bus pirate, for the price it’s 11 out of 10, but the interface means i often try with other tools first.
Has anyone made an attempt at a GUI for the Bus Pirate? I couldnt’ see anything on github, but I feel like someone somewhere must have hacked together something in python. I’d even take one thats been generated by Claude or ChatGPT…

2 Likes

Interesting question. What kind of functionality would you like to see exposed in a GUI?

1 Like

There’s one for V4.

1 Like

Nice find! Too bad there’s no screenshot, I wonder what all it did.

I can find someone to make a cross platform app, but I’m not sure what the user experience would be like and what should be exposed. I’m admittedly terrible at designing desktop and mobile apps.

1 Like

Fixing command parsing is a necessary part of making it possible to have many front-ends, at least without causing massive cross-compatibility problems.

Steps:

  1. Fix terminal CLI parsing
    • Fix command history and parsing
    • Create structures, one for each command, to hold the command’s arguments
    • CLI parsing → just convert command line to the corresponding structures
    • … then pass the filled-in structure to the existing functions to do what they do today
  2. Expose a protobuff-based interface over USB
    • Use COBS for packetizing the data.
    • Start with a test message / static data, just to get framework working
    • Slowly migrate commands to have protobuf equivalents
    • Protobuf handler just converts protobuf into the corresponding structures
    • … then pass the filled-in structure to the existing functions to do what they do today
    • Lather, rinse, repeat … Slowly adding existing commands to the protobuf definitions
  3. Use the protobuf protocol definition file to generate the glue code necessary to use whatever language is preferred … .NET, Java, Python, Go, C, C++, …
    • All the difficult work of enabling each of those languages is encapsulated into the protobuf compilers’ outputs.
    • Use the generated API to generate the protobuf message, pipe that through a COBS encoder, and sends the resulting COBS-encoded packet over USB.
    • Similarly, use COBS-decoder to get a protobuf packet response from USB

I’ve been looking on-and-off for ways to make the above transition workable for a while. It’s a decidedly non-trivial task, and doing so will have long-term positive results. I’ve not given up on it yet, and it’s not likely to be something completed in the next 1-2 months (at least based on my own volunteer time). The links above document some thoughts on how to make this work in a sustainable manner.

2 Likes