Arduino Uno R4 Wi-Fi OS
A lightweight, text-based operating system with shell commands, Wi-Fi connectivity, GRUB-style boot simulation, and Modulino hardware integration. Only Supports The Arduino Uno R4 Wi-Fi Board
Components and supplies
1
Arduino UNO R4 WiFi LED Matrix
1
Arduino Plug and Make Kit
1
Modulino® Pixels
Tools and machines
1
Arduino Web Editor
1
Arduino Uno R4 Wi fi
1
Arduino
Apps and platforms
1
Arduino Web Editor
Project description
Code
about
cpp
1extern bool isNtpReady(); 2 3void printAbout() { 4 Serial.println(F("\n─────────────────────────────")); 5 Serial.println(F(" Arduino Uno R4 Wi-Fi OS v1.0")); 6 Serial.println(F(" Developed by Tadeo A. Gonzalez")); 7 Serial.println(F(" Shell prompt: root@uno-r4:/$")); 8 Serial.print (F(" Wi-Fi enabled / ")); 9 Serial.println(isNtpReady() ? "NTP Synced" : "NTP Not Synced"); 10 Serial.println(F(" RTC, pixel, and command modules loaded")); 11 Serial.println(F("─────────────────────────────")); 12}
clock
cpp
1#include <WiFiUdp.h> 2#include <NTPClient.h> 3 4WiFiUDP ntpUDP; 5NTPClient timeClient(ntpUDP, "pool.ntp.org", -4 * 3600, 60000); // EDT offset 6 7// Call once after Wi-Fi connects 8void initClock() { 9 timeClient.begin(); 10 Serial.print("Connecting to NTP"); 11 for (int i = 0; i < 10; i++) { 12 if (timeClient.forceUpdate()) { 13 Serial.println(" ✓ NTP synced"); 14 return; 15 } 16 Serial.print("."); 17 delay(500); 18 } 19 Serial.println(" ✗ NTP failed"); 20} 21 22// Call from shell 23void printTime() { 24 timeClient.update(); 25 Serial.println(timeClient.getFormattedTime()); 26} 27 28// Public status check 29bool isNtpReady() { 30 retu
grub_arudinoos
cpp
1// Define The Bootloader (GRUB/ArduinoOS) 2 3const char* VERSION = "1.0"; 4 5void grug_arduinoos() { 6 Serial.println(F("Using Drive: /dev/flash0")); 7 Serial.println(F("Loading...............................")); 8 Serial.println(F("disk: flash0")); 9 10 Serial.print(F("OS: Arduino UNO R4 Wi-Fi OS ")); 11 Serial.print(F("KERNEL: ArduinoOS ")); 12 Serial.print(F("VERSION: ")); 13 Serial.print(VERSION); 14 Serial.print(F(" ARDUINOOS VERSION: UNO R4 Wi-Fi ")); 15 Serial.println(VERSION); 16 17 Serial.print(F("GRUB> ")); 18 delay(4260); 19 Serial.println(F("Booting from arduinounor4wifips.ino...")); 20}
ls
cpp
1void ls() { 2 Serial.println(F("arudinounor4wifios.ino (kernel)")); 3 Serial.println(F("about.ino")); 4 Serial.println(F("clock.ino")); 5 Serial.println(F("grub_arudinoos.ino")); 6 Serial.println(F("ls.ino")); 7 Serial.println(F("uname.ino")); 8}
arduinounor4wifios
cpp
1#include <WiFiS3.h> // Arduino Uno R4 Wi-Fi driver 2#include <WiFiUdp.h> 3#include <NTPClient.h> 4#include <Modulino.h> 5 6// Wi-Fi credentials 7const char* SSID = "Gonzalez"; // Your network name 8const char* PASS = "MiPa$$wordS3cr3to"; // Your network password 9 10// Shell utilities (defined in other tabs) 11extern void initClock(); 12extern void printTime(); 13extern void printAbout(); 14extern void printUname(); 15extern void grug_arduinoos(); 16extern void ls(); 17 18 19// Global modules 20ModulinoPixels pixels; 21 22void setup() { 23 Modulino.begin(); 24 Serial.begin(9600); 25 while (!Serial); // wait for USB serial connection 26 // Start Bootloader (GRUB/ArudinoOS) 27 grug_arduinoos(); 28 29 // Connect to Wi-Fi 30 Serial.print("Connecting to Wi-Fi"); 31 WiFi.begin(SSID, PASS); 32 while (WiFi.status() != WL_CONNECTED) { 33 delay(500); 34 Serial.print('.'); 35 } 36 Serial.println(" OK"); 37 38 // Sync time via NTP 39 initClock(); 40 41 // Boot banner 42 Serial.println(); 43 Serial.println("Arduino Uno R4 Wi-Fi OS v1.0"); 44 Serial.println("Type 'help' for commands"); 45 Serial.print("root@uno-r4-wifi:/$ "); 46 47 // Initialize hardware modules 48 pixels.begin(); 49} 50 51void loop() { 52 if (!Serial.available()) return; 53 54 String cmd = Serial.readStringUntil('\n'); 55 cmd.trim(); 56 57 if (cmd == "help") { 58 Serial.println("Commands: pixels on, pixels off, clock, about, reboot, uname, ls"); 59 } 60 else if (cmd == "pixels on") { 61 for (int i = 0; i < 8; i++) { 62 pixels.set(i, 255, 0, 0, 10); // Red, brightness 10 63 } 64 pixels.show(); 65 Serial.println("Pixels on"); 66 } 67 else if (cmd == "pixels off") { 68 pixels.clear(); 69 pixels.show(); 70 Serial.println("Pixels off"); 71 } 72 else if (cmd == "clock") { 73 printTime(); 74 } 75 else if (cmd == "about") { 76 printAbout(); 77 } 78 else if (cmd == "reboot") { 79 Serial.println("Rebooting..."); 80 NVIC_SystemReset(); 81 while (1); 82 } 83 else if (cmd == "uname") { 84 printUname(); 85 } 86 else if (cmd == "ls") { 87 ls(); 88 } 89 else { 90 Serial.println("Unknown command. Type 'help'"); 91 } 92 93 Serial.print("root@uno-r4-wifi:/$ "); 94}
uname
cpp
1void printUname() { 2 Serial.println(F("\nKernel Name : GNU/ArduinoOS")); 3 Serial.println(F("Node Name : uno-r4-wifi")); 4 Serial.println(F("Release : 1.0.0")); 5 Serial.println(F("Architecture : Renesas-RA4M1")); 6 Serial.println(F("Wi-Fi Driver : WiFiS3")); 7 Serial.println(F("Build/Compile/Test Date : Jun 30 2025 19:24:22")) 8 Serial.println(F("Install Date : " __DATE__ " " __TIME__)); 9 Serial.println(F("Arduino Sketch : arduinounir4wifios.ino")); 10}
Comments
Only logged in users can leave comments