Case Status
Log In


C2Utility Firmware API
  • RSS Feed

Last modified on 4/5/2017 10:48 AM by User.


C2Utility Firmware API

To Do

  • Validate HTML
  • Sync/save firmware files from Beanstalk
  • Better Stats API?
  • Language Codes?

Sample Calls

Note: This is a private API. It requires HTTP Basic authentication:

Username is concept2firmware and password is C()rbyn0m1c5

Base URL is

GET /api/firmware – returns every firmware ever along with their state

GET /api/firmware/latest – this either returns all available versions

GET /api/firmware/latest/public – this either returns all available public versions

GET /api/firmware/latest/beta – this returns latest beta version

GET /api/firmware/latest/developer – this returns latest version available to developer

GET /api/firmware/{version}– this returns a specific version, e.g. /api/firmware/729.4

You can also pass optional monitor and machine parameters to filter it further:

GET /firmware/latest/public?monitor=pm5v2ski 

GET /firmware/latest?machine=skierg

GET /firmware/latest/public?machine=skierg&monitor=pm5v2ski

Example return


            "data": [


            "version": 108,

            "major_version": 108,

            "minor_version": null,

            "monitor": "pm3",

            "machine": "rower",

            "public": true,

            "beta": false,

            "developers": false,

            "internal": false,

            "description": "Example description",

            "short_description": "Example short description",

            "new_features": "<ul><li>Enhancements to USB interface for ErgData iPhone App</li><li>Minor fixes and enhancements</li><li>Added Slovak Language</li></ul>",

            "bug_fixes": "",

            "known_issues": "",

            "internal_notes": "",

            "files": [


                        "name": "pm3_euro_R108B000.7z",

                        "path": "",

                        "languages": ["EN"],"uploaded": "2017-01-11"





Notes: Version is a concatenation of Major and Minor version.


Currently you can also update file download stats by POSTing to /api/firmware/download, e.g:

POST /api/firmware/download HTTP/1.1
Authorization: Basic Y29uY2VwdDJmaXJtd2FyZTpDKClyYnluMG0xYzU=
Content-Type: application/json
Cache-Control: no-cache

{ "file":""}


To add or edit firmware, go to

This will list all currently released firmware.

To change the release status of firmware (e.g. to promote it from beta to general release, or to unpublish) click on Edit, and then change the Release Status at the bottom.

When adding or editing firmware, the following fields are available:

  • Release Group: see note below
  • Monitor: a dropdown list of available monitors. You can change this by going to Monitor Types and adding/editing a new monitor
  • Files: Upload firmware files . Must also include the available languages. Languages can be added/edited by going to the Languages page.
  • Major Version: required major version of firmware
  • Minor Version: optional
  • Short Description: short description of the firmware
  • Long Description: long description of the firmware
  • New features, Bug fixes, Known issues, internal notes: these override what is set in the Release Group. Leave blank to use the Release Group information.

Release Groups

As multiple firmware releases will often share common characteristicvs (e.g. PM5v2 SkiErg may have identical Bug Fixes to PM5v1 Indoor Rower) to cut down on copy/paste, each firmware should be assigned to a release group. This means that they can share New Features, Bug Fixes, Known Issues and Internal Notes.

To create a new Release Group go to the Release Group section.

You can manually override things for individual firmware. e.g. have a specific Internal Notes for just the PM5v2 SkiErg release.

To add firmware to a release group you can do so either when editing or creating firmware or from the Release Group itself. Click on View to see the Release Group and then you can assign firmware to this group.

From this page you can also edit individual firmware, view the new features etc and also mass set the release status for each firmware.