An interactive slideshow of images, built on an ATmega328p-microprocessor and an 240x240 ST7789 display
Go to file
2025-09-13 13:52:59 +03:00
.cargo Configure ravedude 2025-09-12 16:11:25 +03:00
images Finish slideshow with larger images from program memory 2025-09-13 13:30:15 +03:00
src Finish slideshow with larger images from program memory 2025-09-13 13:30:15 +03:00
.gitignore Add basic UDP message receiving 2025-08-28 23:37:47 +03:00
Cargo.lock Rename crate 2025-09-13 13:32:19 +03:00
Cargo.toml Rename crate 2025-09-13 13:32:19 +03:00
demonstration.mp4 Updte README.md, add demonstration 2025-09-13 13:50:32 +03:00
Ravedude.toml Configure ravedude 2025-09-12 16:11:25 +03:00
README.md Update README.md 2025-09-13 13:52:59 +03:00
rust-toolchain.toml Make an example that compiles, add pinout 2025-09-04 00:21:56 +03:00

Slideshow

This project is a relatively simple slideshow running on the Adafruit Feather 328P (an ATmega328p-microcontroller) using a simple button and a 240x240 LCD display with the ST7789-driver over SPI.

This project is written on Rust and uses a very minimal amount of libraries with the most significant being atmega-hal, a hardware abstraction layer for ATmega-microcontrollers. Images are stored in the program memory of the device and manually read using the lpm-instruction using inline-assembly because Rust itself does not produce this instruction in any scenario. The images are stored in the QOI-specification to save space, and they are decoded on-the-fly when rendering the images. Communication between the display and the microprocessor is done manually using a minimal SPI-utility within the atmega-hal crate.

Demonstration