Skip to content

MCP-AmigaOS4 1.1 — Out-of-band power control

Choose a tag to compare

@derfsss derfsss released this 04 May 17:56
· 61 commits to main since this release

MCP-AmigaOS4 1.1 — Out-of-band power control

Headline

New power.* namespace drives the Amiga's internal MCU debug
shell (X5000 P18 / A1222 P15) over an FTDI USB-TTL cable wired to
the host. Bypasses MCPd entirely — works regardless of AOS / MCPd
state.

power.on is the only software path to boot a fully-off X5000. A
full off-then-boot cycle (power.off → power.on → MCPd
reachable) takes ~80 s on real X5000.

New tools

Tool Shell Confirm
power.help help —
power.identify id —
power.identify_dates id date —
power.sensors v —
power.toggle_stream (watch_s optional) q yes
power.on p yes
power.off s yes
power.shell (escape hatch) (any) yes

The four destructive tools require confirm: true — same
accidental-fire guard as sys.cold_reboot.

Configuration

[targets.x5000-real.channels.mcu]
enabled = true
port    = "COM5"            # or /dev/ttyUSB1 on Linux/macOS
baud    = 38400             # MCU is fixed at 38400 8N1

Cable pinout, OS group permissions, and the serial.* lock-out
behaviour are documented in
INSTALL.md § power.*.

Tool count

  • 109 → 118 tools (+8 fine-grained power.* + 1 namespace
    dispatcher).

Internal

  • New host/src/amiga_fleet_mcp/transports/p18.py async pyserial
    driver.
  • New host/src/amiga_fleet_mcp/tools/power.py with channel-
    resolution + confirm-gate helpers; integrates with the existing
    serial.* capture registry (returns NotCapable if the same
    port is being captured).
  • 18 new unit tests under tests/unit/test_power.py exercising
    every confirm path + every channel-resolution edge case with a
    mock-patched transport.

Build environment

Reproducible via walkero/amigagccondocker:os4-gcc11: AmigaOS 4.1
FE SDK 54.16 with GCC 11.5. The exact SDK identifier is embedded
in the attached MCPd binary's $BUILT-WITH: cookie and surfaced
via proto.version / proto.capabilities build.sdk.