The repo bridges both instruments (Koheron CTL200 seed + Agiltron M511
EDFA), so 'koheron-esp32-bridge' was too narrow. Align the repo name and
descriptions to the identifier the whole stack already uses
(butterfly_edfa_rack): README title, Makefile/platformio headers, and the
homeassistant/ copies. Device id, MQTT topics and entity ids are
unchanged, so no reflash or lost HA history. Sibling HA repo renamed to
butterfly-edfa-rack-homeassistant.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Keeps the firmware repo's homeassistant/ copy in step with
butterfly-rack-homeassistant (control-panel layout, read-only status
strip, Pump Limit Override switch).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Adds a Pump Limit Override: the pump-1 current command is clamped to a
soft 4000 mA ceiling (the 1 W diode rating) by default, liftable to the
8000 mA hard protocol max only while the new amp_pump_override switch is
ON. Fail-safe: the override defaults OFF on every boot, and switching it
OFF immediately re-clamps a running setpoint back down to 4000 mA so the
booster cannot stay parked above 1 W. The HA pump-1 number now spans
0..8000 mA; values above 4000 take effect only with the override on.
PUMP_CURRENT_MAX_MA is split into PUMP_CURRENT_SOFT_MAX_MA (4000) and
PUMP_CURRENT_HARD_MAX_MA (8000). README/BOM updated. Builds clean
(flash 59.3%); not yet flashed (ESP32 needs USB, no OTA).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Full parts list to rebuild the MOPA: seed (DFB1550LP + CTL200 + its
5.9 V/3 A supply), Agiltron M511 EYDFA booster + v1.10 adaptor board,
ESP32 bridge, fibre/attenuator/output-connector optics, and the 3V3
signal wiring table. Electrical specs not firmly in the lab notes are
flagged to confirm from the datasheet.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Minimal HA content to reproduce the Butterfly Rack GUI: a YAML-mode
dashboard (power graphs in mW, temperature graph, dual dBm/mW output
readout, staged seed/booster controls, emergency-off), MQTT template
sensors deriving mW from the dBm telemetry, and an emergency-shutdown
script. Snippets merge into configuration.yaml / scripts.yaml; the
dashboard file is copied whole. See homeassistant/README.md.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Expose the Koheron CTL200 thermistor setpoint (rtset) as a settable HA
number in ohms, clamped to SEED_RT_SETPOINT_MIN/MAX_OHM. The former
read-only setpoint sensor is replaced by this control. Add a read-only
seed temperature in °C, computed in firmware from the actual thermistor
resistance via an NTC β-model (constants in config.h; update once the
DFB1550LP thermistor R25/β are confirmed).
Verified end-to-end over MQTT: set/clamp/restore of rtset and the °C
conversion (10 kΩ → 25.00 °C).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Swept pump-1 to find real output: 1 W (30.1 dBm) at 4000 mA, 1.22 W at
4500 mA still unsaturated. External Thorlabs meter read 1.05 W vs 1.22 W
internal PD -> telemetry is ~0.5-0.6 dB optimistic, path-dependent; treat
amp/output*_power_dbm as indicative, not calibrated.
- README: full pump-vs-output table, PD-vs-meter calibration note, >1 W
output-connector warning, ramp/overshoot guidance
- config.h: PUMP_CURRENT_MAX_MA back to 4000 mA (1 W rating) after the
supervised over-rating sweep; added get_thresholds probe to agiltron driver
ESP32 firmware bridging the 1550 nm MOPA (Koheron CTL200 seed + Agiltron
M511 two-stage EDFA) to MQTT/HA as a single device. Telemetry and control
for both instruments verified end-to-end: MQTT command -> seed lasing ->
booster ramp to 27 dBm (~515 mW) at the documented 2500 mA operating point.
- PlatformIO/Arduino project, project-local venv, Makefile upload flow
- Koheron ASCII driver on UART2; Agiltron binary 0x55AA driver on UART1
- HA discovery (sensors, binary_sensors, switches, numbers); LWT availability
- Static IP, firmware current clamps on seed and booster pump