3 poin oleh GN⁺ 2024-01-04 | 1 komentar | Bagikan ke WhatsApp
  • Menggabungkan rendering, deployment, dan kontrol tampilan yang dibutuhkan saat membuat smart frame sendiri dengan fokus pada eksekusi di dalam perangkat, sehingga frame berbasis Raspberry Pi atau ESP32 dapat beroperasi secara mandiri
  • Backend dapat dipasang secara lokal lewat Docker atau add-on Home Assistant, dideploy melalui SSH atau kartu SD yang telah di-flash, lalu frame tetap berjalan tanpa backend
  • Scene dibuat sebagai graf node yang menghubungkan event, aplikasi data, aplikasi render, dan state, lalu hasilnya dikompilasi menjadi satu binary untuk dijalankan di frame
  • Raspberry Pi mendukung deployment via WiFi pada Pi Zero 2 W atau yang lebih tinggi, TrueType font, SVG, dithering e-ink 6 warna, TLS, parsing iCal, screenshot Chromium headless, dan web server bawaan
  • ESP32-S3 mendukung flash lewat browser, rendering di perangkat, update OTA, serta deep sleep di antara refresh untuk panel e-paper SPI Waveshare, tetapi image firmware hanya menyertakan satu driver panel yang dipilih

Peran FrameOS

  • FrameOS adalah sistem operasi untuk membuat smart frame yang berjalan sendiri seperti kalender, dasbor, atau bingkai seni dengan menggabungkan Raspberry Pi atau ESP32 dan display
  • Menargetkan display e-ink, HDMI, dan LCD, dengan rendering diproses di dalam perangkat
  • Berjalan tanpa cloud dan langganan, serta tersedia sebagai open source gratis berlisensi AGPL-3.0 sejak 2023
  • Backend dapat dipasang dengan Docker, dan repositori proyek tersedia di GitHub

Alur instalasi dan deployment

  • FrameOS menyusun frame melalui alur pemasangan backend, penyambungan hardware, dan deployment scene
    • Menjalankan backend di laptop, server, atau NAS dengan satu perintah, atau memasangnya sebagai add-on Home Assistant
    • Menghubungkan Raspberry Pi atau ESP32 ke display
    • Memilih scene siap pakai atau merancang sendiri lalu mendeploy-nya
  • Backend berjalan sebagai aplikasi web lokal, bukan layanan berlangganan
  • Deployment dilakukan melalui SSH atau kartu SD yang telah di-flash, dan setelah itu frame dapat berjalan mandiri tanpa backend
  • Display dapat dihubungkan ke lebih dari 120 panel yang didukung, dan pada Raspberry Pi juga bisa menggunakan kabel HDMI
  • Frame dikendalikan melalui QR code dan HTTP API bawaannya, sementara HTTP API untuk ESP32 masih bersifat eksperimental

Pengeditan scene dan cara eksekusi

  • Scene disusun di editor visual yang ditopang oleh kode nyata
  • Komposisi scene dibagi dalam bentuk graf node
    • Merah: event
    • Hijau: aplikasi data
    • Biru: aplikasi render
    • Kuning: state
  • Scene yang telah disusun dikompilasi menjadi satu binary untuk dijalankan di frame
  • Galeri terkurasi, kalender, jadwal, papan pesan, cuaca, webcam, dan scene AI art dapat dipasang dengan satu klik, lalu diedit hingga level source

