A picture frame for my tinies pixel artworks.
- Rotates through images I've drawn and put into the /img folder randomly
- A nice pixellated transition between images
- Can be turned on by standing in front of it (only once in 30mins so the OLED isn't running all the time)
- Can be turned on by touching the frame
- Touching the frame while it is turned on will freeze the currently displayed image for 60s or until the frame is touched a second time
- Adafruit ESP32-S3 Feather with 4MB Flash 2MB PSRAM (any ESP with enough pins will do)
- 3.12 inch 256x64 OLED display (found on Aliexpress)
- Seeed Studio 24GHz mmWave Sensor - Human Static Presence Module Lite (for motion sensing)
- A 18×24 cm picture frame
- black cardboard
- optionally: a 3D-printed inner frame to hold the components in place (can be replaced by healthy amounts of hot glue)
- plus: wires, soldering equipment, etc.
This project uses CircuitPython running on the ESP32.
The following CircuitPython modules need to be put in /lib/
- adafruit_bus_device/
- adafruit_display_text/
- adafruit_register/
- asyncio/
- adafruit_max1704x.mpy
- adafruit_pixelbuf.mpy
- adafruit_ssd1322.mpy
- adafruit_ticks.mpy
Images found in that folder were all drawn by me, @pichfl on a 32×128 px canvas in Resprite.
Only 2-bit bitmaps are currently supported as these images were originally intended for the tiny OLED panel on my keyboard.
To convert images you need to use something like imagemagick:
magick mogrify -format bmp -depth 1 -type Bilevel *.png- Add support for mqtt to expose things to HomeAssistant
- Improve presence detection by reading the sensor via UART
- Use the build-in neopixel in some way