In July 2020 I finished the Peakboard Extension Kit. It is a NuGet package with two base classes, ExtensionBase and CustomListBase. A developer derives from them in a C# class library, and the new data source appears in Peakboard Designer next to the built-in ones. An extension runs in a host process of its own, so faulty code cannot stop a board.
An extension is foreign code. It connects to a machine, a database or a web service through a driver that Peakboard does not control. A board runs unattended for months, so the runtime must survive an extension that leaks memory, blocks a thread or throws on startup.
The two sides communicate over an inter-process communication (IPC) channel. On .NET Framework that means .NET Remoting: the extension derives from the MarshalByRefObject class, and the host registers an IpcChannel object with a binary formatter. The runtime works with a proxy that looks like an ordinary object.
System.AddIn, the Managed Add-in Framework, handles the pipeline between the two sides. The separate host has a second use. Some drivers exist only as 64-bit builds, so a 64-bit host process loads the extensions that need them.
Every object that crosses a Remoting channel carries a lifetime lease, by default 5 minutes, and every call renews it. When the lease expires, every call through the proxy fails, but both processes are still running. A board that refreshes every 10 seconds never notices. A board that refreshes twice a day does.
The fix is to override the InitializeLifetimeService method and return null. The object then lives until the host process unloads it.
The screenshot below shows the Manage extensions dialog in Peakboard Designer. It lists 14 extensions built with the kit, among them Microsoft Dynamics 365, Microsoft Graph API, OData V4, PostgreSQL, Philips Hue and Sick RFID Reader.

Installed extensions carry the Installed badge (1). The Install button (2) installs an extension, and the trash can icon (3) removes it. The Add custom extension button loads an extension of your own from a zip file.
That’s it.
If you have questions feel free to contact me.
Links:
Peakboard.com →
Extension basics →
Peakboard.ExtensionKit on NuGet →
Sample extensions on GitHub →