Here’s an example of the audio received from a SM1000:

SM1000 FreeDV Adaptor

The SM1000 allows you to run FreeDV without a PC on any radio. Just plug it into your SSB or FM radio, and you now have Digital Voice (DV). You don’t have to buy a new radio to run Digital Voice! It’s based on a STM32F4 micro-controller, has a built in microphone, speaker amplifier, speaker, and transformer isolated interfaces to your radio. It’s just 80 x 100mm, and can be held in you hand and used like a regular PTT microphone. Or it can sit on your bench and work with your favourite headset.

The SM1000 was developed by David Rowe VK5DGR and Rick Barnich KA8BMA. It is being manufactured, tested and shipped by our good friend Edwin at Dragino in Shenzhen, China. The SM1000 is completely open – hardware and software – including the Codec 2 vocoder. You are encouraged to modify the software and hardware. It is possible to reprogram the SM1000 for other applications, such as speech processing for SSB radio using open source gcc tools.

The rig audio and PTT connections are 3.5mm sockets in parallel with a RJ45. A small patch panel can be used to configure the RJ45 pin out for your radio. You need to supply suitable audio cables, e.g. 3.5mm or RJ45 to your radio. The SM1000 operates from 8-16V (12V nominal) and uses approximately 200mW. Perfect for mobile or SOTA work! It also has a USB port for firmware updates from a Windows or Linux PC.

The SM1000 currently supports “analog pass through” and FreeDV 1600 modes. The SM1000 firmware can be upgraded via USB.

The “analog pass through” mode can be used to make SSB contacts without having to swap microphones. Press the mode button and it’s DV, one more press and you’re back to SSB. It’s easy to set up – a LED indicates microphone level clipping on transmit and errors on receive. Levels (to and from your radio and mic gain) are set using trimpots.

World Wide Orders

Please order from our Tindie store for shipping direct from China via EMS courier or e-packet. Please note prices are exclusive of local taxes and import duties.

Australian Orders

Just click the buttons below to order your SM1000 via PayPal. If you don’t have a PayPal account you can use a credit card at the end of the check out process.

The price below includes shipping via Express Post.

Adelaide customers: I will refund your shipping ($19.95) if you pick up. Please add a note to your PayPal order that you would like to pickup, otherwise I will Express Post to you. The store forces shipping for legacy reasons.

Item Price
SM1000 (Australian Customers) including shipping AUD$195.00 + shipping

What you get

The SM1000 is supplied with a sturdy metal enclosure, a USB programming cable, and jumper wires for the RJ45 patch panel.

What you have to supply

You need to supply a 2.1mm plug centre positive 12VDC (nominal) power source, patch cables to connect the SM1000 to your radio, and the wiring diagram for your radio’s microphone connector. You will need a a few hours of your time to assemble cables to connect the SM1000 to your radio.

SM1000 Support

For SM1000 support or just to tell us about your SM1000 experience please post to the Codec 2 mailing list.

The SM1000 circuit diagram is very useful.

Please feel free to add your own notes (e.g. configuration for your radio) to the FreeDV Wiki.

