Chess Puzzle Box with E-Paper Display






 The initial idea behind this project was completely different from the final result. I’ve always wanted to experiment with e-paper displays but never had the right opportunity or use case. After some time, I came up with the idea of using it to display events from two Google Calendars. Since this kind of device is battery-efficient, my goal was to create something that would remain asleep most of the time and wake up only for a few seconds during refresh. For the first iteration, I bought a 4.2" e-paper Waveshare display and an Adafruit Huzzah Feather ESP8266.

My first approach involved generating an image on a server, with the e-paper and Arduino fetching whatever the server sent. I encountered two small challenges along the way. First, handling HTTPS was tricky because Arduino isn’t designed for proper HTTPS requests, and my server’s certificate changes every few months. I solved this by using a Raspberry Pi as a proxy. The second issue was with sleep functionality. When I set the device to sleep for long periods (e.g., four hours), it would never wake up properly. I eventually worked around this by reducing the sleep interval to one hour.

For the case, I modified an existing 3D model from printables.com, and before long, I had my first working prototype. After using it for several weeks, I realized that nobody — not even me — was using this state-of-the-art device! Since the content was generated on the server, it was easy to switch things up, so I repurposed the display to show a local weather forecast.


Again, it didn't get much use. I decided to change the content once more, this time drawing inspiration from my previous projects involving chess puzzles. I wrote a new piece of code to display chess puzzles, which felt much more engaging. However, the reliance on the Raspberry Pi proxy made the device somewhat locked to my household.

Determined to improve the design, I decided to rebuild the device from the ground up. I swapped out the ESP8266 for an Adafruit Feather RP2040, which has no Wi-Fi connection but supports an SD card. I downloaded a collection of chess puzzles from the Lichess puzzle database and stored them locally on the SD card, making the device entirely offline. Another challenge arose: I couldn’t find a good library for deep sleep on the RP2040. To solve this, I took a different approach and added an Adafruit push-button power switch. Now, the device stays off until the button is pressed. After the puzzle is displayed, the device powers itself down by sending a signal to the power switch.

In the end, I built a compact, battery-efficient chess puzzle box that uses an e-paper display and a push-button power switch for minimal power consumption. It doesn’t require an internet connection, making it perfect for offline use. The puzzles are stored locally and sourced from Lichess. The device is simple to use: the first click shows a chess puzzle, and the second click reveals the solution.

If you’re interested in building your own or diving deeper into the code, check out the GitHub repo. You can also see the project in action on YouTube.

Comments

Popular posts from this blog

Skate Tricks Recognition Using Gyroscope

Drone Following Instructions

Creating a Custom Chess Puzzle Printer