Iambic keyer

250 views
Skip to first unread message

Takashi K

unread,
Jul 12, 2016, 10:25:32 AM7/12/16
to Hermes-Lite
Hi all,

I love CW. So, I implemented my original keyer last weekend.
Now it requires FPGA resource, is 116 ALMs and 1 DSP Block (MULT).
I implemented three ways of sidetone output.
 a) cwkey_o (same as official firmware)
 b) The fixed 600Hz square wave output for inexpensive piezo sounder
 c) The fixed 600Hz sine wave output through an external audio codec.
I uploaded the movies to youtube.

According to USB_protocol_V1.57.pdf on Hermes homepage,
I have been trying to set  KeyerMode, Keyer speed, CW PTT delay and Sidetone Volume from PowerSDR,
but still does not work well. Now in debugging.
I also checked openHPSDR Ethernet Protocol v2.8.pdf, but I could not understand the description.
If anyone has any advise, please let me know,

hermes_lite_core.v
line around 1800, I added the following code.

    if (IF_Rx_ctrl_0[7:1] == 7'b0001_110)
    begin
      IF_Keyer_speed   <= IF_Rx_ctrl_3[5:0]; // decode Keyer speed setting
      IF_Keyer_Mode    <= IF_Rx_ctrl_3[7:6]; // decode Keyer Mode setting
    end
 
    if (IF_Rx_ctrl_0[7:1] == 7'b0001_111)
    begin
      IF_CW_Sidetone_Vol <= IF_Rx_ctrl_2[7:0]; // decode CW Sidetone Vol setting
      IF_CW_PTT_delay  <= IF_Rx_ctrl_3[7:0]; // decode CW PTT delay setting
    end

73 Takashi, JI1UDD

IambicKeyer_installation_diagram.jpg

Takashi K

unread,
Jul 13, 2016, 9:54:20 AM7/13/16
to Hermes-Lite
Hi all,

For speed and mode setting, the decode address was incorrect.
PTT delay and volume setting issue are still remained.

73 Takashi, JI1UDD

Takashi K

unread,
Jul 17, 2016, 9:13:21 AM7/17/16
to Hermes-Lite
Hi Steve and all.

No one is interested in Iambic keyer,  I was discouraged.
But, I have implemented  for myself all functions that PowerSDR supports, except Keyer Mode-B.
I have never used Mode-B by now. Therefore I implemented Keyer practice mode(Keyer is active, but not transmit)
instead of it.
The keyer that I scratch build needs only 150 ALMs, 1 DSP block, 8K Byte block memory.

The supported functions are
- Variable Sidetone frequency (200Hz-2250Hz) :
    Sidetone frequecy is always synchronized with receiver tone.
    This is good advantage against an external keyer and a recent new SDR that doesn't have a keyer function.
- Variable Speed control (1WPM - 60WPM)
    Low latency, I can enjoy CW operation very much.
- Others
    Keyer ON/OFF
    Sidetone ON/OFF
    Break in delay time ... A   PowerSDR calculates A+B, and
    CW delay Key-Up   ..... B    A+B is set to the time between key-up and PTT off.
    CW delay Key-Down  ...  Key down to CW signal on
    Reverse Paddles
    Weight ...  Favarite Dash length can be set by msec order.

Recently, I found an inexpensive Audio Codec IC,
AK4637EN, DigiKey 974-1111-1-ND,  1.48 USD.
I have not used it, but maybe no problem.
It has an integrated mic amp and speaker amp. A few external components are needed. Nice IC.
I know that audio code is not supported on H-L. but I think this keyer function enhances H-L.

At first, I hope that any CW operators try to use it.
I have still six extra audio codec boards that uses TLV320AIC23.
I can provide it if anyone needs. of cource, the Verilog-HDL code as well.

73 Takashi, JI1UDD

Graeme Jury

unread,
Jul 17, 2016, 9:20:20 PM7/17/16
to Hermes-Lite
Hi Takashi,

Don't be discouraged by a lack of response. I do nearly all my operating with CW and this facility is very good for me. Of course never having learned to program an fpga I am not really able to comment on what you have done or how it might impact on the resources for the rest of the radio but to be able to plug a paddle straight into the radio without having to have a keyer would be very useful for me. I also have in the back of my mind that the control window which Steve has hinted might also be a good way for cw keying to be sent from a remote radio to the keyer inputs but I may be getting ahead of myself here. I appreciate your innovation and would be very happy to see it as part of HL

73, Graeme yori

Steve Haynal

unread,
Jul 18, 2016, 1:15:57 AM7/18/16
to Hermes-Lite

Hi Takashi,

Sorry that I have not tried the Iambic keyer. I am very focused on HL2. Have you made a fork in github with all your enhancements? I will make sure there is a link to your fork from various pages so people can find your work.

73,

Steve
KF7O

Takashi K

unread,
Jul 18, 2016, 2:23:05 AM7/18/16
to Hermes-Lite
Hi Steve,

I have only forked. I'm still learning how to use github and soucetree. Also making mark down file. I'm not good at English. so slow pace.
Could you consider audio codec again ?

73 Takashi, JI1UDD

Steve Haynal

unread,
Jul 19, 2016, 2:04:15 AM7/19/16
to Hermes-Lite
Hi Takashi,

I really like the simplicity of no audio codec. People who want an immediate tone during CW can use a keyer that produces a tone. All the true audio for the receiver has to go through the host computer and I don't think the HL2 should also be a sound card. There are IO options that can support a daughter board with an audio codec for those with great interest in this.

73,

Steve
KF7O

Takashi K

unread,
Jul 19, 2016, 9:01:31 AM7/19/16
to Hermes-Lite
Hi Steve,

I basically agree with you. so I like Hermes-Lite.
I belive each portions(balanced filter, TxRx filter and so on) of HLv2 can achieve excellent performance.
But I'm worried about the performance of the entire QRP TRX system.

It means,
1) HLv2 is QRP TRX.
2) Almost good QRP TRX supports CW mode and portable use.
3) Almost QRPer prefer keyer to CWX. CWX is boring (sorry) except CW Context.
4) Low latency is needed in CW mode. For example when 45WPM, Dot on time is only 27msec.
   2-3ms opereation delay is big different key feeling.
