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…
Interesting question. What kind of functionality would you like to see exposed in a GUI?
There’s one for V4.
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.
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:
- 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
- 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
- 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.