4D Systems Intelligent Displays and the Raspberry Pi

I’ve been doing some work recently with 4D Systems who’re based in Australia and who design some really cool LCD and oLED touchscreen display modules.

The displays themselves have an on-board graphics processor that is designed to take the load off the host processor and gives you a high-level command set to enable you to interact with the display in a very easy to use fashion.

And recently they have introduced a range of displays and an adapter for the Raspberry Pi.

4D Systems Display

4D Systems Display

The photo shows one of their displays (The uLCD 32PTU) with the Raspberry Pi serial adapter.

The adapter board just breaks-out the serial port and the power for the display itself. It leaves all the other GPIO pins available for you own use.

The intelligent part inside the displays comes from the software you use to setup the displays in the first instance – in that picture above, the buttons and sliders were not drawn by the Pi, but are created using a GUI development system called Visi-Genie. This runs under the 4D Systems “Workdshop4” package. You design the display using high-level constructs – build the software that runs on the display – this involves copying data to a Micro-SD card on the display itself, then connect the display to the host computer.

Workshop4 runs under MS Windows, but once programmed the display can connect to any suitable host with the right adapter.

So the process involves designing the display, then connecting it to the host and writing some software to run on the host to interact with the display… And that’s what I’ve been doing – I’ve produced a handy library to help you use the dsiplay from C/C++ programs (it should be easy to use from other languages too – e.g. Python).

At its simplest, you periodically poll the display, and get back a structure containing a message from it. The message might contain information such as “Button 5 pressed”, “Slider 3 moved to position 24”, “Key ‘a’ pressed on keyboard 2”, and so on, or you can send a message to the display: “Set meter 3 to 25”, “Move slider 1 to 0”, etc. The display handles all the animations of the buttons, sliders, gauges, dials and so-on leaving your program to get on with (hopefully!) more important things.

Using this system I was able to write a program on the Pi to have an on-screen slider control the brightness of an LED using a slider on the screen in just a few moments with only a few lines of code.

Have a look at this video to see how it all goes together (and I suggest you pick HD and full screen!)

I’ll be writing more on these displays as I get to grips with them, so keep watching!

Comments

4D Systems Intelligent Displays and the Raspberry Pi — 4 Comments

  1. Hi Gordon

    Merry Christmas

    Did you get the LCD display direct from 4D Systems or from someone in the UK – looks very cool and I want one !

    Paul

    • As I’m doing some work for them, they sent me the displays and the Pi adapter board directly… However I’ve seen the displays in places like SKPang, etc. I suspect it’ll take a short time for the Pi adapter boards to filter through the chain though.

      -Gordon

  2. Hello Gordon im from Germany and saw your videos.
    Nice work
    Im also own a µoled 128 G1 and connect it to the raspi

    Can you explain me how to setup this display to work step by step
    Thanks Tom

    • The method we have here involves a serial connection from the Pi to the display. The display is programmed using the new Workshop4 system from 4D, so all that we send over the serial line is very high-level commands. The software I’ve written is avalable via the 4D github account.

      The first thing you need to do is get it connected to the Pi – and a USB serial cable will work here, but note that the Pi might be marginal to power the display… The Pi serial adapters are avalable now from 4D – might take a while for the distys in Germany to catch up though.

      Good luck with it – they’re really fun little displays, and fantastic for taking the workload off the host computer.

      -Gordon