Live demo — data resets daily at 03:00 UTC. Nothing you enter is saved. Server UI →

Accordion Developer Documentation

Purpose: Everything a developer using the Accordion hardware platform needs to know. This is the single entry point. Every topic below links to a focused sub-document. Links marked [source] point to the original file in its repository location.


What is Accordion?

Accordion is a modular hardware test and control platform developed by E-Sharp AB. A physical Accordion device (running on a Raspberry Pi / ARM Linux) hosts a set of pluggable hardware modules (ESH1* series) and exposes all their signals through a unified channel-based API over the network.

Clients connect over HTTP or a proprietary protocol and interact with the hardware without any knowledge of the underlying bus topology.


Table of Contents

1 — System Overview

2 — Hardware Modules

3 — Connectivity & Network

4 — Client Tools

5 — Programmatic API

.NET (C#)

Python

6 — Internals & Development


Quick-Reference: How to Connect

Client Connect
AccordionShell (CLI) accordionshell init --host <ip-or-hostname>
Accordion Pilot (GUI) Launch app → toolbar host field → Connect
.NET API new AccordionQ2Client("http://<host>:5000")
Python API AccordionQ2Client("http://<host>:5000")

Default WebApi port: 5000 — Hardware manager port: 10000

Quick-Reference: Service Discovery

Accordion devices advertise themselves via mDNS (_accordion._tcp.local). On a LAN with mDNS support you can connect by hostname (e.g. http://agent64.local:5000) without knowing the IP address. See Network Configuration for details.


Source Locations

Content Source path
Hardware module specs Documentation/ESH10000*.md
Internal architecture notes Documentation/source/
.NET client docs submodules/webapiclient/docs/
Python client docs submodules/webapiclient-python/docs/
AccordionPilot GUI docs accordionpilot/AccordionPilot/docs/ (separate repo)
AccordionShell CLI docs accordionpilot/submodules/shell/docs/ (separate repo)
Device chip references submodules/devicelibrary/Devices/
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.