Skip to the content
PCBKitNew board
2 layers36.4 × 20.3 mmMorsekey shield, the printed circuit board in 3D

Morsekey shield

mnantel/wavemorse

A snap-on shield for the Waveshare ESP32-S3-LCD-1.47B with the same footprint as the board itself (36.37 × 20.32 mm): one 3.5mm jack that serves both an iambic paddle (TRS plug) and a straight key (TS mono plug — the…

Size
36.4 × 20.3 mm
Copper layers
2
Thickness
1.6 mm
Parts
6
Nets
5
Pads
30
Tracks, vias
14, 0
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
10 Jul 2026
Updated
19 Oct 2026

Overview

Morsekey shield is an open-source printed circuit board by mnantel, from the mnantel/wavemorse repository on GitHub. It is a 2-layer board of 36.4 × 20.3 mm with 6 parts on 5 nets, routed with 14 tracks and 0 vias.

README

shield/README.md

MorseKey shield (v2)

A snap-on shield for the Waveshare ESP32-S3-LCD-1.47B with the same footprint as the board itself (36.37 × 20.32 mm): one 3.5mm jack that serves both an iambic paddle (TRS plug) and a straight key (TS mono plug — the firmware auto-detects it), an optional piezo sidetone, and female headers the ESP32 board (male pins soldered pointing down) plugs into.

The jack opens at the antenna end, its bushing protruding past the edge the same way the USB-C does at the other end. Renders: render-top.png / render-bottom.png.

Ordering (JLCPCB, PCBWay, OSH Park…)

Upload morsekey-shield-gerbers.zip to the fab's quote page. All defaults are fine: 2 layers, 1.6 mm FR-4, HASL, any color, smallest quantity (usually 5). Cost is a few dollars plus shipping.

Before ordering — the paper test: print placement-1to1.pdf at 100% scale (no "fit to page"), hold the ESP32 board's header holes over the drawing, and confirm every hole lines up. This catches any dimension error while it's still free.

Bill of materials

QtyPartDigiKey P/NNote
1Same Sky SJ1-3523N 3.5 mm TRS jackCP1-3523N-NDthrough-hole, right angle
1Same Sky CPT-1207-5LTH-T piezo transducer2223-CPT-1207-5LTH-T-NDoptional — sidetone; ø12.5 mm, 5.0 mm pin pitch, 85 dB
21×9 female header socket, 2.54 mme.g. S7007-ND (Sullins PPTC091LFBN-RC)standard 8.5 mm height
21×9 male pin header, 2.54 mme.g. S1012EC-09-ND (breakaway)solder to the ESP32 board, pins down
2M2 screw + standoff—optional — case mounting, USB end corners

Piezo alternates (same footprint): TDK PS1240P02BT (DigiKey 445-2525-1-ND, often backordered) or Same Sky CPT-1206-3TH-T (2223-CPT-1206-3TH-T-ND). Any ~12 mm two-pin piezo transducer (externally driven — not an "indicator") with ~5 mm pin spacing fits: the piezo pads are plated slots, so pin spacing anywhere from about 4 to 6 mm drops in (datasheet pitch is 5.0 ±0.5 mm, and the original round holes at exactly 5.0 mm were too tight for real parts).

Connections (all done by the PCB)

NetHeader pinGoes to
DITGPIO2jack tip
DAHGPIO3jack ring
PIEZOGPIO5piezo +
GNDboth G pinsjack sleeve, piezo −, ground pour

Paddle vs straight key: a TRS (stereo) plug = paddle on tip/ring. A TS (mono) straight-key plug grounds the ring permanently; the firmware detects this (at power-up, or after 8 s of continuous "dah") and turns the tip into a straight-key input — the status bar shows SKEY. Unplug it and paddle mode returns automatically.

Assembly

  1. Solder the male pin headers to the ESP32 board pointing down (away from the screen).
  2. Solder female sockets, the jack, and optionally the piezo to the shield top. The "USB" silk label marks the USB-C end. The jack only fits one way; the sockets are symmetric. The piezo transducer is unpolarized — if it has a "+" mark or longer lead, put it in the square pad (GPIO5) by convention.
  3. Snap the ESP32 board in, screen up, USB-C over the "USB" label.

Regenerating

generate_shield.py builds the .kicad_pcb from scratch (see its header for the KiCad python invocation), then:

sh
kicad-cli pcb drc --refill-zones --save-board --severity-error --exit-code-violations -o drc.rpt morsekey-shield.kicad_pcb
kicad-cli pcb export gerbers --check-zones -l "F.Cu,B.Cu,F.Paste,B.Paste,F.Silkscreen,B.Silkscreen,F.Mask,B.Mask,Edge.Cuts" -o gerbers/ morsekey-shield.kicad_pcb
kicad-cli pcb export drill --format excellon --excellon-separate-th -o gerbers/ morsekey-shield.kicad_pcb

Parts

6
QtyValueFootprintReferences
2MountingHole_2.2mm_M2MountingHole_2.2mm_M2H1, H2
2PinSocket_1x09_P2.54mm_VerticalPinSocket_1x09_P2.54mm_VerticalJ1, J2
1Buzzer_TDK_PS1240P02BT_D12.2mm_H6.5mmBuzzer_TDK_PS1240P02BT_D12.2mm_H6.5mmBZ1
1Jack_3.5mm_CUI_SJ1-3523N_HorizontalJack_3.5mm_CUI_SJ1-3523N_HorizontalJP

Questions

How big is the Morsekey shield PCB?

It measures 36.4 × 20.3 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Morsekey shield use?

6 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 Morsekey shield KiCad files?

From the mnantel/wavemorse repository on GitHub, at the commit this page was made from: the board is shield/morsekey-shield.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Morsekey shield design in my own project?

Its repository states no licence, so its author keeps all rights: ask mnantel before reusing the design.

Similar boards

  • 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
  • 2 layers9 × 3.6 mmOpticalEncoder, the printed circuit board in 3D

    OpticalEncoder

    adamb314/ServoProject

    Getting the most out of your hobby servo

    6 parts545