3 पॉइंट द्वारा GN⁺ 2024-01-04 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • स्मार्ट फ्रेम को खुद बनाने के लिए ज़रूरी rendering, deployment और display control को डिवाइस के भीतर चलने वाले execution के केंद्र में एक साथ जोड़ता है, ताकि Raspberry Pi या ESP32 आधारित फ्रेम को स्वतंत्र रूप से चलाया जा सके
  • backend को Docker या Home Assistant addon के रूप में लोकल में install किया जा सकता है, SSH या फ्लैश की गई SD card से deploy करने के बाद भी फ्रेम backend के बिना लगातार काम करता रहता है
  • scenes को event, data app, render app और state को जोड़ने वाले node graph के रूप में बनाया जाता है, और परिणाम को compile करके एक single binary के रूप में फ्रेम पर चलाया जाता है
  • Raspberry Pi में Pi Zero 2 W या उससे ऊपर पर WiFi deployment, TrueType font, SVG, 6-color e-ink dithering, TLS, iCal parsing, headless Chromium screenshot और built-in web server का support है
  • ESP32-S3 Waveshare SPI e-paper panel के लिए browser flash, on-device rendering, OTA update और refresh के बीच deep sleep को support करता है, लेकिन firmware image में चुना गया केवल एक panel driver शामिल होता है

FrameOS क्या करता है

  • FrameOS एक ऐसा operating system है जो Raspberry Pi या ESP32 को display के साथ जोड़कर calendar, dashboard और art frame जैसे अपने-आप चलने वाले smart frame बनाता है
  • यह e-ink, HDMI और LCD display को target करता है, और rendering डिवाइस के भीतर ही होती है
  • यह cloud और subscription के बिना काम करता है, और 2023 से AGPL-3.0 लाइसेंस के तहत मुफ्त open source के रूप में उपलब्ध है
  • backend को Docker से install किया जा सकता है, और project repository GitHub पर है

इंस्टॉलेशन और deployment flow

  • FrameOS backend installation, hardware connection और scene deployment के flow में फ्रेम को configure करता है
    • backend को laptop, server या NAS पर एक command से चलाया जा सकता है, या Home Assistant addon के रूप में install किया जा सकता है
    • Raspberry Pi या ESP32 को display से connect किया जाता है
    • पहले से बने scenes चुने जा सकते हैं या खुद design करके deploy किए जा सकते हैं
  • backend कोई subscription service नहीं, बल्कि एक local web app है
  • deployment SSH या फ्लैश की गई SD card के ज़रिए होता है, और इसके बाद फ्रेम backend के बिना भी स्वतंत्र रूप से चल सकता है
  • display के लिए 120 से अधिक supported panel जोड़े जा सकते हैं, और Raspberry Pi पर HDMI cable भी इस्तेमाल की जा सकती है
  • फ्रेम को अपने QR code और HTTP API से control किया जाता है, हालांकि ESP32 का HTTP API अभी experimental है

scene editing और execution का तरीका

  • scenes को एक visual editor में बनाया जाता है, जिसे असली code का समर्थन प्राप्त है
  • scene configuration node graph के रूप में बंटी होती है
    • लाल: event
    • हरा: data app
    • नीला: render app
    • पीला: state
  • तैयार scene को compile करके single binary बनाया जाता है, जो फ्रेम पर चलता है
  • curated gallery, calendar, schedule, message board, weather, webcam और AI art scenes को एक क्लिक में install किया जा सकता है, और source level तक edit भी किया जा सकता है

