Florian Wesch

info-beamer hosted 9 released

Posted Jul 10 2018 by Florian Wesch

The info-beamer hosted operating system gets a new major release.

Updating to the latest release

You don't have to do anything manually. Within the next couple of weeks, your devices will be upgraded automatically. Please get in contact with support if you have any questions.

If you want to upgrade manually, you can click on the Activate stable channel option in the Manage menu on the device page of the device you want to upgrade. This will install the (probably already downloaded) new version and reboot the device once.

New Features

Support for the CM3-PANEL hardware

info-beamer hosted now supports the CM3 Panel. Learn more about it in an earlier blog post. Installation is as easy as unzipping a single ZIP file to an empty SD card and powering up the device.

Pi3+ support

The Pi3+ has been supported for a while using the testing version of the info-beamer hosted OS. With this release, the stable version of the OS now supports the Pi3+ as well, so there's no need to choose between different install.zip version while setting up a new device.

Rapid development mode (dev-mode)

This release adds a new feature that allows you to rapidly write new packages. You can instantly see changes made to a package on an info-beamer device of your choice. So every time you save in your editor, you instantly see the changes on the screen. There will be a dedicated blog post about this feature soon. Stay tuned!

Experimental DNS over HTTPS (DoH) support

Security is something we put a lot of work into. As a result we don't use plaintext protocols unless there's no other option. As an example: All transfers of content and configuration to your devices are always encrypted. You can read more about this in our security documentation.

Lately there has been a push for using DNS over HTTPS (DoH). This replaces the plaintext DNS protocol with an encrypted way to query DNS servers. We now support encrypted DNS queries to the 1.1.1.1 and 8.8.8.8 resolvers. Just put an empty file /config/dnscrypt on your SD card and start your device. We use the dnscrypt-proxy daemon for that and all local DNS query will use encrypted queries once this feature is enabled.

Allow access to the Pi camera

Package services now have access to a connected Pi camera module. This allows your package service to use the camera for capturing videos/image. We put together a privacy friendly proof of concept using this to detect people looking at the device using only on-device software.

Full CEC support

We now have an additional service running on the device that interfaces with any connected CEC compatible screen. The service forwards button presses on your TV remote to the running info-beamer code. This allows you to build packages that use the remote control as input without writing additional code yourself. See this blog post for more information or try the "Live Streaming" package that uses the remote to switch between streaming sources you define:

Push Sync for even faster syncing

Previously a configuration change to any of your setups resulted in the following sequence of events:

  • We generate a new sync file that describes the new device state.
  • We upload this file to our storage servers.
  • We notifiy your device.
  • Your device downloads the sync file and applies the changes.

We optimized this so the sequence is now:

  • We generate a new sync file that describes the new device state.
  • We upload this file to our storage servers.
  • We notifiy your device and directly push the new configuration to it. The device can apply the changes directly without an additional network request.

In addition we also optimized the way changes are applied. Switching a setup or changing its configuration is now even faster than before and almost immediate in most cases.

Encrypted sync files

Related to the previous improvements we now also encrypt sync files using a per-device key. Of course sync files were always transferred using HTTPS, so an outside observer couldn't look into them. But they were still stored unencrypted on the storage server. We felt like this could be improved and now sync files are stored encrypted so we don't have to trust the storage server. The next step will be to also encrypt all asset and package content as well. That way it's completely irrelevant that we use S3 as our storage service as they only ever see encrypted content. Stay tuned.

More IO optimizations to minimize SD card writes

We already did have lots of optimizations on how we use the SD card in your device. This release now adds a few more to minimize SD card write access and should increase the durability of your SD cards even more:

  • We now accept 10 minutes of lost writes. If you power cycle a devices directly after it downloaded a lot of new content, that content might be lost. Of course the robust syncing mechanism of info-beamer hosted makes sure that those files are downloaded again if required.
  • We accept more dirty pages. Package services that generate a lot of local files will result in a lot less actual IO requests. A services that overwrites the same file constantly almost generates no IO now.

Fixed service network permissions problem

Under certain circumstances, switching between setups that included package services prevented those services from using the network despite having the network permission configured. This bug is fixed now and networked services now reliably work.

Device sensor info includes MAC address

The MAC address of the used network interface is now included in the sensor response in .net.mac.

Process memory monitoring

All major processes running on a device are monitored for IO and memory usage. These numbers are returned in the sensor response. There will be a new visual way to interpret these values on the device detail page in the future.

Restarting a package service now deletes all its files

Package services can place files anywhere in the info-beamer monitored path at /space/root as well as /tmp. Previously only locally created files in the current node directory as well as file in /tmp would be deleted when replacing a running package service. Now all files in /space/root and childs created by the package service will be removed. This allows more interesting interactions between different node directories and their package services.

A process regarding future incompatible info-beamer changes for package developers

We got some feedback regarding future incompatible changes happening to the info-beamer pi player software. This stable release originally included the following change to info-beamer pi as noted in the info-beamer pi release notes:

 * POTENTIAL INCOMPATIBILITY:
   Previously it was possible to 'resource.open_file'
   directories. This made no sense as the resulting openfile
   object could not be consumed in any way. This version now
   throws an error if you try to open_file a directory.

We didn't expect this change to have any effect on running packages. It seems we were wrong and a single device didn't show its content after upgrading. Obviously this isn't acceptable. So in the future, we'll do a better job at making sure package developers are aware and have plenty of time to implement required changes should any kind of incompatible change happen to info-beamer pi again:

  • The stable release announcement blog post will include a section detailing any upcoming incompatible change in the following stable release.
  • The stable release will run a compatible info-beamer pi version that generates log warnings if an incompatible feature is used in a package.
  • We'll actually implement the change in the following stable release, so there's a lot of time to test packages in the testing release of info-beamer hosted.

Since the whole process is a bit annoying for everyone involved, we try to avoid any incompatible changes, just like we did before: Since info-beamer hosted has been released, we only made three changes in total that might have triggered problems for some edge cases. Only the open_file change actually caused a problem.

As for now, we've rolled back the resource.open_file change for this stable release and since it's now being implemented in the next release, here's the section about that:

Future incompatible changes to info-beamer pi

We'll implement the following change to info-beamer pi in the next stable release:

 * POTENTIAL INCOMPATIBILITY:
   Previously it was possible to 'resource.open_file'
   directories. This made no sense as the resulting openfile
   object could not be consumed in any way. This version now
   throws an error if you try to open_file a directory.

As a package developer, make sure that you only call resource.open_file on actual files and not on directories. Trying to open_file a directory will result in a runtime error in the next stable release 10 of info-beamer hosted.

Get started with info-beamer hosted


Read more...


info-beamer.com offers the most advanced digital signage platform for the Raspberry Pi. Fully hosted, programmable and easy to use. Learn more...


Get started for free!

Trying out the best digital signage solution for the Raspberry Pi is totally free: Use one device and 1GB of storage completely free of charge. No credit card required.


Follow @infobeamer on twitter to get notified of new blog posts and other related info-beamer news. It's very low traffic so just give it a try.

You can also subscribe to the RSS Feed RSS feed.


Share this post:

Share using Twitter


Questions or comments?
Get in contact!