Cloudhil tinab.com

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

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.