Controller | Raspberry Pi Zero WH (with pre-soldered header) × 1 | £15.12 |
Power Management | Witty Pi L3V7 - Realtime Clock and Power Management for Raspberry Pi | £23.90 |
Multi-Hat adapter | HAT Hacker HAT | £9.90 |
SD Card | SanDisk Ultra 32GB microSDXC Memory Card | £14.99 |
E-Paper Display | Waveshare 13.3inch E Ink Spectra 6 (E6) Full Color E-Paper Display With HAT+ Standard Driver HAT, 1600x1200 Pixels, SPI Communication, E-Ink Display | £305.99 |
Servo controller | Angled 16-Channel Servo Driver HAT for Raspberry Pi (12-bit I2C) | £16.20 |
Picture Frame | Custom frame: AS0522 Smooth, matt black, 34mm wide (Non-reflective styrene glazing) | £42.79 |
TOTAL | £428.89 |
I accidentally snapped the HAT display when trying to open it stopping it working, but after contacting the amazing sales team they sent me a free replacement from China.
So after looking at the demo I decided on extending the Python script.
To keep things simple I started off with 31 paintings I really liked. My plan was to use the built in Raspbian Chron service to run the script nightly. This would then look at the day of the month and render that image for the day.
I needed to get good quality images of the paintings and resize them to 1200 by 1600 24-bitmaps.
Some of the paintings were landscape and some were portrait though so I decided to add a servo to turn the picture frame around to match the image. I would name the pictures "#_layout" so I could rotate to the correct setting and then load the correct image.
So my favourite language to program in is DotNet so I looked originally at converting the Epaper example into C# .
I did think about using a different PI I had but this had some problems as the script involved some image pallette manipulation. This was easy using System.Drawing.Imaging but this library isn't fully supported on Linux and the features I needed (pallette manipulation) was one of the missing functions.
Reluctantly I decided to use the script and pass it the image I needed after I had rotated the image.
The next problem was the PI Zero wouldn't run dotnet as I'd foolishly bought a Raspberry PI Zero that wouldn't run it (the 2w can apparently).
So I abandoned the dotnet idea and went with converting the python scripts that came with the Epaper board and the Servo shield into libraries I could use.
My plan was to attach the servo to the wall and have the base of the servo rotate. I 3d Printed a servo holder that I intended to glue to the back of the picture frame.
This would be tight enough to hold the picture frame but also allow easy removal.
Now I purchased an Real Time Clock hat that would allow me to schedule the power for the PI. The idea was every 24 hours the PI would power on, run the loadPainting script and then turn off when done.
Unfortunatly the Hats weren't stackable so I purchased an adapter to allow me to run all three but the servo controller didn't operate as well.
I bought a USB adapter to try and run a servo using the serial port on the usb