Monday, August 6, 2012

How to build a high-tech prototype faster than it takes to build a 30-story hotel

I stumbled across a video recently that I thought was pretty amazing. It’s a time-lapse video of a 30-story hotel that was built in 15 days.

Mind you, this wasn’t a shoddy structure. It’s designed to withstand a 9.0 earthquake, along cutting-edge energy efficiency features. How’d they do it? (The longer story from Businessweek is here)

We make 93 percent of the building in our factory. The basic block, a “main board,” is 3.9 meters by 15.6 meters (12.8 feet by 51.2 feet) and includes everything from water pipes and ventilation shafts down to floor tiles, lights, even toilets and the kitchen sink.

Building blocks. The principles of “prefabrication”, or prefab, for short, have been around for a while now, especially in the realm of architecture and construction. This project just took it to a whole new level. Everything in the building was modularized, trucked out, and assembled. These blocks were strategically unfinished, designed to be connected to other blocks to form the completed structure.

What can hardware and embedded systems design learn from this?

The modular hardware ecosystem has continued to grown, becoming more accessible to an ever-expanding base of developers. With the Arduino, Raspberry Pi, BeagleBone, BeagleBoard, and others, there’s an incredible amount of processing capability out there, in an easy to integrate, easy to program, modular form factor.

image

Prefabbed building blocks exist for the Arduino in the form of shields, BeagleBone in the form of capes, and the BeagleBoard in the form of modules. These all make the integration process extremely low overhead – with hot-swappable operating systems bootable from removable media.

image

David Blaza, Vice President of UBM Electronics (the wonderful folks who bring us the Embedded Systems Conference and EETimes) recapped this growing trend in development. Interestingly, it doesn’t even have to happen in this particular order anymore…and just about anyone can do it:

1) Outline the concept (5-10 hours). A lot of startups, entrepreneurs, hobbyists, and engineers already have this part nailed down really well. Napkin sketches or Visio flowcharts, the concept is something that comes naturally to inventive minds. It’s just useful to whittle down features and ideas to focus the very first prototype.

2) Raise financing – or not (2-3 hours to craft and setup a campaign). This is an optional step these days, but crowdfunding sites Kickstarter and Indiegogo, or peer-to-peer financing sites like Prosper provide an easy, accessible way for individuals to raise money and publicize their projects on the cheap.

3) Pick a hardware platform (3 hours). For me, it’s typically come down to a couple main hardware drivers. If I need analog sensors, I’m probably going to involve an Arduino along the way. Then it’s a question of what screen size (4.3-inch or 7-inch are common) I’ll need, CPU speed, and connectivity. If I know it’s going to be fairly integrated (as all the folks asking for a custom tablet are aware), I’ve usually selected something like the Liquidware Amber.

4) Pick a software platform (3 hours). Linux or Android? Being more open than other operating systems, it’s a little easier to get a stack going and piggyback off code, kernels and drivers that are out there.

5) Buy it (1-3 days). First I usually buy the mainboard (like a BeagleBoard or Pandaboard), along with any complementary modules I’ll need for that platform. It’s worth doing a little planning ahead to buy some spare cables, too, since there’s nothing more frustrating than sitting around with hardware, and not having that USB or HDMI micro cable to test things out.

6) Build it (5 days). Hardware “assembly” should be fairly straightforward, with clear, standardized pinouts (as attested to by the Arduino pin-spacing hullabahoo of late 2009). I find that USB is pretty versatile and ideal for easy connectivity, but that’s the subject of a different post.

If all goes well, assembling the hardware should be a 1-2 hour activity – max! Getting the OS running the way you want it to shouldn’t take too long, but it depends on how customized your kernel has to be.

Then it’s time to develop the app. Bringing out data over serial is a favorite activity (Android Ambrosia tutorial here), as is building a GUI. Adobe AIR is also excellent for simulating application mockups for a presentation.

7) Tell the world (4 hours). Ready for the big screen? Like Step 1, this final step comes naturally to most entrepreneurs – between blogging, emailing well-connected folks, posting to Twitter and Facebook, the evangelizing is usually everyone’s favorite part.

Building a complex prototype has never been easier or more accessible. What’s your experience with modular development? Post thoughts and questions to comments, or just email me at justin dot huynh at liquidware dot com

No comments: