Skip to content
@hztools

hz.tools

@paultag's SDR code

hz.tools

Hello! You've found @paultag's radio code!

Interested in future updates? Follow me on mastodon at @[email protected] Posts about hz.tools will be tagged #hztools.

I've been working on learning about SDRs for a few years, and this organization contains code that I've been working on to try and learn about radios by building everything from start to finish.

It's been a ton of fun, and 4 years (at the time of writing, since 2019) of learning, which has been incredibly rewarding.

I've decided, after a few years that it's time to make a number of them public, and to start working on them in the open, as I’ve built up a bit of confidence around it, and feel confident that the repo doesn’t contain overt lies.

Expectations within this Organization

  • I do want this library to be used to learn with. Please go through it all and use it to learn about radios and how software can control them!
  • I am interested in bugs if there’s a problem you discover. Such bugs are likely a great chance for me to fix something I’ve misunderstood or typoed.
  • I am interested in PRs fixing bugs you find. I may need a bit of a back and forth to fully understand the problem if I do not understand the bug and fix yet. I hope you may have some grace if it’s taking a long time.

However,

  • I do not want this library to become a critical dependency of an important project, since I do not have the time to deal with the maintenance burden. Putting me in that position is going to make me very uncomfortable.
  • I am not interested in feature requests, the features have grown as I’ve hit problems, I’m not interested in building or maintaining features for features sake. The API surface should be exposed enough to allow others to experiment with such things out-of-tree.
  • I’m not interested in clever code replacing clear code without a very compelling reason.
  • I use GNU/Linux (specifically Debian), and from time-to-time I’ve made sure that my code runs on OpenBSD too. Platforms beyond that will likely not be supported at the expense of either of those two. I’ll take fixes for bugs that fix a problem on another platform, but not damage the code to work around issues / lack of features on other platforms (like Windows).

API Stabilty

I can make no promises about the stability of the API and it's subject to complete and total breakage in a single commit. I need this freedom to continue to learn and refine my understanding of software defined radios without having to coordinate changes with a wider ecosystem. Perhaps one day we'll get there, but for now, this is the standing policy.

LICENSE

Currently, all code is MIT/Expat licensed. Ensure proper attribution is maintained if you copy code. Email me if you have any questions.

Popular repositories Loading

  1. go-sdr go-sdr Public

    go-sdr contains go fundamental types and helpers to allow for reading from and writing to software defined radios.

    Go 18 2

  2. go-mjpeg go-mjpeg Public

    Encode a golang image.Image to an mjpeg stream

    Go 5 1

  3. go-pulseaudio go-pulseaudio Public

    cgo bindings to pulseaudio, allowing audio i/o on linux

    Go 3 1

  4. go-fftw go-fftw Public

    fftw is a cgo wrapper of fftw, to preform FFTs

    Go 2

  5. go-fm go-fm Public

    fm allows for the demodulation or modulation of a frequency modulated IQ stream to or from a float32 audio stream

    Go 2

  6. go-gpib go-gpib Public

    go-gpib are cgo bindings to use GPIB (IEEE-488) devices on Linux

    Go 2

Repositories

Showing 10 of 13 repositories
  • examples Public

    Example programs using hz.tools

    hztools/examples’s past year of commit activity
    Go 2 MIT 0 0 0 Updated Jul 16, 2023
  • go-sdr Public

    go-sdr contains go fundamental types and helpers to allow for reading from and writing to software defined radios.

    hztools/go-sdr’s past year of commit activity
    Go 18 MIT 2 0 0 Updated Jun 22, 2023
  • go-fm Public

    fm allows for the demodulation or modulation of a frequency modulated IQ stream to or from a float32 audio stream

    hztools/go-fm’s past year of commit activity
    Go 2 MIT 0 0 0 Updated May 26, 2023
  • go-mjpeg Public

    Encode a golang image.Image to an mjpeg stream

    hztools/go-mjpeg’s past year of commit activity
    Go 5 MIT 1 0 0 Updated May 26, 2023
  • go-cli Public

    helpers for RF-aware CLI applications

    hztools/go-cli’s past year of commit activity
    Go 2 MIT 0 0 0 Updated May 26, 2023
  • go-rf Public

    go-rf contains go fundamental types and helpers to allow Go code to easily manipulate RF related types.

    hztools/go-rf’s past year of commit activity
    Go 1 MIT 0 0 0 Updated May 26, 2023
  • go-rfcap Public

    rfcap is a file format with extremely small ambitions, serialization of IQ data at a byte boundary

    hztools/go-rfcap’s past year of commit activity
    Go 1 MIT 0 0 0 Updated May 26, 2023
  • go-tap Public

    Create a TAP interface to read/write Ethernet Frames on Linux or OpenBSD

    hztools/go-tap’s past year of commit activity
    Go 2 MIT 0 0 1 Updated May 26, 2023
  • go-fftw Public

    fftw is a cgo wrapper of fftw, to preform FFTs

    hztools/go-fftw’s past year of commit activity
    Go 2 MIT 0 0 0 Updated May 26, 2023
  • go-am Public

    am allows for the demodulation or modulation of an amplitude modulated IQ stream to or from a float32 audio stream

    hztools/go-am’s past year of commit activity
    Go 1 MIT 0 0 0 Updated May 14, 2023

Top languages

Loading…