Skip to the content
PCBKitNew board
2 layers75.5 × 20 mmPotentiometer, the printed circuit board in 3D

Potentiometer

ajackson2681/codex1

The Codex is an attempt at an open-source, distraction-free writing device inspired somewhat by the AlphaSmart Neo (at least the display was).

Size
75.5 × 20 mm
Copper layers
2
Thickness
1.6 mm
Parts
6
Nets
3
Pads
14
Tracks, vias
3, 0
Pours
2
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
3 Apr 2026
Updated
1 Aug 2026

Overview

Potentiometer is an open-source printed circuit board by ajackson2681, from the ajackson2681/codex repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 75.5 × 20 mm with 6 parts on 3 nets, routed with 3 tracks and 0 vias.

It is built around the PTA4543-2010CPB103. Its parts include 1 resistor and 1 connector.

Main components

1

README

README.md

Codex

The Codex is an attempt at an open-source, distraction-free writing device inspired somewhat by the AlphaSmart Neo (at least the display was). The Codex pairs a 40x4 character LCD with USB HID keyboard support, and SD card storage. For a more in-depth summary/breakdown, you can visit the page I have on my website: Codex Web Page.


Project Status

Codex is under active development. Current state:

Working:

  • LCD driver
    • Originally used a derivation of the Arduino LiquidCrystal library (noted below under Libraries Used and Acknowledgements). I have since written a custom one from the ground up specific for this project.
  • USB HID keyboard input via TinyUSB
  • Gap buffer with insert/delete/backspace
  • Character, word, line, frame, and document navigation
  • Frame buffer rendering (LCD stays in sync with cursor position)
  • SD card read/write (FatFs via no-OS-FatFS-SD-SPI-RPi-Pico)
  • Document save/load
  • File selection on boot
  • Tab handling (inserted as two spaces)
  • Home/End at line, frame, and document scope
  • Card detect

In progress / planned:

  • Keyboard shortcut finalization
  • Save new document/give file name
  • PWM backlight brightness control (potentiometer on one of the analog pins + transistor)
  • Rev 2+ PCB: LiPo + boost converter, switchable external/battery power input, finalized sockets for ribbon cables/harnesses
  • Final Enclosure (currently a wedge shape)
  • Documentation: build guide, BOM, update procedure, etc.

Maybes

  • Ability to change file after startup

Explicitly out of scope (for now):

  • Text selection / clipboard
  • Undo/redo
  • Rich text or formatting of any kind

Hardware

Bill of Materials (high level)

