[HN Gopher] Show HN: FrameOS - operating system for single funct...
       ___________________________________________________________________
        
       Show HN: FrameOS - operating system for single function smart
       frames
        
       Author : mariusandra
       Score  : 308 points
       Date   : 2024-01-03 15:42 UTC (7 hours ago)
        
 (HTM) web link (frameos.net)
 (TXT) w3m dump (frameos.net)
        
       | whycome wrote:
       | Is there a good equivalent to keep old Amazon fire tablets from
       | being e-waste? They are Android based.
        
         | gjsman-1000 wrote:
         | The bootloaders have been locked; and the 2015 models (iirc)
         | were the last ones where a bug allowed unlocking them by
         | shorting some pins. Without an unlocked bootloader, you might
         | be able to root Android, but you can't replace Android or the
         | ROM.
         | 
         | Not that it matters anyway - it's MediaTek. Their partition
         | layout and driver model from those eras is generally a
         | disaster. There's no way you'd be able to make FrameOS in a
         | reasonably elegant way work on that hardware.
        
           | womod wrote:
           | You can unlock the bootloader of the 2018 Fire HD 8 if you
           | force it into download mode by opening it up and shorting the
           | CLK test point to ground. Older tablets don't need to be
           | opened up, it's all just software. Everything after that
           | though has been unable to have the bootloader unlocked.
        
             | samstave wrote:
             | Ignorant Q: Could one ostensibly replace the ROM? Surely
             | there has to be some Chinese company that can get you a
             | custom ROM built and replace it on the device?
             | 
             | EDIT: Yes, I meant physically de-solder/replace of the ROM
             | - is that a nightmare?
             | 
             | What if you could find the economics of having people ship
             | you their devices and either donating (to schools (NOT
             | UNIVERSITY SLURPS)) or paying for their device to be up-
             | ROM'd or e-cycled?
             | 
             | (My first job as a freshman in Highschool was desoldering
             | ROMs and soldering new ROM chips into the boards of Amigas
             | and Apple ][e's -- I had tons of these new ROMs on a strip
             | and in tubes - but I never had any use for them... I with I
             | had kept them.)
             | 
             | ((Also, just to let you know the difficulty level -
             | replacing a ROM chip on an Apple ][e etc was as simple as
             | receiving an instruction set:
             | 
             | "Desolder the red guys. Resolder with these green guys."
             | 
             | That was the extent of my knowledge to ROMs in ][Es
             | 
             | I had no Idea at the time what I was doing.
        
               | spaceywilly wrote:
               | Probably not, most devices have the first stage boot
               | loader on read only memory that is locked using an
               | e-fuse. You would need to physically modify the device to
               | change it.
               | 
               | FWIW, I had an older Fire tablet that I had loaded
               | Android onto and it wasn't great. It would crash randomly
               | and the battery life was awful. These days I have a newer
               | Fire tablet. It's a few years old now but I still use it
               | all the time for reading e-books from the library, and I
               | have a few Android apps loaded onto it that I use for
               | working on my car and they all work fine. In other words,
               | there's not really any reason to reflash them, the stock
               | OS is fine.
        
               | Retr0id wrote:
               | The (boot)ROM is on-die, within the CPU, there's no way
               | to replace it.
               | 
               | You can potentially replace the OS image (confusingly,
               | often referred to as a "ROM") on the flash storage, but
               | unless the bootloader agrees to boot it (either due to it
               | being signed correctly, or due to the bootloader being
               | unlocked) you're SOL.
        
         | paxys wrote:
         | What's the problem there? I believe you can just install and
         | display any Android app on it right?
        
         | daredoes wrote:
         | Use Fire Toolbox to disable all the bloatware. Buy a license
         | for Fully Kiosk to convert it into many different practical
         | things.
         | 
         | Personally, I use Amazon Fire Tablets as audio drivers around
         | my house for Snapcast. Each tablet has USB, wifi, 3.5mm Aux,
         | and a built in battery, which make them great for this task,
         | especially on sale at $45 a tablet
        
       | m463 wrote:
       | pretty cool
       | 
       | Seems to require a pi. Wonder if it can work with this:
       | https://amazon.com/dp/B0C4TS1NMS
        
         | Gys wrote:
         | The frame you referenced has a Pi Pico build in. FrameOS needs
         | at least a Pi Zero.
        
           | traverseda wrote:
           | Although NIM has a pretty good embedded story, it's not
           | entirely out of the question to port it.
        
         | mariusandra wrote:
         | I'd love it to work on the RP2040, and perhaps even an ESP32,
         | but we're not there yet. Just yesterday I converted FrameOS
         | from being an interpreted python app to a 3MB compiled binary,
         | so we're half of the way there. I'm not sure what changes I
         | must do to get it working (e.g. integrate a wifi driver, remove
         | GC and threads, etc), but it's in the realm of the possible.
        
           | mariusandra wrote:
           | Just found this project that could help:
           | https://github.com/daniel-j/picostdlib
        
       | smith7018 wrote:
       | Fun little project! I worked on a 7 color eInk Arduino-based
       | picture frame two years ago for a gift. My biggest issue was that
       | I had to manually crop, dither, and color index the images to get
       | them to look _okay_ on the display. If FrameOS could handle all
       | of that for me then it would have saved hours of manual editing
       | and testing.
       | 
       | I ended up getting that same person an Aura frame this year
       | because remotely adding photos ended up miserable
        
         | mariusandra wrote:
         | I definitely do not want anyone to manually crop, dither and
         | color index images. This should be done by the FrameOS
         | software. It's already working if you use e.g. Inky Impression
         | 7 color frames, but mostly because I just defer to their
         | software/drivers, which already handle this...
        
           | gadgetoid wrote:
           | Our crude (actually Pillow's IIRC) dither has a certain
           | nostalgic appeal to it, but can definitely be bested by other
           | algorithms. I'm still not totally convinced we have a great
           | perceptual match for the colours either. The approach to get
           | them - take a photo of the screen, use a colour dropper and a
           | bit of eye balling - was crude.
           | 
           | (Hi, I wrote most of the Inky driver and your project is the
           | kind of awesome I wish the Pico/RP2040-based Inky Frame
           | devices could pull off.)
        
             | mariusandra wrote:
             | Ha, nice to meet you.
             | 
             | I always say "if it's stupid and it works, it's not
             | stupid". Your approach to get the dithering right sounds
             | brilliant to me :D.
             | 
             | The current inky driver works great, and that fact that
             | it's in Python is what made me develop the original FrameOS
             | software in Python. However now that I rewrote it in Nim,
             | the Python driver is a bit of a crutch. While I could use
             | the C drivers for the Waveshare displays, I'm forced to
             | install a python wrapper on the Pi as a workaround to get
             | the Inky drivers working.
             | 
             | Do you have any idea if there are any C, or even Nim
             | drivers available for the Inky Impression boards? The
             | Python workaround works, but isn't really elegant. If not,
             | I'm considering porting them myself at some point...
             | 
             | I'm also lurking on the Pimoroni discord, and was meaning
             | to ask there about it as well.
        
               | djazzz wrote:
               | I have written drivers for Pimoroni's Inky Frames (based
               | on Raspberry Pi Pico W) in Nim, but I don't own an Inky
               | Impression. The code should be pretty similar once it
               | hits the SPI bus.
               | 
               | https://github.com/daniel-j/nim-pimoroni-
               | pico/blob/master/sr...
               | 
               | I have planned to write GPIO/SPI/I2C "drivers" in Nim
               | that interfaces with the Linux drivers. So far I have
               | made a wrapper for libgpiod.
               | https://github.com/daniel-j/nim-gpiod
        
               | gadgetoid wrote:
               | Well this rang the ol' memory bells and brought me to
               | Daniel's Nim drivers for our Pico based products (1).
               | He's probably the guy to talk to.
               | 
               | Not needing a Python wrapper would definitely help slim
               | down FrameOS into something you could stuff into a fast-
               | loading initrd I guess?
               | 
               | I did something similar with Keybow, static binaries and
               | a custom build system (2) to make a sort-of Pi (Zero)
               | based appliance.
               | 
               | 1. https://github.com/daniel-j/nim-pimoroni-
               | pico/tree/master
               | 
               | 2. https://github.com/ali1234/rpi-ramdisk
        
         | kevin_thibedeau wrote:
         | Imagemagick can batch process images with restricted palettes.
         | No reason you had to do it all manually.
        
       | eightysixfour wrote:
       | This is awesome! There are a lot of projects trying to duplicate
       | this but very few have the polish, especially on the creation
       | side.
       | 
       | Selfishly, I'd love support for the lower power eINK devices,
       | like the InkPlate series which has a built in ESP32, but this is
       | making me consider swapping them to a Pi.
        
         | mariusandra wrote:
         | I'd love for FrameOS to support ESP32. Two days ago FrameOS was
         | a slow and interpreted Python app. Today it's a 3MB statically
         | linked binary. The margins are tight, and I'll likely need to
         | cut out some features (e.g. threading), but theoretically it
         | should be possible to get it to run. However I'm not planning
         | on taking this on any time soon, as there's still a lot of work
         | left to make the Raspberry version great. :)
        
           | squarefoot wrote:
           | The ESP32 port of LVGL might be a different approach to what
           | you're looking for. There are also ready made boards with
           | included display:
           | 
           | https://github.com/lvgl/lv_port_esp32
           | 
           | https://www.youtube.com/watch?v=d2OXlVcRYrU
        
       | fudged71 wrote:
       | for dashboard software like this are there any reliable
       | techniques to prevent burn-in? I'd like to set up a large screen
       | with a dashboard but I don't want to wreck the screen
        
         | linuxdude314 wrote:
         | This is specifically about eInk displays. They do not suffer
         | from the problem you are describing.
         | 
         | Generally this is solved by displaying more than one image and
         | rotating between images on a time interval.
        
           | _flux wrote:
           | This is for both:
           | 
           | > It's designed for both screens that update 60 seconds per
           | frame, and for screens that update 60 frames per second.
           | 
           | Or that's what at least I infer from that, because I don't
           | know of 60 fps eInk displays :).
        
             | Cyberdog wrote:
             | The article says it can just use the Pi's HDMI output as a
             | screen, so you could presumably drive that at 60FPS if you
             | want. I imagine the HDMI output is useful for debugging
             | even if you ultimately intend to use an e-ink display.
        
         | samstave wrote:
         | If your site's always flapping, don't worry about burn in?
        
         | BHSPitMonkey wrote:
         | They will generally transpose everything on the screen by a
         | small randomized difference every minute or so.
        
         | mariusandra wrote:
         | There's nothing built in now, but a common technique would be
         | to make the image e.g. ~10px larger in each direction, and then
         | choose a random crop every other second.
         | 
         | It should be really easy to build a FrameOS app that does this.
         | Add one node at the start of the render loop to increase the
         | image accordingly, and one at the end to crop it back down. I
         | was planning to use a similar technique to display smooth
         | scrolling animations/slideshows, but it can definitely be used
         | to prevent burnin.
        
       | justusthane wrote:
       | Looks cool! I've been wanting to set up an e-ink display with my
       | HomeAssistant, so I'll be checking this out.
       | 
       | In your "Why FrameOS" post, you have a photo that looks like an
       | e-ink display displaying a HomeAssistant dashboard, and under it
       | you say "However the software side of things was rubbish." What
       | exactly were the issues you had before writing FrameOS? It looks
       | like it's working great in the picture at least!
       | 
       | I'm also curious what this actually means:
       | 
       | > GPT4 Support: Ask your favourite LLM to write and debug FrameOS
       | apps for you.
        
         | H8crilA wrote:
         | RE ChatGPT: I think it's a clever joke highlighting that it is
         | a product that often needs no further integration (to make
         | blockchain powered self driving social AI clouds, or whatever
         | sells best on private equity markets these days).
        
           | bbor wrote:
           | Idk I think it's real... hopefully a sobering moment for
           | people who think of LLMs as the successors to blockchain,
           | OOP, beanie babies, etc. There is real value here and you
           | don't need think pieces to see it: it's already delivering
           | it.
           | 
           | I look forward to seeing this project cited as one of the
           | first frameworks/OSs to offer first party developer
           | assistants.
        
             | mariusandra wrote:
             | Oh it's real. When coding an app inside the web editor, you
             | can click a button that effectively sends your code to the
             | GPT4 API, along with some instructions on what it should
             | be. It then displays back the response.
             | 
             | It's really basic, but has already been useful:
             | https://frameos.net/blog/gpt4-support
        
         | airspresso wrote:
         | The author integrated GPT-4 into the "app builder" that FrameOS
         | has for building custom views, so you can ask GPT to make
         | improvements to the underlying code. See
         | https://frameos.net/blog/gpt4-support
         | 
         | My first thought seeing this was that it validates that new
         | apps from now on will be LLM-integrated from the start. Why
         | not, right? LLMs used right are a great UX-improvement for
         | almost any app.
        
           | JeffSnazz wrote:
           | > My first thought seeing this was that it validates that new
           | apps from now on will be LLM-integrated from the start. Why
           | not, right? LLMs used right are a great UX-improvement for
           | almost any app.
           | 
           | Well, any apps that you can actually build yourself. This
           | excludes the vast majority of them.
        
             | airspresso wrote:
             | Hard to predict the future, but my guess is that most apps
             | will have a natural language input component going forward.
             | Why navigate a million menus or compose complex rulesets by
             | hand when you can describe in natural language what you
             | want the app to do. I'm working on making such use-cases
             | become reality in a tech company, for all our products and
             | apps, and it would be strange if other companies aren't
             | thinking the exact same thing right now.
        
       | eddieroger wrote:
       | This makes me miss the Chumby, which had such untapped potential
       | and was given up on so quickly. I have many uses for a smart,
       | controllable and low-code screen in my house, and barely the time
       | to figure it out myself. Very glad this project came across my
       | page today!
        
         | konschubert wrote:
         | I make an off-the shelf eink calendar. You can also develop
         | your own content and then serve it to the screen as a .png or
         | .jpeg on a web url.
         | 
         | https://shop.invisible-computers.com
        
           | Yujf wrote:
           | That privacy policy... at least it is honest and upfront
           | about it
        
             | konschubert wrote:
             | What's the part that bugs you?
             | 
             | Your comment made me worried that I am doing something
             | wrong. Maybe I can clarify something?
             | 
             | There are two privacy policies, one applies to users of the
             | website only, while the other one applies to users of the
             | product. Which is the one that you are referring to?
        
               | hk__2 wrote:
               | Not OP but I guess it's this link:
               | https://shop.invisible-computers.com/pages/ccpa-opt-out
               | 
               | > As described in our Privacy Policy, we collect personal
               | information from your interactions with us and our
               | website, including through cookies and similar
               | technologies. We may also share this personal information
               | with third parties, including advertising partners. We do
               | this in order to show you ads on other websites that are
               | more relevant to your interests and for other reasons
               | outlined in our privacy policy.
               | 
               | > To opt out of the "sale" or "sharing" of your personal
               | information collected using cookies and other device-
               | based identifiers as described above, you must be
               | browsing from one of the applicable US states referred to
               | above.
               | 
               | I'm currently in the EU and your policy is a clear breach
               | of the RGPD. You have no right to collect and share my
               | information for any purpose that's not strictly needed
               | for your service without my explicit consent.
        
               | konschubert wrote:
               | To be honest I just used the Shopify template for the
               | website privacy policy. I think the policy overstates
               | what's happening, in reality there should be a cookie
               | banner for EU users. (Yay...)
               | 
               | I admit that's on me and I should clarify the policy.
               | 
               | I want to switch away from Shopify anyways, and then I
               | will also try to find a way to attribute clicks to
               | marketing campaigns that doesn't involve 3rd party
               | cookies.
               | 
               | I just didn't have the time yet.
        
           | AdamTReineke wrote:
           | I don't see the screen dimension listed anywhere. Am I
           | overlooking it or is that detail missing?
        
             | konschubert wrote:
             | It's a bit down on the product page.
             | 
             | The display is 7.5 inches.
             | 
             | I'll update the description to make this more prominent.
        
               | Monotoko wrote:
               | Can you give me an idea of what a png/jpg would look like
               | on one of these? I only see the calendar on the page...
        
         | vosper wrote:
         | > I have many uses for a smart, controllable and low-code
         | screen in my house, and barely the time to figure it out
         | myself.
         | 
         | I also don't have time to figure it out, so I'm probably just
         | going to buy a used iPad and put it on the wall. I'll get a
         | nice bright screen and anything I want to see just needs to be
         | viewable in a web browser.
        
           | mariusandra wrote:
           | I used to have an iPad (3rd gen) on the wall, then it died. I
           | bought the cheapest new one to replace it, but the old
           | Android tablet I had around had better bluetooth reach, so it
           | went on the wall instead.
           | 
           | Old android tablets are notoriously unpatched against all
           | kinds of things. It's easy to be paranoid that some passing
           | foot traffic will infect it with a bluetooth worm, and you'll
           | be none the wiser.
           | 
           | I'm accepting the risk for now, as I do enjoy configuring
           | Home Assistant on it, and looking at the rainmap, but there
           | are times when when a full tablet is overkill. FrameOS is for
           | those cases.
        
       | samstave wrote:
       | This would go a long way in Medical Kiosks, Digital Art and
       | Signage.
       | 
       | The digital art thing is big in hospitals (Source: I was the
       | technology designer for SFGH, UCSF, and the technology
       | implementation manager for El Camino Hospital - and director of
       | OPs for Vizio (TV))
       | 
       | Ive evaluated, purchased and installed systems such as this, and
       | wayfinding in hospitals - paying hundreds of thousands for
       | digital artwork to be looped in elevator lobbies, room screens
       | etc - they, like you said - had rubbish software.
       | 
       | For the lobbies in El Camino Hospital, I had to replace some
       | units with Mac Mini's playing an MP$ on loop via VLC because the
       | digital signage system was so crappy.
       | 
       | So, having this with a piZero would be great.
       | 
       | However - wayfinding would also be elegant with this - so long as
       | when you say "interactive" surely it could display a webapp/app
       | via the PI, and "screen-saver" to your digital art loop when
       | idle...
       | 
       | But - seriously, the digital art/signage/wayfinding market needs
       | a fiesty upstart like you to ruffle their muffins - I dont have
       | any PIs currently else, I'd be using this....
       | 
       | I wonder if I could install it on my shitty android TCL tablet
       | from T-Mobile...?
       | 
       | (Also look at controlling Feit Electric bulbs)
       | 
       | EDIT:
       | 
       | I think the most lucrative option for a device/OS like this would
       | be travel signage at BART, any 'regional transit' -- find the
       | dumbest person at that organization and train them to install and
       | configure and display something in a fool-proof manner...
       | 
       | Look at Sacramento (california) regional transit - they have so
       | many screens with zero usable information...
       | 
       | Have you been in a train in APAC? THey have LCD screens with
       | status maps on the upper walls...
       | 
       | Have you been in a train in the US? THey have pee and poo on the
       | upper walls, and zero map status anyplace.
        
       | jauntywundrkind wrote:
       | The first picture on the page is the editor, and dammmnnnm
       | wowwww. From it's bullet point:
       | 
       | > _Diagram Editor: A drag-and-drop interface to combine Nim apps
       | into scenes. Fork and edit existing apps like "OpenAI image", and
       | "Text overlay" to suit your needs. Overwrite all fields with
       | inline code snippets._
       | 
       | This looks really slick. It feels like it must be a huge effort!
       | I wonder what they used to build this. Is the editor written in
       | Nim?
       | 
       | What do you run once you write a scene: a runtime similar-ish to
       | the editor but with a presentation mode, or does it spit out a
       | new Nim program to run the other nim programs? Do apps get once-
       | off invoked or is there persistent communication for apps to keep
       | running? What triggers a frame to start, how does composting
       | happen?
       | 
       | I feel like they've built a very cool generic flow-based
       | programming system here, that happens to be used for smart
       | frames.
        
         | dgellow wrote:
         | Based on screenshots that looks like dearimgui. You can see
         | similar widgets here: https://github.com/TimoSalomaki/awesome-
         | dear-imgui
         | 
         | Edit: I'm wrong, it's actually React Flow!
         | 
         | https://github.com/FrameOS/frameos/blob/037af53e94a3b47ce5df...
         | 
         | https://reactflow.dev/
        
         | mariusandra wrote:
         | Hey, thanks for the feedback!
         | 
         | The editor/controller itself is just a React+Kea app using
         | React Flow for the diagramming part, and Flask for the backend.
         | 
         | For now to test that the app you built works, you must deploy
         | it on a frame. I have a fast RPi 5 for testing, and the
         | feedback loop is typically ~30sec. It's about a minute with a
         | Zero W2, and about 2min with a Zero W. This is not ideal, and
         | I'd like to improve that.
         | 
         | Ideally I'd like to use Nim's JS backend to build a "frame"
         | that can be run directly in the browser for testing.
         | 
         | As for the other questions, the FrameOS system runs at boot,
         | and all the apps are compiled in to that one binary and run as
         | the scene dictates. New frames get rendered when a render event
         | is dispatched, which can happen automatically on an interval,
         | or as requested. Frames send logs back to their controller, but
         | can otherwise operate completely independently.
        
       | cryptozeus wrote:
       | Worked on a similar product 10 years ago at Pandigital. They used
       | some custom os from china and the way you send photos to the
       | frame is by giving guid email id. It was doing good in those days
       | until they got ddos on holidays season and lost all the business.
        
       | zubairq wrote:
       | Cool OS! Could it work for shop window displays?
        
         | mariusandra wrote:
         | Absolutely! Just hook up your display with a HDMI port to a
         | raspberry, and you're good to go.
         | 
         | If you're fine with just displaying an image from an URL, it'll
         | work today. If you want nicer slideshows or rotating images,
         | you'd have to write some code to make it work, but it's all
         | possible today.
         | 
         | A nicer interface tailored specifically for shop windows
         | slideshows is something that could come at a later date.
        
       | NoboruWataya wrote:
       | Looks really interesting. Am I right in thinking it's not
       | actually an OS, but rather software that runs on top of an OS on
       | the Pi?
        
         | surajrmal wrote:
         | Yeah it seems more like a full screen application which can be
         | remotely controlled.
        
         | squarefoot wrote:
         | It appears so, which would mean it could probably work with
         | only minor changes on other boards.
        
         | mariusandra wrote:
         | You're technically right (the best kind?), but there's some
         | nuance to the question.
         | 
         | FrameOS is a compiled binary that runs on top of Linux. At
         | present you need to install the "Raspberry Pi OS Lite" (without
         | the desktop environment) on a SD card before you can install
         | FrameOS itself on top of that. So it's "just an application".
         | 
         | However, this is mostly because it's an early project, and this
         | was the fastest way to get going. The next step is to see how
         | much can be removed. Since FrameOS is a statically compiled
         | single binary, it shouldn't need that much more than the Linux
         | kernel? Will FrameOS be a true OS then? Android seems to be
         | considered its own OS despite using the Linux kernel.
         | 
         | Once activated, FrameOS takes over your entire system, has its
         | own `apps/` and `drivers/` folders, and in many ways already
         | behaves like an Operating System. I'm also pondering about
         | getting it running on an ESP32 (will need to add
         | `drivers/wifi/`?). Without any OS below it, will it then be
         | worthy of being called an OS? You all tell me. :shrug:
         | 
         | Thus is it an Operating System? It is to me, but you can choose
         | to disagree.
         | 
         | At my actual job (PostHog), we sometimes call ourselves the
         | "Product OS". This annoys me more, as a suite of webapps
         | definitely isn't an "Operating System" in its traditional
         | sense. I've seen -OS at the end of other things as well that
         | aren't pure Operating Systems. It slightly bothers me, but
         | mostly because I was around when "what OS you're using" was a
         | defining question. Language is evolving, and "operating system"
         | seems to describe more things to different people, than it does
         | to you and me.
        
           | pharrington wrote:
           | You're already aware of the word "kiosk," so why not market
           | it explicitly as a kiosk?
        
       | ycuser2 wrote:
       | Does this work only with HDMI displays? I have a waveshare e-ink
       | display which connects only via GPIO interface.
        
         | alexchamberlain wrote:
         | The docs seem to indicate it works with both
        
         | bitwrangler wrote:
         | This listed HDMI displays.
         | 
         | https://frameos.net/#supported-platforms
        
         | rhussmann wrote:
         | Check the "Devices" section: https://frameos.net/devices/
         | Several Waveshare devices that connect via SPI for example are
         | listed as compatible.
        
         | mariusandra wrote:
         | I have gotten the new Nim-based FrameOS working with two
         | different Waveshare displays. I have two other ones waiting to
         | be tested. Check this folder [1] for the currently enabled
         | drivers.
         | 
         | One of the next items on my todo list [2] is to add back
         | support for all the different waveshare drivers out there. They
         | all follow a similar pattern, so I should be able to generate
         | "best guess" drivers for most of them.
         | 
         | Which display do you have?
         | 
         | [1]
         | https://github.com/FrameOS/frameos/tree/main/frameos/src/dri...
         | [2] https://github.com/FrameOS/frameos/issues/1
        
       | bitwrangler wrote:
       | I was imagining something like MotionEYE OS
       | https://github.com/motioneye-project/motioneyeos/wiki
       | 
       | Where I would download the sdram binary image and flash with
       | Balena then boot on the Pi.
       | 
       | Great work anyway! It was a nice opportunity to read up on Nim
       | language too.
        
         | mariusandra wrote:
         | Very interesting. As replied here [1], I do eventually want to
         | investigate "slimming down" the Linux distro below FrameOS.
         | 
         | However for now, the RPi imager, with its built in "enter your
         | wifi credentials and SSH key" dialog was the best and easiest
         | way to get started.
         | 
         | [1] https://news.ycombinator.com/item?id=38859572
        
       | isoprophlex wrote:
       | Those circular color displays look incredible! I had no idea
       | these things were available, but outlets like adafruit have them
       | in stock. Amazing.
        
         | mariusandra wrote:
         | I was quite shocked at the amount of tiny and large display
         | options out there. I might even make a YouTube video titled
         | "Home dashboards have gotten cheap and easy" with everything
         | I've learned so far.
         | 
         | Take a $15 Pi Zero W 2, and a screen costing anywhere between
         | $50 to $200. 3d-print a case around them both, and for a third
         | of the price of a new iPad, you'll have a simple and secure
         | single function screen in your house...
        
       | gotwalt wrote:
       | Would be amazing if this could be adapted to replace the Tidbyt
       | OS. Such a promising device with such terrible software.
        
       | proee wrote:
       | Can a Pi go into sleep mode running FrameOS so the device can be
       | battery powered?
        
         | mariusandra wrote:
         | Theoretically yes, but I have not yet investigated it.
        
       | malcolmosh wrote:
       | Very cool ! I built a series of scripts to exchange e-ink images
       | through Gmail last year which I baptized DispatchPi
       | (https://github.com/malcolmosh/dispatchPi/blob/main/README.md)
       | and a program like this would definitely have accelerated
       | development. It was a bit fussy to always have to use a terminal
       | to SSH into the Pi, then update the scripts through FileZilla
       | (ftp client) + Vscode.
       | 
       | I've just completed a dashboard project which I'm about to
       | release and I was also thinking of switching my frame drivers to
       | ESP32 to run them on batteries, since they consume far less
       | energy than even a Pi Zero. So +1 for ESP32 compatibility if time
       | allows!
        
         | omtinez wrote:
         | What hardware are you using? I recently finished a project
         | myself and I'd like to do more with e-ink but the hardware
         | "driver" that plugs into the pi costs as much as the e-ink
         | display.
        
           | malcolmosh wrote:
           | Yes, it can get pricey. I'm using a Raspberry Pi Zero W with
           | a Waveshare 7.5 e-ink panel, which came with its own
           | raspberry Pi driver. I also added a PiSugar2 battery.
           | Waveshare seemed to be the most affordable option out there.
           | 
           | I find the costs to be reasonable, but I just bought a
           | Waveshare e-ink ESP32 controller to try boosting battery
           | life, since I don't need a fully fledged OS. All I'm doing on
           | the frame is pulling an image from an URL or displaying a
           | local image if the connection fails.
        
             | gadgetoid wrote:
             | This sounds like it could port well to an RP2040-based
             | display. Though I am forever battling against its very
             | constrained RAM for network stuff (not helped by
             | MicroPython needing a chunk for buffers, an GC bitmap for
             | mark/sweep and some other network mystery meat). That said
             | our (Pimoroni) larger Pico W-based Inky has an 8Mbit PSRAM
             | to act as a back buffer for the display. It's "slow" but
             | when updates take 30s+ anyway that's kind of redundant.
             | Very little of that 8Mbit is actually used, so with a
             | little tinkering it might be able to cache multiple images
             | for sequential display without having to faff about with SD
             | cards.
             | 
             | Currently I transmute some images (XKCD and NASA APOD) via
             | a scheduled GitHub action into something fit for the
             | various display sizes. An even more extreme approach would
             | be to convert into the packed (4bpp for 7-colour E-ink)
             | framebuffer format server-side. Less network efficient, but
             | more predictable memory usage.
             | 
             | We've had JPEG support for a while, but I brought up a PNG
             | decoder (Larry Bank's PNGdec) recently(ish) and it's a much
             | better fit than JPEG for palette-based images. It uses a
             | 32K sliding window, however, which can get spicy if you're
             | not careful.
        
         | brk wrote:
         | How deep are you in the ESP32 dev? I've found image rendering
         | (the display is LCD, not eInk) to be less straightforward than
         | anticipated.
         | 
         | In my case, massaging images into a specific size and format
         | prior to sending them into the ESP32/Display is easier and more
         | reliable than trying to have the ESP libraries display any
         | arbitrary image.
        
           | malcolmosh wrote:
           | I haven't actually started coding yet with the ESP chip. In
           | my case the aim is to pick up a preformatted image from an
           | URL, avoiding all of the finicky formatting you describe. I
           | like the idea of the screen controller as a single function
           | machine just for display, with the backend being a simple
           | GitHub repo connected to Cloud Run via CI/CD.
        
       | 12th wrote:
       | This looks really good. I can see it's not listed in your list of
       | devices but I'm wondering if there is anyway to get this running
       | with an old kindle.
        
       | bluepuma77 wrote:
       | Would be cool to run this on old kindle ebook hardware.
        
       | sydbarrett74 wrote:
       | Reaaallly cool project. These are the innovative OS stories I
       | like to see, not the latest useless marketing department driven
       | 'feature' that some Microsoft PM thought was a good idea.
        
       ___________________________________________________________________
       (page generated 2024-01-03 23:00 UTC)