Chiprun

Limits & errors

What a run can do, what it costs against your quota, and what to do when something comes back red.

Limits

Firmware size32 MB per ELF
Virtual time per runUp to 60s, board-dependent
Maximum wait120s before a run reports back as still queued
UART output64 KB, truncated beyond that
Upload slot lifetime10 minutes
Firmware retention7 days, then deleted

Daily run quota

Simulation runs have their own budget, separate from the product-data API quota. It resets at 00:00 UTC, and chiprun_help reports what you have left.

free20 runs/day
pro500 runs/day
business5,000 runs/day

What a run covers

  • CPU execution of your ELF binary.
  • UART/USART/LPUART capture — this is what comes back as output.
  • Peripheral registers and interrupt timing matching the physical chip.

Semihosting output is not captured; print over the UART instead. On QEMU boards a semihosting exit does end the run early, which is handy for test firmware that knows when it's done.

Errors

Unknown board

Call chiprun_list_boards. Board keys are exact strings; the list is authoritative and may be ahead of the docs.

Unknown firmware_id

Create an upload slot first, and make sure the PUT to upload_url actually succeeded before running.

Firmware object is empty or was never uploaded

The slot was issued but no bytes arrived. Re-check the PUT — it needs Content-Type: application/octet-stream and the raw ELF as the body.

Firmware is N bytes, over the limit

Strip debug symbols or build in release mode. The cap is checked before the run, not at upload, because a presigned URL cannot enforce size.

Daily simulation quota exhausted

Resets at 00:00 UTC. chiprun_help shows your remaining count.

Run did not finish in time and is still queued

The queue is backed up rather than your firmware being broken. Retry shortly; the job keeps running and its result is not lost.

status: timeout

Not a failure. Your firmware was still executing when the virtual-time cap was reached — normal for anything with a main loop. The UART captured up to that point is returned.

Still stuck? The per-board notes cover the chip-specific traps that account for most confusing output.