1 x Ace Centre x80 or:
x3 3.5mm Socket (or any momentary buttons)
x1 Buzzer
x1 PNP
x1 10K resistor
x1 Neopixel
Download the firmware here. Note - if you prefer C take a look at the ArduinoC branch. We wont be keeping this up to date but has most of the key features.
Pin 10 - Morse Key 1 State: Active Low (External switch)
Pin 11 - Morse Key 2 State: Active Low (External switch)
Pin 12 - Morse Key 3 State: Active Low (External switch)
Pin 5 - Buzzer State: Active Low (External switch)
USER Switch - Switch for Connection Swapping State: Active Low (On board - Feather User SW)
CONN LED(Blue) - LED indication for BLE Connection status State:Active High ("On board - Feather CONN LED - Blinking : Advertising, Not connected, Steady ON : Connected, Not advertising")
See also this Fritzing diagram
Wire it all up. Set your settings in userConfig.py
. Make sure your board is setup to run CircuitPy (itsybitsy guide and feather guide) and drag and drop the files to the CIRCUITPY disk drive. Pair your device with a compatible device (PC, Mac, Linux, iOS, Android) - and away you go.
There will be bugs. Please submit them to the issue queue.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
All the Arduino code is in the sub-directory morace subdirectory.
For the main branch (CircuitPy):
boot.py - Code that runs on boot. Note the logic in here to turn on/off filesystem wriing
code.py - The main loop
extern.py - Helper functions
morseCode.py - morse code mapping
userConfig.py - User configurable data. Should be well documented
userPinMap.py - Map your pins here
x80PinMap.py - Uses our X80 pin maps
For the ArduinoC branch:
Morse_BLE_HID.ino - Main source code file
morseCode.cpp - Library source code file for Morse Code related functions
morseCode.h - Library header file for Morse Code related functions
userConfig.h - Configuaration File for settings
userPinMap.h - Pin mapping file
We needed a BLE HID Switch->Morse system - that allowed swapping between several different devices - AND - switching between switch scanning and morse input.
Tania Finlayson - and her husband for developing (and general all round awesomeness) for building TandemMaster. Please buy one if you want to support this project
Jim Lubin - and his fab Morse archive here
Adaptive Design - who have been great recently about pushing along the morse agenda
Adafruit. For being amazing.
deeproadrash who helped immensely with a lot of the code on this project.
ATMakers - AirTalker - A really nice replica of the Adap2U sip/puff Morse code to keyboard/mouse system used by Jim Lubin. Its neat - runs on CircuitPython. The BLE libraries though arent full featured yet.
Morsel. One of the few that attempt to this project over bluetooth. Ours has a few more features than this.
Ketcha-K - morsekey project. This was a bit of a kickstart to do this project (see also this thread on reddit)
Milad Hajihassan, Makers Making Change - and the FAIO project - a neat project which has some morse functionality built in using the easymorse project. Also uses the feather. (See more at FAIO Multiplexer)
OllieBck / MorseBLEKeyboard - a project to switch between switch scanning and using Gboard.
K3NG / Arduino CW Keyer - this project has EVERYTHING you would ever need for proper morse code. We doff our cap..
f1andrew - Andrii Pavlyshyn who has done a lot of the changes to circuitPy and ironed out a lot of bugs.