CW Keyer?

311 views
Skip to first unread message

radi...@mail.com

unread,
Jan 8, 2023, 7:07:40 PM1/8/23
to Hermes-Lite
Just wondered if any further news/development on the HL2 companion keyer/audio interface?

Was also wondering if there's any chance that one day this might make its way to MakerFabs as a finished board(s)

73

Max

Steve Haynal

unread,
Jan 9, 2023, 1:22:15 AM1/9/23
to Hermes-Lite
Hi Max and Group,

It is time for an update on the CW keyer. I'd say the the firmware and hardware are about 95% done. There are a few things left to test and complete. There is much more to do in terms of documentation and productization.

I enjoyed the hardware and software engineering for the CW keyer, but now since all the fun engineering is done, I've lost interest in taking it any farther beyond the one I have. Honestly, productizing and supporting the HL2 required so much effort and felt so much like a second grunt work job, that I decided I don't want to do the same with the CW keyer. 

I still think this is a novel and better way to implement CW with SDRs (low latency key to audio in the ear, noncritical key to SDR latency, modular so that CW key can be far from the radio). I sent out ~10 prototypes with the hope that some others would become excited enough about the project that they would take it on and do the support and productization. But that didn't happen. I still have one extra prototype left if there is someone seriously willing to take on the project.

73,

Steve
kf7o

"Christoph v. Wüllen"

unread,
Jan 9, 2023, 3:35:12 AM1/9/23
to herme...@googlegroups.com
I think what makes this thing a little difficult is that the
improvements in the audio system did not make it "upstream",
so it needs some "expert knowledge" to compile it from the sources.

More specifically, you have to have modified "teensy/cores" and "teensy/library/Audio"
directories which is not difficult but certainly non-standard. This means, most users
need a pre-compiled hex file that they have to "burn" on their teensy so not only
the source code, but also the hex files need to be maintained.

Apart from that, in my view the keyer works very well, in my *personal* view
it only suffers from too many wishes for too many rarely-needed
features, but if you want a device where you can connect a headphone and
a paddle (and nothing else), then it is fully functional.
>
>> Am 09.01.2023 um 01:07 schrieb radi...@mail.com <radi...@mail.com>:
>>
>> Just wondered if any further news/development on the HL2 companion keyer/audio interface?
>>
>> Was also wondering if there's any chance that one day this might make its way to MakerFabs as a finished board(s)
>>
>> 73
>>
>> Max
>>
>> --
>> You received this message because you are subscribed to the Google Groups "Hermes-Lite" group.
>> To unsubscribe from this group and stop receiving emails from it, send an email to hermes-lite...@googlegroups.com.
>> To view this discussion on the web visit https://groups.google.com/d/msgid/hermes-lite/bd24ffdc-e0cf-4567-b027-f87f39392a32n%40googlegroups.com.
>

Mike Lewis

unread,
Jan 9, 2023, 3:57:54 AM1/9/23
to "Christoph v. Wüllen", herme...@googlegroups.com

Given the source and PCB are published, anyone can order a board.  Soldering the audio chip can be an issue for some. I used easyEDA PCB online PCB tools very recently and had JLPCB produce the board, very simple and easy.  I note that if you pick the parts from the affiliated JCSC stock you can have them assemble some or all of it.  This might be the ticket for the audio chip provided that can get it.  I have found it is reasonably easy to support different audio chips should stock be an issue, I mad my own WM8960 control library as a test and learning exercise.  It is mostly a set of standard function names that map to codec registers.

 

I have very early keyer code made on only a T4.0+SGTL5000 audio backpack card, no PCB used, embedded in my PiHPSDR, works great.  It replaced a mini USB sound card that drives a headphone jack and stereo amp module for speakers.   Since it is embedded there are no hardware controls, it is using all MIDI controls which is (mostly) supported in most major SDR apps for the HL2.   I did add some control commands in my PiHPSDR fork to set speed and sidetone parameters.

 

For my Teensy SDR project I leveraged the CW keyer 48KHz audio and USB library code modifications and also extended USB device descriptor info to customize the PID and product name, and make it switchable between 44.1 and 48K.  I found the audio sample rate MUST match the USB rate.   I also created a new USB device combo for Dual Serial+Audio.  I need serial for debug, one for CAT control, and the audio.  That shows up in the IDE board manager menus and makes the right build.

 

The audio libraries change over time so I looked through the CW keyer code and documented how to modify the audio/usb library files for any version TeensyDuino (so far, I am up to 0.58.3, ie 1.58 beta 3) and for Arduino 2.0.3 IDE.   I also have all that working with VS code and TyCommander.

 

