Transformers & XY Plots

Released on 2020-12-18

Loggers have access to accessors

CSV and other loggers have access to accessors now.

New Data Transformer API

The Data Transformer API has been revamped.

Improved Chart Performance

Charts of all types now allocate less and are therefore more performant.

Microsecond timing

Timing is now done using a global @electricui/timing package, and is now accurate to the microsecond instead of the millisecond.

Chart Axis Performance Improvements

Chart Axes are now more performant to render.

X-Y Plots

X-Y Plots are now supported.

XY chart showing IMU acceleration data

See the docs for details.

Better hot reloading

Hot reloading, especially on the transport context, has been improved.

The logic for this has been moved to @electricui/core, and may now be updated without modifying the template.

Interval requester

Interval Requesters no longer retry forever if messages don't reach hardware. They now attempt up to acceptableConsecutiveFailures=10 times before giving up.



All hooks now have intellisense documentation inline.

2020-12-29 ThreeJS 3D Support

3D Renderer components. Read the docs here.

The ControlledGroup component now supports scale being modified by hardware.

2021-01-03 TriggerDomain time accessor

The TriggerDomain accessor is now passed the current time.

2021-01-30 General improvements

Connection cards without a loading screen can no longer be clicked multiple times to skip to the device page.

Printers are now imperatively updated, avoiding a React render loop, increasing performance for frequent updates.

Printers now allow for inline styling via the style prop.

Each process console will now display in the console what process type it is.

By default, if the codec pipeline can't encode or decode a packet, it will warn instead of throwing an error.


Fix for handshake screen not being full height

2021-02-20 Electron 11.3

The template now runs Electron 11.3.0.

The binary protocol now has reduced allocations resulting in lower garbage collection pressure and better performance.


When the CodecPipeline can't find a match for a message it can now optionally passthroughNoMatch, warn (the default), or error.