Visionect Software Suite

The release notes cover the changes to the Visionect Software Suite and implications for end users. Please consult these before upgrading to the new version of the Suite.


The Visionect Software Suite was previously known as Visionect Server.

Software Suite version 7

Release 7.7.0


  • Introduced mandatory licenses for the VSS

Release 7.6.7


  • Minor fix for AC renderer

Release 7.6.6


  • Added support for BSSID in status
  • Some fixes for AC devices

Release 7.6.5


  • Fix for the new 42” display ID not being recognized
  • Fix for sleep manager causing protocol errors
  • Fix for session cleanup not working after NM restart

Release 7.6.4


  • Fix for default backend
  • Fix for network manager not handling changes to device
  • Smaller fixes to logging

Release 7.6.3


  • Fixes for the log outputs

Release 7.6.2


  • Fix for docker build
  • Upgrade of certain packages due to bugs

Release 7.6.1


  • UI fix in advanced device settings
  • Fix for when ACRenderer2 is default renderer
  • Fix for gateway creating unreachable engine sessions

Release 7.6.0


  • Fix for 32” partial updates toggle
  • Fix for the WebKit and AC Renderer logging

Release 7.5.0


  • Fix for not being able to set different default backends issue
  • Fix for the image gallery issue
  • Retry logic added to firmware upgrade
  • Improvements on infrastructure

Release 7.4.6


  • Fix nil pointer exception when changing the webkit backend
  • Multiple CBOR requests hangs the connection

Release 7.4.5


  • Fix differences between new and old status and the comparing process

Release 7.4.4


  • Improves a process in Network Manager
  • Added old/new status testing


  • Fix device status missing in device detail API response
  • Fix issue with termination of AC renderer process

Release 7.4.3


  • Added log id of connection for AC renderer
  • Small code refactoring and fixes for AC renderer

Release 7.4.2


  • Fixes production build

Release 7.4.1


  • Fix crashes with the gateway
  • Code changes for status requester and bootloader upgrade

Release 7.4.0


  • WebKit upgraded to a newer version
  • Base image updated to Ubuntu 22.04
  • Small code refactoring
  • Add JSON logger in WebKit

Release 7.3.7


  • Move all metrics from vss-middleware to VSS itself
  • Enabled profiling to ease debugging sessions
  • Add default app config for AC render


  • Fix Go routine
  • Fix with AC renderer

Release 7.3.6


  • Fix with sending on nil channel
  • Small code changes and refactoring

Release 7.3.4


  • Added support for new 42” displays
  • Changed backend functionality for AC render and fixes in WebKit render
  • Memory migration pack sessions
  • Smaller code changes and refactoring


  • Fixed a crash in AC renderers
  • Fixed local tests

Release 7.3.3


  • Test memory migration with unavailable engine
  • Hide max sessions when memory migration is configured


  • Implement acking queue (FIFO)
  • Fix crash in network manager
  • ACrender2 fixes

Release 7.3.2


  • Fix a rare occurrence of panic when checking for RSS limit of acrender process
  • If acrender doesn’t define app, don’t try to download it wait for it to be configured instead

Release 7.3.1


  • Fix the UUID in ACrender2
  • Fix device sleep on AC render
  • Server image size optimization

Release 7.3.0


  • Add new and improved ACrender2


  • Fix the issue of Joan 6 devices not going to sleep when renderer is set to ACrender

Release 7.2.5


  • Add user param as a first param to more CRUD methods

Release 7.2.4


  • Add user roles
  • Add automatic cache refresh
  • Add session restart callback to AC
  • Add unassigned sessions metric


  • Fix add user bug
  • Fix downloading AC app every time
  • Fix status callback in AC

Release 7.2.3


  • Add renderer name to status
  • Changes in the engine server templates
  • AC app download should be retried when one fails


  • Retry AC store download on errors
  • Fix AC renderer
  • Fix TCLV write response
  • Fix memory leaks

Release 7.2.2


  • Add reserved and accept memories to engine to better handle memory


  • Fix memory leaks in AC renderer

Release 7.2.1


  • Print out the memory of session that is restarting
  • Report rss memory immediately (use defaults)
  • Watchdog should terminate session when under memory pressure


  • Fix JSON logger
  • Fix memory migration

Release 7.2.0


  • Add memory watchdog to engine
  • The status is sent to render process as soon as it arrives
  • Add memory session migration strategy


  • Don’t run AC stack in separete thread
  • Restart AC process to apply settings
  • Don’t panic on setting config html fields
  • Ignore TCLV response when AC render is terminated

Release 7.1.12


  • Simplify startup configuration and lower memory usage
  • Change gateway size to allow uploading larger AC apps to device
  • [AC] implement json logger in ac-render
  • [AC] handle AC apps automatically

Release 7.1.11


  • Fix logging in web API in case of an error
  • Upgrade to handle new proximity threshold status
  • Upgrade Go and third-party libraries
  • [AC] fix ac-renderer crashes by catching up to the libac-stack changes
  • [AC] Set proper device screen size immediately so there is no need to restart the renderer process
  • [AC] Move image conversion completely to C

Release 7.1.10


  • Use TLS certificates for device communication
  • Prevent session restarts on TLS errors

Release 7.1.7


  • Fixed go routine
  • Fix memory leaks on device update

Release 7.1.6


  • Prevent panic when device doesn’t have enough displays configured (only fix in 7.1.5 version)
  • Upgrade to handle DTIM status
  • Fix RequestedFirmware set blocking auto update from picking newer firmware