User Guide

  1. The SELECT button steps through (i) Analog pass through (ii) FreeDV 1600 (iii) test modes. On power up Analog pass through will be selected. Press SELECT once and you will get to FreeDV. In FreeDV mode the Sync and Error leds blink at random. Test mode generates a sine wave when PTT is pressed.
  2. In the current firmware the BACK button is not used.
  3. You can connect the SM1000 to your radio using the 3.5mm sockets or the RJ45 connector. The RIG MIC, RIG SPKR and RIG PTT signals are connected in parallel to the 3.5mm sockets and the RJ45. Stereo 3.5mm plugs should be used if possible. The stereo 3.5mm SM1000 sockets are wired to use the sleeve for ground and tip for signal, with ring unconnected. See also the circuit diagram (link above) and note below on using the external speaker connector with mono plugs.
  4. RJ45 connection to your radio – The CN12 Patch Panel is configured to connect the audio and PTT connections to your radio. You only need to configure the CN12 Patch Panel if you are using the RJ45. If you are using the 3.5mm connectors you do not need to configure the CN12 Patch Panel. Here is an example for a Yaesu radio:

    Above is a top view. To locate Pin 1 turn the PCB over and look at the bottom. Pin 1 is the square pad.

    Note that all grounds are floating (unconnected) by default, but can be connected together using the extra ground connections on CN12. In the Yaesu example above all grounds are connected together using the wires between pins 10-11 and 12-13. However many radios have a separate microphone ground. Note also some radios have reversed numbering for the RJ45.

    Use 5cm lengths of 24GA (0.5mm) maximum diameter solid core wire for the patch panel. Using wire greater than 24GA (0.5mm) may damage the patch panel sockets. Insert one end of the wire at a time using needle nose pliers.

  5. For level set up, you can adjust the RIG SPKR, MIC GAIN, and RIG MIC trimmers through holes in the SM1000 top cover.
  6. On receive, adjust the radio volume (AF gain) and/or SM1000 RIG SPKR trimmer R52 so the clip/error led is not blinking. The receive level is not critical. It doesn’t work better with a louder signal. It’s PSK so level insensitive. Clipping on the audio is bad, when this happens you’ll see the error led blink.
  7. On transmit (PTT pressed), adjust MIC GAIN trimmer R42 so that the clip led just blinks occasionally, at the peaks of yr speech. Once again, this is not very critical, as it’s Digital Voice. A louder microphone signal won’t make your signal stronger. However a clipped mic signal will sound bad. Note that MIC GAIN increases when turned anticlockwise (this will be fixed on later versions).
  8. From Rev E onwards Jumper J5 selects high or low range RIG MIC level. Add J5 if your radio requires a “line level” mic input of several hundred mVpp. Remove J5 for low, mV level mic input into your radio. Then finely adjust the RIG MIC level with R47 (next step). Prior to Rev E it is possible to solder a resistor onto your SM1000 to achieve the same boost in mic input level.
  9. The RIG MIC trimmer R47 is the most critical. This controls the level of the modem signal sent to your radio on transmit. With PTT pressed and your radio transmitting adjust RIG MIC so that your radio ALC is just moving. Too much transmit drive will lead to a distorted modem signal, splatter on adjacent frequencies, and bit errors. Your Digital Voice signal will not be improved! Over driving transmitters when using digital voice is the most common mistake for new users! For finer adjustment use a 2nd receiver to monitoring your FreeDV transmission. Connect this receiver to the x86 PC version of FreeDV to monitor the spectrum and scatter plot. Here is a blog post and video describing scatter plots and how they can be used to tune your FreeDV transmission.
  10. External Microphone – Jumper J3 provides electret microphone DC bias. Remove J3 if you do not want DC bias.
  11. External Speaker – The SM1000 3.5mm sockets are wired to use stereo or mono plugs. If you wish to use a mono plug for Ext Spkr (CN8) remove the jumper J2 on the PCB. This prevents a mono plug shorting the speaker amplifier output to ground resulting in no audio. Note the first production SM1000 (Rev D) did not have jumper J2 and should only be used with a stereo plug.
  12. You may notice background noise from the SM1000 with no signal connected, especially at high volume levels. This becomes inaudible when the SM1000 is connected to a SSB radio in either analog or digital mode.

Testing, Debugging, Development Notes

  1. SM1000 firmware: The current SM1000 binary image is here. Flashing instructions below.
  2. Building the SM1000 firmware: Instructions in codec2-dev/stm32/README, get the source code using instructions here.
  3. Flashing the SM1000 on Windows using Windows DFUse software. Apply power with PTT held down, then release PTT. Connect the SM1000 to a Windows PC.

    To create an image in the DFU format: Upload Action (to create a DFU file image). Choose, and then enter a file name to save the image. Select Upload, and select Yes.

    To Flash: Choose, to select the DFU flash file image. Select Upgrade to start the process, and select Yes.

    Thanks Walter K5WH for this procedure.

  4. Flashing the SM1000 on Linux (tested on Ubuntu 14.04). Apply power with PTT held down, then release PTT. Connect the SM1000 to a Ubuntu Linux PC and type “dmesg”. You should see a STM32F4 boot device. To flash the SM1000:
    $ sudo apt-get install dfu-util
    $ sudo dfu-util -d 0483:df11 -c 1 -i 0 -a 0 -s 0x08000000 -D sm1000.bin

    This operates quietly but after about 10 seconds you will be returned to the command line. Power cycle the SM1000 and the new firmware will run.
  5. You can use a STM32F4 Discovery board as an emulator pod for debugging SM1000 firmware.
  6. A sound blaster record input connected to RIG MIC CN7 is a good way to test if the SM1000 is transmitting a signal. You can receive your FreeDV signal on the bench using the x86 version of FreeDV on your PC. No radio is required for this test.


Parameter Value
Modes Analog, FreeDV 1600 (700B and VHF in late 2015)
DC Power Input CN3 8-15VDC, 200mW max
Rig Mic Output CN7 0.5 to 50mVpp
Ext Mic Input CN5 1000 (Jumper J3 in place) or 2000 (Jumper J3 removed) ohms AC impedance
Rig PTT Output CN9 Floating, less than 100 ohms on resistance
Ext Speaker Output 4 ohms min, 700mW max power into 8 ohms with 12V power input voltage


  1. SM1000 Hardware Design SVN repository.
  2. The firmware for the SM1000 is part of the Codec 2 software. The stm32 directory contains SM1000 specific drivers, which is linked with the FreeDV API.
  3. Series of blog posts on the SM1000 development.
  4. Nice write up of a mobile SM1000 installation by Mark VK5QI including tips on testing and debugging a microphone level problem.