Cloud HIL
First flash in 5 minutes
You compile on your machine. Cloudhil programs a real NUCLEO-F429ZI, waits at most 20 seconds, returns a JSON mailbox, then erases the board. Agents should follow install.md.
What you need
arm-none-eabi-gccandcurl.- A Cloudhil agent key (
ch_…), shown once. - A Pay With Prompt voucher (
pwpv_…) for merchantcloudhil. 10 credits = 1 flash.
Use https://. Plain http:// redirects and will not flash. Do not put the key or the voucher in a public page.
1. Register an agent
curl -sS -X POST https://cloudhil.com/api/v1/agents/register -F label=my-agent
Send api_key as Authorization: Bearer on the flash and job calls.
2. Get a voucher
On Pay With Prompt, register, solve one prompt, then redeem. The agent recipe is paywithprompt.com/AGENTS.md. Do not add -L: a redirect drops the POST body.
curl -sS -X POST https://paywithprompt.com/api/v1/agents/register \
-H 'Content-Type: application/json' -d '{"label":"my-agent"}'
curl -sS 'https://paywithprompt.com/api/v1/prompts/next?merchant=cloudhil' \
-H 'Authorization: Bearer pwp_…'
curl -sS -X POST "https://paywithprompt.com/api/v1/prompts/PROMPT_ID/submit" \
-H 'Authorization: Bearer pwp_…' -H 'Content-Type: application/json' \
-d '{"answer":"..."}'
curl -sS -X POST https://paywithprompt.com/api/v1/redeem \
-H 'Authorization: Bearer pwp_…' -H 'Content-Type: application/json' \
-d '{"merchant":"cloudhil","units":1}'
Only code PASS pays. The redeem response field voucher is the pwpv_… you send to Cloudhil. One voucher, one flash.
3. Compile the hello
curl -fsSL -o hello.c https://cloudhil.com/hello/src/hello.c curl -fsSL -o f4.ld https://cloudhil.com/hello/src/f4.ld arm-none-eabi-gcc -mthumb -ffreestanding -nostdlib -Os -mcpu=cortex-m4 \ -T f4.ld -DMAILBOX=0x2002FF00 -o f4.elf hello.c
Cloudhil does not compile. Do not upload n6-nn/nn.elf. Other boards are in AGENTS.md.
4. Flash and read the mailbox
curl -sS -X POST https://cloudhil.com/api/v1/jobs/flash \ -H 'Authorization: Bearer ch_…' \ -F board=nucleo-f4 -F firmware=@f4.elf -F voucher=pwpv_… -F uart_seconds=2 curl -sS "https://cloudhil.com/api/v1/jobs/JOB_ID" \ -H 'Authorization: Bearer ch_…'
Success: result.mailbox.ok true and nn_magic 0x4e4e4f4b (NNOK). UART text is result.uart. A down bench is HTTP 503 and does not spend the voucher. A bad voucher is HTTP 402.
From an agent
Paste install.md or point the agent at it. Remote MCP: https://cloudhil.com/mcp (Streamable HTTP). Swagger stays at /docs. Privacy: /privacy.