OK1CDJ / M5PTT
A wireless/wired push-to-talk and CW keyer footswitch for SmartSDR on iOS (and any MIDI-capable host), built on an M5Stack AtomS3 Lite.
| Part | Where | Used for |
|---|---|---|
| Top button | Top of the unit | PTT (voice mode) or keyer memories (CW mode); also mode selection at power-on |
| Status LED | Under the top button | Shows mode and connection state (see §6) |
| Grove port | Side socket | Plug in an external footswitch |
| USB-C port | Bottom | Power and/or USB MIDI connection |
An external footswitch plugs into the Grove port — signal on G1 (the yellow wire), switching to ground. Any simple momentary (normally-open) switch works.
Use the USB-C port. What you plug it into changes how it talks to SmartSDR:
| You plug it into… | The device uses | Bluetooth |
|---|---|---|
| A charger or power bank (power only) | Bluetooth LE — wireless | On |
| A computer or iPad (a real USB host) | USB MIDI — wired | Off |
This switch is automatic: with a computer or iPad connected, the device uses the wired link and turns Bluetooth off, so SmartSDR never hears the same keypress twice. Unplug it and it goes back to wireless on its own.
For normal wireless use, power it from a plain charger or battery pack — not a computer.
Stack the device onto an M5Stack Atomic Battery Base (200 mAh) for a fully untethered footswitch — no cables at all.
| Battery | 3.7 V, 200 mAh built-in LiPo |
|---|---|
| On/off | Dip switch on the base selects discharge (powers the device — normal use) or charge (tops up the battery through USB-C). The two can't run at once. |
| Indicators | Four-segment red gauge shows remaining charge; separate LED is blue while charging, green when full. |
At 200 mAh this suits short, portable sessions. For long operating periods, power from a larger USB power bank instead. Product page →
| Mode | What it does |
|---|---|
| Voice (default) | Footswitch and top button both act as push-to-talk. Hold to transmit, release to stop. |
| CW | Top button triggers CWX keyer memories by click count. Footswitch is ignored. |
The device remembers its mode across power cycles. To switch: hold the top button while plugging in power, keep it held for about a second, then release. It boots into the Morse letter R (·—·) flashed in green when it lands in CW mode — voice mode gives no special flash.
It's a momentary switch, exactly like a hand mic's PTT.
After your last click there's a short pause (∼⅓ second) while it counts, then it sends:
| Do this | Sends | Typical use |
|---|---|---|
| 1 click | CWX macro 1 | e.g. CQ |
| 2 clicks | CWX macro 2 | e.g. your call / exchange |
| 3 clicks | CWX macro 3 | e.g. a third message |
| Hold ∼½ second | CWX stop / abort | Cancel the message being sent |
Feedback on the LED: 1/2/3 white blinks confirm memory 1/2/3 was sent; one long red blink confirms abort. Clicking more than three times still just sends memory 3.
| LED | Meaning |
|---|---|
| Red | Transmitting (PTT active) |
| Green (steady) | Connected to a computer/iPad over USB, idle and ready |
| Solid blue | Voice mode — connected to SmartSDR over Bluetooth |
| Blinking blue | Voice mode — searching for SmartSDR (advertising) |
| Solid magenta | CW mode — connected to SmartSDR over Bluetooth |
| Blinking magenta | CW mode — searching for SmartSDR (advertising) |
| Morse “R” in green (at boot) | Confirms it booted into CW mode |
| White blinks (1–3) | CW memory 1/2/3 was sent |
| Long red blink | CW abort/stop was sent |
Rule of thumb: blue = voice, magenta = CW, green = wired USB, red = keying.
Connect over Bluetooth: power from a charger/power bank — LED blinks blue (voice) or magenta (CW). In SmartSDR's Bluetooth/MIDI device setup, look for M5PTT_XXXX (the suffix is unique to your unit) and connect. LED goes solid once connected.
Map the buttons in SmartSDR's Mapping Editor — all notes are on channel 1:
| Action | MIDI note | Map to |
|---|---|---|
| Voice PTT | 99 | PTT (keys on note-on, unkeys on note-off) |
| CW single click | 100 | CWX macro 1 |
| CW double click | 101 | CWX macro 2 |
| CW triple click | 102 | CWX macro 3 |
| CW long press | 103 | CWX stop / abort |
You only need to map the notes for the mode(s) you actually use.
Make sure it's powered from a charger, not a computer — on a computer it switches to USB and turns Bluetooth off. The LED should be blinking blue/magenta when it's advertising for a connection.
Look for M5PTT_XXXX. Each unit's name ends in four characters unique to it.
This shouldn't happen — the device only ever uses one link at a time. If you see it, unplug and re-power from a single source.
Remember there's a brief counting pause after your last click before the memory fires. Confirm notes 100–103 are mapped in SmartSDR and that you're in CW mode (magenta LED, "R" flash at boot).
Hold the top button while plugging in power for about a second to toggle modes; the choice is saved for next time.
If the Bluetooth link drops while transmitting, the device safely releases PTT so you're not left keyed up.
note 100note 101note 102note 103MIDI notes (channel 1), map in SmartSDR's Mapping Editor: 99 PTT · 100/101/102 CWX macros 1/2/3 · 103 CWX stop.