E-Ink Desktop Calendar DIY Project——iiv

1. Inspiration: Why an E-Ink Desktop Calendar?

Creating a desktop E-Ink calendar not only allows you to check the date and weather, but also brings a sleek and tech-savvy aesthetic to your workspace.

2. Designing the PCB:

The PCB design is available on LCSC Open Source: Project - LCSC Open Source Hardware Platform.

(1) Software Tools

The PCB was designed using LCSC EDA Pro, a powerful and user-friendly PCB design tool that also offers free prototyping!

(2) Project Parameters

 

(3) Ordering the PCB

Export the Gerber files of the designed PCB and place an order with JLCPCB.


3. Soldering the PCB

(1) Preparing Materials

M61 module, CH340, SHT40, resistors, capacitors, inductors, etc.

(2) Soldering Process

For the e-ink display boost circuit, use high - voltage capacitors rated at least 25V, preferably 50V for a safety margin.

The 0402 - packaged components aren't closely spaced. Avoid bridging when soldering the FPC connector. After soldering, check for shorts before powering on.

 

4. Writing Code: Bringing the Calendar to Life

(1) Setting Up the Development Environment

Use the Bouffalo SDK from Ai - Thinker's repository for development. We may switch to the Bouffalo Git repository's SDK later, as it has many bug fixes and new demos.

(2) Code Logic 

In the project's user_config.h, define macros to configure Wi - Fi settings. I've added comments for clarity. The firmware and source code are in the attachment. After flashing the firmware, you can configure parameters via the serial port.

The e-ink display driver is ported from Waveshare, with drivers for two 4.2 - inch screens. Other parts are self - written, though not very standardized.

Currently, there's no other way to connect to the network. In the future, we may add a mini - program for networking and screen brushing. But you can configure parameters via the serial port at a baud rate of 2M (2000000).

Command format: [set ssid pass token per_sleep_time], e.g., [set MI - WF 1234567 ABDCDEFG 0]

We use a free weather API that gets local city weather based on network location. The weather info may not be very precise, but it's close enough.

Due to the incomplete font library, the calendar only shows statutory holidays. It displays "Workday" from Monday to Friday, "Weekend" on Saturday and Sunday, and statutory holidays by name.

If the battery is low, the battery icon in the top - left corner turns sad, with a text prompt to charge. Once you plug in the USB for charging, it shows the charging status.

Currently, the sleep power consumption isn't ideal. With a 500mA lithium battery, the standby time might be up to 10 - 15 days. After fixing two errors, the standby time is now at least 20 days. If the network connection fails or weather info retrieval fails, it retries every 120 minutes. You can modify this in the code. It's advisable to use a battery with larger capacity.

5. 3D Modeling

(1) Design Concept

To enhance the appearance of the e-ink calendar and meet the DIY activity requirements, I designed a case using Fusion 360. As a 3D printing novice, I opted for a one - piece shell to qualify for JLCPCB's free 3D printing. The parts need to be separated with a knife upon arrival. To avoid errors, the gaps are initially large but have been adjusted to be smaller in the attachment.

(2) Modeling Process

First, export the PCB model from LCSC EDA and import it into the modeling software. Create a new component for reference. For safety, I also modeled the screen.

(3) Ordering the Print

Export the 3D model as an STL file and order from JLCPCB. If you have a 3D printer, you can slice and print it directly. I've confirmed that JLCPCB offers free printing. After receiving the model, smooth the support areas with sandpaper for a better finish.

(4) Assembly

Insert the screen into the bottom slots. If the slots are too tight, use the included sandpaper to widen them.

Ensure the screen fits properly before final insertion to avoid damage.

The PCB is also inserted and secured with an M2 screw at one end. The rear cover is fixed with another screw.

As I don't own a 3D printer, I rarely use modeling software. The case design is quite basic, but you're welcome to create your own.