<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Peter H</title>
    <description>The latest articles on DEV Community by Peter H (@pharris).</description>
    <link>https://dev.to/pharris</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3894818%2Fb34dafca-e23c-4b6d-9fdd-4f91d5bb4f59.png</url>
      <title>DEV Community: Peter H</title>
      <link>https://dev.to/pharris</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/pharris"/>
    <language>en</language>
    <item>
      <title>Building an Android-like Platform for Embedded Linux Devices — Without Docker</title>
      <dc:creator>Peter H</dc:creator>
      <pubDate>Thu, 07 May 2026 21:26:25 +0000</pubDate>
      <link>https://dev.to/pharris/building-an-android-like-platform-for-embedded-linux-devices-without-docker-l57</link>
      <guid>https://dev.to/pharris/building-an-android-like-platform-for-embedded-linux-devices-without-docker-l57</guid>
      <description>&lt;h1&gt;
  
  
  Building an Android-like Platform for Embedded Linux Devices — Without Docker
&lt;/h1&gt;

&lt;p&gt;Every embedded Linux project seems to start the same way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SSH into the device&lt;/li&gt;
&lt;li&gt;Install dependencies&lt;/li&gt;
&lt;li&gt;Configure services&lt;/li&gt;
&lt;li&gt;Set up OTA updates&lt;/li&gt;
&lt;li&gt;Handle networking&lt;/li&gt;
&lt;li&gt;Build custom APIs&lt;/li&gt;
&lt;li&gt;Repeat everything again for the next project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After rebuilding the same infrastructure multiple times across different edge and IoT projects, we decided to create a platform that abstracts all of that into a unified runtime.&lt;/p&gt;

&lt;p&gt;That platform became Orbit OS.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Orbit OS?
&lt;/h2&gt;

&lt;p&gt;Orbit OS is an embedded Linux platform designed to bring an Android-like experience to edge devices such as Raspberry Pi systems and other ARM-based hardware.&lt;/p&gt;

&lt;p&gt;Instead of using Docker containers, Orbit OS uses a lightweight native runtime called Gravity RT and a custom package format called .orb.&lt;/p&gt;

&lt;p&gt;The idea is simple:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8r3jov12gkfth89kbvqz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8r3jov12gkfth89kbvqz.jpg" alt=" " width="800" height="680"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Install Orbit OS once, and the device gains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remote application deployment&lt;/li&gt;
&lt;li&gt;OTA updates&lt;/li&gt;
&lt;li&gt;Fleet management&lt;/li&gt;
&lt;li&gt;Sandboxed applications&lt;/li&gt;
&lt;li&gt;Unified hardware APIs&lt;/li&gt;
&lt;li&gt;Built-in Edge AI support (TFLite &amp;amp; ONNX)&lt;/li&gt;
&lt;li&gt;Application Store&lt;/li&gt;
&lt;li&gt;Real-time remote development tools&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Not Docker?
&lt;/h2&gt;

&lt;p&gt;Most existing edge platforms are built around containers.&lt;/p&gt;

&lt;p&gt;Containers are powerful, but for constrained edge devices they also introduce additional RAM, storage, startup, management overhead, and OTA size.&lt;/p&gt;

&lt;p&gt;Orbit OS was designed for environments where devices may only have 128–256MB of RAM available.&lt;/p&gt;

&lt;p&gt;Instead of Docker, applications run directly through Gravity RT using lightweight .orb packages (like Android .apk).&lt;/p&gt;

&lt;p&gt;This allows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lower memory usage&lt;/li&gt;
&lt;li&gt;Faster startup&lt;/li&gt;
&lt;li&gt;Smaller packages&lt;/li&gt;
&lt;li&gt;Native hardware access&lt;/li&gt;
&lt;li&gt;Simpler deployment model&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Gravity RT Architecture
&lt;/h2&gt;

&lt;p&gt;Gravity RT runs on top of an existing Linux distribution and acts as the system runtime for all applications.&lt;/p&gt;

&lt;p&gt;Core architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Hardware
└── Linux
    └── Gravity RT
        ├── Gravity Server (Go)
        ├── gRPC APIs
        ├── UDS communication
        ├── mTLS external APIs
        ├── Lazy-loaded JVM
        ├── Lazy-loaded Python VM
        └── Built-in TFLite and ONNX runtime
            └── Orbit OS Ecosystem
                ├── Unified Multi-language .orb packages
                ├── Orbit Studio
                ├── Orbit OS Store (Certified Aplications)
                └── Orbit OS HW Marketplace* (Certified Hardware Devices) 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Gravity Server is written in Go and remains always active as the parent process for all .orb applications.&lt;/p&gt;

&lt;p&gt;It manages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Application lifecycle&lt;/li&gt;
&lt;li&gt;Restart policies&lt;/li&gt;
&lt;li&gt;OTA coordination&lt;/li&gt;
&lt;li&gt;Security&lt;/li&gt;
&lt;li&gt;Logging&lt;/li&gt;
&lt;li&gt;Package management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkn73en8kh93887mo2pjz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkn73en8kh93887mo2pjz.jpg" alt=" " width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-Time Remote Development
&lt;/h2&gt;

&lt;p&gt;One of the most interesting parts of Orbit OS is the development workflow.&lt;/p&gt;

&lt;p&gt;Traditional embedded development usually looks like this:&lt;/p&gt;

&lt;p&gt;Write code → Compile → Deploy → Run → Debug → Repeat&lt;/p&gt;

&lt;p&gt;Orbit OS changes this model completely.&lt;/p&gt;

&lt;p&gt;With Orbit Studio (VS Code extension), developers write code locally while executing directly against real hardware in real time.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyflyb0ca5c6j6l0fu9ww.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyflyb0ca5c6j6l0fu9ww.jpg" alt=" " width="800" height="439"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Laptop
├── Write code locally
├── SDK connects to device via gRPC/mTLS
├── Code runs on live hardware instantly
├── Logs stream back in real time
└── Generate the .orb package only when ready
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The device becomes a real-time execution target instead of a deployment target.&lt;/p&gt;

&lt;p&gt;No SSH.&lt;br&gt;&lt;br&gt;
No file transfers.&lt;br&gt;&lt;br&gt;
No deployment loop during development.&lt;/p&gt;

&lt;p&gt;▶️ &lt;a href="https://youtu.be/8BTXqhzp6jM?si=FW6I2TrrC2WNRiUn" rel="noopener noreferrer"&gt;Orbit OS — Orbit Studio First App | Real-Time Remote Development, GPIO LED Control &amp;amp; Deploy&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The .orb Package Format
&lt;/h2&gt;

&lt;p&gt;Orbit OS applications are distributed as signed .orb packages.&lt;/p&gt;

&lt;p&gt;A package contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Executable binaries&lt;/li&gt;
&lt;li&gt;NV data like AI models&lt;/li&gt;
&lt;li&gt;Resources&lt;/li&gt;
&lt;li&gt;Manifest&lt;/li&gt;
&lt;li&gt;Cryptographic signatures&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The structure is intentionally similar to Android APKs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built-In Edge AI
&lt;/h2&gt;

&lt;p&gt;TensorFlow Lite and ONNX support are included directly in the platform,&lt;br&gt;
accessible via the AI Manager SDK API.&lt;/p&gt;

&lt;p&gt;Applications do not need to bundle inference runtimes or manage dependencies.&lt;br&gt;
Apps only bring the model and the logic — the platform handles the rest.&lt;/p&gt;

&lt;p&gt;The AI Manager automatically selects the correct backend based on the model type:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;.tflite&lt;/code&gt; models → TensorFlow Lite runtime&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.onnx&lt;/code&gt; models → ONNX runtime&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Current AI applications already available in the Store:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;YOLOv8 object detection&lt;/li&gt;
&lt;li&gt;Face recognition&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All inference runs locally on-device. No cloud. No external APIs.&lt;/p&gt;

&lt;h2&gt;
  
  
  OTA Updates
&lt;/h2&gt;

&lt;p&gt;Orbit OS uses OSTree for runtime updates.&lt;/p&gt;

&lt;p&gt;This provides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Atomic updates&lt;/li&gt;
&lt;li&gt;Rollback support&lt;/li&gt;
&lt;li&gt;Immutable runtime layers&lt;/li&gt;
&lt;li&gt;Safe recovery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The runtime can update itself without rebooting the full Linux system.&lt;/p&gt;

