Tuesday , February 21 2017
Home / Embedded Systems / Arduino / Engineers! are you starting embedded systems with arduino?

Engineers! are you starting embedded systems with arduino?

The term ‘Arduino‘ is no longer new to anyone having the least bit of exposure to Embedded System. Some years ago when I first heard Arduino, it hadn’t come into India yet and the only shops selling them we charging a little more than twice the actual cost. So I was inclined to believe that it was yet another fancy toy for those with some good monthly allowances or for those with the financial support from some university (in today’s terms, telosB motes serves as a perfect example for what I was thinking of Arduino).

Definitely, I was mistaken. By the time I was looking back at it, the Arduino platform had grown so much that even the kids around the place were speaking of it!

Embedded System - Arduino

The Arduino is a really good platform. You could opt to work with it for more than one of the following (hard to ignore) reasons,

  1. The amount of effort that the developers have put into it to simplify the programming.
  2. The robustness in terms of hardware, observing all precaution in electrical design.
  3. The level of optimization they have given to the PCB design in terms of footprint compatibility.
  4. The ease of programming the board through the Arduino IDE without the need for any programmer.
  5. The built in USB serial interface and an integrated serial monitor (which is boon when debugging).
  6. The well built library functions.

I personally admire their servo and serial library. Managing all the servo refreshing rate should have taken one hell of an effort, not to mention the ability to program the 0-degree millisecond and 180-degree millisecond for each servo individually. One of the assignments I have to take up in the upcoming months will be to write a Arduino-like library for PIC control servo motors.

Asides all these features and crutches, I prefer to leave Arduino as a rapid prototyping platform alone that is suitable for proof-of-concept and not use it as a full time embedded system design platform for more than one good reasons. It covers up all the low level activities of the controller and prevents a beginner from understanding the underlying concepts. The library functions are so good that most of the work is already taken care by the background code. Its all so very well done that all you have to do is, ‘type’ the magic words.

I don’t know, When ever I work with Arduino, I have a strange feeling that I am just meddling with someone else’s code rather than writing my own. Now these are tricky stuffs, If something was to go wrong you are totally lost.. Yes, there is a huge community out there that can help you but what’s the point? This time they helped you out, next time you’ve got to be there for some other problem. And who knows, you might not be just that lucky. These are the times when good old skills will come in handy; – begin writing the code from scratch.

Lastly, by using Arduino you get to learn the platform and not the controller lying beneath it 🙂 Real embedded system is not in mastering the use of a platform but understanding the basic concepts of any one controller (be it any) by sitting with just its datasheet and a development board. That way you get to know what exactly you are doing. It might turn out to be daunting and exasperating but trust me we you are done it will feel a lot better.

Arduino is definitely something you should learn to work with but, starting with the Arduino is a big NO-NO. Once you get a feel of the ‘real‘ embedded system you could always revert back to Arduino and see how life has been made easy for you. But the converse may not always be true.

About Siddharth

Siddharth is a Firmware Engineer, techie, and a movie-buff. His interests include, Programming, Embedded Systems, Linux, Robotics, CV, Carpentry and a lot more. At times, you could see some of his sunday projects converge on release quality. You get to know him on the following social channels.

Check Also

Servo Motor Interface

Servo Motor Interface – Looking behind Arduino’s Servo library

Have you ever looked into the Arduino’s source files? Well you should be!! I have …

  • jude

    Hi Siddharth, thanks for this article. What other micro controller would you recommend for a newbie trying to learn this?

    • Hey Jude,

      My recommendation would depend on your background and interests. If you are an Engineer looking forward to work in the Embedded industry or do something serious, then you should go for a raw Microcontroller (not a platform; Arduino is a platform for the AVR microcontrollers). It could be PIC, AVR, MSP, STM anything I like PIC though I have no reason to do so.

      On the other hand, if you are just looking forward to get things done; Embedded System is just a small part of your work and don’t have time/not interested in taking up the entire learning curve for the process, Arduino is a good pick.

      Regards
      Siddharth.

Keep in touch with the current trends!
Did you like this article? Sign up and get our latest posts delivered to your inbox!
  We hate spam and never share your details.