C library (with Python bindings) for communicating with the Intrepid Control Systems neoRAD-IO2 product line — a family of ruggedized, isolated analog / digital / temperature DAQ devices that connect over USB. Up to eight devices can be daisy-chained, with 2.5 kV bank-to-bank isolation.
pip install neoradio2
import neoradio2
for device in neoradio2.find():
print(device)
handle = neoradio2.open(device)
# ... talk to the device ...
neoradio2.close(handle)More detail: python/README.md ·
Python docs ·
C library docs
This repository uses git submodules for the HID backend and the frame description headers, so clone recursively (or initialize them after cloning):
git clone --recursive https://github.com/intrepidcs/libneoradio2.git
# or, in an existing checkout:
git submodule update --init --recursive
cmake -S . -B build
cmake --build build
Add -DBUILD_SHARED_LIBS=ON for a shared library, or -DBUILD_PYTHON_BINDINGS=ON
to build the Python extension via CMake directly.
Linux: install the udev rules so devices are accessible as a normal user —
copy 99-intrepidcs.rules to /etc/udev/rules.d/, run
sudo udevadm control --reload-rules && sudo udevadm trigger, and add your user
to the users group (sudo usermod -aG users $USER).
Build dependencies: sudo apt install cmake build-essential libudev-dev
(Debian/Ubuntu) or sudo dnf install cmake gcc-c++ libudev-devel (Fedora).
Windows: Visual Studio 2019 or newer (MSVC) with CMake.
| Path | Contents |
|---|---|
libneoradio2/ |
C/C++ library sources, headers, and C examples |
python/ |
pybind11 bindings, Python examples, tests, and docs |
libneoradio2/hidapi/ |
HID backend (submodule) |
libneoradio2/neoRAD-IO2-FrameDescription/ |
Wire-frame struct definitions (submodule) |
MIT — see LICENSE. Copyright © Intrepid Control Systems, Inc.