Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

Python module to communicate with SportIdent main stations

Project description

Sireader is a python module to communicate with a SportIdent main station to read out SportIdent cards. SportIdent is an electronic punching system mainly used for orienteering events.

Sireader supports two major operation modes. It can be used for complete card readout or in control station mode to send punches from a control. The first mode is typically used for card readout after the finish line to read the card data into an event software. The second mode is used to get live result from an intermediate control.


GIT Repository:


There are 3 classes in the sireader module. SIReader is the base class containing common functions. It’s imported to have easy access to it’s constants. SIReaderReadout implements classical card readout. SIReaderControl implements a station configured as control which continuously sends punches.

First import the relevant classes:

from sireader import SIReader, SIReaderReadout, SIReaderControl

SIReader only supports the so called “Extended Protocol” mode. If your base station is not in this mode you have to change the protocol mode first:

# change to extended protocol mode

To use a SportIdent base station for card readout:

from time import sleep

# connect to base station, the station is automatically detected,
# if this does not work, give the path to the port as an argument
# see the pyserial documentation for further information.
si = SIReaderReadout()

# wait for a card to be inserted into the reader
while not si.poll_sicard():

# some properties are now set
card_number = si.sicard
card_type = si.cardtype

# read out card data
card_data = si.read_sicard()

# beep

To use a base station as a control sending punches:

# configure station

# connect to station
si = SIReaderControl()

# poll for new punches
punches = si.poll_punch()

# reset station configuration

Finally set the station back to basic protocol:

# change back to basic protocl

API Documentation

Complete documentation is contained in the module source code and can be read online at:

This documentation is autogenerated from the source code and represents the version in the GIT repository.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for sireader, version 1.1.1
Filename, size File type Python version Upload date Hashes
Filename, size sireader-1.1.1.tar.bz2 (24.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page