Files
butterfly-edfa-rack-firmware/BOM.md
T
James Bateman (hp-laptop)andClaude Opus 4.8 ba1cd1ddcf Make the pump-1 1 W clamp overridable up to the 8000 mA protocol max
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>
2026-10-02 14:21:56 +01:00

61 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Bill of materials: Butterfly EDFA Rack (MOPA)
Everything needed to rebuild the 1550 nm MOPA that this firmware drives: a Koheron-driven DFB seed into an Agiltron M511 EYDFA booster, bridged to WiFi/MQTT by an ESP32. Quantities are per rack. Where an electrical spec is not firmly established in the lab notes it is marked "confirm from datasheet" and the datasheet is named; do not treat those as verified.
Datasheets and manuals referenced below live in the Obsidian vault under `Lab/Equipment/Lasers/` (`Butterfly_EDFA_Rack/` for the CTL200 guide, `Agiltron EDFA/` for the M511 manuals and `edfa.py`).
## Control / bridge electronics
| Item | Qty | Notes |
|------|-----|-------|
| ESP32-D0WD-V3 dev board (WROOM-32 class) with CP2102N USB-UART | 1 | The bridge MCU. This unit's MAC is `b0:cb:d8:8f:ba:10`; enumerates as `/dev/ttyUSB0`. Any WROOM-32 class board works; keep UART1 off the flash-clashing default pins (see wiring). |
| 5 V USB supply + data cable for the ESP32 | 1 | Powers the board and is the flash/console link (UART0). |
## Seed stage (master oscillator)
| Item | Qty | Notes |
|------|-----|-------|
| Thorlabs DFB1550LP | 1 | 1550 nm DFB laser diode in a 14-pin butterfly package with integrated TEC, thermistor and monitor photodiode. The seed. |
| Koheron CTL200 (v5+) digital laser-diode controller | 1 | Butterfly-mount current + TEC controller. ASCII serial at 115200 8N1. Firmware v0.21 on this unit. Default thermistor setpoint 10 kΩ (`rtset`). |
| Koheron 5.9 V / 3 A barrel power supply | 1 | Shipped with the CTL200. The CTL200 accepts 5 V or 6 V at the barrel; set SW3 ON for a 5 V supply (compliance voltages then drop by 1 V). The terminal-block `VCC` pin is a 3V3 output, not an input, so it must not be used to power the board. |
## Power-amplifier stage (booster)
| Item | Qty | Notes |
|------|-----|-------|
| Agiltron M511 High-Power EYDFA module, PN `EDFA-1C51113331111` | 1 | Two-stage Er/Yb-doped fibre amplifier, 1550 nm, factory APC setpoint 30 dBm (~1 W). This unit: SN `Y4022708`, UART device ID `0x0000006F`. Purchased via Laser Components, 2024-08-22. Pump-1 is the active booster stage; pump-2 is unused on this unit. Manual: `EDFA_511_23-40dBm Componenet_User Manual_e.pdf`, protocol: `EYDFA_M511 High-Power_UART protocol_V1_e.pdf`. |
| Agiltron M511 power adaptor board v1.10 (OEM connection board) | 1 | Breakout: XT30 power input + the P2 control header (3V3 UART). P2 pin order from the end opposite the XT30: N(3.3V), G, RX, SCK, MO, MI, TX, NS. Photo: `Agiltron EDFA/EDFA_connection_board.jpg`. |
| DC supply for the M511 via XT30 | 1 | The pump diodes draw several amps at full power; confirm voltage and current rating from the M511 manual before sourcing. Size it for the 1 W (≈4000 mA pump-1) operating point with headroom. |
## Optical / fibre
| Item | Qty | Notes |
|------|-----|-------|
| 1550 nm SMF patch cords (SMF-28), FC/APC | 3+ | Seed out → attenuator → EDFA in, and EDFA out → load. |
| Inline fixed optical attenuator (≈3 dB pad) | 1 | Keeps the EDFA input within the ≤5 dBm benchtop input spec during high-power runs. |
| High-power-rated output connector or fusion splice | 1 | **Required above 1 W** per the Agiltron manual; a plain connector can burn at the output. |
| Beam dump or calibrated power meter | 1 | To terminate the Class-4, >1 W, invisible 1550 nm output. Never leave it open. |
## Interconnect / wiring
| Item | Qty | Notes |
|------|-----|-------|
| 3V3 jumper wires (Dupont / ferruled) | — | ESP32 ↔ CTL200 terminal block, ESP32 ↔ M511 P2 header. |
| Common ground link | 1 | Tie ESP32, CTL200 and M511 grounds together. |
### Signal wiring
Both instrument links are 3V3 logic at 115200 8N1 (the CTL200 is 5V-tolerant). UART1 is remapped to GPIO25/26 because its default pins clash with the WROOM SPI flash.
| ESP32 pin | Goes to | Link |
|-----------|---------|------|
| GPIO17 (TX2) → | CTL200 RX (terminal block) | Koheron, ASCII, `\r\n`, `>>` prompt |
| GPIO16 (RX2) ← | CTL200 TX | |
| GPIO26 (TX1) → | M511 P2 pin 3 (RX) | Agiltron, binary 0x55AA packets |
| GPIO25 (RX1) ← | M511 P2 pin 7 (TX) | |
| GND | CTL200 GND and M511 P2 pin 2 (G) | common ground |
## Safety
Class 4, >1 W, invisible 1550 nm. The firmware current clamps (`SEED_CURRENT_MAX_MA`, and the soft/hard pump-1 ceilings `PUMP_CURRENT_SOFT_MAX_MA` / `PUMP_CURRENT_HARD_MAX_MA`, the latter reachable only with the Pump Limit Override switch on) are guardrails, not interlocks. Always drop the pump to 0 before unmating any fibre, ramp the pump gradually (it overshoots ~2× on a step up and settles in 2–4 s), and terminate the output in a power meter or beam dump. See the repo README for the measured pump-current vs output-power curve.