

When using the keyboard the keys are pushed on the right side of the displayĪnd stored in a buffer. Speed can be adjusted in WPM or using Farnsworth WPM. While transmitting with a keyer the time intervals of theĬlicks are used to decode in real time what is transmitted. They are plugged into the stereo 3.5mm jack and the dit/dah lines can also be Straight key, Bug, Single paddle, Iambic A/B and Ultimatic. In addition to USB keyboards all of the following keyers are supported: Leaner on the resources) task notifications. There are no mutexes or semaphores, instead I'm using the much faster (and Implementation cannot handle static allocation. The memory allocation is dynamic but this is only because the CubeMX USB host Pre-emption just after the hardware initialization. The program uses FreeRTOS and starts a few equal priority threads with no The DSP sub-folder is a trimmed down version of theĬMSIS DSP Library (v1.9.0) which is used to fast compute trigonometric The only relevant files are in the Core sub-folder, all the other are

I'm using Rowley Crossworks for development but the Makefile and linker ld fileĬan be adapted for GCC only development. Use the command bellow to program your device. While keeping the Boot0 button pressed reset the CPU and this willĮnumerate as a DFU device. To program the firmware unplug the keyboard and connect the CPU with an USB-C cable RAM but there is still plenty of memory available both in Flash and in RAM. The decoder uses a significant portion of the So let me know if you want any other feature added. This version (written from scratch) completely suits my needs
LINUX MORSE DECODER SERIAL
This allows the use of a SPI serial flash chip soldered on the back of the F401 module if more storage is needed (like animations or other graphics) The CS line is shared with the 16×2 LCD enable line since one uses one or another. I've added a footprint for an SPI display.If you only write to the display (which is the case) then the LCD can be powered at 5V while the CPU is driving it with 3.3V By soldering an ICL7660 voltage doubler on the back of the LCD this can still be powered at low voltages and get a good contrast but then you loose the ability to adjust the contrast. With 3.3V the contrast needed just a tad more even with the pot completely turned to Gnd level. LCD is now powered from 5V instead of 3.3V.The PCB above is a second iteration of this project. Only one USB interface and it will conflict with the USB keyboard. To use a USB-C cable without data lines (just 5V and Gnd) because the CPU has The CPU module from a power bank if you want to use it portable. Alternatively the device can be powered from the USB-C connector of I also put a drop of nail polish to permanently fix the output Module needs to be adjusted for a 5V output prior to soldering all theĬomponents. Power thanks to the GW1584 switching supply module. The device can be power from any 8-20V power supply and it is not wasting any All the components are through-hole or modules and are easy to solder.
LINUX MORSE DECODER CODE
The I2S microphone will capture the ambient sound, apply a FFT transform and decode any captured Morse code (the display is split in transmit/decode mode).Attack and decay envelopes of the sound will prevent popping noises. The CW tone will be synthesized and the speaker will generate a pure sine wave which could be directly fed to the audio input or microphone of a SSB transceiver.Connection and control from a computer is still possible via the USB-C connector present on the F401 module.The LCD allows parameter setting and the unit operates independent of computers.Typed keys will also be displayed on the LCD. It can be a USB host so it will support modern (USB) computer keyboards.This design uses a modern Cortex-M4 84MHz processor with hardware floating point unit and lots of RAM.rotary encoder, buttons, switching supply, opto-couplers.a 16×2 alphanumeric or a 128×64 graphic LCD.an I2S speaker and up to 3W amplifier (MAX98357A).a BlackPill F401 module (which is most of the time cheaper than an Arduino board).Paddle but has only a very limited decoder as an option.īy taking advantage of cheap modules available on Aliexpress I propose theįollowing schematics for a BOM of around 15$ The Arduino platform and can be operated with a PS/2 keyboard or a Iambic There is a similar more mature nanoKeyer project which is a CW keyer based on Receiving) and I wanted something more sophisticated as an aid. Module because I'm not very good at Morse code (neither transmitting nor I've started my own CW Keyer/Decoder project based on a BlackPill STM32F401