48KHz USB Audio · K7MDL2/KEITHSDR Wiki (github.com)

Adding New USB Type into the Arduino 2.x Tools Menu · K7MDL2/KEITHSDR Wiki (github.com)

TyCommander and Arduino 2.0 Integration (groups.io)  (login may be required)

 

There was a lot of code in the CW Keyer for USB audio feedback that I left out in my SDR project.  I figured I could live without it but I do not actually know the impact of that decision.  So far it seems to work fine.  Maybe Christoph or Steve can comment on that.

 

Embedded T4.0 + SGTL5000 Audio Backpack for USB Audio CW Keyer.  Uses MIDI for all control.

A picture containing text, electronics

Description automatically generated

 

Mike

K7MDL  CN88sf

 

 

Mike

K7MDL  CN88sf

>

 

--

You received this message because you are subscribed to the Google Groups "Hermes-Lite" group.

To unsubscribe from this group and stop receiving emails from it, send an email to hermes-lite...@googlegroups.com.

Dave Lapp

unread,
Feb 2, 2023, 11:53:24 AM2/2/23
to Hermes-Lite
Last year there was some discussion of a tighter(??), higher bandwidth connection between the Teensy and the HL2, in the context of the CW Keyer. QSPI was mentioned as were other options. Did anything ever come of that?

Dave
VE3LHO

"Christoph v. Wüllen"

unread,
Feb 2, 2023, 12:27:33 PM2/2/23
to Dave Lapp, herme...@googlegroups.com
Hmmm, there is no connection between the Teensy and the HL2 except from the 3.5mm stereo jack.
All the "non-trivial" connection is between the Teensy and the computer running the SDR software.

> Am 31.01.2023 um 19:25 schrieb Dave Lapp <david...@gmail.com>:
>
> Last year there was some discussion of a tighter(??), higher bandwidth connection between the Teensy and the HL2, in the context of the CW Keyer. QSPI was mentioned as were other options. Did anything ever come of that?
>
> Dave
> VE3LHO
>
> On Monday, January 9, 2023 at 3:57:54 AM UTC-5 K7MDL wrote:
> Given the source and PCB are published, anyone can order a board. Soldering the audio chip can be an issue for some. I used easyEDA PCB online PCB tools very recently and had JLPCB produce the board, very simple and easy. I note that if you pick the parts from the affiliated JCSC stock you can have them assemble some or all of it. This might be the ticket for the audio chip provided that can get it. I have found it is reasonably easy to support different audio chips should stock be an issue, I mad my own WM8960 control library as a test and learning exercise. It is mostly a set of standard function names that map to codec registers.
> I have very early keyer code made on only a T4.0+SGTL5000 audio backpack card, no PCB used, embedded in my PiHPSDR, works great. It replaced a mini USB sound card that drives a headphone jack and stereo amp module for speakers. Since it is embedded there are no hardware controls, it is using all MIDI controls which is (mostly) supported in most major SDR apps for the HL2. I did add some control commands in my PiHPSDR fork to set speed and sidetone parameters.
> For my Teensy SDR project I leveraged the CW keyer 48KHz audio and USB library code modifications and also extended USB device descriptor info to customize the PID and product name, and make it switchable between 44.1 and 48K. I found the audio sample rate MUST match the USB rate. I also created a new USB device combo for Dual Serial+Audio. I need serial for debug, one for CAT control, and the audio. That shows up in the IDE board manager menus and makes the right build.
> The audio libraries change over time so I looked through the CW keyer code and documented how to modify the audio/usb library files for any version TeensyDuino (so far, I am up to 0.58.3, ie 1.58 beta 3) and for Arduino 2.0.3 IDE. I also have all that working with VS code and TyCommander.
> 48KHz USB Audio · K7MDL2/KEITHSDR Wiki (github.com)
> Adding New USB Type into the Arduino 2.x Tools Menu · K7MDL2/KEITHSDR Wiki (github.com)
> TyCommander and Arduino 2.0 Integration (groups.io) (login may be required)
> There was a lot of code in the CW Keyer for USB audio feedback that I left out in my SDR project. I figured I could live without it but I do not actually know the impact of that decision. So far it seems to work fine. Maybe Christoph or Steve can comment on that.
> Embedded T4.0 + SGTL5000 Audio Backpack for USB Audio CW Keyer. Uses MIDI for all control. Mike
> To view this discussion on the web visit https://groups.google.com/d/msgid/hermes-lite/a2db8f39-c899-4760-bdce-fb8ccb776e9bn%40googlegroups.com.

