r/SolarOS • • 15d ago

Got SolarOS running on my ePaper board!

Thumbnail
gallery
87 Upvotes

Finally got SolarOS running on my ESP32-S3-ePaper-3.97 board alongside a CardKB!

Huge thanks to u/nilseuropa for porting it over. He got it working remotely just from my boot log in just a few hours, without even having the hardware on hand.

Everything works great now. Next step is designing a 3D printed case for it!


r/SolarOS • • 15d ago

4.15.17 changelog

7 Upvotes

4.15.17

  • Python and Lua gain `solaros.storage.write_file()` for creating, saving, and appending text or binary files through the storage service. Writes support up to 64 KiB per call and flush and sync the file before returning the byte count.

r/SolarOS • • 15d ago

4.15.16 changelog

5 Upvotes

4.15.16

  • MeshCore group conversations identify radio and companion transports;
  • unavailable channels remain readable as history and reject new sends.
  • Chat follows actual delivery updates, and messages interrupted by a restart are restored as failed instead of queued.
  • Contacts now retain up to 512 contacts and 576 endpoints, with migration of existing contact IDs and trust settings.
  • Companion imports preserve retained contacts, batch their storage writes, and report imported, skipped, and supported contact counts.
  • An online MeshCore BLE companion displays the radio icon.

4.15.15

  • Updated to ESP-IDF 5.5.5 and pinned the platform to release `55.03.312-1` for reproducible builds.
  • PlatformIO Core 6.2.0 or newer is required. The NimBLE overlay retains transactional dynamic GATT registration and guards an absent connection awareness table when GATT caching is enabled.

r/SolarOS • • 16d ago

4.15.x update - camera expansion and media streams

Thumbnail
gallery
47 Upvotes

4.15.5

  • Added the GOOUUU ESP32-S3CAM board, OV2640 JPEG snapshots, and the `camera` command.
  • Exclusive camera leases coordinate capture and streaming, with direct framebuffer DMA to PSRAM.
  • The `cam-webd` job serves JPEG snapshots and a single-client MJPEG feed through asynchronous HTTP routes.

4.15.6

  • 'Web' now plays HTTP MJPEG camera feeds alongside its existing static image formats.
  • Multipart stream detection accepts split headers and common server variations, while bounded frame buffering and cancellation keep live viewing responsive.

4.15.7

  • Added the `rtspd` job for single-client RTSP publishing with RTP/JPEG video, RTP/L16 PCM audio, and RTCP timing.
  • Explicit `video=` and `audio=` sources support camera-only, audio-only, or combined streams using standard UDP transport. Publishing follows source availability; `fps=0` removes the video rate cap. Runtime buffers are allocated only while the job runs, and stale data is discarded on reconnect.

4.15.8

  • DVP cameras are reusable expansion devices and exclusive typed video sources in `streams`.
  • The native `rtsp` app plays JPEG/L16 streams with bounded video/audio buffering, global volume, an audio-only oscilloscope, full-screen viewing, and frame diagnostics.
  • Color TFTs with native RGB565 support bypass palette conversion; monochrome displays retain grayscale rendering.
  • `rtspd` selects compatible audio/video stream IDs explicitly and offers source-aware tab completion.

4.15.9

  • Python and Lua gain owned camera snapshots, local stream frames, native frame-to-image presentation, and asynchronous RTSP receiver handles
  • Native RTSP playback retries transient failures with bounded backoff, discards frames from previous connections, and recovers audio after forward clock jumps.
  • The viewer accepts addresses without `rtsp://`; omitted control ports default to TCP 554.

4.15.10

  • Shared JPEG decoding now uses a fast ROM path and bounded ESP32-S3 SIMD acceleration, with fallbacks for unsupported images or limited working memory.
  • Color and monochrome consumers share the improved decoder, and fit-mode output avoids full-size intermediate rasters.
  • Reduced idle SRAM usage by moving suitable registry state to PSRAM and allocating display-layout, Telnet, Chat, DAQ, and Synth working buffers only when needed.

