I'm that much closer to designing a completely open source embedded computer!

I've been reading Do the Work by Steven Pressfield and I've been rambling on and on about designing a board to my friend Brian. The hardest part is starting, then the hardest part is shipping. I'm working on the starting part and wanted to share my thoughts.

The concept for an open source embedded board is that everything will be open source. By everything, I mean everything! The tools used to design the hardware, both schematics and layout, will be open source tools (currently leaning towards Kicad). The files used for schematic capture and layout will be open sourced (not just PDFs but real actual files you can pick up and use to make your own board). The information on how to bring up the board from a blank, just manufactured state, will be online with an open documentation license. The information on how to build Linux and a bootloader and useful software will be online with an open documentation license. Everything will be open!

Along with general openness of the design process, I'd like to keep any software written or used on the board open as well. So no binary blob kernel drivers, no closed source software, and no non-free IP blocks. This is hard. It means no hardware accelerated 3d graphics. It means limited (probably no) DSP blocks.

I'd like to be able to sell this board for $100 but I'm not sure if that's a reasonable target price. I'm not looking to make big bucks doing this, it's a learning exercise for me. But shipping product to customers is a goal I have because it will force me to actually get things working. A more realistic price point is probably $150, but then it loses the appeal of being cheap because a BeagleBoard is only $125 now and my board won't offer much more in terms of hardware.

In order to meet the $100 price goal, I wouldn't use a Cortex-A8 part. I'd probably use an ARM9 processor. That gets the price lower but sacrifices a lot of nice things that Cortex-A8 parts have (faster, better floating point, etc). I'm not yet sure if the trade-off is worth it, in either direction. I'm leaning towards ARM9 because I think price is really important, even if my board is the only one out there that's completely open.

As a functionality differentiator, I'd like to have hardware compatibility with Arduino shields. There's already a huge amount of hardware out there that works well with Arduino systems and is aimed at people who like to play with little computer systems. Taking advantage of that ecosystem while showing people how they can communicate with the same hardware, but from within Linux, would be really cool. An ARM9 is hugely more powerful than an ATmega and is a nice halfway point between an Arduino and a full PC (size, power, price, and ability wise).

Once I have a design that will work, I plan to fund the build of prototypes and shipping hardware using Kickstarter. Open Vizsla inspired me that this type of funding scheme for hardware can really work.



25 April 2011