- Open Source = Flexible
- All code and CAD is available so you can make changes and improvements to anything you want!
- Low Latency
- Less than 3ms latency between a trigger command being sent and the laser diodes being powered on.
- Wirelessly Adjustable Waveforms
- Cerebro can be produce customizable waveforms with 1ms resolution. The waveform parameters can be adjusted wirelessly, even while the animal is behaving.
- Laser Diodes
- Laser diodes are more powerful than LEDs. Instead of using a LED coupled to a large fiber, you can use a laser diode coupled to smaller fiber and get equivalent light power output but with reduced brain tissue damage. Bilateral implants have been capable of up to 15 mW per fiber-coupled laser diode or 450 mW/mm2 (tested with two 520 nm laser diodes coupled to 200 μm diameter fibers and powered by two 105 mAh lipo batteries).
- Low Material Cost
- Hardware BOMs are provided, with a total estimated cost of $300. The software is free.
|Subsystem||Material Cost ($)||Assembly Time (hours)|
|Head Implant (bilateral)||190||4|
|Arduino + Utility Shield||30||1|
Here are some commercial products that also provide wireless optogenetics:
Cerebro is a rechargable wireless receiver that connects to a head implant assembly. Cerebro receives commands from a Base Station and delivers power to the laser diodes on the head implant, resulting in light being emitted through the optical fibers into the brain. The intensity and waveform of the emitted light can be adjusted wirelessly during an experiment (How to change Pulse Parameters). All commands sent to Cerebro are saved along with timestamps to onboard non-volatile memory.
The head implant assembly consists of two laser diodes coupled to optical fibers. Also included is a photoresistor that is used as feedback to maintain a constant light output.
The Base Station is responsible for emitting infrared light signals to communicate wirelessly with Cerebro (exactly like a TV remote). It is connected by USB to a Windows computer, where commands can be sent and events can be logged using Xavier. Base Station can also be controlled directly by TTL signals going into its RJ45 connector. A high TTL signal on pin3 of the RJ45 causes a trigger signal to be emitted, and a high TTL signal on pin2 causes a stop signal to be emitted. Events will still be logged by Xavier even when triggered by a TTL.
The Utility Shield connects to an Arduino Uno and is used to flash programs to a variety of AVR microcontrollers. It can flash the ATtiny84 DIP used by the IR Remote and Charging Dock, the ATtiny84 SOIC used by Cerebro, the ATtiny85 DIP used by the Base Station, and the ATmega328P used by the IR Remote. The shield also provides a charging port for Cerebro that has a green/red charging indicator light.
The Charging Dock provides ports for charging up to 4 Cerebro receivers at one time. An OLED display shows the voltages of the batteries being charged. A red indicator LED is lit while Cerebro is charging, and turns off once Cerebro is fully charged.
The IR Remote is a handheld remote that can be used to send commands to Cerebro. Information including battery status, current parameters, and ID number can be checked by plugging a Cerebro Receiver into the IR Remote.
The Downloader Cord is used for serial communication between a computer and Cerebro. Once connected to Cerebro’s micro usb port, it can be used for downloading log data off of Cerebro’s EEPROM, or it can be used to display messages when Cerebro is in debugging mode.
Xavier is a GUI for sending and logging Base Station commands. Since communication between Cerebro and Base Station is unidirectional, in order to truly know what occurs throughout an experiment, every event that is received by Cerebro is also saved to an onboard log. After an experiment is complete, Cerebro’s onboard logfile can be downloaded into Xavier. The two log files can then be saved and analyzed to confirm that everything that was sent by Base Station was in fact received and executed by Cerebro. Xavier provides an easy interface for sending parameter changes and can also be used as a debugging tool.