[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-how-to-build-akiraos-wasm-apps-for-zephyr-en":3,"article-related-how-to-build-akiraos-wasm-apps-for-zephyr-en":31,"series-tools-fc7e377e-bb67-449e-addd-bb52faff26fc":85},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":23,"views":27,"created_at":28,"published_at":29,"topic_cluster_id":30},"fc7e377e-bb67-449e-addd-bb52faff26fc","how-to-build-akiraos-wasm-apps-for-zephyr-en","How to build AkiraOS WASM apps for Zephyr","\u003Cp data-speakable=\"summary\">Build and deploy sandboxed WebAssembly apps on AkiraOS running Zephyr RTOS.\u003C\u002Fp>\u003Cp>This guide is for embedded developers who want to try AkiraOS on supported boards and ship WebAssembly apps without reflashing firmware every time. By the end, you will have a local build setup, a sample WASM app, and a path to deploy it to an AkiraOS target over the network or USB.\u003C\u002Fp>\u003Cp>AkiraOS is an open-source embedded platform that separates the OS from applications, so the base firmware stays stable while apps are updated independently. It uses Zephyr RTOS underneath and a WebAssembly runtime on top, which makes it a good fit for teams that want safer app isolation on microcontrollers.\u003C\u002Fp>\u003Ch2>Before you start\u003C\u002Fh2>\u003Cul>\u003Cli>Git 2.40+\u003C\u002Fli>\u003Cli>Python 3.11+\u003C\u002Fli>\u003Cli>CMake 3.20+\u003C\u002Fli>\u003Cli>Ninja 1.11+\u003C\u002Fli>\u003Cli>Zephyr SDK 0.16+ or the SDK version listed in the AkiraOS docs\u003C\u002Fli>\u003Cli>Node.js 20+ if the app UI or tooling uses web assets\u003C\u002Fli>\u003Cli>An AkiraOS-supported board such as ESP32-S3, ESP32-C6, ESP32-H2, nRF54L15, or an STM32 target\u003C\u002Fli>\u003Cli>One USB cable and, for OTA testing, a Wi-Fi network with access to the board\u003C\u002Fli>\u003Cli>A GitHub account for cloning the source and opening issues if you hit a platform bug\u003C\u002Fli>\u003C\u002Ful>\u003Cp>First, open the project docs and source on their first mention: the AkiraOS documentation and the \u003Ca href=\"\u002Ftag\u002Fgithub\">GitHub\u003C\u002Fa> repository linked from the project page. You will use those as the source of truth for board support, SDK versions, and flashing steps.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780862578461-6d3p.png\" alt=\"How to build AkiraOS WASM apps for Zephyr\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Ch2>Step 1: Clone the AkiraOS source tree\u003C\u002Fh2>\u003Cp>Your first outcome is a local checkout that contains the firmware, runtime, and app-management pieces you need to build the platform.\u003C\u002Fp>\u003Cp>Clone the main repository and inspect the top-level layout so you can find the Zephyr app, runtime, and board-specific files.\u003C\u002Fp>\u003Cpre>\u003Ccode>git clone https:\u002F\u002Fgithub.com\u002Fakiraos\u002Fakiraos.git\ncd akiraos\nls\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see directories or files that map to the OS, runtime, documentation, and examples. If the repository name or layout differs, the docs will point to the current canonical source.\u003C\u002Fp>\u003Ch2>Step 2: Install the Zephyr build toolchain\u003C\u002Fh2>\u003Cp>Your second outcome is a working cross-compilation environment that can build AkiraOS for MCU targets and for native simulation.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780862570011-rwsn.png\" alt=\"How to build AkiraOS WASM apps for Zephyr\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>Install the Zephyr SDK, Python dependencies, and the build tools required by the project. Then verify that your shell can find the compiler and the Zephyr command-line tools.\u003C\u002Fp>\u003Cpre>\u003Ccode>python3 -m venv .venv\n. .venv\u002Fbin\u002Factivate\npip install -U pip west\nwest --version\ncmake --version\nninja --version\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see version output for each tool, with no “command not found” errors. If the project uses a pinned requirements file, install that file instead of generic packages.\u003C\u002Fp>\u003Ch2>Step 3: Build the native simulator image\u003C\u002Fh2>\u003Cp>Your third outcome is a fast desktop build that \u003Ca href=\"\u002Fnews\u002Fleverage-meaning-no-more-buzzword-mistakes-en\">lets you\u003C\u002Fa> iterate on app behavior without flashing real hardware.\u003C\u002Fp>\u003Cp>Use the native simulation target first, because AkiraOS supports x86-64 iteration for quick testing. This is the safest way to confirm that the build system, runtime, and app packaging all work before you move to a board.\u003C\u002Fp>\u003Cpre>\u003Ccode>west build -b native_sim path\u002Fto\u002Fakiraos\u002Fapp\nwest build -t run\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see the simulator start and print boot logs for Zephyr and AkiraOS. If the build succeeds but the app does not launch, check the docs for the expected sample name or board-specific overlay.\u003C\u002Fp>\u003Ch2>Step 4: Compile a WASM app package\u003C\u002Fh2>\u003Cp>Your fourth outcome is a sandboxed .wasm binary that AkiraOS can install as an app instead of a full firmware image.\u003C\u002Fp>\u003Cp>Create or build a sample app with the AkiraOS SDK. The goal is to produce a portable WebAssembly module that requests only the APIs it needs, which is the core security model of the platform.\u003C\u002Fp>\u003Cpre>\u003Ccode>cd path\u002Fto\u002Fakiraos-sdk\nmkdir -p build\ncmake -S samples\u002Fhello -B build -G Ninja\ncmake --build build\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see a .wasm output or an app bundle in the build directory. If the SDK uses a different sample path, pick any “hello”, “shell”, or “widgets” example from the docs and confirm the output artifact matches the expected extension.\u003C\u002Fp>\u003Ch2>Step 5: Flash a supported MCU board\u003C\u002Fh2>\u003Cp>Your fifth outcome is a running AkiraOS image on real hardware so you can test storage, BLE, networking, and app isolation.\u003C\u002Fp>\u003Cp>Pick a supported board such as an ESP32-S3-DevKitM-1, an nRF54L15 platform, or one of the listed STM32 kits. Flash the image using the project’s board target, then open the serial console to confirm the boot sequence.\u003C\u002Fp>\u003Cpre>\u003Ccode>west flash\nwest debug\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see Zephyr boot messages followed by AkiraOS startup logs and a shell or management prompt. If the board does not flash, verify the board name in the docs and confirm the USB driver and permissions on your host.\u003C\u002Fp>\u003Ch2>Step 6: Install and update the app over the air\u003C\u002Fh2>\u003Cp>Your final outcome is an app update workflow that proves AkiraOS can deploy a new WASM binary without reflashing the base firmware.\u003C\u002Fp>\u003Cp>Use the web interface, mobile app, or shell to upload the .wasm package, then trigger an install and run cycle. After that, push a second version of the same app to confirm that the platform updates the app independently from the OS.\u003C\u002Fp>\u003Cpre>\u003Ccode>curl -F file=@build\u002Fhello.wasm http:\u002F\u002Fdevice.local\u002Fapi\u002Fapps\ncurl -X POST http:\u002F\u002Fdevice.local\u002Fapi\u002Fapps\u002Fhello\u002Frun\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>You should see the app appear in the manager UI, then start and report status on the device. If the update fails, check Wi-Fi connectivity, the app manifest, and whether the target has enough storage for the 50 KB to 200 KB app footprint described by the project.\u003C\u002Fp>\u003Ctable>\u003Cthead>\u003Ctr>\u003Cth>Metric\u003C\u002Fth>\u003Cth>Before\u002FBaseline\u003C\u002Fth>\u003Cth>After\u002FResult\u003C\u002Fth>\u003C\u002Ftr>\u003C\u002Fthead>\u003Ctbody>\u003Ctr>\u003Ctd>App deployment\u003C\u002Ftd>\u003Ctd>Full firmware flash for every change\u003C\u002Ftd>\u003Ctd>OTA app update without reflashing the OS\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>App isolation\u003C\u002Ftd>\u003Ctd>Shared firmware space\u003C\u002Ftd>\u003Ctd>Sandboxed WASM app with explicit hardware access\u003C\u002Ftd>\u003C\u002Ftr>\u003Ctr>\u003Ctd>Runtime performance\u003C\u002Ftd>\u003Ctd>Interpreter mode\u003C\u002Ftd>\u003Ctd>WAMR AOT mode with 10 to 50x higher performance\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftbody>\u003C\u002Ftable>\u003Ch2>Common mistakes\u003C\u002Fh2>\u003Cul>\u003Cli>Using the wrong board target. Fix: confirm whether your device is Tier 1 or Tier 2 in the docs, then rebuild with the exact board name.\u003C\u002Fli>\u003Cli>Skipping the SDK version lock. Fix: install the Zephyr SDK version recommended by AkiraOS, not a newer untested release.\u003C\u002Fli>\u003Cli>Uploading a raw binary instead of a WASM package. Fix: build the app with the AkiraOS SDK so the manager accepts the correct artifact and manifest.\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>What's next\u003C\u002Fh2>\u003Cp>Next, try the shell and file-browser features, then connect the mobile or web management UI so you can monitor devices, trigger OTA updates, and test multiple apps on the same target.\u003C\u002Fp>","Build and deploy sandboxed WebAssembly apps on AkiraOS running Zephyr RTOS.","www.cnx-software.com","https:\u002F\u002Fwww.cnx-software.com\u002F2026\u002F06\u002F06\u002Fdocker-for-microcontrollers-akiraos-combines-zephyr-rtos-with-webassembly-wasm-applications\u002F",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780862578461-6d3p.png","tools","en","698981d2-c844-4ee0-ba64-cc9a328deb3c",[17,18,19,20,21,22],"AkiraOS","Zephyr RTOS","WebAssembly","WASM","WAMR","embedded systems",[24,25,26],"AkiraOS separates the OS from apps, so you can update WASM binaries without reflashing firmware.","You can start on native_sim to validate the build before moving to ESP32, nRF, or STM32 hardware.","OTA deployment and sandboxing are the main workflow changes compared with a traditional MCU firmware stack.",0,"2026-06-07T20:02:24.896777+00:00","2026-06-07T20:02:24.887+00:00","8360fa49-34e5-46c0-bde0-60d98cfa732c",{"tags":32,"relatedLang":44,"relatedPosts":48},[33,35,37,40,42],{"name":21,"slug":34},"wamr",{"name":19,"slug":36},"webassembly",{"name":38,"slug":39},"Wasm","wasm",{"name":17,"slug":41},"akiraos",{"name":18,"slug":43},"zephyr-rtos",{"id":15,"slug":45,"title":46,"language":47},"how-to-build-akiraos-wasm-apps-for-zephyr-zh","怎麼做 AkiraOS WASM 應用","zh",[49,55,61,67,73,79],{"id":50,"slug":51,"title":52,"cover_image":53,"image_url":53,"created_at":54,"category":13},"267be20a-b87f-45fd-a6ec-79d136955b91","open-source-rag-stack-build-plan-en","Open Source RAG Stack Turns Chaos Into a Build Plan","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780872537488-owb6.png","2026-06-07T22:47:55.794337+00:00",{"id":56,"slug":57,"title":58,"cover_image":59,"image_url":59,"created_at":60,"category":13},"fb2600b9-89a3-493e-9d04-cd7823ac10cc","github-rag-production-list-battle-tested-tools-en","49 stars for GitHub’s RAG production list","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780870666109-xv1v.png","2026-06-07T22:17:20.678948+00:00",{"id":62,"slug":63,"title":64,"cover_image":65,"image_url":65,"created_at":66,"category":13},"393e4df1-4ee8-4581-b1b2-dbe7d3322ee9","foundry-mcp-remote-tools-agent-endpoint-en","Foundry MCP turns remote tools into one agent endpoint","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780848209482-y0nz.png","2026-06-07T16:02:58.263739+00:00",{"id":68,"slug":69,"title":70,"cover_image":71,"image_url":71,"created_at":72,"category":13},"d5f55e6c-39d2-4eb6-85cb-326d2255d014","leverage-meaning-no-more-buzzword-mistakes-en","Leverage lets you stop sounding like a buzzword","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780806025318-s62c.png","2026-06-07T04:02:47.777895+00:00",{"id":74,"slug":75,"title":76,"cover_image":77,"image_url":77,"created_at":78,"category":13},"4065ada8-125b-4286-85c5-85cfe7d6369a","llm-leaderboard-2026-300-models-ranked-en","LLM Leaderboard 2026: 300+ Models Ranked","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780776189065-qk79.png","2026-06-06T20:02:37.334702+00:00",{"id":80,"slug":81,"title":82,"cover_image":83,"image_url":83,"created_at":84,"category":13},"92a22a3d-6d0c-4884-9865-c1fe0f2e5e78","llama-benchy-llama-bench-style-api-benchmarks-en","llama-benchy brings llama-bench tests to APIs","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780775297695-nchl.png","2026-06-06T19:47:54.675055+00:00",[86,91,96,101,106,111,116,121,126,131],{"id":87,"slug":88,"title":89,"created_at":90},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00",{"id":127,"slug":128,"title":129,"created_at":130},"6d1bf3f6-e191-4d30-b55b-8a0722fa6afe","ai-trending-github-repos-and-research-feeds-en","AI Trending Tracks Repos and Research Feeds","2026-03-27T01:31:35.709532+00:00",{"id":132,"slug":133,"title":134,"created_at":135},"010539a1-4c3a-4bd3-937a-26616422ee0d","awesome-ai-for-science-research-tools-map-en","Awesome AI for Science Is Becoming a Real Research Map","2026-03-27T01:46:50.89513+00:00"]