Skip to content
ViSi-Genie - Raspberry Pi Library
C Makefile
Branch: master
Clone or download
Latest commit ecd6bef Aug 7, 2017
Type Name Latest commit message Commit time
Failed to load latest commit information.
COPYING.LESSER Initial commit into GIT Dec 20, 2012
INSTALL.TXT Initial commit into GIT Dec 20, 2012
Makefile Added Magic Bytes and Magic Double Bytes Functions Nov 2, 2015 Updated Instructions Aug 7, 2017
geniePi.c Added extended capability to WriteStr Nov 5, 2015



4D Systems Raspberry Pi Library for Visi-Genie

Library for the Raspberry Pi to allow easy communication between 4D Intelligent Display modules running ViSi-Genie programmed from Workshop 4, and the Raspberry Pi.

This library is also required for the Raspberry Pi demo programs.

Genie Pi version 1.2


  • Added the following function:

    genieWriteStrHex (int index, long n) genieWriteStrDec (int index, long n) genieWriteStrOct (int index, long n) genieWriteStrBin (int index, long n) genieWriteStrBase (int index, long n, int base) genieWriteStrFloat (int index, float n, int precision)

Genie Pi version 1.1


  • Added the following function: genieWriteMagicBytes (int magic_index, unsigned int *byteArray) genieWriteDoubleBytes (int magic_index, unsigned int *doubleByteArray)

  • Added additional Struct : genieMagicReplyStruct : cmd, index, length, data[100]

Installation of Genie Pi Library on the Raspberry Pi



sudo make install

To Uninstall Genie Pi Library


sudo make uninstall

To Install wiringPi library (Required for some applications/demos)


  • Connect your raspberry Pi up to the Internet and download WiringPi library from github:


    git clone git://

    cd wiringPi


  • This will then download and install the wiringPi library, assuming you have git installed on your Raspberry Pi already.

  • If you encounter an error such as: error while loading shared libraries: cannot open shared object file: No such file or directory do the following:

    sudo ldconfig -v

This should solve the problem

Disable Linux from using the Pi Serial Port so the GeniePi library can instead


  • In a default install of Raspbian, the primary UART (serial0) is assigned to the Linux console. Using the serial port for other purposes requires this default behavour to be changed. On startup, systemd checks the Linux Kernal command line for any console entries, and will use the console defined therein. To stop this behavour, the serial console setting needs to be removed from the command line.

  • This can be done by using the raspi-config utility, or manually.

    sudo raspi-config

  • Select option 5, interfacing options, then option P6, Serial, and then select No. Exit Raspi-config.

  • To manually change the settings, edit the kernel command line with:

    sudo nano /boot/cmdline.txt

  • Find the console entry the refers to the serial0 device, and remove it, including the baud rate setting. It will look something like:


  • Make sure the rest of the line remains the same, as errors in this configuration can stop the Raspberry Pi from booting.

  • Reboot the Raspberry Pi for the change to take effect.


Please sign up for our Forum and ask a question there, or submit a Tech Support Ticket from our website. or

You can’t perform that action at this time.