Skip to the content
PCBKitNew board
2 layers73 × 104.1 mmEInkTodo, the printed circuit board in 3D

E-Ink TODO List using google calendar as a data source.

Size
73 × 104.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
34
Nets
195
Pads
282
Tracks, vias
145, 0
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
28 Apr 2021
Updated
15 May 2021

Overview

EInkTodo is an open-source printed circuit board by compnski, from the compnski/eInkTodo repository on GitHub, published under the AGPL-3.0 licence. It is a 2-layer board of 73 × 104.1 mm with 34 parts on 195 nets, routed with 145 tracks and 0 vias.

It is built around the 74LS259DC. Its parts include 14 resistors, 4 connectors, 2 ICs, 1 diode and 1 transistor.

Main components

1

README

README.md

E-Ink Todo List

A mess of Arduino C++, a local python proxy and some google apps script.

Google Apps Script

This is used to get the calendar events and format into a easily parsable list. Copy the code from googleAppScript.gs into a project. Then update the calendarId with your own, deploy it as a webapp and you're in business! https://script.google.com/

todoProxy.py

I was having an awful lot of trouble connecting to google via SSL. In particular, the apps script webapp sends a few Location header redirects and my ESP32 would get stuck after following one or two. No idea why.

My fix was to set up a local proxy on my computer. This also removes the need for an SSL client, removing one more troublesome part from the equation.

Update the taskURL with the URL of your google app script webapp, and you're good to go.

The /done/ stuff is hardcoded and not ready yet, eventually it'll take the event Id to mark it complete.

Arduino code

This stuff is a huge pile of spaghetti C++. It's been maybe 10 years since I last wrote anything with C++ and it shows. I've also not done too much Arduino, so have no idea how to setup the file structure.

For this, symlink todo.cpp into your Arduino folder as anything with a .ino file extension. Then add your SSID/password + taskURL. (Or create a secrets.h and copy/symlink that over too).

Then symlink the two library folders, HttpClient and TodoList into ~/Arduino/libraries, they should be found automatically.

You'll also need the ESP32 SDK and the waveshare SDK -- I used instructions from the waveshare wiki -- https://www.waveshare.com/wiki/7.5inch_HD_e-Paper_HAT_(B).

Troubleshooting

The wifi only seems to connect like 1 in 100 times. It worked great in the prototype step, now, not so much. Good luck!

TODO

  1. Fetch temp / weather ?
  2. Look into adding lines across for style
  3. Checkmark for completed tasks
  4. Red color for overdue tasks
  5. Read buttons for done
  6. Flash LED on overdue
  7. Fix spacing and all that
  8. Speaker / sound
  9. Neopixels on top
  10. Korean word of the day?? (First todo?)

Parts

34
QtyValueFootprintReferences
11330Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14
4BREADBOARDConnector_PinHeader_2.54mm:PinHeader_1x36_P2.54mm_VerticalJ2, J3, J4, J5
3MountingHoleMountingHole:MountingHole_2.7mm_M2.5H1, H3, H4
2RResistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR2, R3
1180Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_HorizontalR1
1330Resistor_THT:R_Array_SIP9RN2
174LS259Package_DIP:DIP-16_W7.62mm_LongPadsU1
1BREAD 3v3Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Vertical3v3
1BREAD GNDConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalGND1
1BuzzerBuzzer_Beeper:MagneticBuzzer_CUI_CST-931RP-ABZ1
1Conn_01x02Connector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_HorizontalPOWER_CONN1
1Conn_01x08Connector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_HorizontalLED_CONN1
1Conn_01x08Connector_PinHeader_2.54mm:PinHeader_1x11_P2.54mm_HorizontalSWITCH_CONN1
1DDiode_THT:D_DO-41_SOD81_P10.16mm_HorizontalD6
1E-InkScreenConnector_PinHeader_2.54mm:PinHeader_1x08_P2.54mm_HorizontalEINK_CONN1
1Heltec_Wifi_Kit_32_V2schematics:Heltec_WiFi_Kit_32U2
1Q_NPN_BCEPackage_TO_SOT_THT:TO-92_HandSolderQ1
1SW_SPSTConnector_PinHeader_2.54mm:PinHeader_1x02_P2.54mm_VerticalSW1

Questions

How big is the EInkTodo PCB?

It measures 73 × 104.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the EInkTodo use?

34 parts, built around the 74LS259DC. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the EInkTodo KiCad files?

From the compnski/eInkTodo repository on GitHub, at the commit this page was made from: the board is schematics/eInkTodo.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the EInkTodo design in my own project?

Its repository publishes it under the AGPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 2 layers365.1 × 203.2 mmDIAG, the printed circuit board in 3D

    DIAG

    Nakazoto/CenturionComputer

    This is just a simple backup of all the files related to the Centurion that I have stored on my HD. The Wiki itself has far more in-depth information about the Centurion and it's individual cards.

    150 parts172
  • 4 layers330.2 × 215.9 mmRetroii, the printed circuit board in 3D

    Retroii

    jonthomasson/retroii

    Retro ][ is a 6502 based computer based off of the Apple ][.

    302 parts33
  • 2 layers188 × 193 mm6800sbc, the printed circuit board in 3D

    6800sbc

    jefftranter/6800

    Code related to the Motorola 6800 microprocessor.

    164 parts32
  • 4 layers194.5 × 188.6 mmMyCpu, the printed circuit board in 3D

    MyCpu

    fortinsylvain/MyCpu

    Home brew CPU Hardware with 1-bit ALU implementation using 74LSxx, a micro-code and assembler coded in C#.

    162 parts18MIT
  • 2 layers236.8 × 169.8 mmTK2000, the printed circuit board in 3D

    TK2000

    clemarfolly/Microdigital-TK2000

    Reprodução da PCB do TK-2000 da Microdigital, clone do Micro-Professor MPF-II

    212 parts17
  • 2 layers364 × 203 mmCPU6S, the printed circuit board in 3D

    CPU6S

    Meisaka/CenMiniCom

    Centurion Minicomputer Schematics

    240 parts8
  • 2 layers239.6 × 239.9 mmTK3000, the printed circuit board in 3D

    TK3000

    clemarfolly/TK3000

    Réplica do Microdigital TK3000

    329 parts7GPL-3.0
  • 2 layers244 × 244 mmCortexPC, the printed circuit board in 3D

    CortexPC

    danwerner21/CortexPC

    Powertran Cortex clone. PC formfactor, based on Stuart Conner's MiniCortex

    167 parts7