January has come to a close, and Dash's development moves forward. We're still trying to nail down all the pieces of Dash that will make him a great consumer product - there is a big gap between a robot used in the lab and one that goes out to people's homes! One of the big challenges we are facing right now is keeping everything affordable, in light of a relatively small manufacturing run of ~1000 robots. While big companies get to buy parts by the millions, and can almost dictate prices to their suppliers, we are ordering in relatively low volume, but are trying hard to keep Dash affordable! This is really important to us, many robot kits cost hundreds of dollars, and we want Dash to be something different, something accessible to more people.
Due to the cost constraints, we face a lot of decisions about how best to do things, what components to choose, etc. Oftentimes you're faced with "good, affordable, fast, pick two" and we're trying to keep things as good and affordable as possible. Also, some choices seem better, but just contain more risk and uncertainty, so that's something we have to balance as well. A great example of this is the choice of what processor to use for our electronics. This is essentially the brain of the robot, so the decision is very important, and it's also a big part of the cost. Let's take a look at the candidates:
A partially assembled prototype board. A microscope and fine fingerwork put these together.
Choice #1: Nordic nRF51822 (https://www.nordicsemi.com/eng/Products/Bluetooth-R-low-energy/nRF51822)
Drool. This chip is fantastic in so many ways. It's affordable, it's powerful (32-bit ARM Cortex M0), and it's compact, housing both the microprocessor (brain) and Bluetooth radio on one chip. We could make the electronics very small with this choice, and do some serious computation with it.
It sounds perfect, but there is a much bigger risk with this chip. There isn't much Arduino support for this guy, and we know a lot of future Dash owners want to customize and program him in Arduino. While it is possible, it's a bigger technical risk, which could mean delays, or a lot of frustration, and having to switch to something else in the end anyway.
Choice #2: Atmega 328P (http://www.atmel.com/devices/atmega328p.aspx)
Ah, the venerable Atmega 328. It's not as flashy as the Nordic (8 bits instead of 32, no bluetooth chip) but the Arduino Uno is based around this chip, so that support couldn't be better. Unfortunately, it's also more expensive than the Nordic, plus we have to purchase a separate Bluetooth radio to go with it (we're currently looking at the TI CC 2540 http://www.ti.com/product/cc2540). This makes the board bigger, and raises our costs significantly. Also, it just doesn't have the processing power of other chips. Dash is a fairly simple robot, so we don't need a supercomputer, but as engineers, we always want more horsepower...
Choice #3: Atmega 32u4 (http://www.atmel.com/devices/atmega32u4.aspx)
Ok, so this was a bit of recent insight from our EE, Dwight. The Atmega 32u4 is more expensive than the 328P (seems bad) and has more processing power (seems good, but maybe not a huge priority), so why would we choose this chip? Well, turns out the 32u4 has native support for USB, meaning we can eliminate a whole other chip. We save money, plus we get more memory, more output pins for more functionality, and can process at a faster speed. Seems pretty win-win, and it's what we're going with for now.
Last week we showed off bare prototype boards, those have been assembled, tested, and work. Now we're moving to a (hopefully) final prototype, which will be basically the size and functionality of the final board. It will take some time to get that manufactured, assembled, and tested, but we're converging pretty quickly on an electronics design which is very exciting. In the background we're also doing all kinds of work on the chassis, powertrain, and app. More to come next week!
Thanks for reading,
The Dash Robotics Team