Opsi Raspberry Pi dan ESP32

  • FrameOS bekerja paling baik di lingkungan Linux nyata, dan menargetkan Raspberry Pi $15 Pi Zero 2 W atau yang lebih tinggi
  • Di lingkungan Raspberry Pi, deployment dapat dilakukan lewat WiFi tanpa perlu mem-flash ulang firmware
  • Pada frame berbasis Linux, fitur berikut dapat digunakan
    • TrueType font dan SVG pada semua resolusi
    • Dithering untuk e-ink 6 warna
    • TLS
    • Parsing iCal
    • Screenshot Chromium headless
    • Web server milik frame itu sendiri
  • Jika menginginkan frame tanpa kabel, sistem dapat dijalankan pada ESP32-S3 untuk panel e-paper SPI Waveshare
  • Konfigurasi ESP32-S3 mendukung flash lewat browser, rendering scene di perangkat, update OTA, dan operasi berbasis baterai melalui deep sleep di antara refresh
  • Setiap image firmware ESP32 hanya menyertakan satu driver panel yang dipilih

Pembuatan casing dan contoh jadi

  • FrameOS Case Maker membuat enclosure parametrik untuk cetak 3D yang disesuaikan dengan panel yang didukung dan layout Raspberry Pi
  • Pengguna dapat memilih template, menyesuaikan kedalaman dan bezel, lalu menambahkan gantungan dinding, kickstand, potongan USB-C, dan pilar sekrup sebelum mengunduh STL
  • Case Maker menggunakan basis data hardware yang sama dengan dokumentasi untuk menyediakan dimensi dasar konfigurasi Waveshare dan Pimoroni
  • Case Maker dapat digunakan di Open Case Maker
  • Contoh hasil jadi menampilkan panel Spectra 6 dari Waveshare dan Pimoroni, casing slim cetak 3D, daya USB-C, dan konfigurasi software FrameOS dalam satu paket

