BREAKING NEWS - new open source CW KEYER project that works great for iCW OPs

387 views
Skip to first unread message

Chuck Vaughn

unread,
Mar 25, 2021, 1:40:40 PM3/25/21
to iCW - internet CW

see the above video for a 1st run test LIVE demo - after i just got it all put together...
     uses a
  TEENSY 4.0 USB board  and the arduino/teensy firmware 
    and the HASAK CW KEYER Firmware 

  this video shows it working with just PulseAudio...
     but since it shows up as a USB SOUND CARD...it should
work for MAC and WIN10

Steven G. Steltzer

unread,
Mar 25, 2021, 2:25:01 PM3/25/21
to Chuck Vaughn, 'joe living' via iCW - internet CW
Wow, that is one major undertaking they are into. Some great ideas there : full duplex QSK. Nice. 

73!
Steve, WF3T



aa0hw

unread,
Mar 25, 2021, 3:14:56 PM3/25/21
to iCW - internet CW

Im looking forward to following this project as they continue to develop it even further...

Chuck Broadwell W5UXH

unread,
Mar 25, 2021, 4:08:56 PM3/25/21
to i_...@googlegroups.com
Well, I never get along very well with Linux, but since it is not clear how I would do these two steps on MacOS:

3) Download github.com/softerhardware/cores into arduino/hardware/teensy/avr/cores
4) Download github.com/softerhardware/Audio into arduino/hardware/teensy/avr/libraries/Audio

I went ahead and stumbled through with Ubuntu on the NUC system.  The sketch seems to have compiled error free on the first try (which was a surprise).

FYI:  On MacOS, the arduino hardware directory is not in a normal disk directory path like it is on Linux and Windows.  It is in the executable Arduino “package”.  I have no idea if it is appropriate or possible to add things inside the executable package, and an Arduino update would need to have this done again.  So I will continue with Linux, get my Teensy 4.0 out of the package it came in and see how much further I can get.




Chuck Vaughn

unread,
Mar 25, 2021, 5:14:53 PM3/25/21
to iCW - internet CW
the Ctrl APP does have versions for mac and windows 10
this controls the cw keyer settings for many options like speed, pitch, rise/fall time, weight  et al.
and

 they both can run the same panel definition file as the linux version.

--

---
You received this message because you are subscribed to the Google Groups "iCW - internet CW" group.
To unsubscribe from this group and stop receiving emails from it, send an email to i_cw+uns...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/i_cw/C132189E-0589-48DF-AE4E-A075C3067267%40gmail.com.

Chuck Vaughn

unread,
Mar 25, 2021, 5:19:26 PM3/25/21
to iCW - internet CW
This is the website tutorial i used to build the Arduino IDE 1.8.13 version, part of the Linux setup

Chuck Vaughn

unread,
Mar 25, 2021, 5:22:12 PM3/25/21
to iCW - internet CW
ill send some of the help that the hasak keyer dev told me..

here is an early one...

FROM AD5DZ to me
***********************
You're getting there!  

The teensyduino stuff is done, it installed its extensions into arduino and you'll do the rest in arduino.

You can test that the Teensy stuff is installed in the Arduino "Tools > Boards" menu, it should list Teensyduino as an option.  

Open the Arduino "File > Open" menu and navigate to open .../hasak/hasak.ino

Open "Tools > Boards: ... > Teensyduino" and select "Teensy 4.0"

Open the "Tools > USB Type" menu and select "Serial + MIDI + Audio"

Plug in your Teensy and select "Sketch > Upload". 

There's also a button on the Arduino Icon Toolbar that will do Upload.

-- rec --

Chuck Vaughn

unread,
Mar 25, 2021, 5:23:58 PM3/25/21
to iCW - internet CW
this was important...to run a jumper on the teensy board between pin 20 and 22

Roger Critchlow via gmail.com 

Mon, Mar 22, 3:31 PM (3 days ago)
to me
Sounds good.  The pins are listed in the Readme.org, and in config.h, coming down the left hand side from the usb jack:

G ground
0 dah
1 dit
2 skey
3 ptt_sw
4 key_out
5 ptt_out
...
10 mqs_l
...
12 mqs_r

