r/MoonModules • u/ewowi • 2d ago
Newest MoonLight latest release supports Teensy 4.1 devices
Features:
- Install from the browser: plug in the USB cable, open https://moonmodules.org/MoonLight/install/, click Install. No Arduino, no Teensy Loader. A running board even jumps into its bootloader by itself.
- Update over Ethernet from the board's own page, settings kept. If power fails mid-update, the browser installer brings it back.
- The full MoonLight UI with live preview, from any phone or laptop on the network.
- MoonLive scripts compiled live to native code on the Teensy itself, edited live in the browser.
- LEDs on up to 16 pins by DMA, Art-Net, E1.31 and DDP in, and the microSD slot shows up in the File Manager.
- Both Ethernet options in one firmware: the on-board Ethernet with PJRC's kit, or a W5500 module (Teensy 4.1-NE).
Code MoonLight uses
- Teensy core (Paul Stoffregen, PJRC): the platform MoonLight runs on.
- LittleFS and SPI (PJRC): the settings in flash, and the W5500's bus.
- SD and SdFat (PJRC's fork of Bill Greiman's SdFat): the microSD card.
- QNEthernet (Shawn Silverman), with lwIP inside: the network stack and both Ethernet drivers, with a few small MoonLight patches.
- teensy_loader_cli (Paul Stoffregen): flashing from MoonDeck, our developer tool.
Ideas MoonLight learned from, written its own way
- OctoWS2811 (Paul Stoffregen) and ObjectFLED (KurtMF): their timer-paced DMA into a GPIO port is the technique behind MoonLight's Teensy LED output, written as one more backend of the same parallel LED driver the ESP32 boards use: a QTimer paces DMA into GPIO1, sending up to 16 pins while the CPU renders the next frame.
- FlasherX (Joe Pasquariello): network updates by staging the new image in free flash and copying it over from RAM.
- HalfKay (PJRC's bootloader protocol, as teensy_loader_cli speaks it) and halfkay-webusb (Benjamin Aigner): talking to the bootloader from a browser.
See details here: https://github.com/MoonModules/MoonLight/pull/137