libpruio  0.6.4.c
Fast and easy Digital/Analog Input/Output for Beaglebones
libpruio Documentation

Welcome to libpruio library,

  • a driver for ARM33xx micro processors,
  • designed for Beaglebone hardware, supporting
  • analog input and
  • digital input and output features.

It's designed for easy configuration and data handling at high speed. libpruio software runs on the host (ARM) and in parallel on a Programmable Realtime Unit SubSystem (= PRUSS or just PRU) and controls the CPU subsystems

  • Control Module: CPU Ball configurations (pinmuxing)
  • GPIO: General Purpose Input / Output
  • PWMSS: Pulse-Width Modulation Subsystem (PWM, QEP, CAP)
  • TSC_ADC_SS: Touch Screen Controler and Analog-to-Digital Convertor SubSystem (or just ADC)
  • TIMER: Timers 4 to 7 (TIMER, PWM)

The driver supports three run modes

  • IO mode: digital and analog lines, sloppy timing controlled by the host,
  • RB mode: digital and analog lines, accurate ADC timing controlled by the PRU,
  • MM mode: analog lines and optional triggers, accurate ADC timing controlled by the PRU.

Since version 0.6.2 a PRU driver is included to load and start firmware on the PRUSS.

The libpruio project is hosted at GitHub. It's developed and tested on a Beaglebone Black. It should run on all Beaglebone platforms with Debian based LINUX operating system, including PocketBeagle and BeagleboneBlue. It's compiled by the FreeBasic compiler. Wrappers and examples code for C and Python programming languages are included.

Find more information in the online documentation at

or at related forum pages:

Note
The PRUSS are powerful precessors that can access any memory at the host system. There's no kernel protection, the PRU can even access kernel space memory. Malware running on a PRU can damage your complete system. So be careful which software you run on, and enable the PRUSS only when you need them.

Licence:

libpruio (LGPLv2.1):

Copyright © 2014-2019 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net

This program is free software; you can redistribute it and/or modify it under the terms of the Lesser GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110- 1301, USA. For further details please refer to: http://www.gnu.org/licenses/lgpl-2.0.html

Examples and utility programs (GPLv3):

Copyright © 2014-2019 by Thomas{ doT ]Freiherr[ At ]gmx[ DoT }net

The examples of this bundle are free software as well; you can redistribute them and/or modify them under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

The programs are distributed in the hope that they will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110- 1301, USA. For further details please refer to: http://www.gnu.org/licenses/gpl-3.0.html