And you need a jumper between 20 and 22
 on the other side of the Teensy.

-- rec -

Chuck Vaughn

unread,
Mar 25, 2021, 5:31:36 PM3/25/21
to iCW - internet CW
some more info ...here is Roger's check list
Okay, so here are the steps again:

1) Download and install arduino-1.8.13 into arduino.
2) Download and install teensyduino-1.53 into arduino.
3) Download github.com/softerhardware/cores into arduino/hardware/teensy/avr/cores
4) Download github.com/softerhardware/Audio into arduino/hardware/teensy/avr/libraries/Audio
5) Download github.com/recri/hasak into hasak
6) Open the Arduino IDE
>  7) Open the hask sketch in hasak/hasak.ino
>  8) Set the Tools > Board to Teensy 4.0
>  9) Set the Tools > USB Type to Serial+MIDI+Audio
>  10) Check that the Tools > Port has found the Teensy 4.0
>  11) Compile and upload the hasak keyer to the Teensy 4.0
>  12) Open the Arduino serial monitor and type s followed by newline.

I the serial monitor says:

 sample rate 44100.000000 buffer size 128
active 0 ies/ils/iws 66.0/200.0/466.0 ms
           total 2.227% 2.230%             isr 0.651% 0.654%         buffers 10 14


then you have the old cores and Audio, if it says:

 sample rate 48000.000000 buffer size 32
active 0 ies/ils/iws 66.0/200.0/466.0 ms
           total 3.406% 3.420%             isr 0.720% 0.719%         buffers  8 10


then you have the new cores and Audio.

aa0hw

unread,
Mar 26, 2021, 9:37:21 AM3/26/21
to iCW - internet CW
Keying this TEENSY HASAK CW KEYER at QRQ SPEEDS using an external CW KEYER - THE mfj 451 AT 99 wpm top speed of the 451...results
were perfect      keying the STRAIGHT KEY LINE of the TEENSY 4.0    pin 4 to ground    using a simple FET OPTOisolator chip...
the FET OPTOisolator CHIP's voltage taken from the 3.3 volt source on the TEENSY 4.0 itself...   resistor from pos on FET diode to the 3.3 voltage source pin of the TEENSY
the mfj 451   KEY RIG RCA JACK output was keying the ground to the FET DIODE...and the TEENSY 4.0 was able to sample 
the STRAIGHT KEY line perfectly at the top qrq cw speed of the MFJ 451 -  99 WPM    every dit came out the perfect length of 12 ms
allDITS12msteensy4stkeyoptoisolator.png

Chuck Vaughn

unread,
Mar 26, 2021, 9:57:22 AM3/26/21
to iCW - internet CW
Here is a picture of the total setup...for  STRAIGHT KEY,  IAMBIC PADDLES &  MFJ 451 CW KEYBOARD...
plus attached is a short .wav file example of what the keying sounds like at 60 wpm from the mfj 451 keying
the teensy pin 4 'straight key line' using the optoisolator circuit(bottom left of picture)...
t4multiplekeying.JPG

mfj451teensy4.wav

Chuck Vaughn

unread,
Mar 26, 2021, 10:36:54 AM3/26/21
to iCW - internet CW
Here is a video showing the Straight Key, paddles, and MFJ 451 CW KEYBOARD in action 
using the TEENSY 4.0 Hasak CW KEYER setup...

Steven G. Steltzer

unread,
Mar 26, 2021, 11:29:10 AM3/26/21
to Chuck Vaughn, 'joe living' via iCW - internet CW
Sounds good!


aa0hw

unread,
May 18, 2021, 3:21:26 PM5/18/21
to iCW - internet CW
There has been an update to the hasak keyer's  CORES and AUDIO folder/files that has made some improvements...  
   just grab the new CORES and AUDIO folders/files from GITHUB ...  all i did was change the name of the current ones and named them OLD_CORES,  OLD_AUDIO  etc.
copy pasted in the new ones....  then you have to hit upload sketch again in your arduino IDE hasak sketch,    and then reboot everything and u should be good to go...

