ViSi-Genie library to work with 4D-uLCD displays


Hi folks!
Check out the first version of my new library:

The library is used to communicate with 4D-uLCD displays produced by 4D Systems company and with firmware made in the ViSi-Genie 4D Systems Workshop environment.

Here is a list of currently supported Genie objects.


  • Dip Switch
  • Knob
  • Rocker Switch
  • Rotary Switch
  • Slider
  • Trackbar
  • Winbutton


  • Angular meter
  • Cool Gauge
  • Led Digits
  • Custom Digits
  • Led
  • User Led
  • Meter
  • Tank
  1. Plug the display to your computer and create a Visi-Genie program for it using the Workshop IDE.
  2. Create a XOD program using this library. Use the init node and a UART interface to set up the display then you can link it with different inputs or outputs.
  3. Deploy the program to your Arduino then plug the display to the controller.

Here is the example I’ve made with Arduino Uno, gen4-uLCD-32DT, and 4D Arduino Adaptor Shield

2 1

Try it!
Please, reply error messages and suggestions at this topic.


Thanks Max - that’s great! - I’ve got your library to work here in Cambridge, and will spread the word among the Biomaker group. Your nodes work well with the Biomaker starter kit ( I’ve been running the 4D Systems IDE - ViSi Genie (under a Windows10 emulator) and XOD on a Mac (common platform in the biology community). I think that access to wysiwyg editing and code-free programming for instrumentation will make a big difference for the academic and DIY science communities! Thanks for your help with this. Jim. H.


Hey gabbapeople
love what you did with this Library verry nice and clean.
I have written up all the other ViSi Genie Objects and uploaded it (it depends on your Lib and will install it automatically)


Contrast:       Display on or off (uLCD-43P/PT/PCT Brightness 0-15)
Dip switch:	    Read and Write
Knob: 		    Read and Write
Rocker switch: 	Read and Write
Rotary switch: 	Read and Write
Slider: 		Read and Write
Trackbar: 	    Read and Write
Winbutton: 	    Read and Write
Angular meter:  Read and Write
Coolgauge: 	    Read and Write
Custom digits: 	Read and Write
Form: 		    Write
Gauge: 		    Read and Write
Image: 		    Read and Write
Keyboard: 	    Read
Led: 		    Read and Write
Led digits:     Read and Write
Meter: 		    Read and Write
Strings: 	    Pre-Read, Pre-Write, Dynamically Created ASCII
Thermometer:    Read and Write
User led:       Read and Write
Video: 		    Read and Write
Sound: 		    Read, Play, Volume, Pause, Continue, Stop
Timer: 		    Write
Spectrum: 	    Read and Write
Scope: 		    Write
Tank: 		    Read and Write
UserImages: 	Read and Write
Pin Output:     Write
Pin Input: 	    Read
4Dbutton:       Read
AniButton:      Read
Color Picker:   Read (Needs to be converted to something useful R.G.B ect...)
User Button:    Read


Many thanks for making these libraries - they are great additions to XOD. I’ve used gabbapeople/4d-ulcd to demonstrate reading data from an absolute orientation sensor: