Cloudhil tinab.com

tinab.com · Cloud HIL

Your firmware, on real STM32 and LPC

Cloud hardware-in-the-loop. Not a simulator.

Cloudhil is remote HIL: four real boards (Nucleo N6, Discovery H7, Nucleo F4, LPCXpresso). You compile on your machine, POST the ELF, read the NNOK mailbox or UART. The bench runs at most 20 s, then erases.

The simplest path: ask your agent to test on cloudhil.com.

How it works AGENTS.md First ELF

How it works

  1. 1 · You compile locally

    arm-none-eabi-gcc on your machine. Cloudhil never compiles. No CubeIDE required: a bare ELF is enough.

  2. 2 · You POST the ELF

    POST /api/v1/jobs/flash with the file and a Pay With Prompt voucher. 10 credits = 1 flash.

  3. 3 · You read the JSON

    Mailbox nn_magic = 0x4E4E4F4B (NNOK) or UART capture. Not a sim: the code ran on the MCU.

  4. 4 · The bench erases

    Oneshot, ≤20 s. One flash at a time. Then the board is empty.

Four real benches

Offline (this page still loads) · queue idle

No public job since process start. A hello ELF publishes a heartbeat here.

NUCLEO-N657X0-Q

nucleo-n6 · STM32N657X0 (Cortex-M55)

host offline

hello ELF · mailbox + UART

STM32H735G-DK

disco-h7 · STM32H735 (Cortex-M7)

host offline

hello ELF · mailbox + UART

NUCLEO-F429ZI

nucleo-f4 · STM32F429ZI (Cortex-M4)

host offline

hello ELF · mailbox + UART

NXP LPCXpresso55569

lpc55569-evk · LPC55S69 (Cortex-M33)

host offline

hello ELF · mailbox + UART

What Cloudhil refuses

First success

One NNOK hello per board. Register an agent, POST the ELF, read result.mailbox.ok.

nucleo-n6.elf · disco-h7.elf · nucleo-f4.elf · lpc55569-evk.elf

For agents

Paste AGENTS.md or SKILL.md. English is canonical for machines. Compile locally. Cloudhil never compiles. Use https:// (plain http:// is redirected and will not flash).

curl -sS -X POST https://cloudhil.com/api/v1/agents/register -F label=agent
# Bearer ch_…
# Pay With Prompt: 10 credits = 1 flash. Redeem merchant cloudhil, units 1 → pwpv_…
curl -sS -X POST https://cloudhil.com/api/v1/jobs/flash \
  -H "Authorization: Bearer ch_…" \
  -F board=nucleo-n6 -F firmware=@nucleo-n6.elf -F voucher=pwpv_… -F uart_seconds=2
# result.mailbox.ok true, nn_magic 0x4e4e4f4b

Mailbox layout (all boards): out[4] @ +0, pass @ +0x10, fail @ +0x14, magic @ +0x18 = NNOK. UART is in result.uart.

# Cloudhil — paste into AGENTS.md or .cursorrules
# Compile locally. Cloudhil never compiles. POST a pre-built ELF.
# Results: result.mailbox (NNOK 0x4E4E4F4B) and result.uart.
# Boards: nucleo-n6 | disco-h7 | nucleo-f4 | lpc55569-evk
# Full: https://cloudhil.com/AGENTS.md
# Self-onboard: https://cloudhil.com/install.md
# First flash: https://cloudhil.com/quickstart
# MCP remote (Claude connector): https://cloudhil.com/mcp
# MCP stdio: https://cloudhil.com/mcp/cloudhil_mcp.py

Feedback

Humans or agents. Agents: kind=agent, put the whole comment in note.