I turned my attention to working on the circuit. I know that I’ll be implementing many of the same devices, though the last design suffered from inconsistent results. I attribute this primarily to the miniscule size I chose to work with. Because I wanted the last iteration to be as small as possible, I used tiny, (and let me emphasize) TINY components. These are not parts that are meant to be soldered by hand, but in a way I saw it as a challenge. For weeks on end I wore a jeweller’s magnifying glass in my eye…God, it sucked. All my resistors were 0402’s which are about the size of a dash – . Most of the chips had no legs, rather only pads tucked under the chip. I had to use this crap assed liquid flux to make the connection. Anyways, when you’re working like this mistakes are bound to happen. So there were small mistakes on about half the board, and they were not the same…some didn’t recharge the batteries, some of the capacitance sensors didn’t work. The moral of the story is be humane to yourself, use reasonable parts.
At this stage in a project I would usually be spending a lot of time researching the various parts available. I’ve done a bit of that, but less than usual for two reasons. One, I’m using many of the same parts as last time. Two, I’ve already made some boards for prototyping. I’m working on a contract which involves the designing a haptic-based circuit, and I used much of the same tech as I did in my original snake: QProx capacitive sensors, ADXL accelerometer, xbee, li-ion battery charger. So when I designed it, I made the changes that I intend to on ADB v.2.
And here’s the good news. I soldered it up and tested it over the past few days. And here’s the good news: it has been the smoothest work I’ve ever done on a circuit. There are no mistakes on my circuit design. Every part was easy to implement in code. Why has it been so smooth? I’m working at a much higher level than I used to. I’ve looked for parts which are basically plug and play; no trying to figure out the circuit design. Peripherals are either built into the part, or the circuit is clearly laid out in spec sheet, which brings me to the second point. More parts are available that are plug and play, or clearly state how to use them. This is thanks to places like Sparkfun which turn components into finished devices, but also bigger companies like Microchip, Maxim and so forth are moving in this direction. Second, I switched from a PIC microcontroller to Atmel running Arduino. The code is so easy and the workflow so simple that the difference between coding and debugging disappears. Arduino’s documentation is awesome, and examples abound. Compare this to PIC’s. I used to code up in assembly which made my brain bleed. Later I switched to a proprietary C (CCS), but that involved paying money, and the examples were lacking. Arduino has a rich community and is open-source. In fact, I hope to share the circuit design with the community once it’s done. Thirdly, clearly I’ve learned more over time which makes it easier to see mistakes not only in the design, but in the design-process. I mean, working at a higher level is an improvement in process which affects how I approach the design overall. Lastly, I’m becoming more niche in which means the electronics I use are often reused. I am familiar with them, so designing with them is straight-forward or in some cases I can even lift the design from previous work. On that note, I’m amazed at how workflow is becoming increasingly integrated such that repeating unnecessary work becomes less and less necessary.
Some things which could still use improvement: Efficiency. I’ve been watching movies while soldering which is fine, but then I continue while I’m programming (just the test programs), and it cuts down the efficiency at least by half. Right now, I’m watching the Saints vs. Vikings game at a bar (I don’t know anything about football) and writing between sips of Guiness and glances at the screen.
So all this talk and not much so far on what I actually did. I built a circuit which will go inside an orb-like plastic object. The orb is littered in LEDs. The circuit uses capacitive sensors and an accelerometer to tell when and how a person is touching it. It uses this information to affect the light patterns, and also to communicate with a bigger orb (the mother-ship), which collects the touch data from various smaller satelites to determine it’s own large scale patterns. As previously said the orbs use li-ion batteries and zigbee’s to communicate. If you swap the leds for a motor it is very similar to the snake.
Only other news is brief. I placed the order for gears to test. I also bought a digital scale (meant for THC-related products) which I love. It measures up to 5 kilos down to a resolution of one gram. I’m using it to know precisely the torque exerted on the motors.