Cloudhil

tinab.com · Cloud HIL · évaluation

Cloud HIL : embedded programming on real STM32 and LPC microcontrollers.

Cloudhil = Cloud HIL for agentic LLM workflows. Real boards (NUCLEO-N657X0-Q STM32N6, STM32H735G-DK, NUCLEO-F429ZI, LPCXpresso55569) over HTTPS. You compile locally, POST an ELF. UART / mailbox ≤20 s, then erase. For AI agents that would otherwise only simulate firmware.

Pourquoi un HIL distant

Bancs branchés

NUCLEO-N657X0-Q

nucleo-n6 · STM32N657X0 (Cortex-M55)

STLINK-V3 · sonde vue · flash OK

AXISRAM only. Vectors 0x34180400, mailbox 0x341C0000. ELF scan + halt ≤20s.

STM32H735G-DK

disco-h7 · STM32H735 (Cortex-M7)

STLINK-V3 · sonde vue · flash OK

User ELF @ 0x08000000. MPU trampoline in DTCM. Mailbox 0x2001FF00. FLASH/DMA denied.

NUCLEO-F429ZI

nucleo-f4 · STM32F429ZI (Cortex-M4)

ST-LINK/V2.1 · sonde vue · flash OK

User ELF @ 0x08000000. MPU trampoline in CCM. Mailbox 0x2002FF00. FLASH/DMA denied.

NXP LPCXpresso55569

lpc55569-evk · LPC55S69 (Cortex-M33)

LPC-LINK2 CMSIS-DAP · sonde vue · flash OK

App flash below PFR/CMPA. Mailbox 0x2003FF00. Chip erase on oneshot.

Pi garage : en ligne.

Interdit

Pour les agents

  1. POST /api/v1/agents/register → clé ch_…
  2. GET /api/v1/boards
  3. POST /api/v1/jobs/flash.elf compilé chez vous + Bearer. Verdict : result.mailbox (NNOK) sur les 4 bancs. UART en plus. Sans session : erase auto.
  4. POST /api/v1/sessions/{id}/end — log-off : erase MCU. Idle / restart aussi.
  5. GET /api/v1/jobs/{id} — même clé → result.mailbox / result.uart / result.erased
  6. Retour : POST /api/v1/waitlist kind=agent, tout le feedback dans note (pas de firmware, pas de secrets).

Cloudhil ne compile pas : l’agent compile en local, puis envoie l’ELF. Collez AGENTS.md ou .cursorrules dans le projet.

# Cloudhil — collez dans AGENTS.md ou .cursorrules
# Compile locally. Cloudhil never compiles. POST a pre-built ELF.
# Verdict = result.mailbox (NNOK 0x4E4E4F4B), not UART.
# Boards: nucleo-n6 NUCLEO-N657X0-Q | disco-h7 STM32H735G-DK |
#         nucleo-f4 NUCLEO-F429ZI | lpc55569-evk NXP LPCXpresso55569
# Register → Bearer → GET /api/v1/boards → POST /api/v1/jobs/flash
# After a run: POST /api/v1/waitlist kind=agent, feedback in note.
# Full: https://cloudhil.tinab.com/AGENTS.md
# MCP stdio: https://cloudhil.tinab.com/mcp/cloudhil_mcp.py

MCP (Cursor / Claude Desktop), Python 3, pas de pip. Téléchargez le fichier, chemin absolu dans la config.

{
  "mcpServers": {
    "cloudhil": {
      "command": "python3",
      "args": ["/absolute/path/to/cloudhil_mcp.py"]
    }
  }
}

Swagger · llms.txt · AGENTS.md

Retours

Phase d’évaluation. Un mot suffit. L’e-mail est facultatif. Rien n’est facturé.

E-mail stocké haché s’il est fourni. Pas de corps de firmware dans les journaux.