EChain: a Fun Digital Key Chain
by Ameya Angadi in Circuits > Gadgets
84 Views, 0 Favorites, 0 Comments
EChain: a Fun Digital Key Chain
After spending months building productivity tools and complex systems, I was hitting a wall of maker burnout. I needed a break from solving "real-world problems" and just wanted to make something fun.
That's why I built eChain.
It’s a completely unnecessary, wonderfully over-engineered ePaper keychain. It doesn't track my tasks or optimize my workflow, it just displays my favorite memes, cartoons, and goofy photos to my backpack for weeks on a single charge.
Some people might ask why I built a Wi-Fi-enabled smart tag just to display memes. The honest answer? Because it makes me smile. And in the maker world, sometimes that’s the only reason you need to build something 😁
Supplies
Hardware components
- Seeed Studio XIAO EE05 ePaper Display Board(ESP32-S3) - Link
- Seeed Studio 2.9" 4-Color ePaper Display, 128x296 Pixels - Link
- USB 3.1 Type C to A Cable 1 Meter - 3.1A - Link
- Li-Ion Battery 1000mAh
- Buzzer
Software apps and online services
- Autodesk Fusion - For Designing The 3D Printed Case.
- Arduino IDE - For Uploading The Code.
- Seeed Studio SenseCraft Seeedash (HMI) - For Converting Images To ".h" Files.
Hand tools and fabrication machines
- 3D Printer (generic)
- Soldering iron (generic)
Project Overview & Build Video
Before diving into the technical wiring and code, the best way to understand the magic of eChain is to see it in action.
3D Printed Frame & Preparation
The eChain chassis utilizes a sleek, 3D-printed body. For optimal results, print the main body in the appropriate orientation using PLA with a 0.1 - 0.2 mm layer height and 30% grid infill.
Note: A clean finishing process is critical. Remove any stringing or burrs from the print. Carefully edge-sand the internal mounting points to ensure the battery and hardware fit snugly without putting pressure on the delicate ePaper screen.
Use the attached STL file for 3D Printing.
The 3D Case was designed using Autodesk Fusion Software.
Downloads
Display Cable Extension
Connect the flexible extension cable (FFC Cable) to your ePaper display using the provided adapter. Ensure the locking latch is firmly pressed down.
Mount the Display
Gently place the ePaper display into the front track of the 3D-printed case. Once aligned, apply a small dab of hot glue to each of the four corners to stick the display securely in place without putting pressure on the glass.
Board Preparation
Take your Seeed Studio XIAO EE05 ePaper Display Board(ESP32-S3). Solder the positive leg of your passive buzzer to pin D13 and the negative leg to GND. Next, carefully snap the FPC Wi-Fi antenna onto the ESP32-S3 module's connector.
Battery Connection
Plug the Li-ion battery into the EE05 board's JST connector.
Note: Always double-check the wire polarity on your battery before plugging it in to avoid shorting the system.
Alignment & Mounting
Lower the connected EE05 board into the chassis. Ensure the USB-C port and the physical push buttons align perfectly with their respective cutouts in the 3D-printed case. Use double-sided tape and hot glue to securely hold the board, battery, and internal components in place.
Driver Board Hookup
Connect the free end of the FFC extension cable to the port on the EE05 driver board. Gently fold the FFC cable inside the cavity so everything fits without creasing or pinching the delicate ribbon cable.
Sealing the Enclosure
Place the soldered buzzer into its dedicated slot on the 3D-printed back plate. Attach a keychain ring or a lanyard to the loop and you are good to go.
Crucial Step: Boot up the device and verify that the screen, Wi-Fi, buzzer, and buttons work correctly. Once the hardware is confirmed fully operational, apply super glue along the edges of the back plate and firmly shut the case to seal it.
Image Preparation (SenseCraft Tool)
eChain uses pre-dithered.h files to render images efficiently without overloading the ESP32's memory.
- Go to the SenseCraft Dither Tool online.
- Upload your desired photo or graphic.
- Set the parameters to E4 Four-Color 4bpp.
- Set the dimensions to exactly 128x296 or 296x128.
- Select an appropriate Dither Algorithm (like Atkinson or Floyd-Steinberg) and adjust the Gamma, Vibrance, Clarity, and Darkness sliders until the preview looks perfect.
- Generate and download the ".h file". Rename the file as per your requirements.
Firmware Flashing
- Open the Arduino IDE and install the ESP32 board package via the Boards Manager.
- Install the required library: ArduinoJson
- Open the provided eChain_OS.ino file. Ensure contact_icon.h, setup_icon.h, driver.h and eChain_Image.h are in the same folder.
- Select XIAO_ESP32S3_PLUS as your board, choose the correct COM port, and click Upload.
Pro Tip: If the Arduino IDE fails to detect the device, hold the physical BOOT button on the XIAO while plugging it in to force Download Mode.
Checkout the GitHub Repo For The Code - Link
The Web UI Control Center
eChain hosts its own local website for configuration.
- Enter Setup Mode: Press both hardware buttons simultaneously. The device will beep twice and the screen will display your Setup Mode credentials.
Connect: Join the Wi-Fi network eChain Setup using the password img@1234
Configure: Open a web browser and navigate to 192.168.4.1
- Manage Images: Upload your newly generated.h files. The dashboard automatically detects the orientation (portrait/landscape) and maps it. You can reorder your slideshow using the Move Up and Move Down buttons, seamlessly Flip images 180°, or delete them.
- Digital Business Card: Enter your Name (max 15 chars), Phone (max 15), Email (max 30), and a Custom Message (max 30) (Optional).
- Device Settings: Toggle the buzzer and set the slideshow timer (hardware enforced 5-minute minimum to protect the ePaper lifespan and improve battery life).
Operating the EChain
Once configured, the eChain operates entirely via its two tactile push buttons:
- Contact Mode (First Button): Instantly toggles the display to a landscape oriented digital business card. The RTC timer is bypassed in this state, keeping your contact info permanently displayed until you press the button again to resume the slideshow mode.
- Next Image (Second Button): Wakes the device, cycles to the next stored image, and puts the device back to sleep.
Power Architecture & Battery Life
The true engineering behind eChain is its commercial-grade power management, allowing it to run for weeks on a single charge.
Zero-Leak Battery Monitoring: Standard voltage dividers leak power constantly. eChain utilizes the ADC_EN (D12) MOSFET to physically connect the ADC pin for only 3 milliseconds during a reading, dropping parasitic drain to 0µA.
State-Aware Deep Sleep: The CPU, Wi-Fi radio, and ePaper controller are fully powered down 99.7% of the time, drawing at max 20µA-30µA.
Calibrated Accuracy: The battery percentage algorithm uses a 0.968 calibration factor and a 4.05V software ceiling to account for natural Li-ion resting voltages, ensuring the web dashboard and setup screen provide pinpoint accurate battery tracking.
Conclusion
"With great power comes great... battery life. — Spider-Man (probably) 😂"
At the end of the day, not every project needs to revolutionize the world or optimize your daily workflow. Sometimes, you just need a tiny screen on your backpack that displays a Minion or your favorite internet meme.
Building this brought a lot of the silly, chaotic joy back into my engineering routine, and I hope it does the same for you. If you end up building your own eChain, let me know your thoughts on it. Hope you like the project. If you want to explore more, check out my profile for related projects, and don’t forget to follow me for updates on new tutorials and advanced projects!
Licensing
To empower the maker community, the eChain firmware, layouts, and logic are released under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0).
You are encouraged to download, build, and modify this project for your own personal EDC setup, provided you credit the original author and do not use the design for commercial manufacturing or profit. For full legal details, see the GitHub repository.
GitHub Repo
Checkout the GitHub Repo For The Code And Design Files - Link