Join me at NuttX International Workshop 2023! (29-30 Sep 2023)
Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones… By booting Apache NuttX RTOS on our phone?
Over the past year, we have ported NuttX to PINE64 PinePhone as an Educational Experiment. Today we can run NuttX Touchscreen Apps on PinePhone, based on Allwinner A64 SoC with Arm64 CPUs.
NuttX on PinePhone will soon support Phone Calls and Text Messages on the 4G LTE Network. We hope NuttX will become a valuable tool for teaching the inner workings of modern smartphones.
This presentation explains how we built the NuttX Drivers to support Touchscreen Apps on PINE64 PinePhone:
To derisk the development, we prototyped the NuttX Drivers in the Zig Programming Language, before rewriting to C.
What if we could prototype and test Touchscreen Apps in the Web Browser, before running on a real device?
In this presentation we explain how we compiled the LVGL Graphics Library to WebAssembly with Zig Compiler. We created a NuttX App in the Zig Programming Language that runs in the Web Browser, calling the LVGL Library in WebAssembly.
We hope that this will someday enable NuttX Apps to be created and tested easily in the Web Browser.
What’s inside a Smartphone? Exploring the internals with Apache NuttX Real-Time Operating System
Smartphones are incredibly complex gadgets. What if we could learn the internals of smartphones… By booting Apache NuttX RTOS (Real-Time Operating System) on our phone?
Over the past year, we have written a series of 24 articles explaining the inner workings of PINE64 PinePhone, and how we implemented the smartphone features with Apache NuttX RTOS.
The articles cover the essential (and esoteric) topics on smartphone technology: MIPI DSI LCD Display, I2C Touch Panel, USB Controller, LTE Modem, Accelerometer / Gyroscope, Arm64 Interrupts and many more.
We are also experimenting with newer, easier ways to create Smartphone Apps, with LVGL Graphics Library, Zig Programming Language, WebAssembly Simulation and Arm64 Emulation.
More about Apache NuttX RTOS for PinePhone
Articles on Apache NuttX RTOS for PinePhone
Apache NuttX RTOS for Star64 64-bit RISC-V SBC (StarFive JH7110)
Join me at NuttX Online Workshop 2022! (24-25 Sep 2022)
Below are the Presentation Slides for…
“Visual Programming with Zig and NuttX Sensors”
“NuttX on a RISC-V IoT Gadget: PineDio Stack BL604”
“Simpler, safer LVGL Touchscreen Apps with Zig and NuttX”
What if we could drag-and-drop NuttX Sensors to create IoT Apps? In this presentation we’ll explore Blockly, the web-based toolkit for Visual Programming, and how we might customise Blockly to create NuttX Sensor Apps.
We’ll also discuss the Zig Programming Language, and why Blockly will generate NuttX Sensor Apps as Zig programs.
References:
Pine64’s PineDio Stack BL604 is a RISC-V board that’s packed with IoT features: Touchscreen, LoRa, WiFi, BLE, GPS and more. In this presentation we’ll talk about the porting of NuttX to PineDio Stack, how we simplified the developer onboarding, and our plans to support LoRaWAN and LVGL Apps in Zig.
References:
Is there a simpler and safer way to code Touchscreen Apps with the LVGL Graphics Library? In this presentation we’ll talk about migrating a NuttX LVGL App from C to Zig, and the benefits that it brings.
References: