Skip to the content
PCBKitNew board
2 layers100 × 50 mmTeensyKeyerShield, the printed circuit board in 3D

TeensyKeyerShield

softerhardware/CWKeyer15

CW Keyer for Teensy 4.0

Size
100 × 50 mm
Copper layers
2
Thickness
1.6 mm
Parts
99
Nets
85
Pads
351
Tracks, vias
740, 99
Pours
2
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
18 Oct 2021
Updated
25 Mar 2025

Overview

TeensyKeyerShield is an open-source printed circuit board by softerhardware, from the softerhardware/CWKeyer repository on GitHub. It is a 2-layer board of 100 × 50 mm with 99 parts on 85 nets, routed with 740 tracks and 99 vias.

It is built around the MOCD217R2M, BLM18BD252SN1 and SP0503BAHTG. Its parts include 39 capacitors, 14 resistors, 12 connectors, 5 inductors and 3 ICs. It belongs with the audio and music boards and the NXP (LPC, Kinetis, i.MX RT) boards of this library.

Main components

3

README

README.md

CW Keyer for the Hermes-Lite and other SDR software

This project is a CW keyer for amateur radio. The hardware connects to a PC with USB. It then appears as an audio device for radio sound output and microphone input. It is also a Midi device to signal key up/down to the PC software, and a serial device for a connection to logging or other software on the PC. It is designed for the Hermes-Lite 2.0 or other SDR software. The radio sound is sent to the keyer and the keyer generates a sidetone, mixes it with the audio and sends it to the headphones or speaker. The sidetone has zero delay and is suitable for high speed CW. The keyer can also be used with a regular analog radio by using the key and PTT outputs. This project is currently a DIY project with instructions below for those who feel comfortable with some light soldering and Arduino programming.

Hardware

The hardware consists of a carrier board as shown below and a Teensy 4 microcontroller. The Teensy can be purchased from Teensy or from sparkfun, adafruit, mouser, digikey or amazon. Make sure to order the Teensy 4.

SofterHardwareCWKeyer

Software

Keyer software must be loaded into the Teensy 4 microcontroller. The Teensy 4 is programmed via a usb connection to a host computer. First, download and install the Teensy loader application for your operating system as described on this page. Then start the teensy application. Press the programming button on the Teensy and the teensy app will change to show a picture of the board. Then select the ".hex" program file, select "program" and then "reboot".

There are currently two keyer programs available, the "hasak" and the "TeensyWinkeyEmulator". Click on the "firmware" link above, and click through the directories until you find the hex file you want. The file will appear as a table of numbers with a "Raw" button on the upper right side. Right click the Raw button and select "Save link as". Make sure the file name ends in ".hex". Save the hex file and use it to program the Teensy.

Ctrlr

TBD: Basic description, download and use instructions for Ctrlr MIDI control panel.

Software Development

To write your own keyer software or to contribute to software development first clone this repository. This git repository uses several submodules to collect various projects into a single repository. You must initialize submodules when intially cloning:

git clone --recurse-submodules git@github.com:softerhardware/CWKeyer.git

After that, also be sure to pull updates from submodules:

git pull --recurse-submodules

You can find more details about how to work with git submodules on the internet.

Teensy Libraries

Current development is done using Arduino IDE 1.8.19 and Teensyduino 1.56. Please make sure those are installed.

Updated libraries are required for glitchless 48kHz audio with the CW keyer hardware. These libraries are provided in this git repository. An easy way to use these libraries is to add symbolic links to the new libraries from the arduino IDE install. This is described below for Linux and MacOS systems.

Be sure to select the "Teensy 4.0" board in the Tools-->Boards-->Teensiduino menu, and to select the "Serial + Midi + Audio" USB model in the Tools-->USB type menu, otherwise compilation will fail.

Install teensy library update for linux:

  1. cd arduino-1.8.19/hardware/teensy/avr
  2. rm -rf cores (This must be removed or moved outside of the arduino-1.8.19 area otherwise arduino will still pickup this code)
  3. ln -s /home/shaynal/CWKeyer/libraries/teensy/cores . (Substitute the path for your local git pull of the CWKeyer repository)
  4. cd libraries
  5. rm -rf Audio (See step 2 comments)
  6. ln -s /home/shaynal/CWKeyer/libraries/teensy/Audio . (See step 3 comments)
  7. ln -s /home/shaynal/CWKeyer/libraries/teensy/CWKeyerShield . (See step 3 comments)

Install teensy library update for MacOS:

(Added by DL1YCF. Note this is best done from the "terminal" app, then this is very similar to the linux case).

All the libraries are inside the Teensyduino "app" file bundle (which is a directory tree) /Applications/Teensyduino.app. Locate a sub-folder called "Audio", this will point you to the libraries for the Teensy. Normally this is located in

/Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr/libraries

You can copy the "Audio" folder within that folder to a safe place (or just delete it), and do the same to the "cores" folder one step higher, that is, the "cores" folder within

/Applications/Teensyduino.app/Contents/Java/hardware/teensy/avr

Then proceed as in the linux case, that is, add a symbolic link named "cores" in the .../teensy/avr folder and two symbolic links called "Audio" and "CWKeyerShield" in the .../teensy/avr/libraries folder, that point to the directories "Audio", "cores" and "CWKeyerShield" where you have placed them after down-loading from this repository.

Parts

99
QtyValueFootprintReferences
1233pFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC13, C14, C18, C19, C20, C21, C23, C24, C36, C37, C38, C39
12Ferrite_Bead_SmallResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderFB1, FB2, FB3, FB4, FB5, FB6, FB7, FB8, FB10, FB11, FB12, FB13
110.1uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC2, C3, C4, C5, C10, C25, C26, C27, C28, C33, C35
747uFCapacitor_SMD:C_1206_3216Metric_Pad1.33x1.80mm_HandSolderC1, C6, C7, C8, C12, C22, C34
6AudioJack3_SwitchTRTeensyKeyerShield:STEREO_TRSJ5, J6, J7, J8, J9, J12
410nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC29, C30, C31, C32
415uHInductor_SMD:L_1210_3225Metric_Pad1.42x2.65mm_HandSolderL1, L2, L3, L4
425KPotentiometer_THT:Potentiometer_Piher_T-16H_Single_HorizontalRV1, RV2, RV3, RV4
4Conn_01x02Connector_JST:JST_EH_B2B-EH-A_1x02_P2.50mm_VerticalJ1, J2, J3, J4
4DNIResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR8, R9, R12, R13
4TestPoint_AltTeensyKeyerShield:MHMH1, MH2, MH3, MH4
31uFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC9, C11, C15
3470Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR10, R11, R14
347KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR3, R6, R7
24.7KResistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR1, R2
2470nFCapacitor_SMD:C_0603_1608Metric_Pad1.08x0.95mm_HandSolderC16, C17
2TestPointTestPoint:TestPoint_Pad_D1.0mmTP1, TP2
133Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR4
1680Resistor_SMD:R_0603_1608Metric_Pad0.98x0.95mm_HandSolderR5
1BLM18BD252SN1Inductor_SMD:L_0603_1608Metric_Pad1.05x0.95mm_HandSolderL5
1Conn_01x04Connector_JST:JST_PH_B4B-PH-K_1x04_P2.00mm_VerticalJ10
1Conn_02x03_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x03_P2.54mm_VerticalJP1
1Conn_02x05_Odd_EvenConnector_PinHeader_2.54mm:PinHeader_2x05_P2.54mm_VerticalJ11
1MEMSMICTeensyKeyerShield:MEMSMICMIC1
1MOCD217R2MPackage_SO:SOIC-8_3.9x4.9mm_P1.27mmU2
1OSHW-logo_silkscreen-front_2mmTeensyKeyerShield:OSHW-logo_silkscreen-front_2mmG***
1SP0503BAHTGPackage_TO_SOT_SMD:SOT-143D1
1Teensy4.0TeensyKeyerShield:Teensy40U3
1WM8960Package_DFN_QFN:QFN-32-1EP_5x5mm_P0.5mm_EP3.45x3.45mm_ThermalViasU1

Questions

How big is the TeensyKeyerShield PCB?

It measures 100 × 50 mm and has 2 copper layers, 1.6 mm thick.

What parts does the TeensyKeyerShield use?

99 parts, built around the MOCD217R2M, BLM18BD252SN1 and SP0503BAHTG. 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 TeensyKeyerShield KiCad files?

From the softerhardware/CWKeyer repository on GitHub, at the commit this page was made from: the board is hardware/teensy_4p0_shield/TeensyKeyerShield.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the TeensyKeyerShield design in my own project?

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

Similar boards

  • 2 layers100 × 100 mmControl, the printed circuit board in 3D

    Control

    mamaheux/CNC

    160 partsMIT
  • 4 layers210 × 148 mmFibel2, the printed circuit board in 3D

    Fibel2

    nikolozka/Fibel2

    Repository of hardware design files Jetson Orin based Fibel

    514 parts
  • 4 layers99 × 53.3 mmPSLab, the printed circuit board in 3D

    PSLab

    fossasia/pslab-hardware

    PSLab Hardware Design and Schematics https://pslab.io

    199 parts1.7kApache-2.0
  • 4 layers85 × 56 mmPslab mini, the printed circuit board in 3D

    Pslab mini

    fossasia/pslab-mini-hardware

    PSLab Mini Hardware https://pslab.io

    182 parts1.2kApache-2.0
  • 4 layers55 × 14.7 mmMinCab, the printed circuit board in 3D

    MinCab

    merocle/mincab

    small carrier board for Raspberry Pi CM4

    41 parts180CC-BY-SA-4.0
  • 2 layers145 × 165 mmBreakpanel, the printed circuit board in 3D

    Breakpanel

    monero-project/kastelo

    The Sekura Monero Hardware Wallet

    690 parts115
  • 4 layers60 × 40 mmInkTalk, the printed circuit board in 3D

    InkTalk

    FeralFirmware/TailTalk

    A modern async user space AppleTalk stack with Rust + Tokio

    66 parts103GPL-3.0
  • 6 layers203 × 151.8 mmPDNode Baseboard, the printed circuit board in 3D

    PDNode Baseboard

    DvidMakesThings/HW_PDNode-600-Pro

    The PDNode-600 is a professional-grade, 600W USB Power Delivery Unit designed specifically for compact 10-inch rack systems, targeting embedded developers, homelab enthusiasts, test benches, and smart infrastructure.

    236 parts86AGPL-3.0