Beyond the Arduino Programming

Posted by

Why this migration is required ?

There are many small scale companies building Arduino based products. These are very well supported by Arduino IDE and community. It is very easy to integrate these and create solutions.  I had posted such articles in Arduino category.

However one can create one reliable and cost effective product by designing custom based board only. That gives flexibility to select only required hardware and software components.

Engineers, working in Arduino based platform, don’t bother for the abstracted technology in the system.

Self Test

You can take a quick test to understand your current status in Embedded System knowledge. If you score good points , you are already beyond Arduino. 

This is a simple quiz with mixed embedded topics.

1. In Ethernet Controller , MAC communicates with PHY using :


2. Select the the item not relevant with others in following


3. If you have to halt CPU based on some data comparison using SWD/JTAG based debugger, You need to use


4. Following registers in an SoC can’t be memory mapped


5. I2C is a uni-directional two wire bus


6. An SoC contains CPU, DDR Controller , L1 Cache, I2C, SPI, DMA and Ethernet Controller . Incoming traffic on Ethernet controller has to be passed from Ethernet Controller to Memory connected via DDR Controller. This should be done without using CPU cycles. The best approach to achieve this will require


7. The UART section responsible for bit-rate of any MCU is called


8. DDR controller is inialized in a Embedded system running linux by :


9. Put   Cache, Flash, DDR, SDRAM in increasing order of speed. First device must be slowest one and last the fastest one.


10. If SPI controller working as a slave device, Its input data will be


Question 1 of 10

Why should I learn all above if ready to use hardware and software available ?

Development Kit or Evaluation boards are just for reference , Not for product. Almost all development kit vendors mention that clearly. Those are provided to check the basic concept. Actual product needs optimized designed. This is very simple to understand. Suppose 10 components are sufficient to meet your target application requirements and you are using one reference board with 15 components , so 5 extra components will add cost to design as well as overhead for reliability. Same thing applies to software. If there are un-necessary functions or variables are enabled , those are overhead. 

Why Arduino IDE based learning is not sufficient ?

Arduino library code is C++ based while majority of Embedded software is in C .  I have observed that even experienced professionals , (4-5 yrs) with Arduino background, don’t understand the firmware basics. This blocks their growth in embedded career.

How can I migrate to Advance Embedded system design ?

You might have observed that developing any product using Arduino platform doesn’t take much time. This is because you follow just DIY steps. However if you want to learn embedded system designer , you have to spend time in learning various skills such as Embedded C , ARM architecture, RTOS, Linux , Protocols etc

Embedkari can help you in complete migration through it’s Developer kit


Why Embedkari ?

  •  It is a platform by embedded professionals with more than 25yrs of Industry exposure
  • Complete course is available online and can be accessed any time using any device
  • Group discussion  with a mixture of fresh and experienced professionals 
  • Additional Live classes by experts during weekend 
  • Job assistance immediately after joining course

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.