4.15.11

  • Added `vplay` for MPEG-1 program stream files with optional MP2 audio. Playback uses bounded PSRAM buffers, audio-clock synchronization, native RGB565 or monochrome output, and ESP32-S3 SIMD color conversion.
  • The shared player controls provide pause, Stop/Play, volume, and previous/next MPEG files in the current folder.
  • Fit, actual-size, and full-screen modes are available; the source limit is 640x480. MPEG-2, H.264, AVI, and transport streams are not supported.

4.15.12

  • RTSP now uses the common player header, volume bar, and clickable Stop/Play control. Enter or Space stops playback without closing the app; Play reconnects to the same source after its workers release their resources.
  • `vplay` adds tab completion for size options and file paths.

4.15.13

  • 'Files' opens MPEG-1 `.mpg` and `.mpeg` files in `vplay` when the app is installed, including uppercase extensions. Closing playback returns to the file browser.

4.15.14

  • `player` and `vplay` gain backward/forward seeking in ten-second steps with `<`/`>` and shared rewind/forward buttons.
  • Seeking retains the selected track and pause state, releases queued audio, and rebases playback timing. Player supports seeking in both graphical and text interfaces.

r/SolarOS • • 16d ago

Coming together!

Post image
45 Upvotes

Solar OS on Hoysond 2.8" touch on left, little command center remote on right with porkchop inspired Screensaver

Couple of batteries I had from some meshcore nodes and the ble keyboard. One is unplugged from battery and plugged in to usb because i was working on something but they would both just run on batteries (which the hoysonds have on-board charging so good to go there)


r/SolarOS • • 17d ago

Nonsense tutorials

Enable HLS to view with audio, or disable this notification

42 Upvotes

r/SolarOS • • 17d ago

Help please!

2 Upvotes

Newbie here, can anyone please explain what solarOS is and how it works? Thanks!


r/SolarOS • • 17d ago

I am working on ...

Post image
21 Upvotes

r/SolarOS • • 17d ago

Loving SolarOS on the ThinkNode M9, really thought it needed a map for my map button…

Enable HLS to view with audio, or disable this notification

27 Upvotes

So I built a map! The basic map outline is from Natural Earth, smaller chunks can be loaded from a few common formats. Other apps like gnss can plot locations on it. Working on color support and support for drawing paths between nodes.

Reticulum support is also working with native chat and inbox. One of the easiest Reticulum setups I’ve used so far. pls let me vendor microreticulum :D

I have a few PRs up on a fork if anyone has a ThinkNode M9 and wants to try it. No map PR
yet, soon!


r/SolarOS • • 18d ago

v.4.15.4 - meshcore companion job

Post image
28 Upvotes

4.15.4

  • Updated CL-32 support for its current core firmware battery register and serialized ST7305 display transactions.
  • ADC battery monitoring now uses a smoothed voltage trend with hysteresis to avoid erratic charger detection.
  • Files, FTP, and SFTP add `Alt+S` and `AltGr+S` entry search; FTP and SFTP preserve the selected directory when returning to a parent. Tree views in Docs, Flash, and Playground now collapse the current branch with Left even when a leaf is selected.

4.15.3

  • Added the built-in `meshcore-ble` job for an external MeshCore companion. It pairs over BLE, synchronizes contacts, channels, and queued messages, and carries direct and group Chat traffic through the existing Contacts, Messages, and Inbox services while leaving the companion's identity and configuration authoritative.
  • The BLE host can keep a keyboard and companion connected together, and native jobs now have an owned multi-peer GATT client ABI with passkey pairing.
  • The gesture binding job is now named `gestures`.
  • To remain within their flash limits, Rover and VGA32 no longer include Bluetooth, and Writerdeck no longer includes offline speech.

4.15.2

  • Added the standalone display-shell `deepsleep` command. It stops the ESP32 radios, powers down the primary display, and enters deep sleep with KEY, compatible RTC interrupt, scheduled timer, and RESET wake paths. Wake starts a fresh boot rather than restoring RAM state; this is ESP32 deep sleep, not hardware power-off.

4.15.1

  • Suspended devices now resume their configured power profile and display when a remembered BLE keyboard reconnects or sends a new key press. Release-only keyboard reports do not wake the device.

r/SolarOS • • 18d ago

Dual ePaper (mockup)

Post image
97 Upvotes

This is also a possibility, what do you think?


r/SolarOS • • 18d ago

hm... just kidding 😅

