# tickerPi tickerPi is a Python Program to handle WS281X LED interactions on a Raspberry Pi * WS2812b has only been tested at this time ## Authors * **Justin Healy** * **Vin Presciutti** ## Requirements 1. Python 3 - As Python 2 support is no longer available 2. Python 3 PIP 3. Python SMBus 4. RPI.GPIO 5. Adafruit Blinka 6. Adafruit Neopixel 7. RPI WS281X Libraries 8. Adafruit PixelFramebuffer ## Installation 1. Standard Updates for Raspberry Pi: ``` sudo apt-get update sudo apt-get upgrade sudo pip3 install --upgrade setuptools ``` * If this fails, try this and repeat step 1 ``` sudo apt-get install python3-pip ``` * Recommended, but may not be required, setting your Python install to default with Python 3. There are multiple ways to do this, here's an example: ``` sudo apt-get install -y python3 git python3-pip sudo update-alternatives --install /usr/bin/python python $(which python2) 1 sudo update-alternatives --install /usr/bin/python python $(which python3) 2 sudo update-alternatives --config python ``` 2. Enabling I2C and SPI, which is only required to be done **once** for **each** Raspberry Pi:\ **Only Required if you are using multiple devices on your Raspberry Pi, if not, move to step 3**\ **Important:** > If you are using a GPIO wiring setup for the LEDs that does not support I2C, you will not see anything show up for the LEDS.\ > Again, this is only for if you have **OTHER** devices you plan on hooking up to make sure they still show up under I2C * Enabling I2C: * From Command Line: ``` sudo apt-get install -y python-smbus sudo apt-get install -y i2c-tools sudo raspi-config ``` * Interfacing Options > I2C > Enable > Yes > If you did not hit "finish" you can repeat these steps but change out the I2C for the SPI * Enabling SPI: * From Command Line: ``` sudo raspi-config ``` * Interfacing Options > SPI > Enable > Yes * Click "Finish" * Reboot your Raspberry Pi ``` sudo reboot ``` * Testing I2C and SPI after reboot: * I2C Testing: ``` sudo i2cdetect -y 1 ``` * If you do not get anything back from the above command, try seeing which I2C is being used under Dev: ``` ls /dev/i2c* ``` > Whichever number is after the "-" in "/dev/i2c-(X) is what you should replace the number in the command with >> Example: /dev/i2c-3 = "sudo i2cdetect -y 3" * SPI Testing: ``` ls -l /dev/spidev* ``` > This should return a device for each SPI bus (two) 3. Installing Python Support Libraries: * GPIO - If not already installed: ``` sudo pip3 install RPI.GPIO ``` * Adafruit Blinka: ``` sudo pip3 install adafruit-blinka ``` * RPi WS281X and Neopixel: ``` sudo pip3 install rpi_ws281x adafruit-circuitpython-neopixel sudo python3 -m pip install --force-reinstall adafruit-blinka ``` * PixelFramebuffer: ``` sudo pip3 install adafruit-circuitpython-pixel-framebuf ``` 4. Changing Conflicting HDMI Settings:\ **Important:** Only do this if you are having issues with the LEDs, this is not always needed!\ ``` sudo nano /boot/config.txt ``` * If it doesn't already exist, add: ``` hdmi_force_hotplug=1 hdmi_force_edid_audio=1 ``` * Save and exit the file (ctrl + x > y) * Reboot Raspberry Pi ``` sudo reboot ``` ## Usage TBD ## Contributing TBD ## License * [MIT](https://choosealicense.com/licenses/mit/) > A copy of this can be found in the root directory of this project under "LICENSE"