Open source hardware and software for behavioral neuroscience
Learn how to design and build fully functional animal behavioral setups rapidly, cheaply, and easily.
Developing and implementing customized behavioral experiments is becoming more and more common and important in neuroscience. However, currently this typically requires purchasing expensive proprietary equipment, and/or substantial programming knowledge.
Our goal is to make it easy and inexpensive for you to design your own accurate, complex, and flexible behavioral experiment. The hardware designs we have provided use cheap, but surprisingly powerful, electronics like the Arduino microcontroller platform to deliver stimuli and measure behavioral responses. You don't need to be a programming expert either -- we've provided enough software to get you started, no matter what the goal of your experiment is.
The basic OpenMaze system is based upon Arduino shields, or pluggable circuit boards that allow you to control a variety of electronic components from an Arduino with minimal additional wiring. By connecting just a few components such as lights, speakers, levers, IR beam break and lick detectors, and writing simple Arduino programs to deliver stimuli and monitor responses, you can get an entirely new behavioral paradigm up and running in hours. It's that easy. In addition, the OpenMaze PCB can be used to automate scores of processes in the lab, from stereotaxic injection to webcam control and imaging applications.Why sit there and push buttons when you can get a computer to do it for you?
These OM PCBs can be found here.
Please feel free to contact us if you need tips, or have something to contribute, or just want to stay in touch about the open design of behavioral experiments!
1. New OMwESP32 PCBs
The OMwESP32 continues to be my board of choice for new behaviors due to its wireless connections and flexible functionality, so we've designed two new variants based upon this design. Both are smaller versions with reduced footprints but more restricted functions, but they should basically be able to accomplish 90% of the full OMwESP32 board. One PCB uses the ESP32 Dev kit C package like the previous version (OMwESP32small), while the other is based on the WEMOS D1 ESP32 mini (OMwMini). But both are small enough to fit in a standard mouse cage card holder, along with room for a battery, but the.ESP32 "mini" is the cheapest and smallest variant right now so that's the one I will likely start using.
2. OMrPi: Raspberry Pi PCB
I personally don't use the Raspberry Pi much for direct behavioral control (mostly for visual stims and VR), but I know many people who do, so we wanted to make our first OpenMaze Raspberry Pi GPIO PCB. The OMrPi PCB combines most of the functionality of recent boards (e.g. 2 H-bridges, I2C and SPI ports) and breaks out most RasPi GPIO pins, but note that the RasPi doesn't have built in DACs for analog input. Anyway, we're excited to roll out this new board to make directly interfacing with the RasPi easier.
3. ESPnow communication
With the capabilities of the ESP32 for various forms of wireless communication (e.g. WiFi,BT), I've been playing around with streaming data back to a PC from multiple behavioral boxes wirelessly. While only WiFi currently offers OTA (over-the-air) programming, the inability to connect to most secure institutional WiFi hubs led me to explore other options. ESPnow is a third form of wireless communication between ESP32s that is easy to use, faster, and more seamless than WiFi and BT. I've thus implemented a box/receiver prototype that should allow streaming from up to 20(?) boxes simultaneously at over 125B/ms (thus over 100 char / ms). These data are read by a receiver ESP32 which then streams the data back to the PC in serial format (which ends up as the bottleneck of 12B/ms at 115200baud). So this makes it super easy to capture data from an array of behavioral boxes in a simple serial format into any PC. Pretty neat!
I've been using the new OMwESP32 for the last year and I love it. There are a few quirks with the ESP32, including some differences in PWM that affect tone(), etc., but I've been able to wirelessly stream data at pretty good rates with no issues. At least with WiFi- BT works but I still have to work out specifics of wireless upload. TRY IT OUT!
Also, I have a new interface box for 24-28V 3-pin Molex connector behavior hardware, so keep an eye out if you want to utilize pre-fab hardware with OM systems.
Check out my design for a pneumatic OpenMaze-based ventilator bag pump using a blood pressure cuff, which I hope will never have to be used.
ERROR NOTE: on OM4 boards, pin #38 and 39 labels are reversed on SOL/STEP3 (right hand H-bridge of 3 middle). Correct outputs below H-bridge should be 39/38/40/41.
Main OM PCB designs are stable with no major issues, and are still available to have printed at OSH Park (see Hardware section).
OM4 board used for automated 8-arm radial maze and T-maze
Arduino for Neuroscientists:
This Fall semester I taught a graduate level mini-course at Columbia, Arduino for Neuroscientists, which covered much of the material in the OpenMaze site/system. If you're interested in learning the basics of arduino anatomy and physiology for neuroscience, you can download the course materials at my github site at https://github.com/claylacefield/AfN.git
It contains powerpoint presentations describing practical use of hardware and software for a variety of neuroscience-related applications, as well as accompanying sample code in Arduino, Processing, and Python languages. Give it a look if you want a good primer on using arduino for neuroscience!
Along with this course, I've developed a few more example setups with code which I am adding to this site, so feel free to check them out.
I'm updating the webpages concerned with the OpenMaze OM PCBs with the latest versions of the boards. Designs are basically the same, however with a bit of improvement in layout, and jumpers for solenoid power selection (to allow for 5V Lee valves). I've worked most on OM2 and OM4 boards since they are the ones I most commonly use, however the others are fine too. OM4 (the MEGA/DUE shield) now has independent quarter-bridge control on the stepper H-bridges, which allows them to be used for additional valves for large solenoid valve control, e.g. for olfactometer setups.
But please let me know if there are any issues, or if there are other features you would like to see in the next versions!
I've also now added most of the designs to the OSH Park PCB printing website, where you can click to order a small run of 3 boards for something like $10/PCB. This is more expensive than ordering from Seeed Studios, as I had previously given instructions for, however OSH Park is much easier to deal with since you don't need the Gerber PCB design files.
In the works:
I've done a lot of hacking on commercial behavioral systems such as Med Associates operant/fear boxes, so I hope to release some useful hacks for these systems in the near future. Ask me if you're interested and I haven't updated the site yet.
NOTE on using the MPR121 plug on the new OM4 board with the Arduino DUE: in order to get the MPR121 code to work with the DUE, you must replace all of the calls to the Arduino Wire library for I2C communication with "Wire1" in order to use the sda1/scl1 ports on the DUE (except for the initial #include <Wire.h> statement). Thus, e.g. Wire.read will be Wire1.read.
NOTE: The MPR121 chip itself is being discontinued, so if you want to use this component, go ahead and order a bunch from Newegg (or Adafruit). Also, it seems that the Arduino DUE is also being retired, so if you want to use this board, go ahead and stock up!
A very big THANK YOU to the team behind the UCLA miniscope (www.miniscope.org). Miniscope is an open source project that provides complete designs and instructions for a head-mounted miniature epifluorescence microscope for mice. Check out more info through our Links page or through their website.
We also added a new and promising option for PCB printing, OSH Park. While more expensive than Seeed Fusion PCB printing (~$11/board for OSH vs. ~$3/board for Seeed), it is possible to just click and order one of the OM PCBs without any additional software or uploading files. Let us know how this works for you.
We added instructions for printing OM PCBs using the Seeed Fusion PCB service.
OM PCB note: In order to make the board naming convention more straightforward, all OM PCBs are now named according to the number of H-bridges on the board.
A new version of OM2 and a new board for the Arduino MEGA/DUE have also been added to the PCB design/printing page.
Adding in links for PS3eye camera for high-speed video/computer vision applications (see Learning/Reference).
Also in process of adding more detailed instructions for use of the new OpenMaze PCB PGIO ports (power-GND-Input/Output).
OpenMaze PCBs v2 are now uploaded. When you download the .pcb file, it will include versions of the OM3,4,5 boards (and a couple of other things we were also printing at the time).
OpenMaze PCBs v2 are out!
We recently printed a new version of the PCBs and are going to upload the designs soon. This includes some important bug fixes for the v1 boards so if you are going to print one out, please check back or contact us for the new versions.
Some new features:
- connections for multiple IR beam break sensors
- new multi-functional digital input/outputs that allow plug-and-play use of servo motors, capacitative touch sensors, LEDs, speakers, and more.
THANK YOU for visiting our poster at SfN 2014 in Washington DC, Nov. 15th!
At the conference, we met a lot people currently developing open-source projects for neuroscience, or are looking for these types of solutions for their own lab.
We are currently trying to make a few changes to our OpenMaze shields based upon comments/requests from the community, as well as to set up a links page to some of the great projects that other people have developed.
In addition, we will soon attempt to integrate a bulletin board to allow people to chat about particular issues with their own hardware/software that will help us come together to solve problems with our setups. The internet has some great resources for general issues relating to the use of open-source resources however we think that there are enough topics of particular interest to our community that could benefit from direct communication. Please contact us for more information.
- Have made changes to PCB fixing a few crucial issues but haven't uploaded the new designs yet. Contact us before you try printing your boards.
- Added Links page with links to other open-source projects for neuroscience. Please let us know if you would like us to add your project!
- Added Arduino and Processing code for Mouse Tactile Operant task. Right now I just pasted in the text, but will soon add links to the files for download. Contact us if you want these and we haven't yet put up a link.