LCD blinkenlights

Hi there,

A few years ago, someone (I think it was korli, but himself got it from scottmc or something like that) gave me a PicoLCD 20x2 module (http://www.mini-box.com/picoLCD-20x2-OEM). Basically this is a small LCD display, 2 lines of 20 characters.

Today I finally wrote a little application allowing to use it under Haiku (well, actually, I found someone who wrote an easily portable driver, and added some functionality around it).

The LCD is now used to show CPU usage bars, as the blinkenlights did on BeOS. It works with up to 6 CPU cores (the best I could do with only 2 lines of text and 8 re-definable characters).

The sourcecode is there: https://github.com/pulkomandy/picolcd

No pictures, because this is only fun to watch in realtime.

1 Like

Can ye post a video? I’d like to see what this special application of technology is that you’ve unleashed upon the masses! :smiley:

Sure, here’s a video:

You got this to run using USB?

How hard did you find the coding to be?

If you look carefully at the github project, you will see that I reused an existing code (based on libusb). As a result I wrote only the file example.c, which is under 100 lines. Most of the difficulty was to figure out the best way to display a bargraph on an LCD that is normally meant for text mode. The programming itself was quite easy, save for debugging a problem with our libusb port which was triggering a crash (and is now fixed to at least not crash).

Well, the 6 CPUs limit could be extended if you display the bar vertically instead of horizontally, no?

Mh, right. And then I could split each character in 8 level of loads (empty -> full) so I would still get 16 levels per CPU.
Anyone with more than 6 (and up to 20) cores to test it? :smiley:

Look for AMD Ryzen owners :slight_smile:

Would it work on BeOS?

I have machines with more cores but none of them would boot haiku last time I tried :frowning:

The current code wouldn’t work in BeOS, as it uses libusb (1.0) which I think is not available for BeOS. One would need to port the lib, or rewrite the driver to use BeOS USB APIs directly.