Using Renode for education, research and demonstration
Topics: Open source tools, Open hardware
Throughout Renode’s history, our open source framework has been applied in a variety of use cases, some of them entirely expectable, given that the tool was initially created to cover embedded software development and testing needs, while others quite ingenious. Recently, a growing trend has seen Renode gain many users in education contexts, with the forced switch to distance learning as well as the general increase in popularity of online education making Renode’s ability to abstract out the physical component from edge device development a valuable asset.
Capable of simulating full SoCs, peripherals and heterogeneous multi-node systems, Renode enables you to run the exact same software you want to ultimately run on hardware, without all the issues that are inherent in working with physical components, such as tedious configuration (especially in more complex systems), manual re-flashing or difficulty sourcing hardware. Add to that easy configurability, extendibility and support of multiple architectures and you get a great tool for exploration, demonstration and education. That’s why, apart from appealing to system designers and hardware vendors, Renode is being adopted by a number of universities and other institutions interested in using our open-source framework for educational purposes.
Revolutionizing the way ML development is taught
One area in particular where the appeal of Renode for education and demonstration is clear, is the development of so-called Tiny ML applications, low-power battery operated devices with limited edge ML capability that are set to play a key role in the technological landscape of the 2020s. Bringing ML to constrained devices requires a mixed skill set covering both theoretical knowledge and practical abilities related to working with real development boards, sensors and data. While theoretical aspects of system development can be easily covered without specialist hardware, learning to compile, deploy and test practical TinyML applications requires sourcing, configuring, replicating development hardware setups, which is often difficult due to cost or logistics. This becomes especially hard when a large group of students is involved, as is the case in edX - Harvard University’s free and multi-part course on machine learning prepared together with Google, in which Renode will provide over 16000 students with a virtual, deterministic environment for unrestrained experimentation and research, as well as with a range of features that will deepen their understanding of embedded system operation.
For the purposes of the course as well as eliminating the barriers to getting started with TinyML and TensorFlow Lite Micro, together with the Google TFLM team we prepared a number of demos that allow you to run things like person detection and speech detection in Google Colab directly in the cloud. To do that, we’ve enabled Renode to accept synthetic and real audio and video input data (together with a number of video and audio sensor models), and you can even use your own microphone and camera and process the data with TensorFlow Lite - all in the browser!
The collaboration with the Google TensorFlow Lite Micro team extends beyond decreasing barriers of entry; there is an ongoing joint project aimed at reworking the CI of TFLM to rely on Renode for hardware-less testing - you can see some test results here.
Explore, develop, test, collaborate
Renode supports a variety of processor architectures (including the most popular choices for education and research: Arm and RISC-V) and entire platforms with I/O interfaces and sensors, e.g. Nordic’s nRF52840 microcontroller featured on the Arduino Nano 33 BLE Sense board that is the focus of the TensorFlow Lite Micro work / edX course, enabling complete application development, from button press to LED blink.
The framework comes with a range of inspection features, such as execution traces, metrics generation, extensive logging, Python hooks on various events etc. that enable analyzing and tracing guest software execution. This ensures full observability of the development process, which can be very useful for educational purposes, as it enables the user to analyze the sequence of events leading to improper behavior of the device. A trained tutor can prepare challenging software samples containing non-trivial problems that will require students to carefully analyze and explore different aspects of the emulation and develop a deeper understanding of embedded systems operation.
In the embedded systems development context, our open source simulator is already successfully used in a Microelectronics course - which also involves Zephyr, Sphinx and other tools we use and support - that we developed together with STMicroelectronics for Poznan University of Technology, with a number of other universities using or being interested in adopting it.
Also, the hardware/software/FPGA co-simulation capability that Renode provides is great for architectural exploration, as the user can create custom RISC-V instructions, easily expand the hardware configuration and see how the hardware and software sides of a system are related at all stages of the development process. One example where those features are used and demonstrated is the Fomu Workshop, and we are working with FPGA vendors like QuickLogic as well as Microchip to expand the capabilities for FPGA and HDL co-simulation. There are many teams experimenting with Renode for security-oriented devices, operating systems and next-gen AI platforms - like the one we are developing in the VEDLIoT project. Despite all this adoption, we are sure we are just scratching the surface of the education and research potential of the tool.
What is more, as an open source tool, Renode teaches work in a collaborative environment, making CI and testing an integral part of the development flow that can be reused also outside of the classroom context.
Enabling early access to cutting-edge platforms
Users of Renode can immediately kick-start the development of their systems and experiment with a range of platforms before committing to particular hardware, saving cost and time. Apart from the Nano 33 BLE Sense, Renode supports a number of popular machine learning acceleration-capable platforms, such as OpenHW Group’s exciting Core-V MCU, featuring the the CV32E40P RISC-V core alongside QuickLogic’s eFPGA fabric, or Microchip’s PolarFire SoC FPGA - the first mass-produced Linux-capable RISC-V implementation, which was available through Renode even before the release of the physical version. Other exciting platforms that are supported include the tiny QuickFeather board powered by QuickLogic’s EOS S3 (the first FPGA SoC to be fully supported in Zephyr RTOS). Renode’s portfolio is regularly expanded with support for new boards from various vendors interested in widening the reach of their products by making them available for pre-silicon system prototyping in our open source simulator.
If you are interested in using Renode or want us to develop Renode support for your platform, don’t hesitate to reach out to us at firstname.lastname@example.org.