Where to after arduino? What is the next logical step?

Hi guys,

I am still very far from leaving arduino behind and in all honesty I don't think I ever will but I do want to know what happens when you can code properly and you have a pretty good grasp on electronics and eventually find that the processing power of the arduino (even an arduino DUE) is not enough, where do you go from there?

Kind regards

My personal choice, as a hobbyist? BeagleBone Black, because:

  • It is more powerful
  • It is Open Source
  • It is cheap
  • It is not RPi
  • It is the inspiration for Arduino 3, so if you want to get prepared for Arduino 3, you can learn on BBB.

unknowntothem:
what happens when you can code properly and you have a pretty good grasp on electronics and eventually find that the processing power of the arduino (even an arduino DUE) is not enough, where do you go from there?

I think there are two separate issues here. Becoming proficient at programming does not require you to abandon the Arduino or to feel that it is somehow inferior. Which leads neatly to the other issue ...

The choice of an Arduino (by which I include a breadboard Atmega328) or another product depends on what you need to do, not your level of proficiency. For example an Arduino Uno or Mega can't do video processing. On the other hand a Raspberry PI is not the easiest thing to use to read switches and drive servos or stepper motors. And neither of them makes a lot of sense IMHO if you want to write and maintain a big system where a cheap PC or laptop would have all the peripherals built in.

The other thing to bear in mind is that microcontroller development needs a different mindset to PC software development where you have to work with an Operating System but have almost unlimited RAM and disk space. And development of web apps probably needs a different mindset from that required to develop "desktop" apps.

...R

The only reason to switch from the arduino might be a hardware speed limitation, not software. I've was a programmer for 30 years with the last 10 years doing software research. I admit that I've switch from a standard UNO to a Mega due to code space but the arduino will do almost anything I want.

I have a raspberry pi but I find it to be a complete PITA; it's a whole lot of work to interface it with the world. Anyone who wants to take over my projects would have to be a unix expert which isn't true with the arduino.

Virtually every arduino project I build has a REST (non-graphical web) interface built in so I can tune and query the application on-the-fly. This is really easy with the arduino and has become the foundation framework for every one of my arduino projects. I've started to couple this arduino REST interface with ExtJS (javascript library) on the mac to provide a graphical web interface to my projects. This approach lets each component do what it does best.

Don't think that you are inherently limited by the arduino (unless you are trying to do intensive bit-banging like image processing). I'm think of doing a project handling large data sets which would tax a single arduino. For that, I'll build a distributed network of arduino's that communicate with XBees.

Think of the arduino as an incredibly flexible, cheap tool. Figuring out how to maximize its capabilities is a lot of the fun.

jimbarstow:
I'm think of doing a project handling large data sets which would tax a single arduino. For that, I'll build a distributed network of arduino's that communicate with XBees.

That doesn't seem like a very practical way to handle large data sets - it would be a very expensive and complicated approach and I wouldn't expect it to be at all cost effective. Microcontrollers are simply not designed to be efficient data processing platforms. If you want to handle large data sets, you would be better off doing that on a different platform.

PeterH:

jimbarstow:
I'm think of doing a project handling large data sets which would tax a single arduino. For that, I'll build a distributed network of arduino's that communicate with XBees.

That doesn't seem like a very practical way to handle large data sets - it would be a very expensive and complicated approach and I wouldn't expect it to be at all cost effective. Microcontrollers are simply not designed to be efficient data processing platforms. If you want to handle large data sets, you would be better off doing that on a different platform.

I should have qualified "large". It isn't large in volume but in the variety and location of the data. We have 200 acres and I'm trying to gather data from well pump, water usage, solar heating, solar electric, irrigation, etc and integrate it all into one dashboard. This entails having sensors spread out across the property. The distributed nodes will gather the data and do a small amount of processing on the sensors it controls then forward it on to a central controlling node which will do the integration. I can't imagine trying to do all this data gathering with one arduino.

I would never use the arduino for manipulating large numbers of records but for handling data gathering from a large number of distributed sensors, it's perfect.