Release 7.1.4


  • Add millisecond precision to the log time stamps when logging into the logstash
  • Small code changes

Release 7.1.3


  • Fix the way we handle JS errors

Release 7.1.2


  • Delay responses to the device that happen during transfers to minimize device disconnects

Release 7.1.1


  • Improved the way we communicate with the device with larger transfers e.g image transfers, ac app uploads, live image transfers

Release 7.1.0


  • New firmware API access which takes into account caching headers
  • Upgrade Go
  • Automatic TLS reload certificate feature to support the Let’s encrypt certificates that change very 90 days
  • Check for new bootloader and firmware only once per hour if device sends statuses very frequently


  • Stop sending images to device after a few NACK’s

Release 7.0.7


  • device timezone settings not applied

Release 7.0.6


  • disable detecting TC mode in AC firmware


  • fixed possible firmware update boot loop
  • fixed possible deadlock conditions

Release 7.0.5


  • smaller code changes and refactoring

Release 7.0.4


  • fixed critical flaw where the Automatic firmware update would upgrade the AC device with AC firmware to a TC firmware


  • updated Go routine

Release 7.0.3


  • fixed AC device live-view image requests in web management interface
  • fixed a bug in web management where a blank screen would appear instead of the device statistics screen


  • optimizations for AC devices


  • added support for fast boot support

Release 7.0.1


  • updated Go routine


  • support AC device switching to TC mode and vice versa


  • fixed inconsistencies in network packet handling
  • don’t reboot device if there is no bootloader and FW upgrade is scheduled
  • don’t auto update device if there is a newer FW and device doesn’t have a bootloader
  • better quality of AC device live-view images

Release 7.0

The largest changes are:


  • removal of armhf (32bit arm) build and and adding arm64 build
  • removal of cookiefs component
  • upgrade and optimization of Docker images


  • report latest image CRC
  • websocket now detects disconnects and reports them tho the AC device
  • don’t flash the device if auto-update choose the same fw that’s already on device

Software Suite version 6

Release 6.4.1


  • Sessions constantly hitting RSS limit

Release 6.4.0


  • Change how we detect AC device
  • Typo in Auto(Boot)Flash flag name
  • Device backend changes when device becomes online
  • Ability to push images to HTTP backend when session doesn’t exist yet
  • Apply new TLS certificates if they were changed
  • Support data push towards AC device

Release 6.1.4


  • experimental support for new 42” displays,
  • cleaner log messages,
  • fixes for device session limits.

Release 6.1.3


  • Use another environment variable for deployment secret: the environmental variable is now called VISIONECT_SERVER_COOKIE_SECRET and replaces VISIONECT_SERVER_DEPLOYMENT_KEY. Deployments must be modified in order for cookies to work correctly.
  • Remove partial image update option if device is Place&Play 32”.
  • Remove error message flooding by removing a false-positive when executing JavaScript scripts.
  • Modify Engine health-check to contain shutdown info.

Release 6.0.8


  • users must provide a deployment UUID value in order to have persistent HTTP cookies on Docker container restarts
  • support for custom images if the server reached max. session capacity
  • fixed possible issues with handling physical buttons

Release 6.0.1


  • fixed a bug where the server stopped updating images
  • device firmware version and basic information were missing when connecting to the server for first time
  • fixed an issue where Gateway could block if logstash was unavailable

Release 6.0

This is a major release of the software that adds support for running our new next-gen applications. The Engine component recognizes the new ACRender content renderer and will run render application content to devices. The ACRender is a replacement for the HTML render but the application must be rewritten in order to be used correctly.

Software Suite version 5

Release 5.3



There was a regression where image ACK JavaScript event didn’t work. This is now fixed



  • turned off TCP keep-alive for new connections. This reduces device power consumption.



  • session restart bug fix,
  • fix for possible dead lock that could happen when WebKit session is being destroyed,
  • fixed a bug where sleep packet was not sent to the device if at that moment, the device was not assigned to any engine.



  • device doesn’t ACK/NACK timeout if the VSS deployment has bad connectivity to the firmware server,
  • fixed edge case where WebKit sessions wouldn’t respawn if the initialization process failed,
  • web management interface doesn’t break anymore if device statuses are missing,
  • gracefully shutting down Engine nodes can timeout, preventing possible VSS cluster destabilization.



  • support custom fonts for HTML renderer
  • fixes for possible HTTP cookie loss



  • Look At X-Forward-For HTTP Header
  • Fetch Last Device Status From Database
  • GPS Events In JavaScript



  • Added Option To Force Bootloader Upgrade
  • Added Default Option For PV3 Security
  • Disable Writing Of Device Statuses If Logstash Is Detected
  • More Sanity Checks Against Session Unpairing
  • Don’t Fail To Request Engine On Invalid Statuses
  • Gateway Crashes Because Of A Race Condition
  • Open Up Go Profiler Ports Regardless Of The Build Type

Release 5.2



  • writing device events sometimes fails because the server sends data towards the device before the device identifies with its UUID
  • fix Gateway crasher where certain features would access invalid resources in memory
  • fix hourly device update feature to correctly update devices by forcing full-screen of the next update, if the device was idle more than an hour.
  • added extra checks if a session wants to overwrite a cookie for a session
  • smaller RPC call optimizations

The Go run-time was updated from 1.12 to 1.13, bringing additional stability, performance and security updates.


Graceful WebKit Process Shutdown

A bug in the Software Suite causes an overwrite of HTTP cookies. In effect, paired Joan devices will be un-paired. This happens to a small percentage of devices and is fixable by manual re-pairing. We assumed this bug is caused by race conditions why the cookie database is syncing. The bug can be reproduced by forcing the device session to migrate a lot between different Engine nodes. This led us to think that new Engine nodes weren’t synced at the time of the session creation, therefore the cookie was overwritten.

We fixed the sync problem by pre-fetching all cookie data before new sessions were created (before any migration). While this change did reduce the number of un-paired sessions, the problem was still there.

Now we’re thinking that it has to do something with how we terminate WebKit processes. It is possible that the process installs signal handlers that affect the state of the cookies and might do a cleanup if the process was not gracefully

terminated. We changed this by using another process signal when killing the process.

Removal of hourly display updates

Content of devices was automatically updated hourly in order to prevent ghosting and other artifacts. This was removed as screen updates are now forced by the device firmware. Also device battery usage should now be lower.

Pass Device Statuses When Initializing HTML Sessions

If the HTML session was newly created, restarted or migrated to another Engine, the web app wouldn’t get the status of the devices inside the session. This could be clearly observed when running the demo clock app. The web app doesn’t show or shows only partial device data.

This is fixed by passing the lest recorded device status when a HTML session is created, restarted or migrated.

Log Device IP On Possible DoS Attack

If an incoming PV2 or PV3 network packet with payload length value greater than 1MiB is detected, then an error message is reported, together with the IP address of the offending device.

This change enables possible further investigation of the source IP address.

Pass Device States Synchronous And Explicit

Device state (e.g. offline,online,sending, …) must be passed to other components in order to trigger certain actions. We discovered that wrong state order causes the server to misbehave because certain actions are dependable and the order of arrival is important.

We fixed this by passing state synchronous to a queue and by making certain states to be more explicit rather than to be a part of a common function call.



  • The component now fetches all cookie data on startup instead of waiting on IO requests. This minimizes chances for race conditions.
  • Another change fixes Engine crashes by making additional error checks.


New features
  • Support for database caching using Redis
  • Updated Go stack to 1.12.4
  • Engine session limit is applied without server restart,
  • fixed possible issues with the cookie file system when used in a scaled deployment,
  • Greatly reduced calls to the PostgreSQL database server

Release 5.1


New features
  • Disable image pushes option added to the Management Interface under Devices/Advanced.
  • Database pool setting exposed as an env variable.
  • Partial updates while device reconnected fixed.
  • Fixed networkmanager crashes.
  • Truncate large backtraces
  • Log cleanups

Release 5.0


Bugfix release


Bugfix release
  • Log messages cleanup and NetworkManager fix.


Bugfix release


New features
  • Scalable architecture.
  • Support for new network protocol, version 3 (PV3).

Software Suite version 4

Release 4.8


Bugfix release
  • Fix RTT by activating a ping request.
  • Incorrect handling of working hours fixed.
  • Fixed possible engine crash.


Bugfix release


Bugfix release
  • Internal monitoring fix.


New features
  • New session scheduling algorithm.


New features:
  • Additional health check including orphaned devices.
  • If environmental variable VISIONECT_SERVER_TWO_WEEK_STATUS_HISTORY_LIMIT is set to TRUE, chart API fetch will be limited to 2 weeks.
  • Fixed showing incorrect hardware version.
  • Reconnect to gateway if RPC connection was lost.
  • Fixed possible lock if using multiple engines.


New features:
  • Automatic session limits. Enabled if VISIONECT_SERVER_AUTOMATIC_SESSION_LIMIT is enabled. Setting can be overridden by setting value to VISIONECT_SERVER_SESSION_LIMIT environment variable.
  • Preliminary PV3 protocol support.

Release 4.7


New features:
  • Multiple load balancers supported.
  • Prometheus metrics for Engine endpoint added.
  • Engine process health reporting.
  • Fixed possible Engine crash.
  • Changed default network connection settings.

Release 4.6


Bugfix release
  • Every 10th display update is a full-screen update.


Bugfix release
  • Sleep management is not ran on removed or re-added devices.
  • Display offsets are fixed when changing orientation for devices in virtual screens.
  • Partial change detection was limited to avoid processing large amounts of rectangles.
  • Charts show correct image count for devices in virtual screens.
  • Full-screen refresh after session idle.
  • Fixed N-th full-screen update.


New features:
  • Show status requests in charts
  • More precise data aggregation in charts
  • Fixed virtual screen synchronization


New features:
  • Device events, like sleep and disconnect, are now pushed to logstash together with the last device status.
  • Fixed parsing firmware checksum.
  • Device events chart now shows heartbeats made by server requests.


Bugfix release
  • Fixed TTS handling of multiple speech requests.
  • Re-enabled ARM build.
  • Fixed possible race condition when using virtual screens.
  • Fixed invalid values for certain TCLV packets.
  • Apply bootloader and firmware update settings to new devices


New features:
  • Added per-device inverse updates.
  • Log cleanups.
  • Fixed scaling issues.
  • Fixed possible deadlock between Gateway and Engine.
  • Multiple fixes for text to speech.

Release 4.5


Bugfix release
  • Fixed possible networkmanager crash, while checking idle sessions.
  • Fixed issue where image rectangles were rendered on an invalid surface
  • Fixed possible engine crash when checking migration availability.
  • Fixed Text2Speech TCLV reply timeout.