also noticed that by using this MOUSER AUDIO TRANSFORMER     https://www.mouser.com/ProductDetail/Xicon/42TU200-RC?qs=plB1iWz%252BJMzK7dX0lJf81Q%3D%3D
the                    Mouser No. 42TU200 200/8  ohm audio transformer 

the teensy / hasak system on pins 10 and ground, was able to provide more volume out of the teensy audio system ...
i also tried adding a resonant speaker...and got even more volume....so  both hearing my sidetone and hearing mumble output filled the whole ROOM
with enough volume just using the TEENSY BOARD and the HASAK USB SOUND CARD/ pin 10/ground to audio transformer input, 
for sending CW AUDIO to the mumble input and also hearing my sidetone in real time with no delay,  AND hearing the mumble output audio all on the same speaker...

here is a picture of my pvc resonant CW SPEAKER setup with the audio transformer
hasak10speaker.JPG

aa0hw

unread,
May 19, 2021, 5:37:58 PM5/19/21
to iCW - internet CW
Here is a new video demo of the state of the art status on this HASAK CW KEYER project
demo'N using it for iCW using CW KEYBOARDs, paddles, and straight key:

aa0hw

unread,
Jul 20, 2021, 9:16:20 AM7/20/21
to iCW - internet CW
Here is another video demo of the HASAK CW KEYER in operation using 2 speakers with i/q phasing adjusted to minimize room echo and nulls
this setup also uses adjustable BASS TUBEs  sitting on top of each speaker, set to any pitch you would like for a major increase in volume

df7t...@gmail.com

unread,
Nov 30, 2021, 2:30:56 PM11/30/21
to iCW - internet CW
Hello Chuck,
Thank you for your videos and infos about the HASAK CW KEYER!

So far I do not have any experience with Arduino/Teensy etc.. -- But it seems like using this keyer some kind of "Magic Box" to greatly
simplify iCW setups should be possible.

If you try to use the HASAK CW KEYER at 40 wpm using a paddle -- Do you remark any annoying latency between touching the paddle and
hearing the side tone?

I have been looking closer to the actual development of the keyer and there seems to be an Audio Shield available for the Teensy -- Is that shield
useful for an iCW application of the keyer?

TNX, 73
Tom DF7TV

Chuck Vaughn

unread,
Nov 30, 2021, 3:34:00 PM11/30/21
to iCW - internet CW
Greetings Tom
The HASAK CW KEYER was coded to provide ultra low latency...
you hear the sidetone from the TEENSY PINs to SPEAKERs immediately,  and if you want to send
it out on iCW at the same time,  the HASAK USB sound card can be selected in MUMBLE input and output
so mumble will hear what you key on the HASAK and send it to the iCW Mumble Server  and the
Mumble output will also sound out on the HASAK to the same speakers you use for hearing the HASAK SIDETONE etc...
I have not used the AUDIO SHIELD so i am not able to state anything about it... the Ctrlr APP adjusts your rise/fall time
volume, CW PITCH, speed,  et al.   etc...  but not all of the CTRLR CW KEYER adjustments are working yet...
and it does not look like hasak been updated since almost a year ago....  


--

---
You received this message because you are subscribed to the Google Groups "iCW - internet CW" group.
To unsubscribe from this group and stop receiving emails from it, send an email to i_cw+uns...@googlegroups.com.

df7t...@gmail.com

unread,
Nov 30, 2021, 3:51:27 PM11/30/21
to iCW - internet CW
Thank you Chuck!

Your information
"The HASAK CW KEYER was coded to provide ultra low latency...
you hear the sidetone from the TEENSY PINs to SPEAKERs immediately"

is great.


Due to experience I am a bit hesitating concerning "immediate",  "near zero" or "ultra low" latency announcements.

Did you try to use the HASAK CW KEYER at 40 wpm  (or more) speeds using a paddle ?


73

Tom




df7t...@gmail.com

unread,
Nov 30, 2021, 4:11:30 PM11/30/21
to iCW - internet CW
Hello,

Just for information (HASAK CW KEYER and Audio Shield)... see


73
Tom DF7TV

Chuck Vaughn

