Skip to the content
PCBKitNew board
4 layers31 × 40 mmPocketStockV2, the printed circuit board in 3D

ESP32-based dual OLED stock ticker displaying real-time market data

Size
31 × 40 mm
Copper layers
4
Thickness
1.6 mm
Parts
7
Nets
16
Pads
32
Tracks, vias
29, 2
Pours
1
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
23 Mar 2026
Updated
20 Jul 2026

Overview

PocketStockV2 is an open-source printed circuit board by the2fye, from the the2fye/PocketStockV1 repository on GitHub, published under the MIT licence. It is a 4-layer board of 31 × 40 mm with 7 parts on 16 nets, routed with 29 tracks and 2 vias.

It belongs with the lEDs and displays boards of this library.

README

README.md

📈 PocketStock

A palm-sized, WiFi-connected stock ticker built from under $10 of parts. Live prices, sparkline charts, and a market clock — on your desk, off your phone.

PocketStock render

ESP32-C3 · SSD1306 OLED · 3 buttons · Finnhub API · $9.45 BOM · 100% open source


What it does

PocketStock is a tiny desktop gadget that pulls live stock quotes from the Finnhub API over WiFi and displays them on a crisp 0.96" OLED. Scroll through your watchlist, open a ticker, and get:

  • 💵 Live price, refreshed every 3 seconds
  • 📉 Change since previous close
  • 📊 Sparkline chart of the last 20 price updates
  • 🕐 Real-time clock synced via NTP
  • 🔔 Market open/closed indicator (knows NYSE hours, including the 9:30 open)

Navigation is a simple three-button menu system — up, down, select — with long-press to go back. No touchscreen, no app, no subscription.

Is it going to replace the military-grade supercomputer in your other pocket? No. But it's a dedicated, glanceable market display that doesn't buzz, doesn't distract, and doesn't try to sell you anything. It just tells you the number. (V1 runs off USB power — true pocket portability is on the roadmap.)

Oh, and there's Pong hidden in the settings menu. Because every good gadget needs a game.

Hardware

The entire build costs $9.45 in parts:

RefPartQtyCost
U1ESP32-C3 SuperMini1$6.00
U2SSD1306 OLED display, 128×64 I²C (addr 0x3C)1$3.00
SW1–SW36mm tactile push buttons3$0.45
Total$9.45

Plus a custom PCB and a 3D-printed enclosure (STLs in cad/psv1-stls). Full parts list with supplier links: hardware/bill-of-materials-psv1.csv

Everything you need to reproduce or remix the board is included: ready-to-fab gerbers in hardware/gerbers, the full KiCad project (schematic + board layout) in hardware/pcb, and a STEP model of the assembled PCB for designing your own enclosure around it.

Wiring

SignalESP32-C3 pin
OLED SDAGPIO 4
OLED SCLGPIO 5
Button — UpGPIO 6
Button — DownGPIO 7
Button — SelectGPIO 8

Buttons are active-low using the ESP32's internal pull-ups — wire each button between its GPIO and GND. No external resistors needed.

Schematic

PocketStock schematic

Full vector version: hardware/schematics/psv1-sch.pdf · KiCad source: hardware/schematics

Build it

1. Print the enclosure

Print the three STLs in cad/psv1-stls: base-v3.stl, lid-v3.stl, and button-v3.stl (×3).

2. Order the PCB

Upload the files in hardware/gerbers to your favorite fab (JLCPCB, PCBWay, OSH Park). Prefer to breadboard first? The schematic above is all you need — or open the full KiCad project in hardware/pcb to modify the board itself.

