Analog I/O

Introduction

Analog I/O means setting and measuring analog quantities, such as a voltage or current. Analog input is more commonly known as Data AQuisition (DAQ), and analog I/O is sometimes referred to as Data AQuisition and Control (DAQC).

Analog I/O is very important in a laboratory to efficiently change certain variables, perhaps while measuring some other variable. Julia has some packages for analog I/O, which are collected on this page. Most packages are aimed at specific hardware (such as the Raspberry Pi) or specific manufacturers (such as National Instruments).

Overview

This section is still barely written. If you want to help out, see the message at the bottom of the page!

Packages

NIDAQ.jl

GitHub Repo stars deps NIDAQ Downloads
GitHub last commit (branch) version Coverage

LabJack.jl

GitHub Repo stars deps LabJack Downloads
GitHub last commit (branch) version Coverage

RedPitayaDAQServer.jl

GitHub Repo stars deps RedPitayaDAQServer Downloads
Stable Dev GitHub last commit (branch) version Coverage

DashDaq.jl

GitHub Repo stars deps DashDaq Downloads
GitHub last commit (branch) version Coverage

Raspberry Pi

As a special case, the Raspberry Pi has capabilities for analog IO, via the 40-pin GIPO. This can be used with periphiral Hardware Attached on Top (HAT) to compose a decent analog I/O device.

There are two packages available, with slightly differing capailites

PiGPIO.jl

GitHub Repo stars deps PiGPIO Downloads
Stable Dev GitHub last commit (branch) version Coverage
This is the oldest and most starred option, with the best support. Using the pigpio daemon for the heavy lifting, it supports all the capabilities of the GPIO, which is the main reason to prefer this package over BaremetalPi.jl. It is a translation of the python package with the same purpose.

BaremetalPi.jl

GitHub Repo stars deps BaremetalPi Downloads
GitHub last commit (branch) version Coverage
This package allows you "to access Raspberry Pi peripherals without requiring external libraries". The motivation is that "avoiding middlewares can help to decrease latency for real-time applications". Note that this package should be concidered in alpha, and has only been tested against the Raspberry Pi W Zero.

This website is a community effort covering a lot of ever-changing information. It will therefore never be complete or without error. If you see something wrong, or have something to contribute, please see the "Contributing" section in the github repository.

Last modified: May 03, 2024. Built with Franklin.jl