Hi Crusty -- you ask why the Arduino has gained such traction. I think it's a bunch of different factors. First, as you say, it's open source hardware and software, which has tempted a lot of folks to make their own boards and suchlike.
In the case of the IDE, they've removed a lot of the complexity and made it really easy for beginners to get started -- this is now aided by the plethora of books that are available.
And another big element is the trasure trove of resources available on the web. For example, when I bought a Real Time Clock (RTC) module from Adafruit, it came with an associated library and examples I coudl download and use -- so I was up-and-running in just a few minutes.
@Crusty: I think this is what I mean by did you start to look under the hood of the chip you bought on the board, or work out what the code does that it came with?
My problem is that I'm not a programmer -- so I can plod along but only to a certain level. When you get a piece of hardware like a Real Time Clock (RTC) shield for use with the Arduio, it comes with two things -- a library and some examples.
You include the library inyou rprogram using a "#include" statement -- thereafter you can make function calls like "RTC.GetTime()" -- these function calls call functions in the RTC library.
I can understand the example code, but a lot of the code in the libraries makes my eyes water (sad face)
I think the Arduino platform somehow crossed the boundary from closed shop knowledge out into the open and may just have that intangible component of "cool". I know a kid (well he is in his 20s now) who decided he couldn't do the sciences. I did think he was smart and needed some motivation in the science direction, but it was not to be. He went to college for a degree in theatre production design. In that they learned the Arduino and he just twigged to it using it to control the lights etc. I now think that he would make a great embedded designer.
Another benefit is that the community is guided towards simplicity, so you get easy to use libraries and support .
One of the best example of this is they encourage people not to use pointers(especially in library interfaces) , since pointers are really hard for beginners to grasp. They recommend instead to use references and even standard data structures, like std:vector etc which can fit embedded hardware using the uSTL library.
One response to the arduino was the mbed. It's not as simple as the arduino , but it's relatively simple, and is supported by a growing variety of microcontrollers.
And regarding simplicity and FPGA's: Multi core mcu's offer an interesting alternative to some fpga applications with a simper programming model. Another alternative is c-to-gates tools offered by altera and xilinx.
@alex_m1: Thanks for both the posts. It's good to know that someone is reading the blog and considers it worth a reply.
I hope that people will post ineresting things about how they got started and where they are going to.
I am looking forward to my LPLC - Low Power, Low Cost PIC18 Development Board by Mike Hibbett, that I get as a reward from backing this on Kickstarter. I should at last get an insight into using these chips and their diffrent architecture, as he is providing a beginners instruction class on how to use it.
The fact that this project past it's funding goals, by a lot, shows there is a need for other vehicles for micro experimentation.
Hmmm, there are various levels of compatibility. Remember the Arduino project adopting the Wiring language as its programming language; Wiring has been ported to a variety of other chips (including TI MSP430 and Tiva, with the Energia IDE, the Digilent chipKit (PIC32) which Max wrote about, the NavSpark (LEON SPARC processor), and the Intel Galileo (x86)).
Some of these use the Arduino IDE. However, low level Atmel code can't be ported (and some vendors like to use low level code).
Also, Arduino shield connectors are everywhere. For example, ST's Nucleo boards combine a STM32, mbed enviornment, and Arduino shield connectors, for <$11 (including the very powerful STM32F401 model).
I started out with PIC uCs back in 1995 or so, and my tool was DOS-based. I actually hung on to that system (running on an old 386DX40 system) until about 5 years ago when I finally switched over to a newer programmer... Which is now hooked up to my system through a USB-Serial converter... Progress marches on and leaves us luddites behind, I guess. D'oh.
In that vein, though, I just found the following amazing little thing from Newark/Element14 : Freescale evel/de kits! For $12.95 ea, I bought 2 - one for work and one for home. Something else to learn, I guess - one more tool in the box.
Along those same lines, I have a friend who's been out of the engineering world for a while (he is currently a tech writer and is miserable). He bought an Arduino UNO to try and learn some stuff. As always, it's hard to learn if you don't have a project to directly apply learnings, so I've been teaching a 1-on1 microcontroller class... And filming it - not because I think I'm awesome (which you surely know by now I'm just a doddering old fool), but I figure there's a bunch of people out there who could use that kind of thing... We get a new "lesson" done about once every 2 weeks or so, and I assign homeworks & discuss the last lesson, etc.
Keep up the good work, and if you're ever in the area, give me a ring & we'll go out for dinner and a brew.
There are some more blogs to come, of which one will be my attempt at making a home brew PCB reflow oven. Just waiting for the K type thermocouple chips to come through the post and I can then get leathal with 230VAC mains and PIC and Atmel chips.
Likewise if you are in my area drop in and we can get some real ale at the local pub.
Looks like I am always tail end Charlie. However I have to work with what I have here so at least It should be compatible with what we have in England. Looks Like a good article of yours, so will read up on it tonight.
What are the engineering and design challenges in creating successful IoT devices? These devices are usually small, resource-constrained electronics designed to sense, collect, send, and/or interpret data. Some of the devices need to be smart enough to act upon data in real time, 24/7. Specifically the guests will discuss sensors, security, and lessons from IoT deployments.