Schematic: Digital/Ethernet component
Schematic: Analog multiplexing component
The ooscc's brain is an Atmel AVR ATmega168. The ATMega handles the ethernet messages and A/D conversion. A different AVR could be used, but the ATMega168 has the appropriate features and pins. To interface over Ethernet, the ooscc uses a Microchip enc28j60 connected to a Belfuse Magjack. The enc28j60 makes handling ethernet methods fairly simple, while the Magjack greatly simplifies the ethernet jack circuitry. It is possible to replace the magjack with the standard ethernet port and an equivalent circuit. The ethernet-handling part of the circuit is very much based on Guido Socher's AVR-based Ethernet Device. The rest of the circuit consists of five CD4051 analog multiplexters, which allow the use of 32 analog inputs. Below is a picture of the circuitry in the first ooscc.
Source code: ooscc v 0.0.0b
Please note - this source code has only been tested by me, and is unknown to work on other systems. If you are brave and it works for you, please e-mail me and let me know. The ooscc's firmware is written in C. The source code is heavily commented throughout (both by me and Guido Socher), but as an overview it is fairly similar to the hardware in that it basically has a part for Ethernet interfacing and a part for analog interfacing. Some of the code remains unmodified from Guido Socher's original source code and includes an enc28j60 driver based on one written by Pascal Stang. The firmware creates ooscc messages that are compatible with the Open Sound Control 1.0 Specification. The analog to digital conversion is 10-bit and remembers the last four values for each analog input to reduce noise.
The ooscc schematics and firmware are distrubuted under the Gnu GPL.