replica-omnisciente/experiments/hermes-launch/HARDWARE_INTEGRATION_REPORT.md
AI Agent 060a325bdc feat(experiments): add Aurelio × Hermes hackathon launch workspace
- Hermes agent configuration, skills and MCP client wrappers
- Hardware Lab Node SSE server with ESP32, PPK2, Xgecu adapters
- Olhos-de-Orpheu launcher and sci-bot wrapper scripts
- Demo scenario, integration test and orchestrator task definitions
- Add local .gitignore for venvs, build outputs and runtime logs
2026-06-22 13:50:47 +01:00

5.1 KiB

Olhos-de-Orpheu Hardware Lab Node Mesh — Integration Test Report

  • Generated: 2026-06-21T19:04:26.937178+00:00
  • Gateway: http://192.168.0.16:8001/sse
  • Bench lab node: http://192.168.0.88:8002/sse
  • ASUS/Proxmox lab node: http://192.168.0.38:8002/sse

Summary

Metric Value
Total tests 7
Passed 6
Failed 1
Pass rate 85.7%

Test Results

Step 1: List tools on Olhos and confirm aurelio_* tools are present

Status: PASS
Duration: 109 ms

Output:

Total tools: 71
aurelio_* tools found: 23
Required tools present: all
  - aurelio_manifesto: Return the Portugal Futurista Aurelio philosophy and mission.
  - aurelio_list_devices: List all hardware devices attached to the lab node mesh.
  - aurelio_list_serial_ports: List USB/serial ports where embedded devices are connected.
  - aurelio_detect_espressif_port: Detect the TTY port of a connected Espressif USB-JTAG/serial device.
  - aurelio_build_firmware: Build ESP-IDF firmware for a target board.
  - aurelio_flash_firmware: Flash firmware to an ESP32 device over USB/UART.
  - aurelio_monitor_device: Monitor serial output from an ESP32 device.
  - aurelio_erase_flash: Erase ESP32 flash over USB/UART.
  - aurelio_firmware_size: Show ESP-IDF firmware size information.
  - aurelio_read_efuse_summary: Show ESP32 eFuse summary.
  - aurelio_start_ppk2: Start Nordic PPK2 power profiling service.
  - aurelio_serial_monitor_device: Monitor a generic serial device (nRF52, STM32, etc.).
  - aurelio_xgecu_program_device: Program a device using the Xgecu T76 / minipro toolchain.
  - aurelio_edge_board_status: Get status of an attached edge board (Icicle Kit, STM32MP257F-DK, etc.
  - aurelio_list_usb_hid_devices: List USB HID devices (barcode readers, POS keyboards, etc.).
  - aurelio_barcode_reader_status: Get status of attached USB barcode readers.
  - aurelio_oscilloscope_status: Get status of connected oscilloscopes.
  - aurelio_sdr_status: Get status of connected software-defined radios.
  - aurelio_hil_status: Get status of hardware-in-the-loop (HIL) lab materials.
  - aurelio_capture_logic_analyzer: Capture a logic-analyzer sample (Sigrok/PulseView compatible).
  - aurelio_authorize_budget: Authorise a spend budget via Stripe (test mode by default).
  - aurelio_record_spend: Record a planned spend against an authorised budget.
  - aurelio_capture_authorized_payment: Capture an authorised Stripe PaymentIntent.

Step 2: aurelio_list_devices() routes to bench-lab and detects ESP32-S3

Status: PASS
Duration: 121 ms

Output:

[
  {
    "device_id": "esp32-003-018",
    "family": "esp32",
    "model": "ESP32-S3 USB JTAG/serial",
    "vendor_id": "303a",
    "product_id": "1001",
    "serial_port": "/dev/ttyACM1",
    "jtag_port": null,
    "description": "ESP32-S3 USB JTAG/serial on bus 003 device 018",
    "online": true
  }
]

Step 3: aurelio_list_serial_ports() returns /dev/ttyACM1

Status: PASS
Duration: 112 ms

Output:

[
  {
    "port": "/dev/ttyACM0",
    "vendor_id": "3343",
    "product_id": "803a",
    "vendor": "Unknown",
    "model": "LattePanda_Leonardo"
  },
  {
    "port": "/dev/ttyACM1",
    "vendor_id": "303a",
    "product_id": "1001",
    "vendor": "Espressif",
    "model": "USB_JTAG_serial_debug_unit"
  }
]

Step 4: aurelio_detect_espressif_port() returns /dev/ttyACM1

Status: PASS
Duration: 117 ms

Output:

/dev/ttyACM1

Step 5: aurelio_list_devices(node_id=asus-server) detects PPK2 and logic analyzer

Status: PASS
Duration: 104 ms

Notes:

  • PPK2 hint: True, logic analyzer hint: True

Output:

[
  {
    "device_id": "ppk2-001-038",
    "family": "ppk2",
    "model": "Nordic PPK2",
    "vendor_id": "1915",
    "product_id": "c00a",
    "serial_port": "/dev/ttyACM0",
    "jtag_port": null,
    "description": "Nordic PPK2 on bus 001 device 038",
    "online": true
  },
  {
    "device_id": "logic_analyzer-001-039",
    "family": "logic_analyzer",
    "model": "Saleae Logic (FX2LAFW-compatible)",
    "vendor_id": "0925",
    "product_id": "3881",
    "serial_port": null,
    "jtag_port": null,
    "description": "Saleae Logic (FX2LAFW-compatible) on bus 001 device 039",
    "online": false
  }
]

Step 6: aurelio_start_ppk2(node_id=asus-server, port=/dev/ttyACM1, voltage_mv=3700)

Status: FAIL
Duration: 77 ms

Notes:

  • PPK2 service script is missing on the ASUS/Proxmox node; routing worked but the service cannot actually start.

Output:

PPK2 service script not found at /home/fcunha/savearth/aws-iot-core-poc/tools/scripts/ppk2_service.py

Step 7: aurelio_capture_logic_analyzer(node_id=asus-server)

Status: PASS
Duration: 83 ms

Notes:

  • Optional test.

Output:

Logic analyzer capture requested: 0.1s @ 24.0MHz. Connect a Sigrok-compatible device and run: sigrok-cli --driver fx2lafw --frames 2400000

Conclusion

1 test(s) failed. Review the detailed outputs above and verify lab node connectivity and hardware attachment.