5) It's important that sidetone is syncronized with receiver pitch(tone). If not, the quality is low.
6) CWer always uses headphone. Mixing amp is needed.
7) An external keyer and mixing amp are not suitable to portable use.
8) An external keyer and mixing amp costs maybe higher than audio codec that I found.
9) audio codec needs MCLK and BCLK from FPGA. These lines need to be shorter as possible to avoid RF radiation.

In addition, I often hear sound issue. In fact, PSDR VAC mode cannot work on my Win8.1 PC.
I heard sound issue happened on SBC, too.
Certainly, this is software issue. but User cannot use HLv2 as Rig.
The system works or not, it depends on software supplyer. Is this sutuation OK ?
I think audio codec is solid countermeasure. and resonable cost. the circuit is simple.

If HLv2 is called "digital TRX" or "SSB TRX", current spec is accectable.
Please consider again.

73 Takashi, JI1UDD

Roger Critchlow

unread,
Jul 19, 2016, 10:15:52 AM7/19/16
to Takashi K, Hermes-Lite
Takashi --

You might consider implementing a one-bit-DAC:


You can use an instance of the cordic code to synthesize your sidetone sine wave, and another 1/4 wavelength of sine to key the sidetone on and off, so it should easily fit into the footprint of two slice receivers.  Mixing in the RX audio is no real problem either if you have it available as a stream of samples.  

-- rec -- ad5dz --


--
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.
For more options, visit https://groups.google.com/d/optout.

Takashi K

unread,
Jul 19, 2016, 10:45:36 AM7/19/16
to Hermes-Lite, tak.k...@gmail.com
Hi Roger,

I think, 1 bit DAC needs speaker amplifier and more FPGA resources.
The amplifier cost is nearly same as audio codec that I found.
Also it cannnot be countermeasure of sound issue.
This is my understanding.

73 Takashi, JI1UDD

Steve Haynal

unread,
Jul 20, 2016, 3:06:45 AM7/20/16
to Hermes-Lite
Hi Takashi,

Have you tried Quisk or Alan's software? I find that the audio works well with these programs. I mainly use the HL1.2 for WSPR/JT9 and JT65 which are all good QRP modes. 

I think your point is that a good QRP radio should have solid support for CW, as seen with the built-in keyer, etc., on the KX3. There are so many differing opinions on what should be in this radio that sometimes it is hard to narrow down the scope and get anything done! It really depends on PCB area. If I end up surprised with plenty of space left, I will consider adding an optional codec on the main board. There is always the option for a daughter board for those who want this feature.

73,

Steve
KF7O

Takashi K

unread,
Jul 20, 2016, 5:23:02 AM7/20/16
to Hermes-Lite
Hi Steve,

Thank you for your considering and accepting my request.
But the priority is low. That's OK.

For the software, each software has unique features.
But I want to use PowerSDR as well. Because it has many functions.

73 Takashi, JI1UDD

Takashi K

unread,
Jul 26, 2016, 5:09:14 PM7/26/16
to Hermes-Lite
Hi Steve and all,

I released Verilog-HDL code of iambic keyer on my git, 6M branch, in RTL folder.

I generated jic files for CVA9 and SDK.
But, SDK jic file hasn't been verified yet. Because I have CVA9 only.

In SDK case,
if  Pre-V2 AMP and FWD/REV sense board are used,
There is one lack of pins. Therefore microphone input cannot be used.
Of course, keyer can be used without audio codec board.

73 Takashi, JI1UDD

Reply all
Reply to author
Forward
0 new messages