Raspberry Pi और ESP32 विकल्प

  • FrameOS असली Linux environment में सबसे अच्छा काम करता है, और $15 Pi Zero 2 W या उससे ऊपर के Raspberry Pi को target करता है
  • Raspberry Pi environment में firmware को दोबारा flash किए बिना WiFi से deploy किया जा सकता है
  • Linux-based frame में ये सुविधाएँ इस्तेमाल की जा सकती हैं
    • हर resolution के लिए TrueType font और SVG
    • 6-color e-ink के लिए dithering
    • TLS
    • iCal parsing
    • headless Chromium screenshot
    • फ्रेम का built-in web server
  • अगर बिना तार वाला फ्रेम चाहिए, तो इसे ESP32-S3 पर Waveshare SPI e-paper panel के लिए चलाया जा सकता है
  • ESP32-S3 configuration browser flash, on-device scene rendering, OTA update और refresh के बीच deep sleep के ज़रिए battery-powered operation को support करता है
  • हर ESP32 firmware image में चुना गया केवल एक panel driver शामिल होता है

case बनाना और तैयार उदाहरण

  • FrameOS Case Maker supported panel और Raspberry Pi layout के अनुसार parametric 3D-print enclosure बनाता है
  • उपयोगकर्ता template चुनकर depth और bezel adjust कर सकते हैं, फिर wall mount, kickstand, USB-C cutout और screw post जोड़कर STL download कर सकते हैं
  • Case Maker documentation जैसी ही hardware database का उपयोग करता है और Waveshare व Pimoroni configuration के लिए base dimensions देता है
  • Case Maker Open Case Maker पर उपलब्ध है
  • तैयार उदाहरण Waveshare और Pimoroni Spectra 6 panel, 3D-printed slim case, USB-C power और FrameOS software configuration को एक साथ दिखाते हैं