Mike Lewis

unread,
Feb 2, 2023, 1:14:22 PM2/2/23
to "Christoph v. Wüllen", Dave Lapp, herme...@googlegroups.com
There was an idea that a Teensy SDR could connect direct to the FPGA using maybe QSPI bypassing ethernet. It stayed just an idea.

Sent from my T-Mobile 4G LTE Device
Get Outlook for Android

From: herme...@googlegroups.com <herme...@googlegroups.com> on behalf of "Christoph v. Wüllen" <DL1...@darc.de>
Sent: Thursday, February 2, 2023 9:27:18 AM
To: Dave Lapp <david...@gmail.com>
Cc: herme...@googlegroups.com <herme...@googlegroups.com>
Subject: Re: CW Keyer?
 

> >
>  --
> You received this message because you are subscribed to the Google Groups "Hermes-Lite" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to hermes-lite...@googlegroups.com.

>
> --
> You received this message because you are subscribed to the Google Groups "Hermes-Lite" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to hermes-lite...@googlegroups.com.


--
You received this message because you are subscribed to the Google Groups "Hermes-Lite" group.
To unsubscribe from this group and stop receiving emails from it, send an email to hermes-lite...@googlegroups.com.

Dave Lapp

unread,
Feb 2, 2023, 1:20:52 PM2/2/23
to Hermes-Lite
My question was not about the CW keyer. I was refering to a discussion which happened in Apr/May 2021 which was, I believe, about connecting a Teensy 4.x to an HL2 in such a way as to allow the Teensy e.g. get IQ data from the HL2. Perhaps allow the Teensy with HL2 to act as a standalone radio. Look for instance here https://groups.google.com/g/hermes-lite/c/r-rYmnfIXjk/m/-GtomNBBAQAJ

This other discussion occurred within a thread on the CW keyer and so I inserted my question here. I probably should have started a new thread instead of doing that. My apologies.

FWIW I had asked Mike K7MDL about this in another forum and apparently the answer is that nothing came of this.

Dave
VE3LHO

Roger Critchlow

unread,
Feb 2, 2023, 7:21:42 PM2/2/23
to Dave Lapp, Hermes-Lite
Seems like the lazy thing to do would be to get a Teensy 4.x with an ethernet interface and hook that up to the Hermes Lite 2.  You're going to need to implement all the stream handling, SDR, and UI code on the Teensy either way, no need to complicate life by building another hardware interface on both sides, too.

-- 73 -- ad5dz -- rec --

David Lapp

unread,
Feb 2, 2023, 8:04:08 PM2/2/23
to Roger Critchlow, Hermes-Lite
Please see inline:


On 2/2/2023 7:21 PM, Roger Critchlow wrote:
Seems like the lazy thing to do would be to get a Teensy 4.x with an ethernet interface and hook that up to the Hermes Lite 2. 
Agreed.
You're going to need to implement all the stream handling, SDR, and UI code on the Teensy either way,
Arguably some of those things exist on Teensy already. I'll go farther and say all of those things exist on Teensy 4.x already although the usefulness of some of the existing code is a matter of investigation.

no need to complicate life by building another hardware interface on both sides, too.
Some might see building the new HW interface as the fun part :-)
But I don't disagree with you. That's why I wondered if someone had already figured out the new interface.

Mike Lewis

unread,
Feb 2, 2023, 9:00:39 PM2/2/23
to David Lapp, Roger Critchlow, Hermes-Lite

I and several others have SDR running on Teensy 4.  It is all based on talking to a codec such as the SGTL5000 by PJRC and I16 audio library that comes with TeensyDuino, or in my case OpenAudio_Library which is F32. 

 

If the Teensy can handle the constant stream bandwidth, there is a ton of work to swap out the existing Audio library with protocol 1 code.  It can be borrowed from programs like PiHPSDR but there is no OS and related libraries these Pi/PC based programs leverage so that adds to the conversion work. 

 

I thought about using the enet for my SDR_RA887x on the Teensy 4.1, but the above added up to likely more work than it was worth when there are several good SDR apps already for the Pi.  I also have concerns about doing the high bandwidth data combined with the rest of the SDR workload on the same Teensy.  At lower sample rates it might be OK.  I am a Teensy fan for sure, but not seemingly that much!  I also run my Teensies at 912MHz with a heat sink and 48K sample rate is solid, 96K seems OK, above that starts to get sketchy unless I dumb down my spectrum some.

 

  • Mike K7MDL
Reply all
Reply to author
Forward
0 new messages