Hawkboard, Getting started

I think the Hawkboard will serve us well in processing audio signals and streams. My main goal is to get enough done to prove the usability and concept to the audio community. To reach that goal there are a some things that need investigation and possibly development. Further on, my aim is to be able to do simple and advanced signal processing more accessible for end users.

Some of the items that needs to be covered
  1. Get the board running on some standard distribution which can be modified and recompiled if needed
  2. Get some DSP stuff running, examples and so on
  3. Figure out how to code DSP stuff that can be utilized from ARM
  4. Make some very realistic but hard(mathematically hard for fixed point) filters to show off power of floating point DSP
  5. Spread the word
  6. Design some generic path way for audio processing that will fit 80% of applications
    At the moment I'm thinking input-->12ch mixer --> 12 FIRx4096 -->12ch mixer -->12 IIR -->12ch mixer -->output
  7. Implement 6 in a couple of different ways
    A) Utilize Gstreamer pipes
    B) Figure out a way to make a ALSA-driver for the audio-codec that has a pipe going to DSP
    C) Run a DSP only implementation including input and output for low latency (coupled with purepath hardware from TI?)
  8. In parallell with 7 investigate alternative input and output possibilities
    A) HDMI, in and out
    B) SPDIF, in and out
    C) I2S, multiple channels and instances, in (and out)
    D) USB audio 2.0
  9. Start some GUI application for at least mixer instances and build from it, perhaps utilize GPIO to allow switching between presets
  10. Build on GUI to allow import of FIR and IIR coefficents from external source
  11. Start thinking on if we can run some analysis in ARM to calculate filter coefficients (Octave seems logical).
At the moment I'm fully focused on 1-3 and hope to get to 4 and 5 before end of September

There are endless of nice things we can do with DSP in and around audio.

To name a few possible and exciting opportunities:
  • Head related transfer function for headphone applications
  • Bass management in closed environments / Digital Room Correction
  • Linearization of drivers
  • Driver cross over application

My hopes are to excite the audio-community by proving the concept and start a snowball. In audio distortion and noise are everything, so my first obvious goal is to prove that the platform is capable of delivering high end signal processing.

Getting to know Hawkboard

I found out about the Hawkboard through the beagle community and for me it was a dream come true. I had been looking for a good DSP platform that was affordable and at least semi-open. Hawkboard looked better than anything I had been hoping for. The Hawkboard is produced by InnovateSolutions.

Short information on the processor and DSP of Hawkboard OMAP L138
CPU 1 C674x; 1 ARM9
Peak MMACS 2400
On-Chip L1/SRAM 64 KB
On-Chip L2/SRAM 256 KB
ROM 1024 KB
I2C 2

Other peripherals are:
TLV320AIC3106 stereo codec, 24bit 96kHz stereo in/out
TVP5147M1 video capture interface
THS8135 VGA output, Triple 10-Bit 240MSPS Video DAC

I started following a lot of different channels to learn what was working and what was not.
These are the Google groups I follow:

And these channels are available on the FreeNode IRC network:

Some interesting repositories that I follow: