Close

UART buffer display (finally) working. Now--What to do for the User Interface

A project log for HP Logic Probe Hack

45 year old HP Logic Probe is too slow for modern electronics, so I hacked it with a Sparkfun Alorium FPGA board and display

robert-morrisonRobert Morrison 08/01/2025 at 16:230 Comments

Finally got the UART buffer display working correctly--FPGA SRAMs are pipelined, so setting up correct read cycles in between the OLED display's I2C interface character writes turned out to be a challenge to start and stop. This took a lot of simulation and FPGA iterations. But it is working nicely now.

Now I need to create a button controller to manipulate the character display. I have two buttons mounted on the probe, and need to come up with a good user interface that isn't frustrating. 

Pet peeve--the IPhone touch interface, which I absolutely hate. You never know how to swipe or tap to get it to do what you want, there is no way to know beforehand what swipe is going to do what,  every app is different, and it changes on every update. It's like the old command line interface on Unix--you get a prompt, but have to memorize the commands, there is no way to know before you hit return what a typed command (rm -fr /*) is going to do. When I write an app, I always provide a visible legend of what commands are available at any time (see the gallery picture of my logic analyzer display), and I want to do the same here. I really don't want the logic probe to be frustrating to use--but I have very limited screen space. I want to give careful thought about what types of button presses to use (tap, double tap, hold, for example) and what to show on the screen.

I need to have these modes:

init stats for probe 1 or 2

display stats for either probe 1 or 2

choose operating mode (for example, display min/max times, edge counts, analysis trace mode, UART display mode, UART character mode or hex mode for binary serial data.

execute commands:  move forward or back in the UART buffer, start UART collection, stop UART collection, start analysis trace, dump and scale/move about the trace display, and so on.

How in the world can I get two buttons to do all this without making the logic probe user interface frustratingly bad? 

It's becoming clear that I'm trying to do too much with two buttons. Distributors have things like a tiny little "joystick" or a rotary knob, going to research these and see if there's something practical that can be added without making the logic probe bulky or heavy. Right now, it is balanced nicely and not too heavy.

Discussions