Raspberry pi "Lite" or "Legacy" 32bit OS. NOT 64. Enable SSH Download File... cd curl https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/pi-eyes.sh >pi-eyes.sh sudo bash pi-eyes.sh (this downloads and runs a script which installs all the prerequisite software and does some system configuration. It will ask a few questions along the way… Is the target system a Pi 4-type board, or something else? Target system is an important distinction here — this refers to the Pi board where this SD card will ultimately be used, if it’s different from the one where you’re currently installing. Will you be connecting OLED (128x128), TFT (128x128) or IPS (240x240) displays? Can’t mix and match; must be one or the other. (There’s also an HDMI option — see the “Using Just the Software” page for guidance.) Target is IPS (Product #3787) No orderly shutdown button No joystick or sensor Dry Run Reboot when prompted by the software installer. When the system restarts, after a minute or so, you should see some activity on the display(s). The eyes run automatically on every startup; it is a dedicated system. If you don’t want that, you’ll need to edit /etc/rc.local and remove or comment out the line that includes “python3 eyes.py”, typing the full command that appears there manually each time you want to start the code. IT’S NORMAL THAT THE EYES MAY EXHIBIT “GLITCHES” ON THE FIRST TRY. We’ll fine-tune some parameters to get them working right. If everything seems to be working well, you can skip ahead to the next page and ignore the steps below. If the eyes are experiencing glitches (video snow, tearing, dropped frames or weird inverted colors), here’s what to do… Log into the Pi remotely using ssh. Then type the following commands: Download File Copy Code cd /boot/Pi_Eyes sudo killall fbx2 The displays will stop updating. This is normal. Then, if you have OLED displays, type the following: Download File Copy Code sudo ./fbx2 -o -b 8000000 Or, for TFT displays, try: Download File Copy Code sudo ./fbx2 -t -b 10000000 The first argument (-o, -t or -i) sets the display type in use; OLED, TFT or IPS, respectively. Second argument (-b) sets the maximum bitrate for the displays. The higher the bitrate, the smoother the animation…but…there’s a limit to how fast this can go, and it can vary with wire lengths, connections, environment (such as interference from other nearby devices) and even slight manufacturing variances from one display to the next. For OLED displays, the default bitrate is 10000000 (10 MHz). For TFT displays, default is 12000000 (12 MHz). IPS uses 96000000 (96 MHz) by default. But if there’s trouble, we have to dial these back. Try a lower value, like the 8 MHz or 10 MHz examples above. Watch the output for a minute…does it seem to have stabilized now? If only one of the two displays glitches, you’ll still need to work the speed down until both run reliably. Press Control+C to kill the program and test again with a different bitrate…maybe work down 4 MHz at a time, then up 1 MHz at a time until you find the “sweet spot” between speed and reliability. Once you find it, Control+C again and let’s make the change permanent… Download File Copy Code sudo nano /etc/rc.local A couple lines from the bottom you’ll find this: Download File Copy Code /boot/Pi_Eyes/fbx2 -o & (or “-t” if using TFT displays) Insert the additional -b and bitrate value before the & character: Download File Copy Code /boot/Pi_Eyes/fbx2 -o -b 8000000 & Save changes and exit the editor. Then: Download File Copy Code sudo reboot After a minute or so the eyes should come up again, glitch-free this time. If not, repeat these steps again, trying a lower bitrate until you find a setting that works reliably. Another way to reduce glitches is to solder ribbon cables directly between the bonnet and displays, with no headers or plugs in-between; every intermediary part is an opportunity for noise or connection problems. Consider this if you plan on permanent installation.