Thursday, May 22, 2008

Towards a scaleable platform for modularity

My background is in computational algorithms and computer architecture. One of the basic tenets of architecture design is that whenever you have a basic building block defined, it's important to create scalable interfaces for the platform. Most people would agree that the Arduino is today's leading module in the emerging community and field of open source hardware.

The Arduino, however, is a rather elementary unit of computation compared to modern devices. I can see it moving forward in three meaningful directions:

1) increasing the performance of the individual platform
2) providing the ability for multiple blocks to expand through add-ons
3) providing a way for modularity

The first is a source of constant debate, but it would raise the price of the basic unit to a point where it might be cost-prohibitive to the mass group of tinkerers - me included.
The second is the current strategy pursued by most groups, and it revolves around building shields for the Arduino
The third, however, is largely unexplored. If expanded upon, it would satisfy the cost/price constraints, but would also provide a way to address the performance scalability issue. It would allow the Arduino to form the basis for a larger architectural platform of scalable product design.

Where are we today?

There have been two main attempts to my knowledge to experiment with multiprocessing and parallel architecture scaling on the Arduino:

1) "Dual-core" approach, using 2 atmegas sync'd on one chip


2) "Dual core" approach, using 2 atmegas on a single board

So I'm about to start on a third approach in the coming weeks. My goal is to create a scalable, dynamic hardware system with the Arduinos!

No comments: