Skip to content
dperedaPublic
forked from zsellera/openstint

About

RC laptiming decoder using HackRF One software defined radio

Resources

Stars

4 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

34 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenStint Laptiming Decoder

OpenStint logo

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.

Quickstart (Ubuntu/RaspberryPi)

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-dev

Then checkout this repo, and build with cmake/make:

cmake .
make
./src/openstint

Vehicle 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.

Integrations

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.

Command line arguments

openstint -h
Usage: openstint [-d ser_nr] [-p tcp_port] [-l <0..40>] [-v <0..62>] [-a] [-b] [-m]
	-d ser_nr   default:first   serial number of the desired HackRF
	-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)
	-m          default:off 	Enable monitor mode (print received frames to stdout)

Future plans (some sort of a roadmap)

  • 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?!?

Contribution

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.

About

RC laptiming decoder using HackRF One software defined radio

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages