Close

Details section pre-9/10/2015

A project log for NeuroBytes

Build your own nervous system!

zakqwyzakqwy 09/11/2015 at 02:050 Comments

[This was the original Details section, modified a number of times since its initial creation with the project. This section dives into the project history a bit more than the current document, but is also a bit disjointed and out-of-date.]

WE MADE THE 2015 BEST PRODUCT FINALS! WOOOOOOOOOOOOOOOO!

[UPDATES 8/12/2015: https://hackaday.io/project/3339-neurons-neurons-neurons/log/22629-neurotinker-grants-progress-excitement-etc and https://hackaday.io/project/3339-neurons-neurons-neurons/log/22643-patellar-reflex-model]

Background

Lots of background for this project. I'm publishing this after 9 months of work, so there is some catching up to do. Okay, to be fair... 3 months of work, then 6 months of nothing (Andrew moved to NYC and Zach switched focus to GimbalBot).

First, let's get this out of the way: a word on why this is getting published in December rather than February of 2014. Andrew and I went back and forth many times on commercialization, and we weren't quite ready to share the project last spring. We considered trying to build a product, protect our intellectual property, and pursue the educational market as a company. Eventually, we concluded that defining the project as Open Hardware is the best path forward regardless of eventual outcome When the collaboration with @NeuroJoe started in early 2015, he agreed with this philosophy too. As such, Neuron firmware and hardware design documents are licensed under the GNU GPL v3.0.

As covered briefly in the introduction, Andrew and I had brunch with a few friends in early 2014. He'd been learning about neuroscience--he found the subject absolutely fascinating--and had written a plugin for Google Sketchup that allowed one to create neural networks on the fly, and then simulate their activity and response to various stimuli. In the screenshot below, the green and red boxes are neurons; the black lines are interconnections; color indicates level of excitement:

The program was fun to play around with and had a tendency to produce unexpected outcomes, especially when large quantities of neurons were linked together in a random fashion. I asked Andrew to write a bit about this phase of the project which I've pasted below:

Whatever the motivation, I wrote a program in Ruby using the SketchUp API that would generate a random butt of 'neurons.' I didn't want the code to execute all at once, and I wanted it to step slowly enough that I could watch it, so I wrote an environment that would keep track of each 'neuron,' its upstream and downstream connections, and the messages it was sending. I then had the environment generate a model of the neurons in the SketchUp environment so that I could see the connections, and I had it color the neurons according to their potential. By allowing the environment to progress one step, every neuron's input was summed, checked against its internal threshold, and if the potential (sum of inputs) was greater than the threshold, a message was sent to all neurons downstream.

Neither of us are neuroscientists--I'm a materials science engineer by training, and Andrew is an architect. After talking over brunch and seeing the simulation, we decided to work together to build something physical. Our main goals were to make it modular, cheap, and fairly accurate to real life. We've come pretty far since then (with a healthy summer break), so I'm going to start by trying to organize the project history in chronological order.

Neuron Development: v0.1, the Sketchup plugin

Neuron Development: v0.2, Pro Minis + Neopixels

Neuron Development: v0.3, many small improvements

Neuron Development: v0.4, time to scale up production [CURRENT]

Part 1, Goals

Part 2, BOM

Part 3, Schematic and Board

Part 4, Skip the Prototypes!

Part 5, Neuron Accessories

Part 6, Mass Production

Part 7, Firmware

Neuron Development: v0.5, just planning for now [FUTURE]

Part 1, v0.4 Limitations

Part 2, Late Night Whiteboard Rambling


An extremely brief video outlining the basics of how typical real-life neurons work:

Plan for the latest Neuron, v0.4:

Neuron v0.4 quick overview (features, burning firmware, etc):

A simple 22-element loop, self-extinguishing after four pulses:

Patellar reflex model:

NeuroBuggy beats an obstacle course:

Discussions