3. Flash the firmware

  1. Install the Arduino IDE and add ESP32 board support (Boards Manager → search "esp32" → install Espressif's package).
  2. Install these libraries via Library Manager:
    • Adafruit SSD1306
    • Adafruit GFX Library
    • ArduinoJson
  3. Open firmware/PocketStockV1/PocketStockV1.ino and set your own values:
cpp
const char* ssid   = "YOUR_WIFI_SSID";       // open networks supported; add a password arg to WiFi.begin() for secured ones
const char* apiKey = "YOUR_FINNHUB_API_KEY"; // free at https://finnhub.io
  1. Edit the stocks[] array to build your own watchlist — any Finnhub-supported ticker works.
  2. Select ESP32C3 Dev Module as the board, hit upload, and watch the boot logo roll.

Note: Finnhub's free tier allows 60 calls/minute. PocketStock polls every 3 seconds (20/min), so you're well within limits — but get your own free key rather than sharing one.

Controls

ActionWhat it does
Up / DownMove through menus and your stock list
Select (short press)Open the highlighted item
Select (hold ~0.7s)Go back
Up / Down (in Pong)Move your paddle 🏓

Gallery

PocketStock render — alternate angle PocketStock render — alternate angle

Repo map

text
├── cad/
│   ├── psv1-stls/    3D-printable enclosure (base, lid, buttons)
│   └── renders/      Enclosure renders
├── docs/             Architecture doc — how the firmware & hardware work
├── firmware/         ESP32-C3 Arduino sketch
└── hardware/
    ├── gerbers/      Ready-to-fab PCB files
    ├── pcb/          Full KiCad project + STEP model + board renders
    ├── schematics/   Schematic (PNG, PDF, KiCad source)
    └── bill-of-materials-psv1.csv

Roadmap

  • WiFi provisioning (no hardcoded SSID)
  • Store API key + watchlist in flash, editable from the device
  • Percent-change view and daily high/low
  • Crypto ticker support
  • Battery power + deep sleep

License

See LICENSE. Fork it, print it, mod it — and if you build one, open an issue with a photo. I'd love to see it.


Built by @the2fye · Powered by white monsters and lots of dior sausage ;)

Parts

7
QtyValueFootprintReferences
2LOGOLOGOG***, G***
1C3_SuperMIniesp_32:ESP_32_C3_SuperMiniU1
1SSD1306esp_32:SSD1306U2
1SW_ForwardButton_Switch_THT:SW_PUSH_6mmFORWARD
1SW_SelectButton_Switch_THT:SW_PUSH_6mmSELECT
1SW_backButton_Switch_THT:SW_PUSH_6mmBACK

Questions

How big is the PocketStockV2 PCB?

It measures 31 × 40 mm and has 4 copper layers, 1.6 mm thick.

What parts does the PocketStockV2 use?

7 parts. 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 PocketStockV2 KiCad files?

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

Can I use the PocketStockV2 design in my own project?

Its repository publishes it under the MIT 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

  • 4 layers32.3 × 61 mmMCL6809 PCB, the printed circuit board in 3D

    MCL6809 PCB

    MicroCoreLabs/Projects

    Ted Fried's MicroCore Labs Projects - FPGA CPU cores and emulators for the 8088, 8086, 8051, 6502, 68000, Z80, Risc-V, and also Typewriter and EPROM Emulator projects.

    7 parts534
  • 4 layers17.8 × 41 mmABSIS Pro Micro, the printed circuit board in 3D

    ABSIS Pro Micro

    jrsteensen/OpenHornet

    OpenHornet 1:1 F/A-18C Simulator Repository

    7 parts431
  • 4 layers108 × 31.8 mmSimm72 ram 8M10, the printed circuit board in 3D

    Simm72 ram 8M10

    agranlund/raven

    Homemade MC68060 + DSP56303 Atari-compatible computer. Hardware, firmware, and software stack

    7 parts87
  • 4 layers100 × 80 mmDiffpair test, the printed circuit board in 3D

    Diffpair test

    rjwalters/kicad-tools

    Standalone Python tools for parsing and manipulating KiCad schematic and PCB files

    7 parts73MIT
  • 4 layers57.9 × 26 mmMegaCD, the printed circuit board in 3D

    MegaCD

    Board-Folk/MegaCD-Main-BD

    Reproductions of main board PCBs for Sega's Mega CD/Sega CD add-on for the Mega Drive/Genesis console.

    7 parts60
  • 4 layers60 × 40 mmDemo, the printed circuit board in 3D

    Demo

    shibukawa/bdf

    BDF is a browser document-preview suite: it combines converters for many formats (Go/WASM), a browser renderer of about 23 KB gzipped, and a compact intermediate format.

    7 parts51MIT
  • 4 layers10.5 × 10.5 mmLIS2HH12, the printed circuit board in 3D

    LIS2HH12

    marsairforce/breakout_boards

    Small circuit boards to assist with breadboard prototyping with SMD packages.

    7 parts39Unlicense