1 komentar

 
GN⁺ 2024-01-04
Komentar Hacker News
  • Proyek kecil yang menarik. Dua tahun lalu aku membuat bingkai Arduino eInk 7 warna sebagai hadiah, dan bagian tersulitnya adalah harus memotong gambar sendiri, melakukan dithering, dan menyesuaikan palet warna agar tampilannya lumayan bagus di layar
    Kalau saja FrameOS yang menangani ini, sepertinya aku bisa menghemat beberapa jam waktu yang habis untuk pengeditan dan pengujian manual
    Akhirnya tahun ini aku membelikan orang yang sama bingkai Aura karena menambahkan foto dari jarak jauh terlalu menyiksa

    • ImageMagick bisa melakukan pemrosesan batch gambar dengan palet terbatas. Tidak ada alasan untuk melakukan semuanya secara manual
    • Aku ingin tidak ada orang yang harus memotong gambar, melakukan dithering, dan pengindeksan warna sendiri. Ini adalah bagian yang seharusnya ditangani oleh perangkat lunak FrameOS
      Kalau memakai sesuatu seperti bingkai Inky Impression 7 warna, ini sebenarnya sudah berjalan, karena kebanyakan perangkat lunak dan driver terkait memang sudah melakukan proses itu
  • Ini bisa sangat membantu untuk kios medis, seni digital, dan signage
    Permintaan untuk seni digital di rumah sakit cukup besar. Aku pernah menjadi arsitek desain teknologi di SFGH dan UCSF, manajer implementasi teknologi di El Camino Hospital, serta direktur operasional TV Vizio
    Aku pernah mengevaluasi, membeli, dan memasang sistem seperti ini beserta sistem wayfinding rumah sakit, dan bahkan menghabiskan ratusan ribu dolar untuk seni digital yang diputar berulang di layar lobi lift atau kamar pasien, tetapi perangkat lunaknya buruk sekali
    Di lobi El Camino Hospital, sistem digital signage-nya sangat jelek sampai beberapa perangkat harus diganti dengan Mac Mini agar VLC bisa memutar MP4 secara loop
    Karena itu, menurutku sistem seperti ini akan bagus jika dipakai bersama Pi Zero
    Bahkan wayfinding tampaknya bisa diimplementasikan dengan elegan memakai ini. Kalau yang dimaksud dengan “interaktif” adalah bisa menjalankan web app/app di Pi, lalu saat idle kembali ke pemutaran loop seni digital, itu akan bagus
    Pasar seni digital, signage, dan wayfinding butuh proyek pendatang baru yang berani untuk mengguncang pasar ini. Kalau saat itu Pi sudah ada, sepertinya aku akan langsung memakainya
    Aku penasaran apakah ini bisa dipasang juga di tablet Android TCL murahan yang kudapat dari T-Mobile. Menarik juga kalau kontrol lampu Feit Electric ikut dilihat
    Pilihan paling menguntungkan untuk perangkat/OS seperti ini tampaknya adalah signage informasi transportasi untuk transportasi regional seperti BART. Kuncinya adalah membuatnya sehingga orang yang paling tidak paham teknologi di dalam organisasi pun bisa memasang, mengatur, dan menampilkan tanpa salah
    Transportasi regional Sacramento punya banyak layar, tetapi hampir tidak ada informasi berguna di sana
    Kalau naik kereta di APAC, ada layar LCD di dinding atas yang menampilkan peta status. Kalau naik kereta di Amerika, yang ada di dinding atas hanya urine dan feses, sementara peta status tidak ada di mana-mana

    • Kalau layar dipasang di kereta Amerika, sepertinya urine dan feses itu akhirnya juga akan menempel di layar tersebut
    • Memasang Mac Mini hanya untuk memutar file MP3 adalah pemborosan uang yang keterlaluan. Pakai saja pemutar MP3 portabel supermurah seharga 10 dolar
      Rasanya gila melihat uang dibuang seperti ini di Amerika, sementara di jalanan ada orang yang mengemis makanan
    • Aku penasaran bagaimana pendapat orang tentang BrightSign. Perangkat lunak bawaannya memang cukup buruk, tetapi dari sisi kemungkinan pemrogramannya sangat bagus untuk kami. Kami belum sampai tahap mendalaminya
  • Ini mengingatkanku pada Chumby. Produk itu punya potensi besar sekali, tetapi ditinggalkan terlalu cepat
    Ada banyak tempat di rumah yang bisa memakai layar yang pintar, bisa dikendalikan, dan mudah diutak-atik dengan low-code, tetapi aku hampir tidak punya waktu untuk menelitinya sendiri. Senang sekali melihat proyek ini hari ini

    • Aku sedang membuat kalender eInk siap pakai. Setelah mengembangkan kontennya sendiri, kamu juga bisa menyajikannya ke layar sebagai .png atau .jpeg dari URL web
      https://shop.invisible-computers.com
    • Aku juga tidak punya waktu untuk menelitinya sendiri, jadi aku berpikir untuk membeli iPad bekas dan menempelkannya di dinding
      Bisa dapat layar yang terang, dan apa pun yang ingin kulihat tinggal perlu bisa tampil di web browser
  • Keren sekali. Tahun lalu aku membuat sekumpulan skrip untuk bertukar gambar e-ink lewat Gmail dan menamainya DispatchPi, dan kalau program seperti ini sudah ada saat itu, pengembangannya pasti akan jauh lebih cepat
    https://github.com/malcolmosh/dispatchPi/blob/main/README.md
    Selama ini aku harus selalu SSH ke Pi lewat terminal, lalu memperbarui skrip dengan klien FTP FileZilla dan VSCode, jadi cukup merepotkan
    Aku juga baru menyelesaikan proyek dashboard dan berencana merilisnya segera, dan sedang mempertimbangkan mengganti driver bingkainya ke ESP32 agar bisa berjalan dengan baterai. Soalnya ESP32 mengonsumsi daya jauh lebih sedikit daripada Pi Zero
    Kalau ada waktu, aku mendukung kompatibilitas ESP32

    • Aku penasaran sejauh mana pengembangan ESP32 sudah dilakukan. Rendering gambar ternyata tidak sesederhana yang kukira. Dalam kasusku, layarnya bukan eInk melainkan LCD
      Daripada mencoba menampilkan gambar acak dengan library ESP, ternyata lebih mudah dan lebih andal menyesuaikan gambar ke ukuran dan format tertentu sebelum dikirim ke ESP32/layar
    • Aku penasaran perangkat keras apa yang dipakai. Aku baru saja menyelesaikan proyek serupa dan ingin lebih banyak bereksperimen dengan e-ink, tetapi papan driver perangkat keras yang dipasang ke Pi harganya hampir semahal layar e-ink itu sendiri
  • Gambar pertama di halaman itu adalah editor, dan wow, benar-benar luar biasa. Ada bagian ini dalam penjelasannya
    “Diagram Editor: antarmuka drag-and-drop untuk menyusun aplikasi Nim menjadi adegan. Bisa mem-fork dan memodifikasi aplikasi yang sudah ada seperti ‘OpenAI image’ dan ‘Text overlay’ agar sesuai kebutuhan. Semua field dapat dioverride dengan potongan kode inline.”
    Kelihatannya benar-benar rapi. Rasanya pasti butuh pekerjaan dalam jumlah besar. Saya penasaran dibuat dengan apa, dan juga penasaran apakah editornya ditulis dengan Nim
    Setelah menulis adegan, saya juga penasaran apa yang sebenarnya dijalankan. Apakah ini menjalankan runtime yang mirip editor tapi dengan mode presentasi, atau mengeluarkan program Nim baru untuk menjalankan program-program Nim lain, saya tidak tahu
    Saya juga penasaran apakah aplikasinya dipanggil sekali per kesempatan, atau terus berjalan dan berkomunikasi secara persisten. Saya juga ingin tahu apa yang memicu awal frame, dan bagaimana komposisinya dilakukan
    Terasa seperti, meskipun dipakai untuk smart frame, sebenarnya mereka telah membuat sistem pemrograman berbasis alur serbaguna yang sangat keren

    • Terima kasih atas masukannya
      Editor/kontrolernya sendiri adalah aplikasi React+Kea, dan bagian diagramnya memakai React Flow sementara backend-nya Flask
      Saat ini, untuk menguji apakah aplikasi yang dibuat bekerja, Anda harus men-deploy ke frame. Jika memakai RPi 5 yang cepat untuk pengujian, loop umpan balik biasanya sekitar 30 detik, Zero W2 sekitar 1 menit, dan Zero W sekitar 2 menit. Ini tidak ideal jadi ingin saya perbaiki
      Idealnya saya ingin memakai backend JS milik Nim untuk membuat “frame” yang bisa langsung dijalankan di browser untuk pengujian
      Untuk menjawab pertanyaan lain, sistem FrameOS berjalan saat boot dan semua aplikasi dikompilasi menjadi satu biner yang dijalankan sesuai instruksi adegan. Saat event render dikirimkan, frame baru akan dirender, dan event ini bisa terjadi otomatis secara berkala atau berdasarkan permintaan
      Frame mengirim log ke kontroler, tetapi selain itu dapat beroperasi sepenuhnya secara mandiri
    • Dari screenshot saja kelihatannya seperti dear imgui. Widget serupa bisa dilihat di sini: https://github.com/TimoSalomaki/awesome-dear-imgui
      Sunting: saya salah, ternyata sebenarnya React Flow
      https://github.com/FrameOS/frameos/blob/037af53e94a3b47ce5df...
      https://reactflow.dev/
  • Kelihatannya sangat menarik. Apakah benar memahami ini sebagai bukan OS sungguhan, melainkan perangkat lunak yang berjalan di atas OS Pi

    • Secara teknis benar. Bahkan ini jenis benar yang paling baik, tetapi ada sedikit nuansa pada pertanyaan ini
      FrameOS adalah biner hasil kompilasi yang berjalan di atas Linux. Saat ini Anda perlu memasang “Raspberry Pi OS Lite” tanpa lingkungan desktop ke kartu SD sebelum memasang FrameOS sendiri. Jadi bisa dianggap sebagai “sekadar aplikasi”
      Namun ini karena proyeknya masih tahap awal dan itu cara tercepat untuk memulai. Langkah berikutnya adalah melihat seberapa banyak yang bisa dihilangkan. FrameOS adalah satu biner statis terkompilasi, jadi mungkin tidak butuh banyak selain kernel Linux. Kalau begitu, apakah itu menjadi OS sungguhan? Android juga memakai kernel Linux tetapi dianggap sebagai OS tersendiri
      Saat aktif, FrameOS mengambil alih seluruh sistem, memiliki folder apps/ dan drivers/ sendiri, dan dalam banyak hal sudah berperilaku seperti sistem operasi. Saya juga sedang mempertimbangkan menjalankannya di ESP32, dan mungkin perlu menambahkan drivers/wifi/. Jika ia berjalan tanpa OS apa pun di bawahnya, apakah saat itu layak disebut OS? Biar kalian yang menentukannya
      Jika Anda bertanya apakah ini sistem operasi, bagi saya iya, tetapi tidak masalah jika Anda melihatnya berbeda
      Di pekerjaan saya yang sebenarnya di PostHog, kadang mereka menyebut diri sebagai “Product OS”, dan itu terasa lebih mengganggu. Karena kumpulan web app jelas bukan sistem operasi dalam arti tradisional. Saya juga pernah melihat hal-hal non-OS murni diberi akhiran -OS. Agak mengganggu, tetapi terutama karena saya hidup di masa ketika “pakai OS apa?” adalah pertanyaan yang menentukan identitas
      Bahasa terus berubah, dan “sistem operasi” sekarang tampaknya merujuk pada lebih banyak hal, tergantung siapa yang memikirkannya, daripada yang saya atau Anda bayangkan
    • Kelihatannya begitu. Jika begitu, kemungkinan besar ini bisa berjalan di board lain dengan sedikit modifikasi
    • Benar. Ini tampak lebih seperti aplikasi layar penuh yang bisa dikendalikan dari jarak jauh
    • Saya benar-benar penasaran apa itu OS. Bukan menyindir. “OS” sekarang adalah istilah yang definisinya cukup longgar. Android dan Ubuntu memakai kernel yang nyaris sama, tetapi jelas merupakan sistem operasi yang sangat berbeda
      FrameOS memakai Nim, jadi bisa di-port agar berjalan bare metal tanpa kernel. Berkat dispatch asinkron, Nim juga menyediakan multitasking kooperatif yang ringan
      Saat ini FrameOS bisa dilihat sebagai OS yang hanya berjalan di atas kernel Linux, atau jika mau, sebagai user space. Tetapi tidak ada alasan mengapa ini tidak bisa di-port agar berjalan langsung di mikrokontroler
  • Kelihatannya keren. Saya memang ingin menyiapkan layar e-ink bersama Home Assistant, jadi saya akan mengecek ini
    Di tulisan “Why FrameOS” ada foto yang tampak seperti layar e-ink yang menampilkan dasbor Home Assistant, dan di bawahnya tertulis “tapi sisi perangkat lunaknya berantakan”. Saya penasaran masalah apa tepatnya yang ada sebelum membuat FrameOS. Setidaknya dari fotonya, kelihatannya berfungsi dengan baik
    Saya juga penasaran apa maksud kalimat ini sebenarnya: “GPT4 Support: Minta LLM favorit Anda menulis dan men-debug aplikasi FrameOS.”

    • Penulis mengintegrasikan GPT-4 ke app builder untuk membuat tampilan kustom di FrameOS, sehingga bisa meminta GPT memperbaiki kode dasarnya. https://frameos.net/blog/gpt4-support
      Begitu melihat ini, saya merasa ini menegaskan tren bahwa aplikasi baru ke depan akan memasukkan integrasi LLM sejak awal. Rasanya memang tidak ada alasan untuk tidak melakukannya. Jika digunakan dengan benar, LLM bisa sangat meningkatkan pengalaman pengguna di hampir semua aplikasi
    • Soal ChatGPT, ini tampak seperti lelucon cerdas yang menekankan bahwa ini adalah produk yang tidak memerlukan integrasi tambahan
      Semacam lelucon bahwa tidak perlu membuat sesuatu seperti AI sosial otonom berbasis blockchain untuk cloud yang laku keras di pasar private equity belakangan ini
  • Apakah ada alternatif bagus agar tablet Amazon Fire lama tidak berakhir jadi limbah elektronik? Basisnya Android

    • Cukup nonaktifkan semua aplikasi bawaan yang tidak perlu dengan Fire Toolbox. Jika membeli lisensi Fully Kiosk, perangkat itu bisa diubah untuk banyak kegunaan praktis
      Secara pribadi, saya memakai tablet Amazon Fire di rumah sebagai driver audio untuk Snapcast. Tiap tablet punya USB, Wi-Fi, Aux 3,5 mm, dan baterai internal, jadi sangat cocok untuk penggunaan ini, apalagi saat diskon harganya hanya 45 dolar per unit
    • Saya penasaran apa masalahnya di situ. Bukankah Anda bisa memasang dan menampilkan aplikasi Android apa pun?
    • Bootloader-nya terkunci. Kalau ingatan saya benar, model 2015 adalah model terakhir yang bisa dibuka karena ada bug yang memungkinkan unlock dengan men-short beberapa pin
      Tanpa bootloader yang sudah dibuka, Android mungkin masih bisa di-root, tetapi Android atau ROM itu sendiri tidak bisa diganti
      Lagi pula itu juga tidak terlalu berarti. Karena ini MediaTek, struktur partisi dan model driver dari era itu umumnya berantakan. Akan sulit membuat FrameOS berjalan dengan wajar dan elegan di perangkat keras seperti itu
  • Sangat keren. Ada banyak proyek yang mencoba meniru hal serupa, tetapi sangat sedikit yang punya tingkat kematangan seperti ini, terutama di sisi pembuatan
    Secara pribadi saya berharap ada dukungan untuk perangkat eINK hemat daya dengan ESP32 bawaan seperti seri InkPlate. Meski begitu, melihat ini membuat saya berpikir untuk beralih ke Pi

    • Akan bagus jika FrameOS mendukung ESP32. Sampai dua hari lalu, FrameOS adalah aplikasi Python yang lambat dan berjalan lewat interpreter. Hari ini, itu sudah menjadi biner static-linked berukuran 3MB
      Ruang kosongnya mungkin akan sangat sempit dan beberapa fitur seperti threading kemungkinan harus dipangkas, tetapi secara teori seharusnya bisa dijalankan
      Hanya saja masih banyak pekerjaan untuk membuat versi Raspberry menjadi benar-benar bagus, jadi saya tidak berencana menangani pekerjaan itu dalam waktu dekat
  • Senang melihat lebih banyak perangkat lunak muncul di bidang seperti ini
    Sedikit terkait, saya sedang mencari layar 32 inci atau lebih yang bisa dipakai sebagai bingkai foto. Selain Samsung The Frame, saya belum menemukan produk lain, dan itu cukup mengejutkan untuk use case sesederhana ini
    Sejauh ini hanya itu yang saya temukan. TV dan monitor konsumsi dayanya kurang bagus kalau dibiarkan menyala 24 jam. e-ink berwarna biasanya mentok di sekitar 13 inci. Samsung The Frame punya fitur dan tampilan yang bagus, tetapi mahal, dan juga punya kekurangan karena itu Samsung
    Saya penasaran apakah ada produk yang layak direkomendasikan

    • Saya penasaran bagaimana perangkat bingkai khusus bisa lebih hemat daya dibanding layar TV biasa. Pada akhirnya bukankah semuanya bermuara pada komponen dasar yang sama?