Week 18: Project Development

Planted June 8, 2026

Week 18: Project Development

Week 18: Project Development

Table of contents

June 8, 2026

Project Development: Pockety

Week 18 status for my final project Pockety - pocket e-ink thing with Pico 2 W, custom PCB, MicroPython. BOM, firmware, photos, and assembly notes are on the final project page and project-dev so I am not copying all of that here.

Completed Tasks

Enclosure design and fabrication

  • 3D-printed enclosures from the early chunky box through pocket v2 to version 3 (May integration in Week 15).
  • Magnetic e-ink cap and top; M2 screws into brass inserts in the top.
  • Submodule parts: Gyro-Stylus housing, EngelBart ChordBoard top (PLA), bottom (3 mm wood), ecoflex silicone buttons.

Electronics design and production

  • Custom interconnect PCB in KiCad - fabbed, populated, sockets for Pico 2 W, SPI/I2C/GPIO/power broken out.
  • Waveshare 2.13 inch e-ink, SSD1306 OLED, ALPS EC11 encoder, IC184 button, 350 mAh LiPo, TP4056 charger on the board.
  • Submodule PCBs: EngelBart ChordBoard (five pads) and Gyro-Stylus (XIAO footprint, tact switches, LED).

System integration

  • Full assembly in Week 15: encoder shaft, cable routing, PCB held by OLED guide rails, magnets, screws.
  • LiPo -> charger -> board power path checked on the bench.

Software

  • Custom epd_driver.py - SPI, busy wait, landscape framebuf, rotate to native panel RAM, full/partial refresh.
  • Apps on the same stack: calendar_ui.py, eink_reader.py, flashcards_ui.py, weather_ui.py (Open-Meteo over Wi-Fi).
  • Week 14 canvas server: browser packs 250x122 bitmap, POST to /draw, /clear, /status on the Pico W.

Testing and debugging

  • Bench tests for e-ink bring-up, partial refresh cadence, encoder long-press/double-click, weather HTTPS fetch.
  • Re-crimped screen cables when they turned out too long for the pocket (Week 15 notes - eight leads, ~12 hours, my hands hate crimping).
  • Encoder demo video and smoke tests for each app on the integrated unit.

Documentation and presentation

Remaining Tasks

Integration

  • One launcher/home screen so I do not have to reboot into a different .py for each app.
  • To-do and timer apps - still on the original list, not on the device yet.
  • Power pass: sleep between use, Wi-Fi only when needed, real battery numbers for demo day.

Mechanical

  • CNC wood external casing from Week 17 - cut and assembled as an alternate shell for the pocket.
  • Proper harness for ChordBoard and Gyro-Stylus so they plug into the main unit without a rat’s nest.

Documentation

  • Short quick-start (charge it, which app does what, how to push a drawing from the browser).
  • Clips per app, not just the encoder demo on the final project page.

What Has Worked?

  • Magnetic e-ink cap + screwed top - I can open the shell to fix cables without destroying the print.
  • EPD driver from the datasheet actually runs; forcing a full refresh every N partials keeps ghosting tolerable.
  • Encoder + button is enough for calendar, reader, flashcards, and weather - no touch screen.
  • OLED for status/menus so the slow e-ink panel stays on reading, not chrome.
  • Week 14 browser -> HTTP -> e-ink path is useful for sleep screens and one-off bitmaps.
  • Pocket v3 is thinner and less embarrassing than the box prototypes.
  • Weather works when Wi-Fi cooperates (urequests + Open-Meteo).

What Hasn’t Worked?

  • PCB layout took about twice the time I planned - sockets, ground pours around pads, DRC/ERC loops.
  • Crimping in a tight pocket (see Week 15 - 12 hours for eight cables).
  • No vendor driver matched my wiring; e-ink bring-up was manual.
  • Partial refresh tuning is per-app (_PARTIALS_BEFORE_FULL not one number for everything).
  • School/event Wi-Fi and captive portals break weather fetch sometimes.
  • Early enclosures were too big and ugly; that ate weeks.
  • No OS layer - you boot one script at a time.

Questions to be Resolved

  • How hard can I push deep sleep on the Pico 2 W before encoder wake or Wi-Fi reconnect gets annoying?
  • Is 350 mAh enough for a real demo (weather pull + hopping between apps), or do I need a bigger cell?
  • Launcher on e-ink, OLED, or split?
  • Writer-deck text editing this cycle or v2?
  • One connector standard for submodules without making the pocket fat?

Lessons Learned

Fab Academy version of make-fail-learn. I tried to design in parallel with the 20-week schedule instead of dumping everything at the end, so scope kept bouncing between “small pocket utility” and “phone but e-ink.”

PCB work needs more calendar than I gave it. Schematic is quick; layout, fab, and debug are not. The magnetic cap was worth it - opens fast, hides the guts, easier to debug than a glued lid.

Reusing one EPD class, one InputManager pattern, and the same partial-refresh skeleton across apps saved time. Week 14 showed /status, /draw, /clear is enough to iterate bitmaps without reflashing for every test image.

Integration is not polish. Cable length, strain relief, magnet alignment, screw order - that is the product. The Week 15 assembly log (crimp marathon included) is documentation, not embarrassment.

Future Plans

  • Thinner walls, better battery fit; maybe smaller e-ink and a PCB respin if it is worth it.
  • Writer deck - plain-text editor, minimal UI, the original distraction-free writing goal.
  • Single boot menu for calendar, reader, flashcards, weather, canvas.
  • Finish ChordBoard + Gyro-Stylus harness.
  • Measure current per app; sleep harder; Wi-Fi refresh on a timer.
  • To-do and timer to match the original pitch.
  • Refine the CNC wood shell from the Week 17 idea (finish quality, ergonomics).
  • Reuse the canvas + MicroPython stack as a Fab teaching example for browser-to-display.

I want to keep working on Pockety after Fab Academy - carry it, break it, fix it, v2 the PCB.