All Projects → OpenframeProject → Openframe

OpenframeProject / Openframe

Licence: gpl-3.0
Openframe Frame Controller (alpha)

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Openframe

adif
用标准c语言开发的常用数据结构和算法基础库,作为应用程序开发接口基础库,为编写高性能程序提供便利,可极大地缩短软件项目的开发周期,提升工程开发效率,并确保软件系统运行的可靠性、稳定性。
Stars: ✭ 33 (-87.96%)
Mutual labels:  frame
Pigeon
Pigeon is a simple 3D printed cloud home surveillance camera project that uses the new Raspberry Pi Zero W
Stars: ✭ 266 (-2.92%)
Mutual labels:  raspberry-pi
Glodroid manifest
Android manifest for GloDroid (AOSP for the world's most accessible development platforms)
Stars: ✭ 266 (-2.92%)
Mutual labels:  raspberry-pi
I2c Bus
I2C serial bus access with Node.js
Stars: ✭ 253 (-7.66%)
Mutual labels:  raspberry-pi
Blinkt
Python Library for Blinkt; 8 APA102 LEDs for your Raspberry Pi
Stars: ✭ 258 (-5.84%)
Mutual labels:  raspberry-pi
Octoprint Enclosure
OctoPrint Enclosure Plugin
Stars: ✭ 267 (-2.55%)
Mutual labels:  raspberry-pi
dataflow-bundle
Data processing framework inspired by PortPHP
Stars: ✭ 13 (-95.26%)
Mutual labels:  frame
Amiberry
Optimized Amiga emulator for the Raspberry Pi and other ARM boards
Stars: ✭ 270 (-1.46%)
Mutual labels:  raspberry-pi
Nhl Led Scoreboard
🚨 Display NHL live score, stats, and more of your favorite teams, on a Raspberry Pi driven RGB LED matrix. 🚨
Stars: ✭ 266 (-2.92%)
Mutual labels:  raspberry-pi
Ofelia
A real-time cross-platform creative coding tool for multimedia development
Stars: ✭ 269 (-1.82%)
Mutual labels:  raspberry-pi
Arozos
General purposed Web Desktop Operating Platform / OS for Raspberry Pis, Now written in Go!
Stars: ✭ 252 (-8.03%)
Mutual labels:  raspberry-pi
Home Assistant Config
🏠 Fully documented Home Assistant configuration for a smart-looking place. 😎 Be sure to ⭐️ my repo and copy ideas!
Stars: ✭ 258 (-5.84%)
Mutual labels:  raspberry-pi
Kube Vip
Kubernetes Control Plane Virtual IP and Load-Balancer
Stars: ✭ 262 (-4.38%)
Mutual labels:  raspberry-pi
frame-by-frame
Frame By Frame - Chrome Extension. Move your mouse cursor over any video and use keyboard arrows to switch frames.
Stars: ✭ 38 (-86.13%)
Mutual labels:  frame
Raspberry Pi Cross Compilers
Latest GCC Cross Compiler & Native (ARM & ARM64) CI generated precompiled standalone toolchains for all Raspberry Pis. 🍇
Stars: ✭ 261 (-4.74%)
Mutual labels:  raspberry-pi
samanemvc
PHP Framework using MVC model developped by Ngor SECK!
Stars: ✭ 32 (-88.32%)
Mutual labels:  frame
Kupiki Hotspot Script
Create automatically a full Wifi Hotspot on Raspberry Pi including a Captive Portal
Stars: ✭ 265 (-3.28%)
Mutual labels:  raspberry-pi
React Ssd1306
📟 A React Renderer for SSD1306 OLED chip on Raspberry Pi.
Stars: ✭ 273 (-0.36%)
Mutual labels:  raspberry-pi
Raspibackup
Backup and restore your running Raspberry
Stars: ✭ 268 (-2.19%)
Mutual labels:  raspberry-pi
My Pihole Blocklists
Create custom pi-hole blocklists
Stars: ✭ 269 (-1.82%)
Mutual labels:  raspberry-pi

Openframe Frame Controller

Friendly disclaimer: This project is under active development; we cannot promise that everything will work 100%. We encourage you to try it out! Feedback and pull requests are welcome :)

The Openframe controller is the software that runs on the frame itself (i.e. the RPi), acting as a process manager for starting, stopping, and transitioning between artworks. It communicates with an Openframe API Server server via a REST API, and connects to a global event system allowing for realtime updates. The idea is to work towards a system which supports the basic goals of Openframe, guided by a handful of pilot use cases.

The block diagram below represents a proposed architecture for the Openframe platform. It will continue to evolve as development on the project progresses.

alt tag

Modules

  • controller.js - manages the actions around controlling the frame (changing artwork, updating settings, etc.)
  • process-manager.js - manages starting and stopping processes for displaying artworks
  • extensions-manager.js - manages installing and initializing extensions (aka plugins)
  • frame.js - a wrapper for the Frame model, which gets persisted to
  • user.js - a wrapper for the User model
  • pubsub.js - creates and manages connection to global event system
  • rest.js - creates and manages connection to REST API via Swagger.js
  • downloader.js - utility for downloading files
  • config.js - configuration options

Usage

FYI: Pardon the lack of detail and documentation. We'll be updating frequently over the coming weeks / months!

If you're just trying to get a frame up and running on a Raspberry Pi, please check out the Openframe User Guide.

If you're interested in hacking on Openframe, feel free to fork/clone this repo. Run npm install to install the deps, then start up the openframe software:

$ npm start

Upon startup, the application will prompt you for your Openframe username and password, and a name for this frame. You can run this on a mac or linux machine (windows untested), though various artwork format extensions are likely to be developed with a specific target platform in mind.

For DEBUG output, set the DEBUG env var:

$ DEBUG=* npm start

Configuration files

When you run npm install, the install.sh script will be executed. This script creates a hidden directory, .openframe, in your user home folder (/home/{username}/.openframe), and copies the default .ofrcconfiguration file there. The .ofrc file contains the server settings — by default this will point to the hosted API server at openframe.io, but if you're running a local server for development or are hosting your own API server you can update the settings in .ofrc accordingly.

After starting the application and answering the prompts, two additional files are created in the .openframe dir, frame.json which stores the frame state, and user.json which stores user data.

Extensions

Extensions are npm packages which add functionality to the frame, either by adding support for a new artwork format (i.e. media type) or by adding other functionality.

For more info on extensions, see the Openframe-Extension repo.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].