Oliver Snowdon - 2012-05-30

Welcome to the LabMonkey wiki homepage! LabMonkey is a project to design a collection of embedded devices which can be networked together to automate the process of controlling conditions and logging results in scientific experiments. To keep the minimum requirements for the electronics as simple as possible, whilst still allowing the network to be arbitrarily large, a protocol has been designed specifically for the task, and implemented for 8-bit AVR microcontrollers. On the electrical level, this protocol has a lot in common with I2C, such as the use of pull-up resistors to send logic "1"s, which means they can be overridden by logic "0"s and this can be used to detect and mitigate collisions. The project is currently at the stage of testing this protocol, and implementing some simple devices which use it. See the "Example Projects" download folder for the source code, and for details of what is already possible.


To-Do List:

  • Implement super-fast interrupt mode, for triggering pre-configured events even before packet data gets sent
  • Clean up driver firmware
  • Write lightweight virtual machine/interpreter which runs on the microcontrollers themselves, to allow them to perform processing tasks which are delegated to them by other networked devices, rather than being specified in firmware. (work started on virtual machine)
  • More hardware capabilities, such as:
    • SD card access (at the moment raw data access works - aiming for FAT filesystem support)
    • timer interrupts configurable over network (done - via virtual machine)
    • data streaming over USB - now works - problem fixed by slowing down the USART link between the spectator and the USB interface just a bit.
    • various analogue signal processing modules to go on ADC channels and PWM outputs; integrators, low pass filters, output amplifiers (to allow devices to control high voltages/large currents), input amplifiers (to allow devices to measure very small signals).
    • "flow control" nodes, for larger networks
    • opto-coupler nodes, to isolate sensitive parts of the network from electrical noise.
 

Last edit: Oliver Snowdon 2012-06-02