Doing better next time:
In the year or two since I finished the Mark 3.5, I’ve had time to give it a good workout and to have a think about what worked, what didn’t, and how to do it better.
For me, I’m far shorter on time than on money. You can always trade between the two. Hell, if I was Bill Gates, my time/money tradeoff for this project would have just consisted of telling a flunky to go away and bring me back an awesome glow staff. Instead, I’m in a comfortable position where I can afford to get random bits 3D printed, rather than having to gnaw complicated shapes out of scrap wood using only my teeth. So I’m ploughing through the this design process again, having learnt the following lessons for producing the Mark 4.1 in less time than the Mark 3:
1) Buy other people’s expertise by buying their parts
Use other people’s parts, whenever you can. If someone else has gone to the trouble of packaging their knowledge and hard work into a simple, purchasable, and useful piece of kit, then do yourself a favour and buy it.
When I started on the Mark 3, there were no addressable RGB LED strips, nor was there an Arduino that could fit inside such a small tube. My only choice, then, was to make my own addressable LED boards. A few years later, I have the option of clicking a few links and ordering something that’s a damn sight better than what I built back then.
Ok, right now, I’m looking at the RGB LED strips on the market and thinking – yup, I can do better than that. However, do I want to spent my time building LED strips or building an LED staff? So for now, I’m going to resist the temptation to reinvent the wheel and work on getting the car running instead. (Hell, I can do better LED strips for the Mark 4.2.)
2) Get the part count down
It’s very simple, more bits means more time and more chances of it all going horribly wrong. For structural stuff, don’t make your own complicated shapes. Combine many parts into one. outsource the manufacture to someone with a 3D printer. This saves you hassle and gains you reliability.
3) Subcontract the time-consuming stuff and the potentially unreliable processes
Two parts of this build took up much of my time: manufacturing complicated parts and debugging complicated parts. Etching your own PCBs is fun, but takes time and home-made boards will never be as reliable as factory-made. Similarly for structural parts.
Instead, spend your time doing the design work in your CAD/circuit design software. Get the design right and sub-contract the manufacturing. I use Olimex for circuit boards, Ponoko for 2D cutting, and Shapeways for 3D printing. (I’d use Ponoko for 3D too, as they get it, but I’m in NZ and they’re yet to roll out 3D printing in NZ.)
4) Match your desires to your computational grunt
I want to do full-colour, full-motion video. I’m using a microcontroller the size of my little finger-nail. See the problem? In the short-term, just suck it up. You can optimise your code to squeeze out another 10% of performance, but if you find yourself needing orders of magnitude more grunt, then either get new hardware, reduce your desires, or wait a few years. Now, when’s that 32-bit ARM Cortex-based Arduino coming out?
5) Batteries are the stone in your shoe
Seriously, they’re just a pain. For something that kicks out the lumens like the Mitochondrion does, you want lots and lots of stored power. Sadly, that means big batteries and they don’t fit. Instead, plenty of small batteries (eight AAA cells) could be squeezed in, but the physically-sensible way to install them (two packs of four, one at each end) wasn’t the electrically-sensible way to install them (two packs in parallel).
Similarly, I’d love to be using lithium rechargables, not NiMH cells, but that requires a certain investment of time in learning how to make sure they don’t catch fire. And then there remains the question of how to fit them into a tube and still end up with a) sufficient energy storage, b) a useful Voltage, and c) chargeable in place.
Next comes the Mark 4.1, running off an Arduino Nano and displaying using Adafruit’s addressable RGB LED strips. Tech has progressed so much in the last couple of years that I’m happy to mostly buy other people’s parts, making it so much easier to throw it all together. Still, I expect there’ll be the usual fun and swearing along the way.
For the Mark 4.1, I have light coming out of the LED strips controlled by the Nano and I’m writing code to make that light dance. The physical design is done. I spent last night ordering 3D printed bits for the structure and there’s some aluminium strips sitting in the workshop waiting to be cut, drilled, and bent for the spine. I think the electronic design is finished, but it needs to be checked. Hence there’s a massive order of electronic parts currently being filled at element14. The critical path currently looks like: await electronic components -> check centre board layout against the real size of those parts -> make/order centre board -> assemble -> debug -> write more code -> party.