1 टिप्पणियां

 
GN⁺ 2024-01-04
Hacker News की राय
  • मज़ेदार छोटा-सा प्रोजेक्ट है। 2 साल पहले गिफ्ट के लिए 7-color eInk Arduino फोटो फ्रेम बनाया था, और सबसे मुश्किल काम था इमेज को खुद crop करना, dither करना और color palette मिलाना, ताकि स्क्रीन पर ठीक-ठाक दिखे
    अगर FrameOS यह मेरे लिए कर देता, तो manual editing और testing में लगे कई घंटे बच जाते
    आखिरकार इस साल उसी व्यक्ति को Aura frame खरीदकर दे दिया, क्योंकि remotely photos जोड़ना बहुत तकलीफ़देह था

    • ImageMagick सीमित palette के साथ images को batch process कर सकता है। सब कुछ manual करने की ज़रूरत नहीं थी
    • मैं चाहता/चाहती हूँ कि किसी को भी images खुद crop, dither और color index न करनी पड़ें। यह काम FrameOS software को संभालना चाहिए
      Inky Impression 7-color frame जैसी चीज़ों के साथ यह पहले से काम करता है, क्योंकि ज़्यादातर मामलों में वह software और drivers यह processing पहले ही कर देते हैं
  • यह medical kiosks, digital art और signage के लिए बहुत मददगार हो सकता है
    hospitals में digital art की demand काफी बड़ी है। मैं SFGH, UCSF का technology designer रहा/रही हूँ, El Camino Hospital में technology implementation manager और Vizio TV में operations director भी रहा/रही हूँ
    मैंने ऐसे systems और hospital wayfinding systems का evaluation, purchase और installation किया है, और elevator lobbies या patient-room screens पर loop में चलने वाली digital art पर लाखों dollars खर्च किए हैं, लेकिन software बेहद खराब था
    El Camino Hospital lobby में digital signage system इतना खराब था कि कुछ equipment को Mac Mini से बदलकर VLC में MP4 loop playback चलवाना पड़ा
    इसलिए Pi Zero के साथ ऐसा system इस्तेमाल करना अच्छा लगेगा
    हालांकि लगता है कि wayfinding भी इससे elegant तरीके से implement किया जा सकता है। अगर “interactive” कहने का मतलब यह है कि Pi पर webapp/app चला सकते हैं, और idle state में वापस digital art loop playback पर लौट सकते हैं, तो अच्छा होगा
    digital art, signage और wayfinding market को ऐसे markets को हिला देने वाले बेखौफ नए प्रोजेक्ट की ज़रूरत है। अगर अभी मेरे पास Pi होता, तो तुरंत try करता/करती
    T-Mobile से मिले बेकार से Android TCL tablet पर भी इसे install किया जा सकता है या नहीं, यह जानने की उत्सुकता है। Feit Electric bulbs control भी देखना अच्छा होगा
    ऐसे device/OS के लिए सबसे profitable विकल्प शायद BART जैसे regional transit की transit information signage होगी। बस इसे इतना आसान बनाना होगा कि संगठन में सबसे कम tech-savvy व्यक्ति भी install, configure और display बिना गलती के कर सके
    Sacramento regional transit में बहुत screens हैं, लेकिन काम की जानकारी बहुत कम है
    APAC में trains लेने पर ऊपर की दीवार पर status map दिखाने वाली LCD screens होती हैं। अमेरिका की trains में ऊपर की दीवार पर पेशाब और मल तो होता है, लेकिन status map कहीं नहीं होता

    • अगर अमेरिकी trains में screens लगाई जाएँ, तो शायद आखिर में उन screens पर भी पेशाब और मल लग जाएगा
    • MP3 file चलाने के लिए Mac Mini install करना पैसे की भयानक बर्बादी है। 10 dollar का बेहद सस्ता portable MP3 player इस्तेमाल किया जा सकता है
      अमेरिका में इस तरह पैसा बर्बाद होता है, जबकि सड़कों पर लोग खाने के लिए भीख माँग रहे होते हैं—यह पागलपन जैसा लगता है
    • BrightSign को आप कैसे देखते हैं, जानना चाहूँगा/चाहूँगी। उसका default software काफी खराब है, लेकिन programmability हमारे लिए बहुत अच्छी रही। अभी बहुत गहराई में नहीं गए हैं
  • Chumby याद आता है। उसमें सच में बहुत potential था, लेकिन उसे बहुत जल्दी छोड़ दिया गया
    घर के अंदर smart, controllable और low-code screen के उपयोग की बहुत जगहें हैं, लेकिन खुद research करने का समय लगभग नहीं है। आज यह project देखकर सच में अच्छा लगा

    • मैं ready-made eInk calendar बना रहा/रही हूँ। आप अपना content develop करने के बाद web URL से screen को .png या .jpeg के रूप में serve भी कर सकते हैं
      https://shop.invisible-computers.com
    • मेरे पास भी खुद research करने का समय नहीं है, इसलिए बस used iPad खरीदकर दीवार पर लगाने का सोच रहा/रही हूँ
      bright screen मिल जाएगी, और जो देखना है वह web browser में दिख जाना ही काफी है
  • वाकई शानदार। पिछले साल Gmail के जरिए e-ink images exchange करने के लिए scripts का एक bundle बनाया था और उसे DispatchPi नाम दिया था; अगर ऐसा program होता तो development बहुत तेज हो जाता
    https://github.com/malcolmosh/dispatchPi/blob/main/README.md
    हर बार terminal से Pi में SSH करना, और FileZilla FTP client तथा VSCode से scripts update करना काफी झंझट भरा था
    अभी-अभी dashboard project भी पूरा किया है और जल्द publish करने वाला/वाली हूँ, और frame driver को ESP32 में बदलकर battery पर चलाने पर भी सोच रहा/रही हूँ। क्योंकि ESP32, Pi Zero से भी काफी कम power consume करता है
    समय मिले तो ESP32 compatibility के लिए मेरी तरफ से एक वोट

    • ESP32 development आपने कितनी दूर तक किया है, यह जानना चाहूँगा/चाहूँगी। image rendering उम्मीद से कम straightforward थी। मेरे मामले में display eInk नहीं बल्कि LCD था
      arbitrary images को ESP library से display करने की कोशिश करने के बजाय, image को ESP32/display पर भेजने से पहले किसी specific size और format में तैयार कर लेना ज्यादा आसान और reliable था
    • कौन-सा hardware इस्तेमाल कर रहे हैं, यह जानना चाहूँगा/चाहूँगी। हाल ही में एक similar project खत्म किया है और e-ink और करना चाहता/चाहती हूँ, लेकिन Pi में लगने वाला hardware driver board e-ink display जितना ही महँगा है
  • पेज की पहली इमेज editor की है, और वाह, सच में कमाल है। विवरण में यह हिस्सा है
    “Diagram Editor: Nim apps को scenes में जोड़ने वाला drag-and-drop interface। ‘OpenAI image’, ‘Text overlay’ जैसे मौजूदा apps को fork और modify करके अपनी जरूरत के हिसाब से ढाला जा सकता है। सभी fields को inline code snippets से overwrite किया जा सकता है।”
    यह सचमुच बहुत refined दिखता है। लगता है इसमें बहुत ज्यादा काम लगा होगा। यह किससे बनाया गया है, यह जानने की उत्सुकता है, और यह भी कि editor Nim में लिखा गया है या नहीं
    scene लिखने के बाद यह क्या run करता है, यह भी जानना चाहता हूं। क्या यह editor जैसा ही कोई runtime चलाता है जिसमें presentation mode होता है, या फिर यह दूसरे Nim programs चलाने के लिए एक नया Nim program output करता है, पता नहीं
    apps को एक-एक बार call किया जाता है, या वे लगातार चलते रहते हैं और persistent communication करते हैं, यह भी जानना चाहता हूं। frame की शुरुआत किससे trigger होती है, और compositing कैसे होती है, यह भी जिज्ञासा है
    भले ही इसे smart frame में इस्तेमाल किया जा रहा हो, लेकिन असल में ऐसा लगता है जैसे आपने एक बेहद शानदार general-purpose flow-based programming system बना दिया है

    • feedback के लिए शुक्रिया
      editor/controller खुद एक React+Kea app है, diagram वाला हिस्सा React Flow इस्तेमाल करता है, और backend Flask है
      अभी बनाए गए app के काम करने की testing करनी हो तो उसे frame पर deploy करना पड़ता है। testing के लिए तेज RPi 5 इस्तेमाल करने पर feedback loop आम तौर पर करीब 30 सेकंड का होता है, Zero W2 पर करीब 1 मिनट, और Zero W पर करीब 2 मिनट। यह ideal नहीं है, इसलिए इसे सुधारना चाहता हूं
      ideal रूप से, Nim के JS backend का इस्तेमाल करके browser में सीधे चल सकने वाला “frame” बनाकर test करना चाहता हूं
      बाकी सवालों का जवाब दूं तो, FrameOS system boot पर run होता है और सभी apps एक ही binary में compile होते हैं, फिर scene जैसा निर्देश देता है वैसा execute होते हैं। render event मिलने पर नया frame render होता है; यह event periodically अपने-आप generate हो सकता है या request पर भी हो सकता है
      frame logs को controller को भेजता है, लेकिन उसके अलावा पूरी तरह स्वतंत्र रूप से काम कर सकता है
    • screenshots देखकर dear imgui जैसा लगता है। यहां वैसी ही widgets देखी जा सकती हैं: https://github.com/TimoSalomaki/awesome-dear-imgui
      edit: गलत था, असल में यह React Flow है
      https://github.com/FrameOS/frameos/blob/037af53e94a3b47ce5df...
      https://reactflow.dev/
  • यह सच में दिलचस्प लग रहा है। क्या मेरा यह समझना सही है कि यह असल में OS नहीं है, बल्कि Pi के OS के ऊपर चलने वाला software है?

    • technically सही है। सबसे अच्छी तरह का सही भी है, लेकिन इस सवाल में थोड़ा nuance है
      FrameOS Linux के ऊपर चलने वाली compiled binary है। फिलहाल FrameOS खुद install करने से पहले SD card पर desktop environment के बिना “Raspberry Pi OS Lite” install करना पड़ता है। इसलिए इसे “सिर्फ एक application” माना जा सकता है
      लेकिन ऐसा इसलिए है क्योंकि project के शुरुआती दौर में शुरुआत करने का यह सबसे तेज तरीका था। अगला कदम यह देखना है कि कितना हटाया जा सकता है। FrameOS statically compiled single binary है, इसलिए Linux kernel के अलावा शायद बहुत ज्यादा जरूरत न पड़े। तब क्या यह असली OS होगा? Android भी Linux kernel इस्तेमाल करता है, लेकिन उसे अपना अलग OS माना जाता है
      activate होने पर FrameOS पूरे system को अपने नियंत्रण में ले लेता है, इसके अपने apps/ और drivers/ folders होते हैं, और कई मायनों में यह पहले से ही operating system जैसा व्यवहार करता है। इसे ESP32 पर चलाने पर भी विचार कर रहा हूं, जिसमें शायद drivers/wifi/ जोड़ना पड़े। अगर यह नीचे किसी भी OS के बिना काम करे, तो क्या तब इसे OS कहना ठीक होगा? यह आप लोग तय करें
      अगर पूछा जाए कि क्या यह operating system है, तो मेरे लिए हां, लेकिन इसे अलग तरह से भी देखा जा सकता है
      मेरी असली नौकरी PostHog में है, जहां वे कभी-कभी खुद को “Product OS” कहते हैं, और यह मुझे ज्यादा खटकता है। क्योंकि web apps का bundle पारंपरिक अर्थ में निश्चित रूप से operating system नहीं है। pure operating system न होने वाली चीजों के अंत में -OS लगा हुआ भी देखा है। थोड़ा खटकता है, लेकिन शायद इसलिए कि मैं उस दौर में रहा हूं जब “आप कौन-सा OS इस्तेमाल करते हैं?” पहचान बांटने वाला सवाल होता था
      भाषा बदल रही है, और लगता है “operating system” अब मेरे और आपके सोचने से ज्यादा अलग-अलग चीजों के लिए इस्तेमाल होता है
    • ऐसा ही लगता है। ऐसा है तो दूसरे boards पर भी छोटे बदलावों के साथ इसके चलने की संभावना काफी है
    • सही है। यह remotely controllable full-screen application के ज्यादा करीब दिखता है
    • सच में जानना चाहता हूं कि OS क्या होता है। तंज नहीं कर रहा। “OS” इस समय काफी loosely defined term है। Android और Ubuntu लगभग वही kernel इस्तेमाल करते हैं, लेकिन साफ तौर पर बहुत अलग operating systems हैं
      FrameOS Nim इस्तेमाल करता है, इसलिए इसे kernel के बिना bare metal पर चलने के लिए port किया जा सकता है। async dispatch की वजह से Nim lightweight cooperative multitasking भी देता है
      FrameOS फिलहाल केवल Linux kernel के ऊपर चलने वाला OS है, या चाहें तो इसे user space कह सकते हैं। लेकिन इसे सीधे microcontroller पर चलने के लिए port न कर पाने की कोई वजह नहीं है
  • शानदार लग रहा है। मैं Home Assistant के साथ e-ink डिस्प्ले सेटअप करना चाहता था, इसलिए इसे ज़रूर देखूँगा
    “Why FrameOS” लेख में Home Assistant dashboard दिखाने वाले e-ink डिस्प्ले जैसी एक तस्वीर है, और उसके नीचे लिखा है “लेकिन software वाली तरफ़ सब गड़बड़ था।” FrameOS बनाने से पहले असल में कौन-सी दिक्कतें थीं, यह जानने की जिज्ञासा है। कम-से-कम तस्वीर में तो यह ठीक चलता हुआ दिख रहा है
    यह वाक्य असल में क्या मतलब रखता है, यह भी जानना चाहता हूँ: “GPT4 Support: अपने पसंदीदा LLM से FrameOS app लिखने और debug करने को कहें।”

    • लेखक ने FrameOS के custom view बनाने वाले app builder में GPT-4 integrate किया है, ताकि underlying code में सुधार के लिए GPT से कह सकें। https://frameos.net/blog/gpt4-support
      इसे देखते ही मुझे लगा कि आगे नए apps शुरू से ही LLM integration शामिल करेंगे—यह trend साफ़ दिखता है। न करने की वजह ही क्या है? LLM का सही इस्तेमाल किया जाए तो लगभग हर app में user experience काफ़ी बेहतर हो सकता है
    • ChatGPT के बारे में, यह एक चतुर मज़ाक जैसा लगता है जिसमें बताया जा रहा है कि यह ऐसा product है जिसे extra integration की ज़रूरत नहीं है
      यानी आजकल private equity market में अच्छी तरह बिकने वाली blockchain-based autonomous driving social AI cloud जैसी चीज़ बनाने की ज़रूरत नहीं है—ऐसा मज़ाक
  • पुराने Amazon Fire tablet को e-waste बनने से बचाने का कोई अच्छा विकल्प हो सकता है? यह Android-based है

    • Fire Toolbox से सभी बेकार preinstalled apps disable कर दें। Fully Kiosk license खरीद लें तो इसे कई practical कामों के लिए बदला जा सकता है
      निजी तौर पर, मैं घर में Amazon Fire tablets को Snapcast के लिए audio driver की तरह इस्तेमाल करता हूँ। हर tablet में USB, Wi‑Fi, 3.5mm Aux और built-in battery होती है, इसलिए इस काम के लिए यह बहुत अच्छा है; sale में एक device 45 dollars का मिल जाता है, इसलिए खास तौर पर ठीक है
    • वहाँ समस्या क्या है, यह जानना चाहूँगा। क्या कोई भी Android app install करके दिखाया नहीं जा सकता?
    • bootloader locked है। अगर मुझे सही याद है, तो 2015 model आख़िरी model था जिसे कुछ pins short करने वाले bug के ज़रिये unlock किया जा सकता था
      unlocked bootloader न हो तो Android rooting संभव हो सकती है, लेकिन Android या ROM को ही replace नहीं किया जा सकता
      वैसे भी इसका बहुत मतलब नहीं है। यह MediaTek है, इसलिए उस दौर की partition structure और driver model आम तौर पर गड़बड़ थे। उस hardware पर FrameOS को reasonably elegant तरीके से चलाना मुश्किल होगा
  • वाकई शानदार। ऐसी चीज़ replicate करने की कोशिश करने वाले projects बहुत हैं, लेकिन खासकर maker side पर इस level की polish बहुत कम दिखती है
    निजी तौर पर, अच्छा होगा अगर यह InkPlate series जैसी ESP32 built-in low-power eINK devices को support करे। फिर भी इसे देखकर Pi पर switch करने का मन हो रहा है

    • अच्छा होगा अगर FrameOS ESP32 support करे। दो दिन पहले तक FrameOS एक धीमा, interpreted Python app था। आज यह 3MB का statically linked binary है
      resources tight होंगे और शायद threading जैसी कुछ features हटानी पड़ेंगी, लेकिन theory में यह चलने लायक होना चाहिए
      हालांकि Raspberry version को बेहतरीन बनाने के लिए अभी बहुत काम बाकी है, इसलिए फिलहाल मैं यह काम लेने की योजना नहीं बना रहा
  • इस field में और software आना खुशी की बात है
    थोड़ा indirectly related बात है, लेकिन मैं photo frame की तरह इस्तेमाल करने के लिए 32-inch या उससे बड़े screen की तलाश में हूँ। Samsung The Frame को छोड़कर कोई दूसरा product नहीं मिला, जो इतने simple use case के लिए हैरान करने वाली बात है
    अब तक मुझे बस इतना ही मिला है। TV और monitor को 24 घंटे चालू रखने के लिए power consumption अच्छा नहीं है। color e-ink आम तौर पर अधिकतम 13 inch के आसपास होता है। Samsung The Frame के features और look अच्छे हैं, लेकिन यह महँगा है, और फिर Samsung होने की कमी भी है
    कोई recommend करने लायक product है क्या?

    • जानना चाहूँगा कि dedicated frame device आम TV display की तुलना में power कैसे बचा सकता है। आख़िरकार बात तो उन्हीं basic components तक नहीं पहुँचती?