I/O expansion of single-board Linux computers
Developing software for hardware expansion on a variety of single-board Linux platforms, including the BeagleBone and the Raspberry Pi.
Resources
The systems and components I'll be using.
Goals
- PyBBIO interactive mode ✓
- PyBBIO PWM support ✓
- PyBBIO I2C support
- Multi-platform GPIO web server with web GUI and full web API (either by extending PyBBIO or starting from scratch)
Code
Kernel
Planning
I'll start by continuing work on
PyBBIO, which is a Python library for Arduino-style hardware IO support on the BeagleBone. I think my first step will be to extend PyBBIO's
BBIOServer to include a full web API which can be used with or without a web GUI. From there I'll look into possibly extending PyBBIO to support multiple single-board Linux systems, and I'd like to write some sort of driver to sit between PyBBIO and /dev/mem to allow non-root users to run PyBBIO programs.
Looking into user space / kernel space communication:
I've been working on compiling my own kernel for the BeagleBone, including all sorts of hardware IO modules. I'd like to roll my own distro for it, probably derived from Ubuntu or Debian.
Looking into I2C support for PyBBIO; should be able to use
i2c-tools.
Using i2cdetect to list i2c ports:
$ i2cdetect -l :
i2c-1 i2c OMAP I2C adapter I2C adapter
i2c-3 i2c OMAP I2C adapter I2C adapter
The headers on the BeagleBone breakout I2C1 and I2C2. The BB I2C modules are numbered from 0, and I believe ic2-tools starts counting from 1, so i2c-1 above would be the I2C0 module used for on-board peripherals, and i2c-3 would be the I2C2 module on the BeagleBone's headers. The I2C1 module is reserved by the kernel for the BeagleBone's cape I2C EEPROM standard (to detect what capes are connected), so it's not available to ic2-tools by default.
Jim says :
- Here's another python - I2C library : http://pyi2c.sourceforge.net/
- Talked about adafruit WebIDE, uses bitbucket as storage, remote development / run on raspberry pi
36 x 48 poster for about $55 including shipping.
(If it lives in the science building, I can pay for it.)