Where to get my stuff

All of the projects I maintain are currently hosted on my GitHub page. I also maintain some of the software projects on the Arch User Repository as well as on my personal Gentoo overlay which you can also find in your eselect repository list.

Below is a list and brief description of some of these projects.

specgram

specgram is a small program that generates spectrograms from raw files or from stdin.

The motivation for writing it was the lack of a flexible tool that would allow me to analyze input from a wide range of sources (from audio to megahertz-wide RF bands), support raw complex input and also support live rendering.

libecbor

libecbor is a CBOR library with a small memory footprint, small code size and no dependencies. It supports multiple encoding and decoding modes, each tailored for various constraints your device might have.

It is particularly friendly to MCUs as both encoding and decoding has an absolute upper bound on stack usage, regardless of the objects being manipulated.

CBOR is a lightweight JSON-like binary serialization format used in IoT and similar applications.

At the time of writing the library I was working at Amazon and CBOR was being used for communication with the (then in development) Nitro systems. I can’t remember exactly what irked me with the existing C/C++ implementations at that time, but I saw the need for a lighter-weight no-bullshit library.

Unfortunately I didn’t get to implement it there, but hopefully it found some use in the wild.

libsstv

libsstv is a dependency-free SSTV encoding and (in the future) decoding C library.

The library is tailored for embedded applications, as it avoids floating point arithmetic. Currently work in progress, it supports encoding of ROBOT, SCOTTIE, MARTIN and PD modes.

It was written as a support library for high altitude balloon experiments performed by friends of mine. Because the amateur radio community lacks a proper SSTV library, I decided to extend the functionality to multiple modes and publish it under the MIT license.

cat-a-hack

cat-a-hack is a prototyping board for PC or uC to transceiver isolation.

Ham radio transceivers will interface with PCs or other equipment in two ways:

  • via the CAT protocol for control
  • via a line-level audio port for audio I/O

In order to avoid ground loops, galvanic isolation between the PC and transceiver is often implemented in an interface device, such as the Tigertronics SignaLink. This device is usually connected to the PC via USB and has an USB-to-UART driver (usually a FT232x chip) and a USB audio interface (usually a PCM29xx chip), both managed by an USB hub IC.

cat-a-hack is more aimed towards the hacker power-user, and does a few things differently:

  • cheaper, about 50 euro of parts for the fully loaded board
  • three separate grounds (audio, UART, transceiver), in case the controlling and processing devices are separate
  • FTDI chip is optional; a pin header exposes the UART interface if the user already has a FTDI cable or uses a MCU with UART support.
  • no built-in audio interface; everybody has a line level input and output, or otherwise may use other ADC/DACs, no need to include it on the board
  • customizable audio jack ports; jumpers for OMTP/CTIA, left/right channel selector, 1/2 port selector
  • soldering area for customization

NOTE: The current revision has an issue with the choice of RS232 line driver. The board will work only with TTL-level CAT ports.

Photo of a populated board:

board

Connected to a Yaesu FT-857, working FT8 on 20m:

board