Bugfix release - AMD64 build only
  • Fixed partial update issue


Bugfix release
  • Fixing interlacing issue on Place and Play 32” devices.


Bugfix release
  • Fixed OpenCv wrapper gray to RGBA color image conversion.
  • Fixed a bug where network manager would not assign device to the engine inside existing Virtual Screen session.
  • Management Interface is now able to authenticate multipart requests.


Bugfix release
  • Improved connection stability.
  • Fixed session initialization problems on device reconnects.
  • Corrected sleeping state, where device status would be disconnected instead of sleeping.
  • Scenario where it was possible to crash gateway by sending sleep commands via JavaScript is fixed.


Bugfix release
  • Fixed possible crash when removing idle session.
  • Fixed issue where images would be applied even if virtual screen group is canceled.


Bugfix release
  • Fixed a bug where unnecessary full-screen images were pushed to devices.


Bugfix release
  • After reboot, device may get partial updates, which means that incorrect content was displayed. That is fixed.
  • Text to speech (TTS) now allows up to 1000 bytes of text instead of 255. If the limit is exceeded, JS app return error now.


New features:
  • Added battery threshold and mode TCLVs in the Management Interface.
  • Support for the new 32” Place&Play hardware.
  • Dynamic RSS calculation, based on device screen size and device application.
  • Support new image push states.
  • Improved scalability.

Release 4.4


Bugfix release
  • Fixed bug where touch events may get ignored.


Bugfix release
  • Fixed sleep schedule handler.


Bugfix release
  • Gallery interval settings are now correctly applied.
  • Device statuses are now sent to the Elasticsearch.


New features:
  • A new device status message Image Push Allowed was added, which solves the problem when device is charging but it is configured (via system_conf_set) to receive new images. Older firmware versions are not affected by this change.
  • Changes in the management interface:
    • device chart view for 7 days now shows data, aggregated daily,
    • server load indicator becomes red when load is more or equal to 3,
    • sorting preferences for device list are stored.
  • The environmental variable VISIONECT_SERVER_LOGS_TO_STDERR was deprecated.

Release 4.3


Bugfix release
  • NetworkManager crashing while updating device’s firmware bug fixed.


Bugfix release
  • Critical bug for possible ACK/NACK timeouts fixed.


New features:
  • A drop-down option was added to the device charts to select a time zone that should be used when displaying charts. The charts are updated when a time zone is selected.
  • Refactored Gateway code to comply with the new deferred session creation architecture that was introduced in the past. As a consequence, the log messages and program flow are clearer.
  • Fixed stability issues with NetworkManager.
  • Device periodic sleep manager respects device time zone.
  • Fixed a bug in Engine where deferred rectangle changes were forced to a full-screen update.
  • Fixed supervisor configuration for log files.
  • Update CA certificates on Docker container startup.
  • Fixed handling of RPC calls in NetworkManager.

Release 4.2


Bugfix release
  • Fixed issues where engine would crash because of legacy code and an edge case.
  • Fixed issues where networkmanager would crash when an engine would re-appear after crashing.
  • Fixed handling of frontlight command in protocol implementation.
  • Fixed clearing WebKit cache for sessions with the HTML backend.


New features:
  • Added per device time zone setting.
  • Fixed server instability issue caused when user keeps admin pages open for longer period of time. Application will now detect idle state and suspend unnecessary api calls to server.
  • Fixed lost region updates in virtual screen mode. Vss will not abort image responses for other devices if one of them respodes with error.
  • OpenCv C interface memory managment violations were fixed with rewrite of image processing functions in C/C++. Also not all but some of the OpenCv functions that were written using old deprecated C API were rewritten with new C++ API.


Bugfix release
  • Fixed a bug where each session connected to the database to get global settings. This caused the connections to stack and eventually take all free slots on the SQL server.
  • Fixed a bug where session reassignment on engine timeout could enter into an endless loop. Also removed possible deadlock in the same procedure.


New features:
  • Added ‘Virtual Screens’ option in web management interface.
  • The TCLV list for devices is automatically updated every 30 minutes.
  • Device working hours in web management interface can now span over the next day.
  • (internal only) The VSS source tree now uses ‘dep’ for managing external dependencies. Also the project directory layout was changed to comply with the Go community standard.
  • Minor optimizations when fetching device statuses from database.
  • The ‘Restart Services’ button was removed from the web management interface.
  • Fixed loading settings from database in WebKit processes.
  • Global settings are applied without the need to restart any of the VSS components.
  • Charts show correct data for the selected timezone.
Known issues:
  • Changing device rotation in a virtual screen requires session restart.


Bugfix release
  • Fixed partial updates on hardware, different than id 5
  • Fixed session crasher if updating timezone


New features:
  • If the VSS server is started with the VISIONECT_SERVER_LOGS_TO_STDERR environmental variable, the logs will be in JSON format and are logged to stderr.
  • Log filenames are changed in a way that both stdout and stderr are written in a single file. Therefore, there is no longer -stderr.log or -stdout.log file suffix.
  • The HTML backend now honors global settings.
  • Fixed rectangle support non Visionect Sign 6” devices


Bugfix release
  • Device session creation deferred to 20 seconds after the connection has been established. If there are more then 50 concurrent requests for new sessions, they will be created in a bulk of 50 per 20 seconds.
  • Fixed race condition in HTML backend when initializing process watchdog.
  • Fixed access to invalid pointers in networkmanager when assigning sessions.
  • The X server spawner starts with –daemon=no, preventing a restart loop.
  • Fixed display dimensions on V-Tablet 1 and 9” V-Tablet 2,
  • Fixed passing default session values when adding new session.
  • The RPC TCP ports can be reused.


New features
  • Storage: The storage component was removed and replaced by directly connecting to the database. This improves the throughput as it lowers the system load.
  • Fixed a bug where device won’t flash if flashing the firmware failed and the device reconnected to a different VSS server.
  • Fixed a bug where gateway would push an image to the device before it ACKed the status packet.
  • Fixed debugging mode for sessions.

Release 4.1


New features
  • GTIN: Added PV2 status support for device GTIN values
  • Partial updates disabled for devices with hardware revision less than 1.0.0
  • Fixed possible WebKit session crashes


New features:
  • Text to speech: Added support for Text2Speech by exposing the okular.Say function that sends arbitrary text to a specific device and triggers the speech module. Usage okular.Say([device id], [arbitrary 255-byte text]);. Sending multiple speech requests will be queued.
  • Fixed protocol state machine to follow packet timeouts on write requests, fixes issues with live view being out of sync.
  • Fixed web management not showing generic TCLV commands if the firmware server doesn’t contain updated TCLV tables with new firmwares.


Bugfix release

  • Heavy engine refactoring and code cleanups.
  • Changed product naming from Place & Play Onethree to Place & Play 13.
  • Fixed a bug where a gateway connection could hang when sending a status request and a connection was terminated.
  • Fixed a bug where a terminated X server wasn’t re-spawned.
  • Fixed a bug where networkmanager would crash because of invalid interface conversion.
  • Fixed a bug in gateway where the heartbeat interval wasn’t reset if an extension owned the connection.
  • Fixed networkmanager to always reboot the device when automatic firmware upgrades are turned on and a newer version of the firmware is available.
  • Fixed problems with image display on live view.
  • Fixed a bug in gateway where long image sends cause device disconnects due to status interval not being reset.


Bugfix release

  • Fixed networkmanager crasher at startup where the RPC subsystem was not entirely initialized while RPC calls were possible,
  • Fixed networkmanager crasher due to concurrent dictionary read and writes


New features:
  • GPS support: Added support for GPS via new HTTP API endpoints. This feature is supported only on devices using 3G for connectivity and have a GPS receiver.
  • Removed signal strength calculation for old firmwares that reported raw data for RSSI
  • Updated the Go runtime from 1.7 to 1.9 which brings minor performance improvements, bug fixes and security fixes.
  • Fixed removal of larger number of devices via web management interface
  • Fixed stability issues when server experiences larger amount of reconnnects of several hundred devices
  • Fixed marking a device to be flashed with a firmware even if the device doesn’t have a session yet
  • Fixed border update flags by adding extra UI options in web management


Bugfix release

  • supervisor bug fixed
  • fixed possible configuration corruption if VSS looses connection with the database


New features:
  • Place & Play 13” support: Added support for Place & Play Place & Play 13”.
  • Fixed stacking of Gateway goroutines when extensively using TCLV packets while devices disconnect.
  • Smaller bug fixes to gateway.
  • Fixed problem with sending image updates to device because of wrong configuration.
  • Engine code cleanups and improvements.
  • HTML backend honors timezone configuration.


New features:

  • Password change: Users are prompted to change the default admin password on first login.
  • 42” display support: Added support for 42” display.


  • Fixed session migration on new engine and engine timeouts.
  • Fixed status requester code in gateway.
  • Backend fixes to virtual screen handling.
  • Fixed possible deadlock if ‘Sleep Manager’ is enabled

Release 4.0


To upgrade from Visionect Software Suite version 3 to version 4 follow simple upgrade example.


New features:

  • System Board support: Added support for System Board 32” 1.0B0 and 1.0B1 (new DPU)
  • Extensions: Added a setting for disabling/enabling the extension to prevent I2C errors on the console for System Board 9.7”, 13.3” and 32” 1.3B1. Note: the extension is disabled by default.
  • Front light sensor: Added front-light sensor value reporting to the status packet.
  • Standby switch: Added a standby switch to System Board 32”.
  • Wpa2eu: Added a new wpa2eu setting to disable device side certificate authentication in WPA2 Enterprise mode.
  • CLI for GPS: Enabled CLI commands for GPS.
  • External voltage measurement: Added the option to measure the external voltage for System Board 32” (>0.5B0), sending the data via the status packet


  • With System Board 32”, the external temperature is now sent as part of the status packet before drawing an image.
  • Fixed the wrong IC type message before image update.
  • Fixed border support.
  • Fixed the default frontlight table.


New features:

  • Landing page: The landing page has been redesigned.
  • Basic settings: Added: a new basic device view in the web management interface, highlighting common device options.
  • Digital signage: The digital signage application was integrated as a way to create carousel content.
  • Image upload: Added: the option of uploading static images. The content is stretched or cropped automatically.
  • Intelligent updates: Added: intelligent updates that automatically detect content changes and create partial updates to be sent to the device.
  • Image optimisation: Added: image optimization techniques that enhance image quality on device displays.


  • The possible race condition in NetworkManager where a concurrent map write was possible.
  • Devices will receive click response even if they didn’t send an initial status packet after connecting.
  • The Virtual Screens feature was temporarily removed for this release. Installations using this feature will still work, however the device management via the web interface is now disabled.

Software Suite version 3

Release 3.4



  • Instead of relying on an external tool to count the number of connected clients, reference counting is used instead.
  • Fixed numerous possible race conditions and deadlocks inside the Network Manager.



  • Fixed statsd metrics path
  • Fixed /api/devicefile/ to remove redundand “.png” suffix in filename before uploading.



  • Fixed DU waveform code.
  • Management interface uses cached device information, speeds up device querying.

<<<<<<< HEAD 3.4.5


  • Statsd metrics: Fixed statsd metrics path
  • Image upload: Fixed /api/devicefile/ to remove redundand “.png” suffix in filename before uploading.



  • Waveform code : Fixed DU waveform code.
  • Query speed up : Management interface uses cached device information, speeds up device querying.


New features

  • Button count: A new ‘ButtonCount’ status is added to the /api/devicestatus API call.


  • Fixed possible deadlock in networkmanager if deferring a session assignment when engine was down.
  • Fixed possible larger HTTP requests on firmware server by caching the firmware list.
  • Prevent device reboots with pre-unifi firmwares by hiding TCLV options in ‘Device configuration’.


New features

  • Flashing: Added support for flashing using the legacy (pre-unified firmware)
  • ARM: ARM architecture support
  • TCLV: Updated the TCLV table to support newer firmware releases


  • Fixed possible deadlock in the gateway where connection multiplexer hangs reading an incomplete PV2 header data.
  • Fixed possible endless TCLV approval wait by limiting the wait to one minute.
  • If submodule crashes an error message is shown instead of gateway crash.


  • Fixed button support bug


New features:
  • Button Push Event: If one or more physical buttons are pressed on the device, then the webkit service will dispatch a “button-push” custom js event. The event provides us with source device ID and with state of all buttons.

Release 3.3

New features:
  • Session Cleanup: The Session Cleanup Threshold is available again.
  • Data usage chart: A data usage chart is now available, showing data usage (inbound and outbound) for a device.



  • Config file: Added missing “AutoUpdater” and “AutoBootUpdater” fields to the default config.json.example configuration file
  • Environmental variables: Fixed environmental variable parsing in docker containers for server setup.


  • Scaling: Scaling the Visionect Software Suite no longer requires generating a service dictionary file, as the Network Manager does this automatically.
  • Web page caching: Fixed web page caching settings for the HTML backend.
  • Correct tags: Visionect Signs 6” using the CC modules are tagged correctly in the Management Interface.
  • Deadlock: Fixed possible deadlock when querying for TCLV packets.

Release 3.2

New features:
  • Custom image upload: Users can upload custom ‘disconnect’ images using the new okular.SetImage JavaScript API.
  • HTTP API: Disconnected images can be pushed using a POST request on /api/devicefile/. To change the disconnected screen, the image must be PNG and named “disconnected.png”
  • Online help: A new ‘Online help’ section has been added, linking to the Visionect Knowledge Base.
  • List device files: The API enables the listing of files on the device.



  • Display info: Fixed wrong display configuration.
  • Log download: Fixed invalid log name
  • Security: A security issue fixed.


  • WebKit upgrade: The WebKit library was updated from WebKit2Gtk 2.4.10 to WebKit2Gtk 2.14.2
  • Fixes: New devices are configured using the reported width and height instead of the reported display ID.
  • Device session stability fixes: Various fixes to charts in the Management Interface, including timezone fixes and chart plotting.

Release 3.1

New features:
  • Log download: It is possible to download all the Visionect Software Suite log files with the new /api/logs web API. This works only if the server is running all the components inside a docker container and logs are available under /var/log/koala3.
  • Working hours: A new client device sleep option, called ‘working hours’ was added to device settings that puts a client device to sleep if outside the specified working hours.
  • New chart field: Device charts now contain an external temperature graph.
  • Device configuration: A new ‘Device configuration’ tab was added to the device settings, enabling advanced device configuration.
  • Time zone selector: The ‘Settings’ panel of the Management Interface now contains a time zone selector. The time zone is applied when plotting charts and configuring client device working hours.
  • Debugging: The ‘Debugging’ option that was removed in version 3.0 is now available again.
  • Log redirection: Log messages can be redirected to stdout/stderr if the environmental variable ‘VISIONECT_SERVER_LOGS_TO_STDOUT’ is defined when starting the container. If so, downloading logs with ‘api/logs’ won’t be possible since messages won’t be stored inside files.
  • Device event timestamps: Device event timestamps (statuses, image updates, disconnects) are now stored in The UTC timezone. Older event records are automatically converted to UTC, assuming they are in host local time.
  • Firmware flashing: Fixed device firmware flashing if the previous flashing was interrupted and the device got stuck in bootloader.
  • Fine-Grained Device Configuration: The ‘Fine-Grained Device Configuration’ entry was removed and replaced by the new ‘Device configuration’ tab.

Release 3.0


Don’t upgrade to Visionect Software Suite version 3.0 if you own a first generation Visionect 6” Sign, since software support for that particular hardware has been discontinued. More at: Visionect end-of-life products.

