Skip to content

Artifacts view

The history of every firmware build uploaded to the project.

Columns

Column Notes
build_number Project-scoped, monotonic, never reused.
framework From the manifest.
chip_family From the manifest.
board_id From the manifest.
size Binary size.
sha256 Truncated; click to copy full digest.
uploaded_at Server time at upload.
deployments Count of active deployments referencing this artifact.

Upload form

Drag-and-drop the binary, paste or upload the manifest JSON. The form validates the manifest before accepting the upload; a bad manifest fails fast with an inline error.

Upload the app image, not a merged/factory image

Upload the application binary: for the Arduino toolchain that is sketch.ino.bin. Do not upload the sibling build outputs the toolchain also produces:

  • sketch.ino.merged.bin (bootloader + partition table + app, ~4 MB)
  • sketch.ino.bootloader.bin, sketch.ino.partitions.bin
  • sketch.ino.elf, sketch.ino.map

An OTA update rewrites only the app partition, so a merged/factory image (which includes the bootloader and partition table and is far larger than one app partition) can never fit and the device rejects it with update_begin_failed. SimpleOTA shows an advisory warning when an upload's filename looks like one of these, but still accepts it, so double-check you selected the right file.

If you've hit your monthly artifact upload limit (Free plan: 10 / 30 days), the upload form blocks with a link to Billing → Upgrade.

Detail page

Clicking an artifact shows:

  • Full manifest as pretty-printed JSON.
  • All deployments that have ever included this artifact.
  • A list of devices that successfully installed it (paginated).
  • A "delete artifact" button if no active deployment references it.

Deleting an artifact removes the binary from object storage but does not rewrite history; the audit log still says "device X received build Y at time T".