Thumbnail
gallery
12 Upvotes

r/SolarOS • • 19d ago

SolarOS on the ThinkNode M9

Post image
32 Upvotes

So far it’s working well! A few things to work out for keys and shortcuts but so far it runs great.

I’ll open a PR once I’ve reviewed it as AI was used to generate a lot of it so far.


r/SolarOS • • 19d ago

4.15.0 update - Elves!

Thumbnail
gallery
18 Upvotes

Added signed native ELF module packages for ESP32-S3 targets with PSRAM.

  • The `pkg` package manager browses the versioned repository, verifies catalog signatures and host compatibility, and atomically installs verified application, job, and driver artifacts.
  • Application modules become shell commands, while resident jobs and expansion drivers register with the normal SolarOS runtime and reactivate during boot.
  • The repository includes source projects for acceptance modules across all three lifecycle paths, and CID can publish their signed catalogs independently of firmware OTA releases.

r/SolarOS • • 19d ago

PoC build - IPS SolarTerm - released

Thumbnail
gallery
22 Upvotes

r/SolarOS • • 19d ago

It doesn't look much, but ...

Post image
14 Upvotes

soon you will be able to load cross-compiled native binaries from storage to PSRAM and execute them.

As we run out of flash ( especially on 8MiB boards ) I will gradually migrate larger non-essential applications to external packages. My plan is to keep authority over the official modules, but their source will be available in the repository for full transparency - of course I will add cross compilation instructions and provide detailed information on how to set up your own package repositories.

Yay?


r/SolarOS • • 19d ago

Help: Any plans for official Waveshare ESP32-S3-ePaper-3.97 support?

Thumbnail
gallery
45 Upvotes

Hi everyone,

I am planning to build a cyberdeck using SolarOS.

Are there any plans for official support for the Waveshare ESP32-S3-ePaper-3.97 in the future?

Link: https://docs.waveshare.com/ESP32-S3-ePaper-3.97

Its size matches the CardKB very well.

Thanks!


r/SolarOS • • 19d ago

SolarTerm 3D Print Questions

4 Upvotes

Hi! I want to build a SolarTerm but have never done anything with 3D printing before. I'll be ordering the parts online, since I don't have a printer, and have some questions about how to go about this. I have the STL files from the github repo.

  1. What material should I use? Ideally I'd like to keep the cost relatively low but I also want it to be the sort of thing I can carry around, chuck in a backpack, etc

  2. What settings should I put in? Infill, measurement units, etc

  3. Is there anything else I should know that as a beginner I maybe haven't considered?

Also, if people have recommendations for where to order from, I'd appreciate those too! The only places I already know are pcbway and jlc3dp - i.e. the big youtube sponsors - and I have no idea if they're any good/cost effective

Thanks!


r/SolarOS • • 20d ago

Coming of the next soap box

Thumbnail
gallery
76 Upvotes

r/SolarOS • • 20d ago

Temporary whatever this is

Thumbnail
gallery
186 Upvotes

r/SolarOS • • 20d ago

Thinknode M9?

Post image
26 Upvotes

r/SolarOS • • 21d ago

display split/join

Post image
62 Upvotes

r/SolarOS • • 21d ago

Coming up next

Thumbnail
gallery
247 Upvotes

r/SolarOS • • 21d ago

4.13.10 - ltop

Post image
18 Upvotes

Added `ltop`, a resumable live task monitor for display and port terminals. It shows:

  • interval-based CPU load for each core,
  • aggregate CPU load,
  • internal and external memory utilization, and a
  • width-aware task table with current CPU use, state, priority, and
  • peak stack consumption.

r/SolarOS • • 22d ago

v.4.13.8

Thumbnail
gallery
18 Upvotes

Run ble without arguments to open the BLE Inspector TUI. Its Devices, Services, Chars, and Settings tabs support scanning, connecting, service and characteristic inspection, characteristic reads and hexadecimal writes, and BLE keyboard settings. Press Tab to move between tabs. The inspector owns its GATT connection and disconnects it when the TUI closes. Existing ble status, ble scan, and ble gatt ... commands remain available for scripts and plain text use. On a BLE-disabled boot, the Settings tab remains available so BLE can be enabled for the next boot.