coroNET OS 2 is an open-source touchscreen companion controller for 3D printers. It turns printer telemetry into a physical interface with status-aware RGBW lighting, sound, ventilation control, diagnostics, and phone connectivity.
OS 2 is a ground-up successor to coroNET OS 1. It keeps the same physical hardware and GPIO layout while replacing the original monolithic firmware with a modular PlatformIO architecture designed for long-term stability, PSRAM-first memory use, and synchronized control from the touchscreen and Android companion app.
Two community-built coroNET installations, one shared hardware platform: @wlodeka's coroNET OS 2 build with the original Snapmaker U1 Top Cover and Bobby Morgan's extensively customized machine running OS 1. Photographs published with permission.
Getting started | LED animation catalog | Status sounds | Community showcase | Bill of materials | Assembly and wiring | Flashing | Android app | Development updates | Roadmap | Architecture | OS 1 feature scope | Contributing
Latest downloads: firmware and Flash Tool | Android companion APK
- display printer state, progress, temperatures, active tool, material, job time, and connectivity;
- drive 60 SK6812 RGBW LEDs as logical right, center, left, and inside sections;
- render printer-aware animations from progress, filament color, temperatures, and events;
- play startup, status, finish, warning, and interaction sounds from microSD;
- control a PWM fan and servo-driven ventilation flap;
- provide setup, diagnostics, configuration, and OTA updates on a 3.5-inch touchscreen;
- synchronize settings and live state with an Android app over BLE or local WiFi;
- support multiple coroNET devices in one companion app;
- keep large buffers in PSRAM and reserve internal/DMA memory for hardware-critical work.
Another open-source project is taking shape alongside coroNET. AirGuard 300 is a DIY chamber-heating platform being designed for Klipper printers with one deliberately ambitious goal: to set a new benchmark for safety in self-built chamber heating.
AirGuard 300 Rev. 1 prototype controller board, designed by Damian Borkowski.
Future coroNET OS 2 releases are planned to recognize and work directly with AirGuard 300, bringing its guarded heating system, telemetry, and safety state into the same touchscreen and companion experience. Universal Klipper compatibility and open construction are part of the plan. The rest stays behind the workshop door for now.
Two open projects. One connected ecosystem. More about AirGuard 300 will be revealed as its hardware and safety architecture reach public validation milestones.
The reference installation by Damian Borkowski shows coroNET as a complete part of the printer rather than a separate controller: the touchscreen sits beside the original interface, the RGBW status bar follows the upper frame, and the internal white-light section illuminates the work area from above.
![]() |
![]() |
| Visible printer status | Practical work lighting |
See the complete reference-build story and community installations in the coroNET Build Showcase.
coroNET is already living beyond the original prototype. Community builders are integrating it into original Snapmaker U1 Top Cover installations and extensively customized machines with active ventilation, environmental monitoring, physical status lighting, and dedicated touchscreen control.
![]() |
![]() |
![]() |
Explore the full Community Showcase and see coroNET working with the original Snapmaker U1 Top Cover and as part of an extensively customized printer installation.
Featured installations built and photographed by @wlodeka on Discord and Bobby Morgan.
The current public firmware and Android companion release is coroNET OS 2 0.4.5. It combines the stable feature-complete OS 2 platform with a true 50 FPS LED motion engine, protected real-time scheduling for LED and audio work, resilient I2S delivery, and a clean display start before the first visible frame. The repository remains open throughout development so that the architecture, documentation, hardware assumptions, and project history stay visible.
| Area | Status |
|---|---|
| PlatformIO project and MIT licensing | Released and maintained |
| JC3248W535 display and touch | Verified on reference hardware |
| PSRAM canvas and small DMA transfer windows | Verified on reference hardware |
| Versioned NVS settings | Working with live apply, revision tracking, and write debounce |
| Unique device identity and BLE peripheral | Working with confirmed pairing and framed protocol V2 |
| Local WiFi control panel, HTTP API, and mDNS | Working with responsive browser UI, live 2 FPS LED output, isolated browser sessions, token authentication, and hostname recovery |
| First-run setup wizard | Working with WiFi validation and layered printer discovery |
| Moonraker realtime telemetry, HTTP fallback, and discovery | Working with WebSocket subscriptions, reconnect, and HTTP integrity checks |
| I2S audio output | Working with PSRAM staging, controlled startup/shutdown silence, a 24 x 128-frame DMA ring, and complete handling of partial writes |
| SD-backed WAV playback | Working with indexed folders, status assignment, and asset validation |
| Home dashboard | Working with live printer and connectivity state |
| Settings and one-screen-at-a-time UI navigation | Working on reference hardware |
| LED, ventilation, and sound tabs | Working on reference hardware |
| Four UI skins, dark/light modes, clocks, and screen saver | Working on reference hardware |
| Android companion app for OS 2 | Public signed APK with a phone-native portrait UI, live 2 FPS LED output over BLE/WiFi, reconnect, offline cache, local temperature history, conflict handling, SD sound browsing, and shared device controls |
| Layered RGBW LED engine | Working at a measured 50 FPS with ambient, dimming, mirror, calibration, previews, and deadline protection |
| PWM fan and servo flap | Working with calibration and fail-safe logic |
| Panda Breath workflows | Implemented with mDNS discovery and manual host configuration; physical Panda validation pending |
| DIY chamber-heater control | Implemented as a guarded GPIO46 logic output for an external driver |
| GitHub OTA, same-version reinstall, SD recovery, and automatic rollback validation | Public 0.4.5 release, Flash Tool package, checksums, and Android APK published together |
Versioned firmware packages are published under GitHub Releases. The current public firmware is stable and feature-complete in its intended scope; active development focuses on tuning, optimization, and experience refinement.
The path to 1.0.0 is deliberately staged. Firmware 0.4.x is focused on real-hardware tuning and corrections, while 0.5.x is reserved for final visual and interaction polish across the coroNET touchscreen, Android companion, and local browser panel. Version 1.0.0 will mark completion of extended endurance and recovery qualification.
- JC3248W535 ESP32-S3 touchscreen controller, 16 MB flash and OPI PSRAM;
- SK6812 RGBNW strip, 60 LEDs;
- 5 V / 10 A power supply;
- 4 ohm / 3 W speaker using the board's integrated audio output;
- 5 V PWM fan and micro servo;
- 1000 uF / 10 V capacitor at the LED power input;
- printed enclosure and mounting parts from hardware/print/coroNET.3mf.
See BOM.md before purchasing and ASSEMBLY.md before applying power.
Install Visual Studio Code and the PlatformIO extension, clone this repository, and run:
pio run
pio run -t upload
pio device monitorThe target board definition is included in the repository. Detailed instructions and recovery notes are in FLASHING.md.
When coroNET and a phone or computer are on the same trusted WiFi network, open the device IP address or http://coronet-xxxx.local/ in a modern browser. The responsive control panel is served directly by coroNET and mirrors live printer status plus LED animations, per-section brightness and DIMM, color calibration, ventilation failsafes, Panda Breath workflows, status sounds, clocks, time zones, Quiet Mode, and firmware updates. It does not require a cloud account, external server, or Internet connection.
The xxxx suffix matches the device identity shown by coroNET. Browser access is available while companion transport is set to Auto or WiFi; BLE-only mode deliberately stops the HTTP service.
android/ native Android companion application
boards/ custom PlatformIO board definition
docs/ architecture, protocol, hardware, and technical notes
hardware/ printable mechanical files and hardware documentation
include/ project and LVGL configuration
src/ modular firmware services and local BSP
.github/ automated builds and project templates
Generated firmware binaries are intentionally excluded from Git history. Tested binaries, checksums, and factory flashing packages are attached to versioned GitHub Releases.
coroNET OS 2 is free of charge for everyone, with no activation fees. Financial support is entirely optional.
coroNET OS 2 is licensed under the MIT License. Source code, documentation, and project-owned files in this repository may be used, modified, and redistributed under those terms unless a file explicitly states separate third-party terms.
Contributions, hardware validation, documentation corrections, and reproducible bug reports are welcome. Read CONTRIBUTING.md before opening a pull request.
This project controls lighting, motors, fans, network-connected printer data, and high-current 5 V distribution. Verify polarity, common ground, insulation, wire current ratings, servo limits, fan behavior, and LED power before unattended use. Never power a heater, fan, servo, or LED strip directly from an ESP32 GPIO.
Created and maintained by Damian Borkowski.
Special thanks to @wlodeka on Discord for hardware testing, feedback, and the optional magnetic enclosure developed for coroNET OS 1.
Special thanks to Bobby Morgan for building and testing an extensively customized coroNET installation and for contributing the photographs featured in the Community Showcase.
coroNET is an independent community project and is not affiliated with or endorsed by Snapmaker. Snapmaker and other product names may be trademarks of their respective owners.
If you find this project useful, you can support continued development, testing and documentation:
- Buy Me a Coffee: Support Damian's projects
- PayPal:
damianborkowski88@gmail.com— enter this recipient email in PayPal.
Contributions are voluntary support, not a purchase of an activation key or a license, and do not change this project's license or access conditions. Bug reports, feedback and sharing the project are also welcome. Thank you to everyone who supports these projects!







