E-Sharp Helpcenter
Breadcrumbs

Firmware releases

Version

Status/Notes

Description

5.13.0

Release

Release Date:
Type: Feature Release

  • Now supports USB port enable/disable (see boot.config)

  • Audit endpoint in the webapi reveals who connected when

  • Guard for ratiometric values outside 0-1 (clamps to edges)

  • Cleanup for docker NICs (not shown)


5.12.0

Release

Release Date:
Type: Bug fix

• Fix nmcli privilege errors when running as accordion user — The application now runs all network manager commands (nmcli, ip, arping, etc.) via sudo, resolving Insufficient privileges errors introduced when the process was moved from running as root to the accordion user
• Use which for binary detection — Replaced command -v (shell builtin, unreliable under sudo's restricted PATH) with which when checking for required binaries like nmcli
• Graceful handling of blank service entries in boot.config — Service entries with an empty serviceFile are now skipped with a warning instead of passing an empty string to systemctl, which caused Too few arguments errors
• Fix accordion.service systemd unit — Moved StartLimitBurst, StartLimitIntervalSec, and StartLimitAction from [Service] to [Unit] where they belong, eliminating systemd warnings on startup

5.11.0

Release

Release Date:
Type: Feature Release

Firmware-ready for LED Zeppelin project

Fixed recursion bug when resetting the system.

Fixed overflow bug in PMBUS

5.10.0

Release

Release Date:
Type: Feature Release

🆕 New Features

Calibration API

  • New REST endpoints for calibration management:

    • GET /api/calibration/channels — list all calibration channels

    • GET /api/calibration/table — read the current calibration table

    • POST /api/calibration/table — write/apply a new calibration table

  • Alias / NetName interoperability — all resource read, write and transact endpoints now accept either a channel's Alias or its NetName interchangeably, making scripts portable across hardware revisions

.NET Client (AccordionQ2.WebApiClient 5.10.0 on NuGet)

  • Added CalibrationGroup with full calibration models and client registration

  • Added CalibrationGroup API documentation

Python Client (accordionq2 5.10.0 on PyPI)

  • Added CalibrationGroup with full calibration models and documentation

  • Migrated version scheme to setuptools-scm (version is now derived from git tag automatically)

UART Configuration

  • UartTransactionRequest now accepts numeric fields (BaudRate, etc.) as strings for flexible JSON serialisation

  • Added a default DeviceName fallback for UART transactions

  • PortName removed from UartTransactionRequest — port is resolved server-side from DeviceName

  • Full UART device configuration exposed: port, baud rate, bus type, flow control, parity

Module: ESH10000590 (Precision Source)

  • Split single DataBus into separate ADC bus and DAC bus for independent routing

  • Bus signal names renamed from MPIOxxADCxx / DACxx

  • Added NumericResultChannel wired to all ADC inputs; sample rate is applied to the ADS124S08 before acquisition

  • Added DigitalChannel DAC_GAIN to control AD5675R DoubleDacGain at runtime

  • Added MultiplexerChannel ADC_GAIN to control ADS124S08 PGA gain (8 steps: GAIN_1 … GAIN_128)

Module: ESH10000662 (Light Table PSU)

  • Added virtual DigitalChannel HIGH_RANGE — when set to true, enables 0–5 V (2×VREF) range on both ADC and DAC of the AD5593R and immediately rewrites all DAC outputs with the correct codes for the new reference voltage

Device: AD5675R / AD567x_Base

  • DoubleDacGain can now be hot-switched at runtime without losing current channel voltages — all DAC outputs are rewritten automatically

  • Fixed: REF_SETUP register is now written during Reset() so the gain configuration is applied to hardware at startup

Device: ADS124S08

  • Implemented GetNumericResults for sequential per-channel acquisition

  • Fixed: PGA gain factor, conversion timing, and reported sample rate are now correct


🐛 Bug Fixes

Calibration

  • ESH10000556: OUTPUT_CURRENTLIMIT readback no longer returns a value affected by calibration Gain/Offset — the user-set value is now stored in the channel object on write and returned directly on read (matching OUTPUT_VOLTAGE behaviour)

  • ESH10000590: LoadCalibrationTable now uses StripFullNetName for keys so CSV files with short position-independent names are applied correctly (was silently no-op on every write-back)

  • ESH10000590: ApplyCalibrationValues now checks for key existence and logs an error instead of throwing NullReferenceException on missing keys

  • AD5593R / AD5592R / AD567x: DAC output values that calculate below 0 V due to a positive calibration offset are now clamped to 0 V with a warning log instead of throwing ArgumentOutOfRangeException — setting 0 on a channel with a positive offset no longer faults

HAL / Host

  • CommHandler: verbose communication logging disabled (ShouldLog = false) to reduce log noise

  • HardwareAbstractionImpl: FirmwareRevision now delegates to HostInformation rather than duplicating the logic

  • HostInformation: FirmwareRevision now uses an absolute path, handles empty results gracefully, and correctly strips the .version extension from the filename


⚙️ Infrastructure

  • CI: WebApiClient tests now exclude Integration and Performance categories that require live hardware

  • CI: WebApiClient build targets project files explicitly and uses the .NET 10 runner

5.9.0

Release

Release Date:
Type: Feature Release

New/Improved

Changed how the UART transaction works through the WebApi

5.8.0

Release

Release Date:
Type: Feature Release

Bug Fixes
Concurrent access could sometimes interfere with each other

5.7.0

Release

Release Date: April 22, 2026
Type: Feature Release

Bug Fixes
Accordion service in 5.6.0 had a faulty parameter, preventing start of the service.

5.6.0

Revoked!

Release Date: April 20, 2026
Type: Feature Release

Bug Fixes
WebAPI — First call after hardware reconnect returns 503 (accordionq2) Fixed a race condition in WaitForConnectionAsync(TimeSpan) where the old completed TaskCompletionSource was captured before the disconnect event had a chance to reset it. The first WebAPI call after a hardware restart would incorrectly fast-path through the wait and immediately return 503. The fix loops briefly until the TCS is properly reset before awaiting reconnection.


New Features / Changes
ESH10000534 — PoE RESTART_CLASSIFICATION channel (accordionuno) Added a RESTART_CLASSIFICATION digital output channel to the PoE module. Writing to it triggers a re-run of PoE classification (detect/power-enable/detect-class sequences). Also refactored PoE initialisation: SetRelay(POLARITY.NORMAL) is now called on successful init, and poe1 is nulled out on failure to allow clean retry.


Infrastructure / Internal
Protocol server — IPv4-only binding (protocolserver)

Both ProtocolServer and ProtocolClient now explicitly disable DualMode and bind to IPAddress.Any (IPv4) instead of IPv6Any. This resolves connectivity issues on targets where IPv6 dual-stack is not available.


TPS23881 — Register read logging enabled; dependency bumps (devicelibrary) Register reads now log at Info(log4net.ILog, object, string, int) level for diagnostics. Package versions bumped: CsvHelper 33.1.0, Iot.Device.Bindings 4.2.0, UnitsNet 5.75.0.

5.4.0

Release

Release Date: April 19, 2026
Type: Feature Release

  • NET10

  • Fixes for PoE R4, FE R4

  • Fixes for Accordion M1

5.2.0

Release

Release Date: April 12, 2026
Type: Feature Release

  • Fixes for communication issues

  • Added swagger + node red

  • Fully async

  • Added mDNS broadcasting

  • Support for Accordion M1

  • Bug fixes

4.1.1

Release

Release Date: March 5, 2026
Type: Feature Release


🎯 Overview

Release 4.1.1 introduces a revolutionary dual-connection network fallback system that dramatically improves network reliability and reduces failover time from over 100 seconds to just 10-12 seconds. This release also includes comprehensive diagnostic tools and complete documentation to support field deployment and troubleshooting.


✨ New Features

Dual-Connection Network Fallback

  • Fast Failover: Reduced DHCP timeout from 100+ seconds to 10-12 seconds

  • Automatic Failover: NetworkManager priority-based connection selection

    • Primary: ESharp-eth0-DHCP (priority 100, 10-second DHCP timeout)

    • Fallback: ESharp-eth0-Direct (priority 10, static IP only)

  • Dual-Addressing Mode: When DHCP succeeds, device maintains both static IP and DHCP IP for maximum flexibility

  • Automatic Cleanup: Removes redundant network connections during configuration

Diagnostic Tools

  • quick-network-check.sh: Fast, color-coded network status display

    • Connection status and priorities

    • IP address configuration (static vs. DHCP)

    • Gateway reachability

    • DNS resolution testing

    • Overall health assessment

  • capture-network-diagnostics.sh: Comprehensive diagnostic log capture

    • 21 diagnostic sections covering all network aspects

    • Timestamped log files for support and troubleshooting

    • Includes NetworkManager logs, connection details, routing, DNS, and connectivity tests


🐛 Bug Fixes

  • Manual Connection Address Handling: Fixed NetworkManager limitation where manual connections must have at least one address during creation

  • Address Update Logic: Implemented atomic replacement strategy to avoid "cannot be empty" errors when updating static IP addresses

  • Timestamp Border Formatting: Fixed alignment in diagnostic script headers


📚 Documentation

New Documentation

  • README.md: Comprehensive project documentation with quick start guide, network architecture overview, and troubleshooting

  • NETWORK_FALLBACK_IMPLEMENTATION.md: Detailed technical documentation of dual-connection architecture, including configuration steps and expected behaviors

  • DIAGNOSTIC_SCRIPTS_README.md: Complete guide for using diagnostic tools with examples and troubleshooting workflows

Configuration Standards

  • .gitattributes: Enforces LF line endings for shell scripts across platforms

  • .vscode/settings.json: Consistent development environment configuration


🔧 Technical Improvements

  • Line Ending Management: Cross-platform compatibility for shell scripts (LF enforced)

  • Dependency Reduction: Replaced nslookup with ping for DNS testing, reducing package requirements

  • Connection Priority System: Leverages NetworkManager's built-in priority mechanism for automatic failover

  • ARP Conflict Detection: Maintains arping-based conflict detection for static IP configuration


📊 Network States

With DHCP Server (Typical Deployment)

Active Connection: ESharp-eth0-DHCP
IP Addresses:
  - 192.168.0.222/24 (Static, configured)
  - 192.168.0.XXX/24 (DHCP, dynamic)
Gateway: From DHCP server
Internet: Available via DHCP gateway

Without DHCP Server (Direct Connection Mode)

Active Connection: ESharp-eth0-Direct
IP Addresses:
  - 192.168.0.222/24 (Static only)
Gateway: None
Internet: Local subnet only
Failover Time: ~10-12 seconds from DHCP attempt

🚀 Deployment Impact

Performance

  • 90% reduction in network failover time (100s → 10-12s)

  • Improved reliability with automatic fallback

  • Zero-downtime network reconfiguration

Operations

  • Simplified troubleshooting with diagnostic scripts

  • Color-coded status output for quick visual assessment

  • Comprehensive logs for support escalation

  • Self-documenting network configuration

Field Support

  • Quick network check can be run by field technicians without sudo

  • Full diagnostics capture all necessary information for remote support

  • Documentation provides clear troubleshooting workflows


📋 Upgrade Notes

Breaking Changes

None. This release maintains backward compatibility with existing boot.config files.

Automatic Migration

  • Old ESharp-eth0 connections are automatically cleaned up

  • New dual-connection configuration is created on first run

  • No manual intervention required

Verification

After deployment, verify the network configuration:

Bash
# Quick status check
bash quick-network-check.sh

# Or full diagnostics
sudo bash capture-network-diagnostics.sh

Modified Files

  • HAL/NetworkManagerConfig.cs - Core dual-connection implementation

  • ApplicationEngine.cs - Connection management and cleanup

  • AccordionQ2.csproj - Project configuration updates

  • Shell scripts - Diagnostic tools and line ending fixes

New Files

  • quick-network-check.sh - Fast diagnostic tool

  • capture-network-diagnostics.sh - Comprehensive diagnostic tool

  • NETWORK_FALLBACK_IMPLEMENTATION.md - Technical documentation

  • DIAGNOSTIC_SCRIPTS_README.md - Diagnostic tools guide

  • .gitattributes - Line ending configuration

  • .vscode/settings.json - Development environment settings


👥 Contributors

ESharp Development Team


📞 Support

For issues or questions:

When reporting issues, please include:

  1. Output from quick-network-check.sh

  2. Full diagnostic log from capture-network-diagnostics.sh

  3. Application logs from /home/accordion/hw/log/

  4. Description and steps to reproduce


🔜 Future Roadmap

  • WiFi dual-connection fallback support

  • Network health monitoring and alerting

  • Automatic DHCP server detection and configuration

  • Extended connectivity diagnostics


Full Changelog: v4.1.0...v4.1.1

4.1.0

Release

This version contains fixes for the following:

  • Boot configuration updates (see The boot.config file )

  • Audio/Video/Image handling engine

  • Refactor of engine components

  • Optimizations in protocol layer

4.0.8

Debug release.

Do not install unless instructed.

This version contains fixes for the following:

  • Boot configuration updates (see The boot.config file )

  • Audio/Video/Image handling engine

  • Refactor of engine components

  • Optimizations in protocol layer