OpenStint is a software defined radio (SDR) based laptiming decoder, currently implemented with HackRF One. It works both with its own transponder protocol and with AMB/RC3-based transponders. It can run on a Raspberry Pi 3 Model B+. Only a minimal electronics knowledge is required; touching a soldering iron is optional.
Side-projects: openstint transponder | antenna preamplifier
To learn more how SDR works, watch Andreas Spiess explaining it.
You have compile it from source. Install its dependencies first:
sudo apt-get install hackrf libhackrf libhackrf-dev libliquid libliquid-dev licppzmq cppzmq-dev libfec libfec-devThen checkout this repo, and build with cmake/make:
cmake .
make
./src/openstintVehicle passings are printed to stdout and published with ZeroMQ at :5556. The easiest method for testing with real transponders is with a near-field magnetic probe (sub-$10 stuff, search on ebay/aliexpress or see Dave Jones DIY one).
To use goodies in the integrations/ directory, sudo apt-get install python3 python3-zmq as well.
Note on Mac: we can't brew install libfec, compile and install it from source.
If this is your first rodeo, sudo apt-get install cmake build-essentials libtool autoconf as well.
The primary method of 3rd-party integration with OpenStint is via ZeroMQ. The openstint process listens by default on port :5556, and acts as a ZeroMQ PUBLISHER for arbitrary number of clients.
The decoder protocol is documented under the docs/ directory.
Find some built-in integrations in the integrations/ directory. Two notable are subscriber.py and laptimer.py, both being ChatGPT-generared without any modifications.
openstint -h
Usage: openstint [-p tcp_port] [-l <0..40>] [-v <0..62>] [-a] [-b]
-p port default:5556 ZeroMQ publisher port
-l <0..40> default:24 LNA gain (rf signal amplifier; valid values: 0/8/16/24/32/40)
-v <0..62> default:24 VGA gain (baseband signal amplifier, steps of 2)
-a default:off Enable preamp (+13 dB to input RF signal)
-b default:off Enable bias-tee (+3.3 V, 50 mA max)
- Increase compatibilty with existing software by implementing an OpenStint-P3 bridge
- RTL-SDR support (inexpensive software defined radio)
- Adaptive equalization to decrease EVM
RC4 support is not pursued. There are already multiple open-source transponder projects out there. One can order an assembled 2x10pcs OpenStint-compatible panel from JLCPCB for less than $100, including taxes and shipping. For a cost of a single brand-name transponder, a whole club can enjoy reliable laptiming. Then why bother decyphering a protocol which was designed to be and to remain closed?!?
Submit PRs according to the project's core values:
- it should be and remain a solution for small-scale clubs and friendly gatherings
- it should run on constrained hardware (Raspberry Pi 3 Model B+)
- the interfaces should be simple and well documented (to promote 3rd-party integration)
- "does one thing and one thing well" phylosophy
Otherwise, I'll to adhere myself to the C4 community process.