SM1000 Part 3 – Rx Working

After an hour of messing about it turns out a bad solder joint meant U6 wasn’t connected to the ADC1 pin on the STM32F4 (schematic). This was probably the source of “noise” in some of my earlier unit tests. I found it useful to write a program to connect the ADC1 input to the . . . → Read More: SM1000 Part 3 – Rx Working

SM1000 Part 2 – Embedded FreeDV Tx Working

Just now I fired up the full, embedded FreeDV “tx side”. So speech is sampled from the SM1000 microphone, processed by the Codec 2 encoder, then sent to the FDMDV modulator, then out of the DAC as modem tones. It worked, and used only about 25% of the STM32F4 CPU! A laptop running . . . → Read More: SM1000 Part 2 – Embedded FreeDV Tx Working

Embedded FreeDV

For the SM1000 development I need a way to embed the core functionality of a FreeDV “mode” in a simple library. A FreeDV “mode” is defined by the Codec 2 rate, the FEC, the frame structure, and the FDMDV modem waveform. Several modes have evolved over the past 18 months, and more are likely . . . → Read More: Embedded FreeDV

SmartMic SM1000 Part 1

So the parts and PCB arrived from the SM1000 last week, and yesterday I started loading. I use a stereo microscope and hand solder each part. It’s actually fun, a nice change from software.

Here is the current (Rev B1) SM1000 schematic if you would like to follow along.

First I assembled the 5V switching supply, . . . → Read More: SmartMic SM1000 Part 1

Democratising HF Radio Part 1

I recently submitted a Shuttleworth Fellowship grant application. I had planned to use the funding to employ people and accelerate the roll out of the project described below. I just heard that my application was unsuccessful (they wanted something more experimental). Never mind, the ideas lives on!

I’m exploring some novel ideas for messaging over . . . → Read More: Democratising HF Radio Part 1

Reducing FDMDV Modem Memory

For the SM1000 (SmartMic) project I need to run the FDMDV HF modem on the STM32F4 micro-controller. However The STM32F4 only has 192k of internal RAM, and the modem in it’s original form uses over 400k. I wrote a unit test to break down the memory usage:

david@bear:~/tmp/codec2-dev/build_dir$ ./unittest/fdmdv_mem
struct FDMDV.......…: 409192
prev_tx_symbols....…: 168
tx_filter_memory......: 1008
phase_tx..........….: 168
freq..................: . . . → Read More: Reducing FDMDV Modem Memory

Energy Equivalents of a Krispy Kreme Factory

My 15 year old son is rather excited at the prospect of Adelaide’s first Krispy Kreme factory. This factory will be pumping out 5,000 donuts an hour.

Now a donut contains about 1000 kJ of energy. This is chemical energy, in the form as fat and sugars and carbohydrates. Our bodies are . . . → Read More: Energy Equivalents of a Krispy Kreme Factory

HF Modem Frequency Offset Estimation

One of my goals for 2014 is to make FreeDV work as well as SSB on HF radio channels. Recently I have been working on improvements to the frame sync algorithms used in the FDMDV modem. I would like to move from a “hard” sync decision to a “soft” one, such that the demod . . . → Read More: HF Modem Frequency Offset Estimation

Email to an Anti-Vaxer

I recently had an email conversation with an anti-vaxer. I enjoy critical thinking exercises like this, and thought my response might be useful to publish.

The anti-vaxers key points (I’ve paraphrased here as it was a private email) were:

“An Australian TV program A Current Affair (ACA) screened a segment around a family who was awarded a . . . → Read More: Email to an Anti-Vaxer

Fixed Point Goertzal Tone Detector

This post is a tutorial on fixed point DSP, where I provide a detailed worked example of porting a Goertzal algorithm based tone decoder from float to fixed point.

My post on Fixed Point Scaling is consistently popular. I think that’s because there just isn’t much information out there on fixed point DSP. In particular, . . . → Read More: Fixed Point Goertzal Tone Detector