Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/daniel-thompson/rfstompbox

Circuit diagrams and software for a USB foot switch using an ATTiny microcontroller.
https://github.com/daniel-thompson/rfstompbox

Last synced: about 2 months ago
JSON representation

Circuit diagrams and software for a USB foot switch using an ATTiny microcontroller.

Awesome Lists containing this project

README

        

README
======

RFStompbox is a USB keyboard with just one key, albeit a multifunction one.
It is designed to be built with a foot switch and a strong case in order to
provide foot operated control for a computer.

It can be used:

- to start and stop playback of backing tracks
- to engage/disengage software implemented effects
- to switch patches or presets

At power on it acts as a space bar (without auto repeat) but by holding down
the button for a second then other modes can be selected.

FILES IN THE DISTRIBUTION
-------------------------

Readme.txt ........ The file you are currently reading.
circuit/ .......... Diagrams of the circuit.
firmware .......... Source code of the controller firmware.
firmware/usbdrv ... USB driver -- See Readme.txt in that directory for info
License.txt ....... Public license (GPL2) for all contents of this project.
Changelog.txt ..... Logfile documenting changes in firm- and hardware.

COMPILING AND INSTALLING
------------------------

This project can be built on Unix (GNU/Linux, FreeBSD or Mac OS X) or Windows
although no testing has been done on any platform except GNU/Linux.

Building on Windows:
You need WinAVR to compile the firmware. A package can be downloaded from:

WinAVR: http://winavr.sourceforge.net/

To build the firmware with WinAVR, change into the "firmware" directory,
check whether you need to edit the "Makefile" (e.g. change the ISP upload
tool) and type "make" to compile the source code. Before you upload the code
to the device with "make flash", you should set the fuses with "make fuse".

Building on Unix (GNU/Linux, FreeBSD and Mac):
You need the GNU toolchain and avr-libc to compile the firmware. See

http://www.nongnu.org/avr-libc/user-manual/install_tools.html

for instructions on how to install avr-gcc and avr-libc.

To build the firmware, change to the "firmware" directory, edit "Makefile"
to use the programmer of your choice and type "make" to compile the source
code. Before you upload the code to the device with "make flash", you
should set the fuses with "make fuse".

MODES OF OPERATION
------------------

At power on the system enters mode 1:

Mode 1:
This mode is designed for standard software where the space bar toggles
on/off controls (e.g. a checkbox in a GUI) or toggles play/pause
controls (common in media player).

Single click -> Send "Space"
Double click -> Disabled

Hold button down -> Switch to mode 2

Mode 2:
This mode is desinged for the guitarix or gx_head amp modelling software.
It can be used to engage/disengage an effect (single click) and also to
change presets (double click).

Single click -> Send "Return"
Double click -> Send "Return", "Return", "1" or
Send "Return", "Return", "2" (toggles)

Hold button down -> Switch to mode 1

It is possible for anyone with a ICSP programmer to add new modes. See
source code (or contact author) for more information.

HARDWARE
--------

RFStompbox is a member of a family of simple platforms contructed from
Atmel's ATTiny85 microcontrollers. All family members share the same USB
pins and these pins have been carefully selected to avoid using pins
that are needed for in-circuit programming (ICSP). This allows them to be
reprogrammed without disconnecting them from the computer that supplies
them power.

The RFStompbox differs from the standard platform by using diodes instead
of a voltage regulator (not required to monitor a switch) and by connecting
the switch directly to the main board (rather than a daughterboard hanging
off the ICSP connector).

USB communications using software bit-banging (thanks to Objective
Development's V-USB driver). Strictly speaking this circuit does not
meeting the USB electrical specification but is close enough to work with
almost all USB hosts. It also uses the USB host clock to callibrate the
ATTiny's internal oscillator eliminating the need for an external crystal.

Two diagrams of the circuit are supplied. The first, rfstompbox.pdf, shows
the full circuit complete with the ICSP port to allow the firmware to be
updated. The second is functionally equivalent but does not include the
ICSP port meaning that the the microprocessor must be removed from the
circuit for firmware updates.

Note: The striped down circuit has a deliberately inefficient design
(in terms of board space, redundant cut tracks and the use a wire
where a jumper could be used instead) in order to allow an ICSP
header to be retrofitted to an existing build.

The result is a very cheap circuit to build. Have fun.

MORE INFORMATION
----------------

RFStompbox was written by Daniel Thompson using driver software and
example code from Objective Development. For other projects by the same
author see:

http://www.redfelineninja.org.uk/

Flip van den Berg's 1-key keyboard source code was used as "scaffolding"
whilst developing the firmware for RFStompbox although none of his code
still appears in the final release.

http://blog.flipwork.nl/?x=entry:entry081009-142605

For more information about Objective Development's firmware-only USB driver
for Atmel's AVR microcontrollers please visit the URL

http://www.obdev.at/products/vusb/

A technical documentation of the driver's interface can be found in the
file "firmware/usbdrv/usbdrv.h".