ComponentNotes
Raspberry Pi Pico (RP2040)Mounted via socket currently, likely castellated edge pads on the final PCB
40x4 ST7066U character LCDDual controller (EN1/EN2), 4-bit mode
USB OTG converterUSB port for keyboard
SD card socketSPI mode
Slide potentiometers (x2)Contrast (to LCD V0) and brightness (to analog GPIO)
BC547 NPN transistorPWM backlight switching
TP61090 boost converterLiPo → 5V (Rev 2+)
MCP73871 charge controllerLiPo charge circuit (Rev 2+)
L7805 linear regulatorBench/external power path (Rev0-Rev2, won't be on Rev3)
SPDT switchSelects external 5V vs. LiPo/boost power source (Rev2 only), acts as power switch (Rev0 & Rev1)
LiPo cell(Rev 2+)

PCB Revisions

RevPurposeStatus
BreadboardInitial validation: LCD, USB host, SD cardDone
Rev 0First PCB, puts the breadboard on a dedicated PCB, adds a power switch, adds filtering capacitorsDone
Rev 1Fixes mistakes from Rev0. Sill uses socketed footprints for SD card and Pico. Adds breakout pins for contrast/brightness potentiometers, adds PWM backlight transistor.Validating
Rev 2Dedicated SD card slot, finalized sockets for IDC, potentiometers, and LED power. Pico footprint will allow sockets or solder directly via castellated holes. 5v linear regulator will remain, with an optional switch for swapping to using a 5v direct power source (planned as a Powerboost 1000 module).Designing
Rev 3Removal of 5v linear regulator. Move to all SMD components for assembly by fab house.Planned
???Anything beyond Rev3 will only happen if I make dumb mistakes (and I probably will).

Firmware

Built with the Raspberry Pi Pico SDK

Libraries used

  • Originally used a derivation of LiquidCrystal440, which is in turn a derivation of the Original Arduino Library.
    • Now uses a driver that is purpose-written for this device
  • TinyUSB - USB HID host
  • no-OS-FatFS-SD-SPI-RPi-Pico - SD card / FAT filesystem (submodule)

Recovery

If a firmware update fails or the device won't boot, hold BOOTSEL while connecting the Pico to a computer via USB. It will appear as a USB mass storage device. Then drag and drop a known-good .uf2 to restore it. This is a hardware bootloader built into the RP2040 and cannot be bricked by firmware alone.


Enclosure

Designed in FreeCAD. It has a sort of wedge factor with the 40x4 LCD forming most of the angled top face. Slide potentiometers for brightness and contrast are mounted on the front, with the the keyboard USB port and SD card slot to the right of those. FCStd files are located 3dmodels/ (I'm just committing the whole blob since I don't really know a better way to do it for freecad files in git).

enclosure


Keyboard Compatibility

The Codex should work with any standard USB HID keyboard, both wired or via a wireless USB dongle. The Codex does not support bluetooth keyboards.

Recommended

For a compact keyboard, a 65% or 75% layout is recommended for dedicated Home/End/Page Up/Page Down/Arrow keys without needing Fn combinations. Otherwise, pretty much whatever you're most comfortable with. I use an Epomaker TH80SE, which is a 75% keyboard. However, that doesn't have a dedicated "End" key (it's FN+PgDown). Something like the Epomaker x Aula F65 or Epomaker x Aula F75 could maybe be good choices that include all the buttons.


Keyboard Shortcuts (WIP)

ShortcutPrimary ActionSecondary Action
Arrow keysMove cursor (character / line)
Ctrl + ←/→Move by word
Ctrl + ↑/↓Jump to start/end of frameShift view by one full frame if at frame boundaries
Page Up/Page DownShift view by one full frame
Home / EndStart/end of current line
Ctrl + Home/EndJump to start/end of current frame
Ctrl + Shift + Home/EndJump to start/end of document
TabInsert two spaces
Ctrl + SSave current document to SD card
Ctrl + Shift + IOpen document info (filename, size, etc)

License

The Codex uses a split-license approach:

  • All non-third-party code: GPL v3
  • Hardware (pcb/) and Enclosures (3dmodels/): CERN-OHL-S v2

All third-party libraries retain their original licensing:

  • TinyUSB: MIT
  • no-OS-FatFS-SD-SPI-RPi-Pico Apache 2.0

See the LICENSE file in each directory for full text.


Acknowledgments


Contributing

The Codex is a work in progress and a personal project, but issues, ideas, and pull requests are welcome. If you build one, I'd love to hear about it.

Parts

6
QtyValueFootprintReferences
1Conn_01x03Connector_JST:JST_XA_B03B-XASK-1_1x03_P2.50mm_VerticalJ1
1PTA4543-2010CPB103PTA4543_2010CPB103:TRIM_PTA4543-2010CPB103R2

The 2 most common of 6 parts.

Questions

How big is the Potentiometer PCB?

It measures 75.5 × 20 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Potentiometer use?

6 parts, built around the PTA4543-2010CPB103. 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 Potentiometer KiCad files?

From the ajackson2681/codex repository on GitHub, at the commit this page was made from: the board is pcb/pot_module/potentiometer.kicad_pcb and its schematic pcb/pot_module/potentiometer.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Potentiometer design in my own project?

Its repository publishes it under the GPL-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).

More from ajackson2681/codex

4
  • 2 layers99.7 × 48.3 mmTexteditor, the printed circuit board in 3D

    Texteditor

    ajackson2681/codex

    The Codex is an attempt at an open-source, distraction-free writing device inspired somewhat by the AlphaSmart Neo (at least the display was).

    18 parts1GPL-3.0
  • 2 layers99.7 × 48.3 mmTexteditor, the printed circuit board in 3D

    Texteditor

    ajackson2681/codex

    The Codex is an attempt at an open-source, distraction-free writing device inspired somewhat by the AlphaSmart Neo (at least the display was).

    17 parts1GPL-3.0
  • 2 layers118.1 × 43.2 mmTexteditor, the printed circuit board in 3D

    Texteditor

    ajackson2681/codex

    The Codex is an attempt at an open-source, distraction-free writing device inspired somewhat by the AlphaSmart Neo (at least the display was).

    11 parts1GPL-3.0
  • 2 layers26.3 × 18 mmUsb daughter, the printed circuit board in 3D

    Usb daughter

    ajackson2681/codex

    The Codex is an attempt at an open-source, distraction-free writing device inspired somewhat by the AlphaSmart Neo (at least the display was).

    6 parts1GPL-3.0

Similar boards

  • 2 layers119.6 × 106.5 mmTapeLooper MainBoard, the printed circuit board in 3D

    TapeLooper MainBoard

    TheSlowGrowth/TapeLooper

    A digital tape looper module for Eurorack or standalone use, built on the Daisy Seed.

    243 parts10
  • 2 layers18.5 × 11.1 mmSwitch, the printed circuit board in 3D

    Switch

    byrantech/laptop

    anyon_e, a highly integrated, high end, open source laptop. Attempt the impossible.

    6 parts4.3kMIT
  • 2 layers14.6 × 33 mmBrain board SD Card 1, the printed circuit board in 3D

    Brain board SD Card 1

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    6 parts1.2k
  • 2 layers9 × 9 mmDpoint, the printed circuit board in 3D

    Dpoint

    Jcparkyn/dpoint

    Open-source digital stylus using camera tracking and inertial measurements

    6 parts1.1kMIT
  • 2 layers51.5 × 16.6 mmMicroswitchXY Endstop, the printed circuit board in 3D

    MicroswitchXY Endstop

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    6 parts1.1kGPL-3.0
  • 2 layers21.9 × 76.7 mmAmiga External, the printed circuit board in 3D

    Amiga External

    hoglet67/RGBtoHDMI

    Bare-metal Raspberry Pi project that provides pixel-perfect sampling of Retro Computer RGB/YUV video and conversion to HDMI

    6 parts1kGPL-3.0
  • 2 layers88.9 × 50.8 mmBusinesscard, the printed circuit board in 3D

    Businesscard

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    6 parts915
  • 2 layers20.3 × 15.2 mmL0 RGB led, the printed circuit board in 3D

    L0 RGB led

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    6 parts546MIT