unread,
Nov 30, 2021, 4:59:52 PM11/30/21
to iCW - internet CW
no...i did not try 40 wpm
but i did test using a PADDLE TAP TEST
/  microphone recording of the paddle "smack" and the tone output from the speaker...
less than 10 ms


5-7 ms of delay between HITTING the PADDLE HANDLE and the TONE Output from the speaker
jack audio connection kit at 48k sample rate, 3 periods of 96 buffer frames..
5msHASAK1.png

S. Steltzer

unread,
Dec 1, 2021, 4:00:38 AM12/1/21
to Chuck Vaughn, 'joe living' via iCW - internet CW
Good morning Chuck,

Sorry to hear no recent continuing work on that software keyer.  Do you know what the average time would be without using external software keying?  A paddle with a radio's internal keyer?

Chuck Broadwell W5UXH

unread,
Dec 1, 2021, 11:40:57 AM12/1/21
to i_...@googlegroups.com
In case it is of any interest, I measured the latency time from a single dit paddle closure to the start of the sidetone.  The attached photo shows that it is about 5 msec from closure to full amplitude of the tone.  I am not able to perceive any delay when using the paddle.  I am also not able to send well with the paddle at 40 wpm, but I do not think it has anything to do with latency, it has to do with old age and no longer operating that fast with the paddle😀  The scope image shown in the attached photo is set to 1 msec per horizontal division.  The tone starts rising at 2 msec and the first peak at maximum amplitude is just after 5 mecs.  

Chuck #2 (W5UXH)



On Nov 30, 2021, at 2:59 PM, Chuck Vaughn <qrq...@gmail.com> wrote:

no...i did not try 40 wpm
but i did test using a PADDLE TAP TEST
/  microphone recording of the paddle "smack" and the tone output from the speaker...
less than 10 ms


5-7 ms of delay between HITTING the PADDLE HANDLE and the TONE Output from the speaker
jack audio connection kit at 48k sample rate, 3 periods of 96 buffer frames..
<5msHASAK1.png>

W5UXH

unread,
Dec 1, 2021, 1:53:37 PM12/1/21
to iCW - internet CW
Since the Hasak is under discussion, I will offer a writeup I did a few months ago where I attempt to summarize details of my implementation while pointing out the very important features that Roger's software provides.  

One section in this PDF document, Section 13, is a very short reminder that you do not need any of the extra features I was interested in to make the keyer a stand alone device.  It is very easy to just duplicate Roger's project on a solder less breadboard and use the CTRLR app running on a host computer to control the paddle speed and sidetone.  The Hasak is very much compatible with iCW, but it does require using TCP mode instead of UDP.  AA0HW figured that out for me.

I also include the specific steps required to prepare your Arduino environment.   The link below should take you to an early demo of one of my prototypes:


The writeup will be found in the attached PDF document.  I am sure there are typos and errors, but it might be of interest for anyone interested in the Hasak.

I should note that the Hasak first came to my attention through Chuck #1 (AA0HW) and caught my interest enough to pull me away from my very long term keyer project that also uses the Teensy.  

Chuck #2 (W5UXH)
W5UXH-Hasak Description.pdf

S. Steltzer

unread,
Dec 1, 2021, 4:03:41 PM12/1/21
to 'joe living' via iCW - internet CW
Ok, thanks for all the info Chuck.  My question was simply curiosity. HW had said the latency with the HASAK keyer using a paddle was around 7ms and I just wondered what it would be using a paddle connected to and using a rigs internal keyer. I have never noticed any lag at all doing that and I was wondering if we would even notice a 7ms delay.  I kind of doubt it but a measurement for comparison would be interesting. 

73!
Steve

Andrew Murphy

unread,
Dec 17, 2021, 12:43:33 AM12/17/21
to iCW - internet CW
hmmm i wish could get it to work but oh well

F6...@wanadoo.fr

unread,
Dec 25, 2022, 1:21:38 PM12/25/22
to iCW - internet CW
Seems to be a nicz design;
I'm using the Teebsy on a SDR project : T41EP , and this is a veyr interesting module, well above Arduino.
Will follow this, as my K1EL makes a lot of trouble with N1MM or Logger32!!
Seems also to be great on Icw.
Gerard
Reply all
Reply to author
Forward
0 new messages