Skip to content

badgeteam/ota

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Badge.team OTA Updates

This repository contains the firmware binaries for the badges we support. It is published as the webroot of https://ota.badge.team

Maintainers

  • Renze Nicolai: SHA2017, HackerHotel 2019, Disobey 2019, Troopers 2019, MCH2022
  • Heikki Juva: Disobey 2020
  • Tom Clement: CampZone 2019, CampZone 2020, Pixel
  • Reinier van der Leer (@Pwuts): DevOps

Firmware release hook

The release hook workflow is an easy way to push firmware releases to this OTA service. It can be used by calling the hook from a workflow in the firmware repository.

Usage

  1. Make sure the firmware_repo property is set in badges.json

  2. Publish a release

  3. Attach the firmware binary as a release asset (e.g. using gh release upload)

  4. Call the release hook using peter-evans/repository-dispatch@v2

    • This requires a suitable Personal Access Token, see manual)

    Payload (example):

    {
      "device_id": "mch2022",
      "device_name": "MCH2022",
      "tag": "v2.0.5",
      "channel": "dev",
      "fw_main": "launcher.bin"
    }
    • device_id should correspond to an entry in badges.json
    • fw_main should match the firmware binary asset on the release
      • fw_main is also used to look for a matching .elf release asset. If found, it is downloaded and added as {device_id}-{tag}.elf.
    • channel can be release or dev; other channels do not show up in the index.
    • tag is used as the new .version.name or .version_{channel}.name.

    The release hook then downloads the firmware release asset, launcher.bin in the example above, replacing the old binary, and a PR is created for you to review and publish the OTA update.

Example

cd-release.yml in badgeteam/mch2022-firmware-esp32

badges.json schema

All properties have string values.

.<i>.id

Slug to uniquely identify this badge by. Should match the firmware file(s) with the format {id}.bin (and {id}_dev.bin).

.<i>.name

Display name of the badge.

.<i>.urloptional

URL to a website or webpage about this badge.

.<i>.firmware_repooptional

Badge firmware GitHub repository. Used in the firmware release hook.

Example: badgeteam/mch2022-firmware-esp32

.<i>.version

If not set, an attempt will be made to extract a date stamp and version info from the latest .bin file.

.<i>.version.date

Date of the latest version.

.<i>.version.name

Name of the latest version, e.g. v1.4.9 or r5.

.<i>.version_devoptional

Same as .<i>.version but for development builds.

.<i>.bootloader

.<i>.bootloader.file

Filename of the bootloader binary.

.<i>.bootloader.name

Display name of the bootloader.

.<i>.flashoptional

.<i>.flash.size

Size of the flash in string format. Is used to find a partition table file if flash.partition_table is not set.

.<i>.flash.partition_tableoptional

The filename of the partition table. If not set, the file {id}_{flash.size}.bin is used.

About

This repository contains all released firmware versions for the badges we support

Topics

Resources

Stars

Watchers

Forks