New features:
  • Container-based Deployments Only: From release 3.0 onward, Visionect Software Suite can be deployed only by using Docker containers. We don’t provide any DEB packages anymore. Exported virtual machines with the latest server release are still available for download.
  • Support for first generation 9.7” and 6” Signs discontinued: From version 3.0 onwards, the first generation 9.7” and 6” Visionect Signs are no longer supported by the Software Suite. Connecting a first generation Sign to a deployed 3.0 Suite will display a notice on the device to use a compatible Visionect Software Suite from the 2.x series of releases.
  • Idle sessions are destroyed: By default, sessions that idle more than two days will be automatically destroyed. This applies only to sessions with all devices either disconnected or sleeping. The destroyed sessions are recreated when any of its devices appear. Sessions with online and active devices are not affected. The feature is intended to relieve the server RAM usage by cleaning up sessions of devices that are possibly not in use anymore.
  • New TZ field: Device status entries, obtained through the web API now contain a ‘TZ’ field with the timezone as configured on the Software Suite.
  • Removed session pre-loading: The possibility of pre-loading sessions was removed. Any session, marked to be preloaded will behave as if the option is not set.

Software Suite version 2

Release 2.12

New features:
  • Session information: Display session limitations for registered engines on web.
  • Restart session from web app: A call to okular.RestartSession() from JS will restart the current session
  • Configuration moved to database: The Software Suite configuration was moved to the database, so editing the existing config.json file doesn’t have any affect. All changes must be applied from the Management Interface.
  • Access to Live-vie imagew: The user application can fetch live view images by using special API functions - see more at Access the live view image.
  • Automatic update check: Check display IDs instead of comparing strings when automatically updating.
  • External temperature chart: Fixed the external temperature chart Y axis.

Release 2.11

New features:
  • Remote notifications:: The Management Interface n front page is able to show remote notification messages, warning the user to upgrade the Software Suite.
  • Display initialization:: The Software Suite can now initialize the device display while in bootloader.
  • TCLV GUI:: A new TCLV input entry is available in device settings in the Management INterface, enabling the user to send or receive TCLV data for a selected client device. The data inside the input entry must be JSON-formatted.

Release 2.10

New features:
  • Virtual screen synchronization:: If enabled, client devices inside the same virtual screen will try to change content synchronously, by first uploading the display content without updating the actual display.
  • Sending commands over HTTP:: It is now possible to send commands over HTTP by using a web API.
  • Services restart through web: It is now possible to restart all major components of the Visionect Software Suite remotely, by pressing the red Restart Services button found in the Settings sub-menu of the Management Interface. The services will be available again after a few seconds.
  • TCLV: Updated the set of supported TCLV commands

Release 2.9

New features:
  • Bootloader flashing: If the device supports bootloader flashing, the server will (if enabled) select the latest available bootloader from the firmware repository and flash it on the device. This feature can be regulated from the Management Interface. More details are available in Bootloader updates.
  • Directory service support: If there’s a file named directory.json in the $VISIONECT_KOALA_HOME directory, it will be used to map engine UUIDs to host names. If there’s no such file, the value of the MasterHost key is used from the config.json file. The directory service file is used when deploying the Visionect Software Suite using multiple systems.

The example directory.json below describes two engines (UUIDs are deployment keys, found in config.json of each engine installation) and the IP addresses of their location.


