We have been using Arduino UNO R3 for training, projects and also retails :) We love it. But when it comes to training, there are always something missing and lacking. Why is there no LED indicator for this digital pin? Why not all digital pins? Why must we connect LED manually? Can't you design-in button as digital input so we can program it directly? Why I need to do manual wiring for all the important and fundamental input and output? 

The buzzer/audio output is so useful, why Arduino does not come with pre-build buzzer? Why use USB B type that is rarely being used (only on USB printer). Can we utilize the USB MicroB cable which is commonly being used on power bank charger, and most of the Android phone? 

Of course there are other feedbacks too, e.g.: 

  • More Flash memory
  • Faster processing speed
  • MicroSD socket
  • WiFi and BLE
  • More IO, expansion maybe?
  • More ADC input
  • More PWM output
  • More UART (especially hardware UART)

From here, we decided to re-designe and produce an Arduino UNO compatible board that is suitable for students and beginners. An Arduino UNO which is better choice for education. 

The objectives:

  • It must be affordable for students. You might think USD 22.00 is affordable, but for some parts of the world, this figure is still considered a privilege, a luxury. It must be lower than USD10.00.
  • It must be fully compatible in term of using Arduino IDE, Arduino UNO R3's library and example code. This is the most important spec because Arduino.cc have done an amazing work in making the Arduino IDE to work seamlessly on every platform and there are millions of example codes for Arduino UNO R3. 
  • Friendly enough for teachers and students (that does not have electronics background and fundamentals) to learn microcontroller, coding and electronics. 
  • Build in the features which is important, even it is basic.

We are familiar with Arduino UNO R3 as we have designed CT-UNO before. But the objective is not to design and produce another low cost Arduino UNO, it is to solve the problems of teacher and student. They wanted to teach electronics, coding and microcontroller; and millions of students wanted to learn this amazing platform. Is an essential tool for makers.

Picture showing CT-UNO (Left) vs Arduino UNO R3 (Right)

Before we can start the development, there are a few features and spec that need to be finalized. So here is it.

Which MCU? The Atmega328P or 328PB or even Atmega32U4?

1st, the MCU, we look into Atmega328PB, tested it with our first prototype and there are some findings that stopped us from using it :(

  1. Atmega328PB is not fully compatible with Atmega328P which is used on Arduino UNO R3. 
  2. The hardware (Pin assignment, flash, memory, operating voltage, etc) is compatible, but the registers are not. Therefore, the sample codes of Arduino UNO R3 are not compatible. 
  3. Bootloader is not fully compatible too, there are some tweaking needed. 
  4. Arduino IDE does not fully recognize Atmega328PB as Arduino/Genuino UNO, therefore, you cannot simply modify the library to carter for the register changes and click the upload icon on Arduino IDE. The sketch can be compiled successfully, but Arduino IDE will fail to download the code into Arduino board with Atmega328PB.

With that, we decided to stick with Atmega328P which is fully compatible with Arduino/Genuino UNO R3. Keeping the simplicity and reduce the confusion and risk for beginner which likely are students :) BTW, we do note that Atmega328PB is way better MCU for next Arduino UNO board, it provides:

... Read more »