Skip to content

Latest commit

 

History

History
70 lines (48 loc) · 2.5 KB

README.md

File metadata and controls

70 lines (48 loc) · 2.5 KB

Matrix Portal M4 Experiment (asyncio)

An experimental LED matrix display using the AdaFruit Matrix Portal M4 controller and a 64x32 MOD75 LED Matrix Panel driven using a custom asyncio manager.

Video

Demo

Photos

Photo

Features

  • Time and Date display with internet time updates
  • Dynamic randomly generated background scenes
    • Floor styles (Brick and Rock) and lengths vary
    • Floor "Underground Level" pallete used at night
    • Warp pipe location varies
  • Autonomous Mario and Goomba sprites
    • Mario performs a jumps occasionally
    • Randomly move in and out of scene
    • Background scene sometimes regenerates when both sprites are off screen
  • Physical hardware button support
    • Regenerate background scene

Requirements

Usage

Create a Python virtualenv and install the CircUp library manager:

python -m venv ./venv
source ./venv/bin/activate
pip install circup

Connect the Matrix Portal M4 to device and confirm USB device is connected and automatically mounted (e.g. /media/${USER}/CIRCUITPY):

ls /dev/ttyACM0
ls /media/${USER}/CIRCUITPY

Install project dependencies and libraries using circup:

circup install -r ./requirements.txt

Copy the contents of the src directory to the root of your Matrix Portal M4 filesystem (e.g. /media/${USER}/CIRCUITPY):

rsync -rv ./src/ /media/${USER}/CIRCUITPY/

Now create a secrets.py file in the same location (e.g. /media/${USER}/CIRCUITPY/secrets.py) with the following contents:

secrets = {
    "ssid": "<wifi-ssid>",
    "password": "<wifi-password>",
    "aio_username": "<adafruit-io-username>",
    "aio_key": "<adafruit-io-api-key>"
}
  • Replace <wifi-ssid> and <wifi-password> with your WiFi network name (SSID) and WPA password/key
  • Replace <adafruit-io-username> and <adafruit-io-api-key> with your AdaFruit IO username and API key

CircuitPython will automatically restart when files are copied to or changed on the device.