Morse Keyer Project with Arty A7

Recently we came across a very intresting project via Digilent Social that involved using an Arty A7 to make a Morse code keyer!

Hardware engineer, and dedicated Ham Radio operator Søren Kjærsgaard, said the inspiration for this project came from his desire to build a simple keyer that had the right timing and “feel” when using the paddles.  However he had very little experience with the world of FPGA, so he looked around the internet for similar projects. He soon found Jim Brady’s Spartan 3 keyer from 2014.

After examining the project, he figured he would try to do something like the above, but maybe a little bit simpler. The final keyer is a state machine which utilizes counter to implement the strict timing rules involved in Morse code. He expands on his design below:

I’ve implemented a couple of different clocks: 1) The keyer main clock, defining the transmission speed, 2) A faster clock
to implement a paddle (button) debounce and 3) A clock to generate the tone heard in the speaker.
Oh, and actually I am using the debounce clock to secure 50% duty cycle on those very bright tricolor LEDs.

He reports that the final project achieved his goals of creating a professional “instrument” feel, and that the timing is just right. His next steps will include adding keyer speed adjustment and LED readout of actual speed. He also expressed an interest in continuing with FPGAs, adding that he planned to move on to the Arty Z7-20 or the Zybo Z7-20 next.

Check out the project in action below!

Be the 1st to vote.

About Miranda Hansen

I enjoy creative writing, engineering, thinking, building, exploring and sharing with people. Huge aficionado of spending time thinking about things that “don’t matter.” I am very interested in unconstrained creativity. I love cross-discipline ideas and all of their integration into complete original systems. And I like things that do things.

View all posts by Miranda Hansen →

Leave a Reply

Your email address will not be published. Required fields are marked *