{"id":13815127,"url":"https://github.com/w84death/smolOS","last_synced_at":"2025-05-15T07:31:58.856Z","repository":{"id":179977109,"uuid":"664396903","full_name":"w84death/smolOS","owner":"w84death","description":"smolOS - a tiny and simple 🧪 research ⚙️ operating system ⌨️ written in 🐍 MicroPython for microcontrollers giving user a POSIX-like 📁 environment and 🧰 tools to play.","archived":false,"fork":false,"pushed_at":"2024-12-29T21:34:46.000Z","size":1267,"stargazers_count":159,"open_issues_count":2,"forks_count":13,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-04-05T03:06:08.370Z","etag":null,"topics":["esp8266","micropython","micropython-esp8266","neopixels","operating-system","os","research-project","rp2040","seeeduino-xiao","xiao"],"latest_commit_sha":null,"homepage":"http://smol.p1x.in/os/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/w84death.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-09T21:16:34.000Z","updated_at":"2025-03-19T19:39:05.000Z","dependencies_parsed_at":"2025-01-16T02:11:44.194Z","dependency_job_id":"e2163516-8071-40c4-aef5-a63c0c5f39d6","html_url":"https://github.com/w84death/smolOS","commit_stats":{"total_commits":121,"total_committers":1,"mean_commits":121.0,"dds":0.0,"last_synced_commit":"12359d297e59dadad7ef81cd56720cf7dda9ce50"},"previous_names":["w84death/smolos"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w84death%2FsmolOS","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w84death%2FsmolOS/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w84death%2FsmolOS/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/w84death%2FsmolOS/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/w84death","download_url":"https://codeload.github.com/w84death/smolOS/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254295952,"owners_count":22047175,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp8266","micropython","micropython-esp8266","neopixels","operating-system","os","research-project","rp2040","seeeduino-xiao","xiao"],"created_at":"2024-08-04T04:02:59.867Z","updated_at":"2025-05-15T07:31:58.844Z","avatar_url":"https://github.com/w84death.png","language":"Python","readme":"# smolOS\n## Specialized Microcontroller-Oriented Lightweight Operating System\n\n**smolOS** is a tiny (\u003c20KB, \u003c500LOC) and simple 🧪 research ⚙️ operating system ⌨️ written in 🐍 MicroPython for microcontrollers giving user a POSIX-like 📁 environment to play. It came with a set of 🧰 tools and 🪄 demos.\n\nThe system should run on any MicroPython supported board but it's tested and developed on [Seeed Studio XIAO RP2040](https://www.seeedstudio.com/XIAO-RP2040-v1-0-p-5026.html),\n\n### Official homepage:\n- [smol.p1x.in/os/ (http)](http://smol.p1x.in/os/)\n- [smol.p1x.in/os/ (https)](https://smol.p1x.in/os/)\n\n![smolOS XIAO](media/smolos.png)\n\n### Real Life Use cases\n\n* listing and removing unwanted files on board\n* checking free space\n* easy way to write simple programs and run them from the OS\n* quicly iterating parameters for a program\n* editing small bugs in programs\n* having fun with microcontrollers\n\n### smolOS Features\n\n* Changes microcontroller into a small working PC\n* Homemade for fun and learning\n* Super small and fast\n* Easy to use, simillar to MS-DOS, POSIX-like environments\n* List and manipulates files\n* Text editor included (very basic but capable)\n* Basic tools and demos included (for NeoPixels, Buzzers, LEDs)\n* Build on MicroPython with clear code\n* Stability and simplicity are the main principle behind the code\n* Free and open :)\n\n### Additoinal Programs\n\n* ansi - Displays ANSI escape codes\n* life - Game of Life implementation for smolOS (text)\n* buzz - Simple synthezator for 1-bit music (requies a buzzer)\n* bytebeat - Implementation of ByteBeat for a buzzer\n\nAll of those are for NeoPixel Grid 5x5 BFF:\n* duck - Yellow Rubber Duck for programmers\n* neolife - Game of Life implementation\n* pixel - Tools for playing with one LED\n* plasma - Demoscene plasma effect\n* font - Font bitmaps (for scroller)\n* scroller - Scrolls text\n\n## Installation\n\n### Super Quick Quide\n* put main system file ```smolos.py``` onto the board flash (that has latest MicroPython firmware)\n* (optional) for auto-boot copy ```main.py``` too\n* restart device\n\n### Detailed Guides\n* [XIAO RP2040 Guide](docs/XIAO-RP2040.md)\n* [ESP8266 Guide](docs/ESP8266.md)\n\n## Connecting\nAs normal user:\n\n```\n$ picocom /dev/ttyACM0\n```\nPress ```ctrl+a+x``` to exit.\n\n## Running\n\nFirst start. Or after flashing new main.py file. Restart the microcontroller:\n```\n\u003e\u003e\u003e machine.soft_reset()\n```\n\n### Autoboot\nThis should restart the device and \"boot\" you into the smolOS. Like so:\n\n![smolOS XIAO](media/smolos.png)\n\n### Manual\nIf you put ```smolos.py``` then you need to boot the system by hand.\nIn MicroPython REPL write:\n```\n\u003e\u003e\u003e from smolos import smolOS\n\u003e\u003e\u003e os = smolOS()\n\u003e\u003e\u003e os.boot()\n```\n\n## Using\n\nWrite `help` for manual :)\n\n![smolOS list](media/list.png)\n\n![smolOS help](media/help.png)\n\n![smolOS editor](media/edit.png)\n\n## Intresting forks\n- [smolOS by rbenrax](https://github.com/rbenrax/smolOS) - very nice, goes as close to the POSIX as you can get!\n- [pegasusOS by 047pegasus](https://github.com/047pegasus/pegasusOS) - adds easy networking\n\n## Missing Features / ROADMAP\nSome kind of a roadmap (from high to low priority)\n- os: move/copy files\n- (external, threaded programs) check exception for used core instead of class variable\n- good manual\n\n## Articles\n- [hackster.io](https://www.hackster.io/news/krzysztof-jankowski-s-micropython-based-smolos-puts-a-tiny-posix-like-environment-on-your-esp8266-0c776559152b)\n- [cnx-software.com](https://www.cnx-software.com/2023/07/12/smolos-brings-a-linux-like-command-line-interface-to-esp8266-microcontroller/)\n- [lobste.rs](https://lobste.rs/s/ipztxc/smolos_small_os_for_micropython_on)\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw84death%2FsmolOS","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fw84death%2FsmolOS","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fw84death%2FsmolOS/lists"}