"Engines": {
  • More flexible access to devices: A new JavaScript method okular.NewCommand was created that constructs commands and sends them to the specified devices using a device’s unique ID. The command data is formed with JSON and is specific for each and every command.
okular.NewCommand(device-id, command-name, json-data)

The only supported command in Visionect Software Suite version 2.9 is Param. Calls to existing command API (e.g. okular.Sleep) still work as expected.

  • Parametric Read/Write: Support for parametric read/write operations was added. This enables querying the client device itself by pushing a set of requests to the device or create write request to configure the device. The return values are device responses in JSON format and contain either read/write success responses or error messages.


  • Separate bootloader and application firmwares to be compatible with older Visionect Server releases
  • Fixing constant device reboots if non-existent firmware was selected in web administration
  • Request status after bootloader flashing is done
  • Honor ‘automatic bootloader flashing’ check box in admin
  • Report errors when reading bootloader data blocks from firmware repository
  • Fix engine image checksum handling
  • A new request/reply IPC system was added to achieve better performance and cleaner code design
  • Added Gateway support for extensions
  • Engine no longer handles commands from the backend
  • General code cleanups in Engine
  • Communication of components is moving away from the star network topology to mesh network (which is more robust in case of failures)

Release 2.8

New features:
  • Cookie global storage: Web cookies are now accessed through a networked virtual file system and the cookies themselves are stored inside the database. Each engine instance within a Visionect Software Suite deployment will see the same cookies, no matter if the engine runs on a different machine. This is achieved using FUSE and the already existing Software Suite service. To support FUSE based ‘cookies’ inside the Docker container, the container needs to be created with special options. For details see
  • Server scaling: The Visionect Software Suite now performs better with large number of client devices by configuring the deployment to use multiple engines with a single, master host.
  • DOS-attack prevention: The server allows max. 200 new connections within 10 seconds.
  • JavaScript okular.ConfigureSystem() additional options for touch: In addition to the enabled and disabled settings, the new option enables touch and causes the device to beep when touched (NOTE: will only work on devices with a touch screen).


  • Fixed polling interval for first generation Visionect 6” Signs.
  • Exposed polling time in the Management Interface if device reports hardware revision “2”.
  • Fixed the first generation Visionect 6” Signs synchronous protocol implementation problem.
  • Fixed NetworkManager crash case.
  • The default rendering of First generation Visionect 6” Signs is now set to “portrait”.
  • Rendering engine image cache deadlock removed.
  • Fixed Front-light support.
  • Different fixes to second generation Visionect 6” Sign 6” flashing.
  • Various bug fixes to cookie virtual file system and webkit rendering.
  • Automatic firmware updater was integrated. This is a per-device setting: the user can choose if a device should be automatically flashed to latest firmware or not.
  • Management Interface: Image and Rectangle flags are now check boxes.
  • Several bug fixes.
  • Added support for turning on/off the disconnected screen inside JavaScript.
  • Virtual screen editor is available from the Management Interface.
  • Various smaller bug fixes.
2.8.1 - 2.8.4
  • Various fixes.
  • Battery values in mV are correctly shown in the Management Interface.

Release 2.7

New features:
  • Remote devices: The web frontend shows available remote device firmwares (if the Software Suite is configured to fetch device firmwares from a remote firmware repository).
  • Charging state: A new ‘charging’ state is shown in the web panel if a second generation Visionect Sign is connected to the Software Suite and attached to a charging cable. During this state the client device does not accept any pushed data from the Suite.
  • unsent commands are no longer stacked in a queue; it is now up to every developer to take care of a proper behaviour. Usage of the new JavaScript ‘Promise’ feature is encouraged to handle any request errors.
  • Unsent commands: Unsent commands are no longer stacked in a queue; it is now up to each developer to take care of proper behaviour. Usage of the new JavaScript ‘Promise’ feature is encouraged to handle any request errors.
  • Device and Javascript communication: More reliable device communication from JavaScript: issuing device commands from JavaScript is now returned with a JavaScript ‘Promise’ where the developer can wait and check if the command was successfully sent and received by the client device, or handle any errors that may occur. This change applies to all old and new functions that do ‘send’ commands.
  • Flags exposure: Image and rectangle flags are exposed: it is now possible to optionally set image (clear screen, border) and rectangle flags (transparency, disable inverse).
  • The option to change the following settings via JS API:
  • Request for device display touch software update (for second generation Visionect Signs)
  • Enable/Disable battery indicator & touch (for second generation Visionect Signs)
  • Configure battery indicator (for second generation Visionect Signs)
  • Configure Device Display’s VCOM
  • Configure Device Display’s Type
  • Device status during frequent usage: Device status during frequent usage: a ‘status request’ command is sent every 15 minutes that tells the client device to send a status packet back as a reply. The Software Suite then waits a minute for a reply and resends the request if there is none. It takes five tries (taking at most 5 minutes) before the initial request expires and the Suite gives up. In case of a failure, a warning message is printed out. The request is repeated in the next 15 minutes. This feature is enabled by adding StatusRequester to the Features list in config.json.


This feature is supported only by second generation Visionect Signs with the firmware revision 0.0.269 or higher.

  • Flashing: Client devices can now be flashed with latest firmwares from our firmware repositories.
  • ARM installation: Installations on ARM systems are now faster; live view rendering was optimized.
  • Device ban: It is possible to ban devices from connecting to a deployed Visionect Software Suite by using ‘whitelist’ files.

Release 2.6

New features:
  • Preloading session option: Sessions can be set to be preloaded on startup.
  • Automatic page reloading feature (watchdog timer): It enables the developer to reload the page (app) after a certain amount of time if the page becomes unresponsive. Check the documentation.
  • Support for touch packet: New V2 protocol way to report that the display has received a touch command.
  • Config-json changed: The format of the configuration file config.json has changed and is automatically updated upon first run. The old configuration file is backed up under the name config.json~.
  • Display editor: The display editor in the Management Interface was changed to enable more display options.

Release 2.5

New features:
  • Support for different displays was added by introducing display drivers: It is possible to select display drivers in the Management Interface, under Device properties. Supported drivers are :
  • E Ink ®: driver for 6”, 9” and 13.3” E Ink displays
  • Plastic Logic Germany: driver for 10.7” Plastic Logic Germany displays
  • E Ink ®: driver for the 32” E Ink display
  • E Ink ® 32” Color Mask: driver for the 32” E Ink display with color support
  • New CLI flags were introduced to NetworkManager to fine-tune the Software Suite behaviour: Flag -i: set it to ignore number of displays, reported by device (default to true). Flag -s: set it to set status filtering option and consequently reducing log level (default is disabled).
  • Management Interface related changes:
  • System status (server load, disk usage) available via admin HTTP remote API in /api/sysinfo.
  • Network stats for devices are available at /api/netstat/{UUID} where {UUID} is the target device UUID.
  • Database changes: In the version 2.5 of the Visionect Software Suite comes without a default database install.Previously the Software Suite installed CouchDB by default, but this has been changed as Suite 2.5 comes with official support for multiple databases. Old installs will not be impacted by this change, while this version will require a manual database install - pick between PostgreSQL and CouchDB. By default, when doing a fresh install of Visionect Software Suite 2.5., the PostgreSQL database is selected in the config file, but you’ll need to add connection details.


While PostgreSQL and CouchDB were both supported in version 2.5, currently (versions 2.6 and above) only PostgreSQL is supported. PostgreSQL uses much less memory and disk space (up to 10x) while running much faster (up to 25x) compared to CouchDB.


Visionect Server must be restarted for database changes to take effect.

  • HTML Backend: Image caching for the HTML backend is now based on storage size instead of number of elements with arbitrary sizes. The field ImageCacheSize in the config.json defines maximum size of megabytes to use for image caching. The default value is 16.