Loading ...
Sorry, an error occurred while loading the content.

Re: [softrock40] Improving the CW experience with homebrew SDR

Expand Messages
  • Sid Boyce
    ... Hi David, I use a decades old Curtis keyer using a CMOS chip with the HiQSDR and it works well. It connects into the Altera FPGA, the keyer itself has
    Message 1 of 15 , Aug 2, 2013
    On 02/08/13 04:48, David Turnbull wrote:
     
    At Hamvention and SEA-PAC this year I had a chance to talk to a lot of hams about their interest in SDR. Most of the time I was answering questions but I also got a chance to ask a lot of folks about their experience. One of the most interesting things I learned was how good CW ops use SDR transceivers.

    Some of the newer SDRs have moved the DSP out of the computer and into FPGAs. This is obviously an excellent solution to the latency problem. It's also very expensive. For one of these devices the yearly software maintenance costs more than a Peaberry or SoftRock.

    It turns out a workable solution for homebrew is very simple. Use a keyer that generates its own sidetone. Even if the signal on the air is 50ms behind, you'll not notice. I decided to buy a keyer with a good sidetone generator that had open source firmware I could hack on. I couldn't find one. Most of the closed source keyers have pleasant sidetone. The open source projects use PWM (square waves).

    So this inspired me to create a keyer shield for Arduino. I used a DAC, OpAmp, speaker, buttons, and an LCD. I created software to go with it which is now on GitHub and open source. The keyer shield can be built on an Arduino prototype board. I'm also selling a kit with a custom PCB on AE9RB.com.

    The software is currently very usable. I plan on adding more features to it this month like contest numbering and others things which most people won't use everyday. Before this next code sprint begins, the question I have for everyone here, especially the CW gurus, is...

    What would you like to see in a keyer to make it more useful for homebrew SDR?

    Hi David,
    I use a decades old Curtis keyer using a CMOS chip with the HiQSDR and it works well.
    It connects into the Altera FPGA, the keyer itself has built-in sidetone and a speaker.

    There is also the K3NG keyer using an Arduino.
    73 ... Sid.


    -- 
    Sid Boyce ... Hamradio License G3VBV, Licensed Private Pilot
    Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
    Senior Staff Specialist, Cricket Coach
    Microsoft Windows Free Zone - Linux used for all Computing Tasks
    
  • Graeme Jury
    Hi Chris, I also have a HiQSDR (and softrock) and my homebrew keyer is a touch keyer with a PIC chip. I have written my software to use the the PWM output to
    Message 2 of 15 , Aug 2, 2013
    • 0 Attachment
      Hi Chris,

      I also have a HiQSDR (and softrock) and my homebrew keyer is a touch
      keyer with a PIC chip. I have written my software to use the the PWM
      output to generate a sine sidetone and feed it into a TDA2822 in bridge
      mode for ultra low current consumption. I make the software start the
      tone at 0 V dc to avoid audio clicks but will also need to do a little
      shaping of the rising and falling edges.

      A latency of 150 mSecs would be more realistic for most sdr's and some
      at 250 I suspect.

      73 Graeme ZL2APV
    • digital_steve_k1rf
      ... Hi David. I said hello to you briefly at the 13 Hamvention. A keyer is a nice solution to the SDR delay problem. With regard to keyer features,
      Message 3 of 15 , Aug 2, 2013
      • 0 Attachment
        > What would you like to see in a keyer to make it more useful for homebrew
        > SDR?
        >
        > 73 David http://AE9RB.com/
        >
        Hi David. I said hello to you briefly at the '13 Hamvention. A keyer is a nice solution to the SDR "delay" problem. With regard to keyer features, certainly it would need all the normal contest features with 8 readily accessible memories. It should provide for a GOOD CW tone. Many keyers use a simple square wave driving a piezo transducer. I would much prefer a real linear power amp capable of at least 1 watt output bridge-type-load amplifier such as a TDA7052a driving a real speaker and wave-shaped sine wave output as well as an adjustable tone frequency. The tone should be loud and smooth sounding. Loud so it is useable in real contests in an open air environment such as field day with or without the use of headphones.
        A lookup table could be used for waveshaping of the tone. For some reason, a good deal of attention is paid to waveshaping at RF. Indeed the ARRL always publishes spectral response of tranmitter performance at 50WPM in their transceiver reviews. Why shouldn't a keyer sound like an actual received CW signal? This has always been one of my pet peeves with most keyers on the market. I can email you a 128 point waveshape table if you wish.

        Regards,
        "Digital Steve", K1RF
      • David Turnbull
        Hi Steve, My keyer project already has clickless sine waves and a real speaker. This is done with a MCP4921 DAC so any frequency and shape you want may be
        Message 4 of 15 , Aug 2, 2013
        • 1 Attachment
        • 60 KB
        Hi Steve,

        My keyer project already has clickless sine waves and a real speaker. This is done with a MCP4921 DAC so any frequency and shape you want may be generated from software. Attached is a photo of the waveform.

        It's only 0.25W but I was showing it off to the local maker club which meets in a pub and it could still be easily heard when the place got crowded and they turned up the music. Headphones are crazy loud and a jack which cuts off the speaker is included.



        On Fri, Aug 2, 2013 at 4:53 AM, digital_steve_k1rf <sbdick@...> wrote:

        > What would you like to see in a keyer to make it more useful for homebrew
        > SDR?
        >
        > 73 David http://AE9RB.com/
        >
        Hi David. I said hello to you briefly at the '13 Hamvention. A keyer is a nice solution to the SDR "delay" problem. With regard to keyer features, certainly it would need all the normal contest features with 8 readily accessible memories. It should provide for a GOOD CW tone.  Many keyers use a simple square wave driving a piezo transducer.  I would much prefer a real linear power amp capable of at least 1 watt output bridge-type-load amplifier such as a TDA7052a driving a real speaker and wave-shaped sine wave output as well as an adjustable tone frequency. The tone should be loud and smooth sounding.  Loud so it is useable in real contests in an open air environment such as field day with or without the use of headphones.
        A lookup table could be used for waveshaping of the tone. For some reason, a good deal of attention is paid to waveshaping at RF. Indeed the ARRL always publishes spectral response of tranmitter performance at 50WPM in their transceiver reviews.  Why shouldn't a keyer sound like an actual received CW signal?  This has always been one of my pet peeves with most keyers on the market. I can email you a 128 point waveshape table if you wish.

        Regards,
        "Digital Steve", K1RF


      • David Turnbull
        Hi Sid, Do you use the K3NG software? You can buy the nanoKeyer board for running this which is about the same price as mine. However, it s using square waves
        Message 5 of 15 , Aug 2, 2013
        • 0 Attachment
          Hi Sid,

          Do you use the K3NG software? You can buy the nanoKeyer board for running this which is about the same price as mine. However, it's using square waves into a piezo and doesn't include an LCD.

          73 David 
          http://AE9RB.com/


          On Fri, Aug 2, 2013 at 1:45 AM, Sid Boyce <sboyce@...> wrote:
          Hi David,
          I use a decades old Curtis keyer using a CMOS chip with the HiQSDR and it works well.
          It connects into the Altera FPGA, the keyer itself has built-in sidetone and a speaker.

          There is also the K3NG keyer using an Arduino.
          73 ... Sid.

        • Sid Boyce
          Hi David, I have tried building it using arduino on openSUSE but I get syntax errors that I have not looked at to see if I can fix them. 73 ... Sid. ... --
          Message 6 of 15 , Aug 2, 2013
          • 0 Attachment
            Hi David,
            I have tried building it using "arduino" on openSUSE but I get syntax errors that I have not looked at to see if I can fix them.
            73 ... Sid.

            On 02/08/13 18:47, David Turnbull wrote:
             
            Hi Sid,

            Do you use the K3NG software? You can buy the nanoKeyer board for running this which is about the same price as mine. However, it's using square waves into a piezo and doesn't include an LCD.

            73 David 
            http://AE9RB.com/


            On Fri, Aug 2, 2013 at 1:45 AM, Sid Boyce <sboyce@...> wrote:
            Hi David,
            I use a decades old Curtis keyer using a CMOS chip with the HiQSDR and it works well.
            It connects into the Altera FPGA, the keyer itself has built-in sidetone and a speaker.

            There is also the K3NG keyer using an Arduino.
            73 ... Sid.



            -- 
            Sid Boyce ... Hamradio License G3VBV, Licensed Private Pilot
            Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
            Senior Staff Specialist, Cricket Coach
            Microsoft Windows Free Zone - Linux used for all Computing Tasks
            
          • kh2br
            That is a very good idea to overcome the latency problem. If you come up with a real nice cw keyer, think about adding automatic speed detection that will
            Message 7 of 15 , Aug 2, 2013
            • 0 Attachment
              That is a very good idea to overcome the latency problem.
              If you come up with a real nice cw keyer, think about adding automatic speed detection that will adjust the keyer speed.
              I haven't seen that yet.

              --- In softrock40@yahoogroups.com, Sid Boyce <sboyce@...> wrote:
              >
              > Hi David,
              > I have tried building it using "arduino" on openSUSE but I get syntax
              > errors that I have not looked at to see if I can fix them.
              > 73 ... Sid.
              >
              > On 02/08/13 18:47, David Turnbull wrote:
              > > Hi Sid,
              > >
              > > Do you use the K3NG software? You can buy the nanoKeyer board for
              > > running this which is about the same price as mine. However, it's
              > > using square waves into a piezo and doesn't include an LCD.
              > >
              > > 73 David http://AE9RB.com/ <http://ae9rb.com/>
              > >
              > >
              > > On Fri, Aug 2, 2013 at 1:45 AM, Sid Boyce <sboyce@...
              > > <mailto:sboyce@...>> wrote:
              > >
              > > Hi David,
              > > I use a decades old Curtis keyer using a CMOS chip with the HiQSDR
              > > and it works well.
              > > It connects into the Altera FPGA, the keyer itself has built-in
              > > sidetone and a speaker.
              > >
              > > There is also the K3NG keyer using an Arduino.
              > > 73 ... Sid.
              > >
              > >
              >
              >
              > --
              > Sid Boyce ... Hamradio License G3VBV, Licensed Private Pilot
              > Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
              > Senior Staff Specialist, Cricket Coach
              > Microsoft Windows Free Zone - Linux used for all Computing Tasks
              >
            • grahamg3zod
              I ve never understood why SDR CW software can t generate an audio sidetone directly in response to key input(s) and hence have no noticable latency; instead
              Message 8 of 15 , Aug 3, 2013
              • 0 Attachment
                I've never understood why SDR CW software can't generate an audio sidetone directly in response to key input(s) and hence have no noticable latency; instead software authors choose to cause sidetone latency doing it the convoluted way by decoding the I/Q audio signals from the TX.

                73 de Graham G3ZOD

                --- In softrock40@yahoogroups.com, "kh2br" <rholsti@...> wrote:
                > That is a very good idea to overcome the latency problem.
                > If you come up with a real nice cw keyer, think about adding automatic speed detection that will adjust the keyer speed.
                > I haven't seen that yet.
                >
                > --- In softrock40@yahoogroups.com, Sid Boyce <sboyce@> wrote:
                > >
                > > Hi David,
                > > I have tried building it using "arduino" on openSUSE but I get syntax
                > > errors that I have not looked at to see if I can fix them.
                > > 73 ... Sid.
              • grahamg3zod
                I meant to the TX , but the principle is the same. 73 de Graham G3ZOD
                Message 9 of 15 , Aug 3, 2013
                • 0 Attachment
                  I meant "to the TX", but the principle is the same.

                  73 de Graham G3ZOD

                  --- In softrock40@yahoogroups.com, "grahamg3zod" <grahamg3zod@...> wrote:
                  >
                  > I've never understood why SDR CW software can't generate an audio sidetone directly in response to key input(s) and hence have no noticable latency; instead software authors choose to cause sidetone latency doing it the convoluted way by decoding the I/Q audio signals from the TX.
                  >
                  > 73 de Graham G3ZOD
                  >
                  > --- In softrock40@yahoogroups.com, "kh2br" <rholsti@> wrote:
                  > > That is a very good idea to overcome the latency problem.
                  > > If you come up with a real nice cw keyer, think about adding automatic speed detection that will adjust the keyer speed.
                  > > I haven't seen that yet.
                  > >
                  > > --- In softrock40@yahoogroups.com, Sid Boyce <sboyce@> wrote:
                  > > >
                  > > > Hi David,
                  > > > I have tried building it using "arduino" on openSUSE but I get syntax
                  > > > errors that I have not looked at to see if I can fix them.
                  > > > 73 ... Sid.
                  >
                • digital_steve_k1rf
                  ... Great!! Looks like a nice product!! Dightal Steve , K1RF
                  Message 10 of 15 , Aug 3, 2013
                  • 0 Attachment
                    --- In softrock40@yahoogroups.com, David Turnbull <dturnbull@...> wrote:
                    >
                    > Hi Steve,
                    >
                    > My keyer project already has clickless sine waves and a real speaker.
                    > 73 David http://AE9RB.com/ <http://ae9rb.com/>
                    >
                    Great!! Looks like a nice product!!
                    "Dightal Steve", K1RF
                  • David Turnbull
                    ... How would speed detection in a keyer work? I ve never heard of such a thing and wouldn t know where to begin. Do you have the math worked out or a proof of
                    Message 11 of 15 , Aug 3, 2013
                    • 0 Attachment
                      On Fri, Aug 2, 2013 at 10:00 PM, kh2br <rholsti@...> wrote:
                      That is a very good idea to overcome the latency problem.
                      If you come up with a real nice cw keyer, think about adding automatic speed detection that will adjust the keyer speed.
                      I haven't seen that yet.

                      How would speed detection in a keyer work? I've never heard of such a thing and wouldn't know where to begin. Do you have the math worked out or a proof of concept running?

                    • kh2br
                      I don t know jack about programing but was only floating a idea. There are some external devices that decode cw. It could be possible to detect the speed of a
                      Message 12 of 15 , Aug 4, 2013
                      • 0 Attachment
                        I don't know jack about programing but was only floating a idea.
                        There are some external devices that decode cw. It could be possible to detect the speed of a received cw signal. This speed detection could be used to automatically adjust your cw keyers speed to match the other operator. Its just a wild idea, or how about another idea that would detect a bad fist and turn it into something readable.
                        Or a slow one that would save slow sending into a memory and play it back for you at a faster speed. Its apparent that I have nothing else to do to then come up with this useless stuff.

                        Robert KH2BR

                        --- In softrock40@yahoogroups.com, David Turnbull <dturnbull@...> wrote:
                        >
                        > On Fri, Aug 2, 2013 at 10:00 PM, kh2br <rholsti@...> wrote:
                        >
                        > > That is a very good idea to overcome the latency problem.
                        > > If you come up with a real nice cw keyer, think about adding automatic
                        > > speed detection that will adjust the keyer speed.
                        > > I haven't seen that yet.
                        >
                        >
                        > How would speed detection in a keyer work? I've never heard of such a thing
                        > and wouldn't know where to begin. Do you have the math worked out or a
                        > proof of concept running?
                        >
                        > 73 David http://AE9RB.com/
                        >
                      • Bill Cromwell
                        ... Hi Robert, Some of those ideas might be useful one time or another. But you ain t going to find anything that can sort out truly *bad* fists. If the other
                        Message 13 of 15 , Aug 4, 2013
                        • 0 Attachment
                          On 08/04/2013 10:30 AM, kh2br wrote:
                          >
                          > I don't know jack about programing but was only floating a idea.
                          > There are some external devices that decode cw. It could be possible
                          > to detect the speed of a received cw signal. This speed detection
                          > could be used to automatically adjust your cw keyers speed to match
                          > the other operator. Its just a wild idea, or how about another idea
                          > that would detect a bad fist and turn it into something readable.
                          > Or a slow one that would save slow sending into a memory and play it
                          > back for you at a faster speed. Its apparent that I have nothing else
                          > to do to then come up with this useless stuff.
                          >
                          > Robert KH2BR
                          >
                          Hi Robert,

                          Some of those ideas might be useful one time or another. But you ain't
                          going to find anything that can sort out truly *bad* fists. If the other
                          ham sends "flibbledygumper##93@!" all run together your machine is also
                          going to read "flibbledygumper##93@!" (if it reads anything at all).
                          Even the Google translator isn't going to help. How about detecting a
                          bad fist and just turning off the radio/turning on the TV? <evil grin>

                          73,

                          Bill KU8H
                        • Sid Boyce
                          Both this version and K3NG_Arduino_Keyer_2013071601 give the same errors on openSUSE and Kubuntu. The prog_uchar error fix by including
                          Message 14 of 15 , Aug 5, 2013
                          • 0 Attachment
                            Both this version and K3NG_Arduino_Keyer_2013071601 give the same errors on openSUSE and Kubuntu.

                            The "prog_uchar" error fix by including "-D__PROG_TYPES_COMPAT__" as recommended in header file
                            "avr/pgmspace.h" did not work.

                            Other errors follow such as EEPROM and mangling paths such as
                            lrwxrwxrwx 1 root root 12 Aug  5 11:32 /usr/include/avr -> /usr/lib/avr
                            lrwxrwxrwx 1 root root 35 Aug  5 12:02 /usr/include/EEPROM -> /usr/share/arduino/libraries/EEPROM

                            I still get the errors.
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino:228:28: error: variable or field ‘transmit_hell_pixels’ declared void
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino:228:28: error: ‘prog_uchar’ was not declared in this scope
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino:228:40: error: ‘hell_pixels’ was not declared in this scope
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino:228:58: error: expected primary-expression before ‘hellchar’
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino:200:1: error: expected unqualified-id before ‘-’ token
                            In file included from K3NG_Arduino_Keyer_2013072301UNSTABLE.ino:202:0:
                            /usr/share/arduino/libraries/EEPROM/EEPROM.h:32:8: error: ‘EEPROMClass’ does not name a type
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino: In function ‘void write_settings_to_eeprom(int)’:
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino:2520:5: error: ‘EEPROM’ was not declared in this scope
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino:2530:5: error: ‘EEPROM’ was not declared in this scope
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino: In function ‘int read_settings_from_eeprom()’:
                            K3NG_Arduino_Keyer_2013072301UNSTABLE.ino:2543:7: error: ‘EEPROM’ was not declared in this scope

                            73 ... Sid.

                            On 02/08/13 21:14, Sid Boyce wrote:
                            Hi David,
                            I have tried building it using "arduino" on openSUSE but I get syntax errors that I have not looked at to see if I can fix them.
                            73 ... Sid.

                            On 02/08/13 18:47, David Turnbull wrote:
                             
                            HiSid,

                            Doyou use the K3NG software? You can buy the nanoKeyer board for running this which is about the same price as mine. However, it's using square waves into a piezo and doesn't include an LCD.

                            73 David 
                            http://AE9RB.com/


                            On Fri, Aug 2, 2013 at 1:45 AM, Sid Boyce <sboyce@...> wrote:
                            Hi David,
                            I use a decades old Curtis keyer using a CMOS chip with the HiQSDR and it works well.
                            It connects into the Altera FPGA, the keyer itself has built-in sidetone and a speaker.

                            There is also the K3NG keyer using an Arduino.
                            73 ... Sid.



                            -- 
                            Sid Boyce ... Hamradio License G3VBV, Licensed Private Pilot
                            Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
                            Senior Staff Specialist, Cricket Coach
                            Microsoft Windows Free Zone - Linux used for all Computing Tasks
                            


                            -- 
                            Sid Boyce ... Hamradio License G3VBV, Licensed Private Pilot
                            Emeritus IBM/Amdahl Mainframes and Sun/Fujitsu Servers Tech Support
                            Senior Staff Specialist, Cricket Coach
                            Microsoft Windows Free Zone - Linux used for all Computing Tasks
                            
                          Your message has been successfully submitted and would be delivered to recipients shortly.