This is my very first development board project. After shrinking about 15k worth of equipment to a custom board the size of a credit card that can read your muscle signals, to winning TechCrunch Disrupt's 2015 Hackathon with an IoT device that tells my Dad if his stove is still on, you'd think this kind of stuff is old hat for me.
I've made various circuit boards in the past, but they've all been bread boarded & hand soldered. When I made my SEMG wearable pod, while I created the circuit design, support electronics, and software, I had my buddy take care of the PCB lay out and soldering.
I used to roll my own hand soldered, slag jumpered bread boards as components. Like these.
It looks janky as hell, right? But guess what ! It still worked. This is my usual progression when it comes designing and manufacturing circuits. This method has lots of issues like accidental shorts, which is why every time I look at someone's project, and see these gorgeous, well laid out, manufactured, smd soldered component boards, I get a little envious.
So why a development board? A lot of what I do involves body sensing, and with IoT in the mix, that makes for some interesting requirements.The interesting thing is when you do a search for wearable development boards, literally two things come up, and then my hackaday blog about making one. And to top it off, the two that come up are A.) Yet another watch, and B.) A board you can stick in a watch, and doesn't have the requirements that I want (wifi/bluetooth/lots of analog ports). So it makes sense for me to roll one out.
But I don't want to make yet another generic arduino esque board in the millieu. This one will be wearable, mesh capable, and talks to the cloud. And it has an educational purpose, and serves as the foundation for other projects, like helping my researcher friend studying Rett syndrome, a rare, neurological degenerative disorder.
So the first thing I do whenever I start a new project, is I figure out what it needs to do first. These are my requirements.
- It needs to be wifi/bluetooth capable. Since I'm very well versed in Arduino's java like syntax, and C++, I went with Espressif's offerings, the ESP8266 and ESP32. Since the ESP32 isn't yet mature Arduino wise for most people, I'm gonna start first with the ESP8266.
- Arduino compatible. I like having tons of libraries available, and a massive community to support. I don't like waiting to call an engineer on the phone to get answers.
- The problem with the ESP8266 is it has only one analog port. Which is fine for all the freaks out there that are into blinky lights, because for blinky lights all you need is GPIO, and most of the time you only need one. But I do a lot of analog sensing. I'm also not into blinky lights (I'm into FIRE. Yes, I'm that kind of freak.)
So I'm adding an ADC chip.
- I'm tired of using my USB to TTL converter port and loose wires to the ESP8266, so I'm incorporating a USB to TTL converter chip, like the CP2104. Which means it'll have a straight up micro USB port. Hell yes!
- I want this to be wearable. If you look at my SEMG sensor, it's something you wear on your clothing. So I'm looking at putting it into a wearable, and sew-able form factor. Or at least velcro-able
- It needs to be powered by 3.3V, with as little power requirements as possible.
- Have a usb charger control circuit that can connect to a lithium ion battery pack, because that's also been a pain in the ass to replace AAA batteries every time.
- Unlike the lilypad, which is also my inspiration, I'm not a fan of sewing wires into clothing. Mainly because I suck at sewing, though you wouldn't know it when you look at some of my wearables (Thanks Mom!!!). So, it's going to have cable pins with locks on them. I want to dasiy chain sensors across the body to the board, which means I2C is ideal, SPI also works, BUT you have to becareful with some analog applications because ribbon cables are notoriously noisy at picking up random signals.
- Use a thin lithium ion battery that's smaller than a credit card, and carries at least 1000mAh
- Everything has to fit into case that's about the size of a credit card, and maybe 5X the height of one. Like this.
- It has to be real time. Sorry Raspberry Pi Zero W, but I'm not interested in using Python or a multitasking OS for some task specific, speed dependent tasks. I don't want or need a boot up time. It should be literally turn on and get going.
- It incorporates the use of a neural network. The basis for this is in some crazy ideas of mine. For a long time, I always wondered about incorporating actual neural networks from say, octopus, or a piece of a human brain. I'm a huge fan of bio-mimicry, aka outright stealing from Nature. And while neural networks, which are the basis of today's advances in Artificial Intelligence, are interesting, the problem for me, at least, conceptually and aesthetically, is that they're still just MATH SIMULATIONS. I want a real, neural, network, of actual firing neurons. It just looks and feels cool to me. So, for that, I'm incorporating actual, hardware, neural networks, primarily from Neuromem.ai. I've been following their founder's work for a long time, since the 1990's.
- There will be tutorials on this whole thing, as I used to be a science teacher, and one of the biggest problems I've seen with the competition, is a general lack of user friendly tutorials, user friendly techical help, and overall accessiility for less than engineer educated types. Which is why I'm keeping this on the Arduino platform.
Now the cool thing about this concept is I have a great friend who's a scientist, fellow biomedical engineer, and researcher in Boston. She and I went to the same program together, and she was telling me about these kids who have a disorder called Rett Syndrome. Rett's syndrome is one of those really rare, neurological degenerative disorders that hard to pin down, both to research, and also to get funding for because it's so rare.
For scientists to monitor what kids are going through with Retts, they use these 1990's era technology vests that stores the data on the vest, and then they literally have to send back these multi thousand dollar vests back to the lab to analyse the data. They might as well use floppy disks and send it in the mail, it would be that much easier! Now, for me, that's really an @$$ backwards way of doing it. What is this, 1997?!
When she told me about this, I had one of those "WTF are you freaking kidding me?" reactions. And since IoT is my jam and I'm really good at making tiny, wearable devices that stream lots of data talking to the cloud, I figured "why not make something to make her research way easier?" And in the process, I'll create my own development platform that I can use for my other work.