A few months ago, I mentioned that we were preparing to embark on a prototyping sprint. While prototyping will forever be a continuous and fluid process, at this point the fast-setting cement that is hardware development has solidified enough to share in a more formal manner than overly stylized Instagram posts:
In two(ish) months we are launching a crowdfunding campaign (I know... 'ugh'. Agreed. I promise to keep my project log spam to a minimum) with the following nearly finalized boards:
The Interneuron board operates as an integrate-and-fire neuron simulator, similar to the previous (v0.4, v0.8, v0.91, etc) NeuroBytes boards. Beyond the ARM upgrade (STM32L0 + libopencm3), these boards have a more balanced dendrite-to-axon ratio (4:3) which helps a great deal when building complex circuits. The graphics have changed quite a bit as well -- we're moving away from our previous logo-based design to something a bit more physiologically accurate, so the dendritic tree is quite a bit more spindly on this board. The learning mode features continue to grow more sophisticated; our latest iteration features potentiation and depression, both of which are triggered by switching modes with the on-board switch. And most importantly, these boards (along with the others in this post) no longer send simple voltage spikes to indicate a firing event; instead, they communicate via JarodNet, a novel protocol developed by @Jarod White that really deserves a post of its own.
Touch Sensory Neuron
The Touch Sensory Neuron (previously Touch Sensor, previously^2 a tiny snap-action switch that attached to standard NeuroBytes) is pretty simple -- it fires immediately whenever the switch is pressed. From a pure cost perspective this board could be simplified a bit (or integrated with the Interneuron), but separating mechanoreceptors from interneurons is critical from a biology education point of view. The board graphics also show a few new concepts that can be taught in the classroom -- myelination (although this board doesn't operate any faster than others) and unipolar neuron physiology.
The Motor Neuron is currently the only output device (beyond on-board LEDs) in our ecosystem. Initially designed for our patellar reflex demonstration, the Motor Neuron is now also used to drive continuous rotation servos for building Braitenberg Vehicles (again, this deserves its own post). These boards have three equally-weighted dendrites and on-board connections for two servos, so we no longer need fussy and easy-to-lose JST-to-servo adapters. The ID switch is used to change between CR and STD servo mode.
The Rod Photoreceptor emulates its biological analogue by causing downstream NeuroBytes boards to fire at a rate inversely proportional to the light intensity at the sensor. In the interest of building more nifty circuits, we also provided a not-quite-biologically-accurate 'light output' that is directly proportional to light intensity. The boards use a Broadcom ambient light sensor, which is super slick because it integrates a photocell with a logarithmic-response amplifier circuit -- that means it responds to light like the human eye, and has the effect of giving us a few extra bits on the STM32L0's ADC. Crucially, the boards also have easy-to-use zero and span buttons so they can be quickly calibrated to ambient classroom conditions. And the top and bottom curves on the boards match up, so they can be stacked with the sensors quite close to each other:
Pressure Sensory Neuron
The Pressure Sensory Neuron is another type of mechanoreceptor that fires action potentials at a rate proportionate to the pressure applied to the on-board force sensitive resistor. This is a great board for testing networks quickly, and it has quite a bit of range-ability -- the FSR combined with the STM32L0's 12-bit ADC mean a light touch and a hard press both produce noticeable changes. In the future we'll probably integrate some kind of adaptation mode so a constant pressure gradually decreases the action potential rate, just like in biology (this is why you stop noticing your shoes after a bit of time). This board is a bit more expensive than we'd like, mostly because the excellent FSRs are $5+ in 1000-lot quantities. Boo.
The Tonic Neuron uses a linear touch slider (exhaustively detailed in a previous post) that allows the user to adjust the board's firing rate. Tonic neurons act as pacemakers, so you can inject arbitrary signals into the network and adjust (and hold) them quickly. The single dendrite connection means one can temporarily excite or inhibit the board, too. These boards run Patrick Yeon's excellent Izhikevich dynamics port, and will eventually give us the option to simulate more advanced neurons such as fast-bursting cells.
The Battery Pack now uses a dedicated 5-pin connection (previously 7-pin, etc...) to provide power to NeuroBytes boards. We found that students got confused when we first told them to not connect NeuroBytes incorrectly (i.e. axon-to-axon), and then told them to attach the 4-pin battery cable to any port they wanted. More importantly, this allows us to break out the STM32L0's SWD contacts, making firmware updates a pogo-pin-free operation. The battery pack PCB is designed around a 4xAA PC pin pack I found on Digi-Key and includes a few polyurethane bumpers to protect the connectors. It uses a 5VDC LDO to output a stable 5VDC to the connected NeuroBytes. Yes, a buck converter is more efficient (and was prototyped), but EMI/FCC/simplicity/etc. And no, we aren't going to get into the business of shipping LiPo batteries.
That's it for now. The picture at the top of this post showed a few other awesome boards (the Vestibular System and Cochlea), and we're still working on the Network Interface Device that ties this together with the JarodNet platform. More to come, as usual..