2) Apple will start to abandon their restrictive “Made for iPod”(TM) program and adopt the Arduino in some way for accessory development
Phil's a cool, intelligent guy, but this statement pegs my meter somewhere between "excessive optimism" and "ridiculous Apple fanboyism".
Apple, the infamous UX control freak, will give up the control (and revenue) associated with the MFi program in favor of allowing their users to customize their experience? What's next, Windows 8 will run an OpenBSD kernel?
Sorry, perhaps that last was excessively sarcastic, but let's be realistic here: one of Apple's fundamental properties is its fanatical control over every aspect of the way that users interface with the device, directly or indirectly. They will never give this up.
MS/NOK (funny how, at least in my mental model, they're one entity in the phone market now) and (especially) HP/Palm should be looking at this and thinking about doing the same. RIM probably doesn't care because their userbase doesn't.
I thought it seemed a bit optimistic as well. It'll be interesting to see how many handset manufacturers adopt the open accessory kit or opt to omit it or otherwise lock it down--similar to those that chose to provide their own app stores (I'm under the impression that you can do this, but you lose the ability to certify your device with Google and therefore lose access to the Android marketplace, Gmail client, maps, etc., correct?). I believe manufacturers are still generally motivated to profit from their accessories' ecosystems (not that the toolkit precludes this, but it relinquishes some control they've become used to).
That said, I'd love Apple to open up their accessory platform. I maintain an Apple accessory software stack that I'd love to throw on Github (frankly, I'm tired of maintaining it), but I am unable to do so due to our development agreement & the closed nature of their accessory program.
It's a seriously exciting time to be a developer. Or to be alive in general, really.
Growing up in the shadow of our failure to colonize space, it was easy to imagine that history had basically stalled and there wasn't much left to hope for except an uneventful decline. Added to that, all our interesting problems were too big for an individual to hope to solve.
Instead, the ability for individuals to meaningfully innovate has jumped to levels that haven't been seen since the industrial revolution, or the renaissance. I always envied the 19th Century inventors who created bleeding edge tech without requiring teams of a thousand engineers. I don't think I need to be envious anymore. The coming decades will be just as important.
This happens over and over. Compare the internal combustion engine.
A powerful technology is realized. At first, it's really expensive, and used only for industrial purposes or where it can serve many at once. The cost comes down to where wealthy individuals, professionals who benefit most, and sufficiently motivated hobbyists can get them, and there's huge growth. The cost comes down further, and soon everyone has them. At this point, the market becomes disjoint: you get products aimed for the wealthy (Apple; BMW, Ferrari), products aimed at the hobbyist (various DIY outfits; Jeep), products aimed at professionals who most benefit (RIM, Lenovo, Dell; some Ford/GM/Toyota products), and everyone else (LG, Nokia; Kia, other Ford/GM/Toyota products).
I think that middle stage is the most exciting; unfortunately, we're just leaving it. It's still a very exciting time to be a developer, but I would barely hesitate to trade it all to work at Xerox PARC or Bell Labs in their heyday.
On the upside, certain areas of biology are poised to move into that second stage any time now, in no small part because of the power commodity computing provides.
It's just a symptom of this kind of technology reaching critical mass. In a few years, the majority of the world's mobile devices will have out of the box support for an extensible, personal hardware development platform. A generation of kids will grow up thinking this is normal. The cat is out of the bag.
I got goaded into teaching a class on Robotics at Google, it was well attended and the first thing we did was build FreeDuino's from Solarbotics. When coming up with a curriculum I chose the Arduino because it's development environment ran on MacOS and Linux (every engineer at Google had either a MacOS or Linux laptop, no Windows) and its use of C++ lite type models was a good match for the codebase they worked in on a day to day basis.
I designed (but sadly never got into production) a 'super sheild' which, if you installed the connectors in the Freeduino 'upside down' (relative to the instructions) you could plug it onto the robot shield thing which had 6 AA size batteries, a couple of motor controller chips, mounts for the GM8 (Solarbotics again) wheels with wheel encoders. And a bunch of bits for sensor logic.
That being said I certainly can't take credit for Google picking the platform as some of the folks were already familar with it but still its nice to see that this effort has lived on as it were.
I'm 100% delighted that Google chose to standardize on the Arduino platform, but I fear it means we'll now be stuck with the infuriating 0.160" header spacing between shield pins forever.
"We had 5 minutes before the deadline to go into production, the PCB guy was on the phone saying 'send it now or it goes to next week' and we didn't have a name yet... they I said let's call it Arduino like a bar we used to go...there wasn't much time to think."
Agree. The arduino processor is also pretty weak given the price/performance ratio. I'm in favor of seeing them work with say an arm-5 or arm-7 device.
Yeah, I'd love to see someone make an open-source ARM9 board that runs Linux, but works with Arduino stuff, and has good libraries for controlling the hardware. The first version of the Chumby Hacker Board was a good candidate, but they removed the Arduino headers on more recent versions.
I work at LeafLabs, we are responsible for a 72MHz, open/libre licensed, ARM microcontroller platform called Maple.
The header spacing issue on Arduino was really a gaff! We actually provide a 1/10" compatible secondary header as a rough-fix on Maple. We get tons of use out of this!
Maple line boards are based on the 32-bit ARM Cortex M3 processor core. These low power procs don't have MMUs, so unlike ARM9, there is no hard linux (there is uClinux though).
Maple originally forked the Arduino IDE, and ported most of the Arduino libraries over to ARM. Our build environment also works from the command line via make, arm-gcc, etc. Check everything codewise out at github.com/leaflabs
mBed is another great Cortex M3 platform, here are some differences between mBed and Maple:
- mBed is a bit faster at 96MHz, and uses a processor from NXP, leaflabs uses a 72MHz processor from ST (stm32 series) that can actually be overclocked to 120MHz (not recommended ;)
- the LeafLabs build environment runs on your local machine, everything is MIT/LGPL licensed, and can be used with an Arduino-like IDE. The hardware is all creative commons licensed. mBed has a great development IDE, but it is a webapp and compilation happens remotely. I dont know how much of toolchain/libs/hardware on mBed is libre or even open source.
- Maple comes in 3 form factors, Arduino compatible, bread-board sized (maple-mini), and a beefier version (Maple Native).
- mBed has a secondary microcontroller onboard to handle programming, meaning user programs have 100% control of the main MCU (no bootloader or anything else running in the background). Maple has an onboard bootloader and a USB->serial driver running in the background.
(note, mBed has a 60MHz arm 7 board available now too)
Hah, I got it working yesterday but I had other stuff to do and I wanted to patch their code to work on both 168/328p and 1280/2560 before doing a proper write up.
Can you test my patch and get back to me whether it works for you? That way I can update my post.
If anyone is interested in teaching arduino to the next generation, I'm developing an open graphical programming platform for arduino that is aimed at kids. http://kck.st/mnWW8y
Phil's a cool, intelligent guy, but this statement pegs my meter somewhere between "excessive optimism" and "ridiculous Apple fanboyism".
Apple, the infamous UX control freak, will give up the control (and revenue) associated with the MFi program in favor of allowing their users to customize their experience? What's next, Windows 8 will run an OpenBSD kernel?
Sorry, perhaps that last was excessively sarcastic, but let's be realistic here: one of Apple's fundamental properties is its fanatical control over every aspect of the way that users interface with the device, directly or indirectly. They will never give this up.
MS/NOK (funny how, at least in my mental model, they're one entity in the phone market now) and (especially) HP/Palm should be looking at this and thinking about doing the same. RIM probably doesn't care because their userbase doesn't.