1. Home
  2. /
  3. Projects
  4. /
  5. Programmable Robots for Education: Software and Firmware Development
Integra Sources home button.


Programmable Robots for Education: Software and Firmware Development

AWS Kernel and driver development Custom software development Education Firmware development Robotics Web development

DaVinci Innovation Labs is a startup created within its Berlin-based parent company DaVinci Media GmbH which also owns Da Vinci Learning, a worldwide educational TV
channel. DaVinci Labs is based in Taiwan and uses robots as a learning platform to teach students aged 9-14 to code in Python. To give kids different coding challenges, instructors at DaVinci use Lego Mindstorms EV3, Vex, and Makeblock MeAuriga robots.

A programmable robot for education


DaVinci Labs was looking for a technology partner who could support their software
development efforts. They needed to improve their existing software for robots, simplify the way students learn, and develop a student portal that could provide an interface for interacting with robots.


Integra Sources provided a range of services for DaVinci Labs. Our scope of work included firmware development for Makeblock MeAuriga robots, software development of the cloud-based Over-The-Air (OTA) system for executing code on Lego Mindstorms EV3, and the development of the course management system that lets school administrators manage their students.

Elements of various educational robots
Parts of different educational robots

Scope of work

  • Firmware development for the Makeblock MeAuriga robot
  • A plugin for Google Chrome for the Makeblock
  • An AWS cloud-based OTA system for executing code on Lego Mindstorms EV3
  • An HTML 5 CSS 3 website that integrates with Google Maps, YouTube, and LeadSquared CRM

Technologies Used

  • Python language is used for scripting both robots: Lego EV3 and Makeblock MeAuriga.
  • We used Google Blockly for the visual programming part of the current webportal.
  • We prepared a custom Linux build for the Lego EV3 robot.
  • The cloud-based OTA system uses WiFi to communicate with the Lego EV3 robot.
  • Amazon Web Services (AWS) with Docker containers are used for hosting purposes and balance loading.
  • Some utilities were implemented using C/C++.
  • Raspberry Pi was used to run Python scripts for the MeAuriga robot.


We helped DaVinci Labs improve the way the kids were taught to code. Students can use Google Blockly framework for writing Python code and then see how robots complete the commands they wrote. The ability to solve problems in Python helps children build their Computational Thinking skills and makes them prepared for the future, where the knowledge of technology will become even more relevant than today.

Case 1: Custom firmware development for Makeblock MeAuriga


For their educational purposes, DaVinci Innovation Labs was using Google Blockly, a web-based graphical programming editor where users can drag blocks together to build an application without any typing. This Blockly code can be translated into Python using a special program. Lego Mindstorms EV3, a robot that DaVinci Innovation Labs was using, had a custom service that allowed users to perform Python code on the robot.

DaVinci Innovation Labs was looking to implement the same kind of system for their Makeblock MeAuriga robots.


It turned out that it isn't possible to run Python code on Makeblock because this type of robot is based on Arduino which has a pretty weak microcontroller and pure C/C++ firmware inside. We offered our client the option of connecting the robot to a Raspberry Pi that has Linux OS inside and can run Python scripts. Python would pass commands to the robot's serial port via Me Shield.

However, this solution wasn't very convenient because we would've needed to attach the Raspberry board to the robot. That's why we decided to simplify it. We could run Python script on the desktop and transmit the commands to the robot using 2.4G Wireless Serial (2.4GWS). All we needed was a dongle to plug on the computer and a wireless module to establish a wireless connection between the software mBlock and Makeblock robot.

DaVinci Innovation Labs uses the Google Blockly graphical programming editor for educational purposes.
Google Blockly based language to program robots


We implemented custom firmware development for Makeblock MeAuriga which allows users to run commands via Bluetooth dongle from a Chrome browser using a special plugin. As a result, DaVinci Labs' students can compose programs using Google's Blockly framework that mixes visual and text programming and execute them on the robot.

Case 2: A cloud-based OTA system for Lego Mindstorms EV3


To instruct a robot what to do, kids need to type commands on their computer and then connect their robot to this computer via a USB cable. This isn't very convenient because at DaVinci, instructors work with a group of children and need to manage them all at the same time.


To solve the problem of connecting the robots to PCs, Integra Sources suggested using a wireless connection. We revised the library for the EV3 robot using Over The Air (OTA) standard for the transmission and reception of code in a wireless communication system. With our AWS cloud-based, OTA solution instructors can manage students, robots, and educational programs.

The process of testing a custom cloud-based OTA system
Testing process


Integra Sources implemented a custom cloud-based Over-The -Air (OTA) system that allows a group of students to write and execute code on the Lego Mindstorms EV3 robot. Here is how it works:

  1. A student writes Python code for the robot to execute using the Blockly framework.
  2. After the student clicks play, the code they wrote is sent to the OTA system's server via a Wi-Fi network.
  3. From there the server delivers the code to the robot assigned to this student.
  4. The robot executes the programmed action (e.g. it can drive, shoot, slither, walk, slam, and spin).
  5. The robot sends the status update back to the cloud.
  6. This information is delivered to the instructor. Each robot has a unique number to make it easier for the instructor to check the results.

Case 3: A course management system


DaVinci Innovation Labs provides different learning materials, including courses and video lessons for kids who want to learn how to code. When parents enroll their kids in the school they select a course that matches their kid's level. DaVinci Innovation Labs needed a course management system to be able to manage their students and learning programs.


We developed software that integrates with LeadSquared, a customer relationship management system, and lets school administrators manage their students. After the payment for a course has been completed, this information is sent to the OTA system and the learning materials become accessible for children.

Our team took care of backend and frontend development for the course management system. We used Docker containers to create, deploy, and run the application. With this architecture it is easy to handle additional load and scale the system – all you need to do is add new containers.

Makeblock Me Auriga robot
Makeblock Me Auriga robot


The web-based course management system that we helped to create allows school administrators to:

  • Add and delete student profiles
  • Create courses and tasks
  • Track task progress
  • View the history of changes

And it makes it easy for students to do their tasks and execute code on the robot (thanks to the integration with the cloud OTA system).

Added support for

MakeBlock robots

Support for

>30 modules

Added new Blockly blocks

>30 Blocks

Integra rewrote software that allowed the startup to improve upon existing software for the robot, which in turn improved the way the kids were taught to code. Integra also found an easier way to connect the robots to PCs. The ability to customize software for us was key to their success.

Joseph Millogo, Director of Curriculum at DaVinci Innovation Labs