gnusb is an open source USB-Sensor Box. gnusb is a combined hardware/software project to provide a platform upon which users can build their own USB input/output devices, primary for connecting Max/MSP and puredata to the outside world via sensors and digital i/o.
It is built around an ATMEL Atmega16 microprocessor and provides access to three of its four ports: 8 analog inputs on PORTA, and 8 digital inputs/outputs on each of PORTB and PORTC. It provides a bootloader for convenient uploading, tweaking and testing of firmware.
The gnusb hardware, firmware and host software are intended to be a mere starting point for own creations. A foundation on which you can build upon.
By default, the gnusb provides Max/MSP and pure-data patches with:
- 8 analog inputs, with variable smoothing
- 16 digital inputs/outputs
add some sensors, and off you go....
gnusb is based on Objective Development's USB driver. It needs very few external components and thus it's cheap and easy to build. Objective Development's USB driver is a firmware-only implementation of the USB 1.1 standard (low speed device) on cheap single chip microcomputers of Atmel's AVR series, such as the ATtiny2313 or even some of the small 8 pin devices. It implements the standard to the point where useful applications can be implemented. See the file "firmware/usbdrdv/usbdrv.h" for features and limitations.
What's New in This Release:
· a lot of cleanup & more comments in the code
· included latest usb dribver from obdev.at
· moved cryptic ADC-code into functions in gnusb.c
· gnusbCore renamed gnusb
· the gnusb now always samples its inputs at 10bit resolution
· changed usb reply to 12 bytes: 8 bytes AD (MSB), 1 byte PORTB, 1 byte PORTC, 2 bytes remaining LSB of AD values
· added variable smoothing / low pass filter
· added support for changing direction of PORTB/C
· added support for setting PORTB/PORTC
· Added support for new functions (smoothing, digital inputs/outputs)
· Added internal clock for autonomous polling
· renamed all constants for consistency