Embedded programming

Group Assignment:

In this week, everyone tried various platforms with different microcontrollers. In this page, we will be listing the platforms and architectures we used, compare them with each other highlighting our experiences, and the pros and cons of using said platforms.


In this week, I used several platforms with Atmega 328. I will be briefing some of them including Ardublock, and platform IO.


Is a an add-on tool that can be used as a graphical programming language for Arduino. It used blocks that an be dragged and dropped to create simple or slightly complex codes.


  1. Visual language: Every command or function is in the form of blocks, in different colors, labeled and very easy to find.

  2. Easy to use and create: Just drag and drop!

  3. Great for beginners and kids.

  4. No need to worry about debugging or the syntax.


  1. Only works on specific versions of Arduino IDE.

  2. A bit tedious to install (requires very specific order and syntax)

  3. Doesn’t contain all the libraries and devices that are adaptable with Arduino IDE.

Platform IO:

Platform IO is an opensource, cross platform IDE and unified debugger. It can perform static code analyzing and remote unit testing . It also includes multi-platform and multi-architecture build system, and firmware fie explorer and memory inspection. It is a tool that can be installed easily on different software including VSCODE and Atom!


  1. Compatible with different softwares.

  2. Compatible with several microcontroller architectures including different versions of Arduino and ESP.

  3. Can be used with various languages including Arduino language, C, java etc.

  4. Has a serial monitor and a debugging channel.

  5. Includes various tutorials and examples to use.


  1. A bit complex to use.

  2. requires several updates and tools to install alongside platform IO.


​ #### XOD IDEXOD IDE which also called: Zod. its programming environment using blocks (visual programming) to program microcontrollers without writing any codes.


​ 1. Easy to use.

​ 2. No need to write codes.

​ 3. Open source. ​

  1. Powerful but simple.


​ 1. Not compatible with ATtiny Microcontrollers.

​ 2. No search box to find nodes, in case of big programs.

​ ### Shaikha and Waleed:

Aduino IDE

Arduino IDE Arduino is a very popular and most commonly used open-source electronics platform based on easy-to-use hardware and software. Arduino is fundamentally a C/C++ environment. It runs a simple programming language called Wiring, which makes it easy to write scripts to make the microcontroller carry out tasks. These scripts are called Sketches by Arduino. Most shields come with sketches already written that can be loaded in to the software, compiled and downloaded to the base board.


  1. Cross-platform - runs on Windows, Macintosh OSX, and Linux operating systems. Most microcontroller systems are limited to Windows. ​

  2. Easy to learn with a lot of online resources to learn ​

  3. Huge supporting community. ​

  4. Simple, clear programming environment - easy-to-use for beginners, yet flexible enough for advanced users to take advantage of as well. ​

  5. Open source and extensible software - The Arduino software is published as open source tools, available for extension by experienced programmers. The language can be expanded through C++ libraries, and people wanting to understand the technical details can make the leap from Arduino to the AVR C programming language on which it’s based. Similarly, you can add AVR-C code directly into your Arduino programs if you want to. ​


  1. No understanding of the AVR microcontroller. ​

  2. Sketches and shields can be difficult to modify. ​

  3. No debugger included for checking scripts. When errors arise, some do not have a clear statement of where or why this error message is showing, it won’t direct you or give solution unless you have experience with Arduino. ​

  4. For using with Attiny. Attiny 44 in our case, we need to install the package, it is also required to burn the Arduino bootloader onto the chip to make sure the chip will accept any programs uploaded via the Arduino IDE.



I will be pointing out on my experience dealing with the Code Blocks with the arduino Uno, the advantage and the disadvantages of using it.

Code Blocks is a free C, C++ and Fortran IDE built to meet the most demanding needs of its users. It is designed to be very extensible and fully configurable.


  1. Open Source! GPLv3, no hidden costs.

  2. Extensible through plugins.

  3. Multiple compiler support


  1. It needs a supporting program to upload the code to the microcontroller ( such as freematic builder)