&lt;h2&gt;
  
  
  Orbit OS Store
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwuaj8k90oonbb3n772zl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwuaj8k90oonbb3n772zl.jpg" alt=" " width="800" height="431"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Orbit OS includes a centralized application store where developers can publish .orb applications and users can remotely install them across devices linked to their account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaziva5uokxy4s8xhbui.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftaziva5uokxy4s8xhbui.jpg" alt=" " width="800" height="430"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Features currently implemented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;One-click installation&lt;/li&gt;
&lt;li&gt;Remote deployment&lt;/li&gt;
&lt;li&gt;App updates&lt;/li&gt;
&lt;li&gt;OTA runtime updates&lt;/li&gt;
&lt;li&gt;Fleet management&lt;/li&gt;
&lt;li&gt;Multi-device deployment&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Apps Available Today
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;KS0212 4-Channel Relay Shield&lt;/strong&gt; — Web UI, Modbus TCP server, MQTT with Home Assistant auto-discovery. One click, zero configuration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mochi MQTT Broker&lt;/strong&gt; — Lightweight MQTT broker with integrated Web UI. Configure ports, users and settings from the browser.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge AI — Smart Image Detection&lt;/strong&gt; — YOLOv8 COCO object detection using TFLite. Runs locally, no cloud, no external APIs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge AI — Face Recognition&lt;/strong&gt; — Real-time face recognition with any connected camera. Enroll faces in under 10 seconds. 100% offline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP Server&lt;/strong&gt; — Manage your device with AI Agents.&lt;/li&gt;
&lt;li&gt;And more...&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  App Example — Edge AI Smart Image Detection
&lt;/h3&gt;

&lt;p&gt;Edge AI – Smart Image Detection is an Orbit OS application that performs &lt;br&gt;
real-time object detection locally on edge devices using YOLOv8 TensorFlow &lt;br&gt;
Lite models.&lt;/p&gt;

&lt;p&gt;Users can remotely install the application from the Orbit OS Store with a &lt;br&gt;
single click on any device linked to their account.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjdk64he2v0r7bctr9h6f.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjdk64he2v0r7bctr9h6f.jpg" alt=" " width="800" height="792"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After being installed in seconds, users can upload images directly from the browser, detect and label objects with bounding boxes, inspect inference timing, and view the raw JSON output generated by the AI service.&lt;/p&gt;

&lt;p&gt;The application runs entirely on-device through the Orbit OS AI Manager API using YOLOv8 / COCO TensorFlow Lite models, with no cloud processing, Docker containers, or manual setup required.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7tu3ba82oisf2cpcui7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj7tu3ba82oisf2cpcui7.png" alt=" " width="800" height="1035"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This video demonstrates the application running simultaneously on two different devices: a Raspberry Pi 5 vs Arduino UNO Q.&lt;br&gt;
Same App, same Model. Different hardware, different performance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz283yw85c6ke4kuflf91.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz283yw85c6ke4kuflf91.jpg" alt=" " width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;▶️ &lt;a href="https://youtu.be/aiFJmosYVAI?si=ARqaGKb9iQTYtb5m" rel="noopener noreferrer"&gt;Orbit OS — Edge AI Object Detection | YOLOv8 | Raspberry Pi 5 &amp;amp; Arduino UNO Q &lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Current Status
&lt;/h2&gt;

&lt;p&gt;Currently supported:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Raspberry Pi 3,4,5,Zero 2W&lt;/li&gt;
&lt;li&gt;Arduino UNO Q&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SDKs:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go (available)&lt;/li&gt;
&lt;li&gt;Java (beta)&lt;/li&gt;
&lt;li&gt;Python (beta)&lt;/li&gt;
&lt;li&gt;C++ (planned)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Orbit OS Community Edition and the Go SDK are now available.&lt;/p&gt;

&lt;p&gt;We are currently looking for developers interested in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Embedded Linux&lt;/li&gt;
&lt;li&gt;Edge AI&lt;/li&gt;
&lt;li&gt;Raspberry Pi&lt;/li&gt;
&lt;li&gt;Industrial IoT&lt;/li&gt;
&lt;li&gt;Runtime systems&lt;/li&gt;
&lt;li&gt;Remote deployment tooling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you build something with the SDK, we would love to hear about it — &lt;br&gt;
drop a comment or reach out at &lt;a href="mailto:info@orbit-os.org"&gt;info@orbit-os.org&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo Videos
&lt;/h2&gt;

&lt;p&gt;▶️ &lt;a href="https://youtube.com/@orbit-os-edge" rel="noopener noreferrer"&gt;https://youtube.com/@orbit-os-edge&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Website: &lt;a href="https://www.orbit-os.org" rel="noopener noreferrer"&gt;https://www.orbit-os.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Store: &lt;a href="https://store.orbit-os.org" rel="noopener noreferrer"&gt;https://store.orbit-os.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Download: &lt;a href="https://www.orbit-os.org/downloads.html" rel="noopener noreferrer"&gt;https://www.orbit-os.org/downloads.html&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Getting Started: &lt;a href="https://www.orbit-os.org/getting_started.html" rel="noopener noreferrer"&gt;https://www.orbit-os.org/getting_started.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>raspberrypi</category>
      <category>arduino</category>
      <category>embeddedsystems</category>
    </item>
  </channel>
</rss>
