Skip to content

Hardware: vifino's Easterhegg 2018 64x64 matrix

Adrian Pistol edited this page Apr 28, 2018 · 2 revisions

Hardware setup used by vifino's Easterhegg 2018 64x64 LED matrix

Design goals

  • Decent size, able to be carried around by the neck.
  • 64x64 pixels, full 24 bit color.
  • Not too ridiculous power draw.
  • Decent price, below 150 euros.
  • Be done with it in 3 days. Software and Hardware-wise. Shipping included.

Parts list

  • Raspberry Pi 2/3
    • Amazon if you don't have one laying around already. I did.
    • Multicore is important for this.
    • Should be available for a decent price. Used a Pi 2 in this case.
  • 2 64x32 P5 LED matrices
    • Decently cheap had on Amazon at the time, which was important, considering I had just 3 days.
    • Very cheap on AliExpress. Long shipping times...
  • Adafruit RGB Matrix HAT + RTC for Raspberry Pi
    • You can get one on Amazon, too.
  • Some generic stepdown converter to 5V 10A.
    • If you want to be safe, you can get bigger ones, as the panel can draw up to 14A on full white, but given that there shouldn't be a full white thing there and if it is, it'll be for very short time, it will work perfectly fine.
  • ~3 3300uf caps
    • You definitly want a cap on each panel, add another for good measure. It'll help keep the brightness without flickering and will stop the Pi from browing out.
  • A ~100W power source feeding into the buck.
    • Something like this PSU on Amazon is what I use stationary, I also use the same for my TS100 soldering iron. It's quite good.
    • A BIG LiPo works as well, I use 5S 5Ah LiPos for it. They run the matrix for hours! 6 hours or so for sure.
  • XT60 and XT30 plugs.
    • You can find them on BangGood, Amazon or even Conrad. They are amazing plugs, expensive but well worth it in my opinion.
    • Use the XT30's for the power wires to the Pi and Matrix panels, another XT30 to the buck's 5V out.
    • Use an XT60 on the buck's input.
    • Male side to power source, female to consumer.

Software setup

TODO.

  1. Install Linux-based distribution of choice.
    • Recommended distributions are Raspbian Lite, Arch Linux ARM and Alpine Linux.
    • Add iomem=relaxed isolcpus=3 to cmdline.txt
  2. Install a compiler, make and headers.
    • Raspbian: Install build-essential
    • Arch: Install base-devel
    • Alpine: Install build-base
  3. Create a source directory and clone https://github.com/hzeller/rpi-rgb-led-matrix, compiling like this:
    • cd into rpi-rgb-led-matrix
    • Edit lib/Makefile, find the #DEFINES+=-DFIXED_FRAME_MICROSECONDS= line, uncomment and change it to 5600
    • run HARDWARE_DESC=adafruit-hat-pwm make -j4
  4. Clone https://github.com/vifino/sled in the same source folder, compiling like this:
    • cd into sled, run make PLATFORM=RPI_HUB75 -j4
  5. Create a script like this in /usr/local/bin/start-sled (for a RPI 2 and Alpine, might need to be tweaked to your needs):
#!/bin/sh
cd /usr/local/src/sled

git pull && CFLAGS="-O3 -march=native -mfloat-abi=hard -mfpu=neon-vfpv4" make PLATFORM=RPI_HUB75 -j3

exec ./sled -o "rpi_hub75:--led-pwm-lsb-nanoseconds=100"
  1. Mark it executable.
  2. Make it autostart, via your init system, like systemd or openrc, or supervisord. Below is a sample supervisord config.
[program:sled]
command=/usr/local/bin/start-sled
directory=/usr/local/src/sled
autostart=true
autorestart=true
stdout_logfile=/dev/null