Skip to content

FormationFlight WiFi

FormationFlight radios run a WiFi network for configuration and monitoring

  • Name/SSID: iNav Radar-XXXXXX where XXXXXX are the last 6 characters of your ESP's internal unique ID.
  • Password/PSK: inavradar
  • IP Address: http://192.168.4.1

API

All endpoints on the WiFi interface serve a simple JSON response, and take in form data as POST for mutating responses.

Endpoints

/

/
{
  "target":"Lolin D32",
  "version":"4.0.0",
  "heap":207500,
  "uptimeMilliseconds":14941,
  "name":"5C0",
  "longName":"ADF5C0",
  "host":"NoFC"
}
  • target: name of the hardware target running
  • version: version number of FormationFlight running
  • heap: bytes remaining in the system's heap memory space
  • uptimeMilliseconds: milliseconds since system boot
  • name: 3-character name advertised to peers
  • longName: 6-character autogenerated name unique to this ESP8266/ESP32
  • host: short identifier for what FC software is connected - INAV/ARDU/BTFL/NoFC

/peermanager/status

/peermanager/status
{
  "myID": "A",
  "count": 1,
  "countActive": 1,
  "peers": [
    {
      "id": "B",
      "name": "5C0",
      "updated": 358772,
      "age": 44,
      "lost": 0,
      "lat": 34.015039,
      "lon": -118.79132,
      "latRaw": 34015039,
      "lonRaw": -118791320,
      "alt": 60,
      "groundSpeed": 0,
      "groundCourse": 0,
      "distance": 1085.551147,
      "courseTo": 358,
      "relativeAltitude": -11,
      "packetsReceived": 3235
    }
  ]
}
  • myID: timeslot index of this radio (A-F)
  • count: number of peers we're tracking
  • countActive: number of peers we've seen recently
  • peers: list of peers
  • id: timeslot index of the peer
  • name: name of the peer
  • updated: millisecond timestamp of last update
  • age: milliseconds since last update
  • lost: 0 or 2, 2 indicates lost for legacy reasons
  • lat: decimal coordinate latitude of the peer
  • lon: decimal coordinate longitude of the peer
  • latRaw: compressed coordinate latitude of the peer as sent OTA
  • lonRaw: compressed coordinate longitude of the peer as sent OTA
  • alt: altitude in meters of the peer
  • groundSpeed: speed of the peer in km/h
  • groundCourse: ground course of the peer in degrees (0 is north)
  • distance: calculated distance in meters from us to peer
  • courseTo: course we'd have to follow to meet peer
  • relativeAltitude: difference in meters between our altitude and the peer's
  • packetsReceived: number of packets received on this timeslot

/radiomanager/status

/radiomanager/status
{
  "radios": [
    {
      "status":"ESPNOW @ CH1",
      "counters":"[4919TX/0RX] [0CRC/0SIZE/0VAL]",
      "enabled":true
    },
    {
      "status":"LoRa SX128X @ 2400.00MHz (10dBm)",
      "counters":"[4919TX/0RX] [0CRC/0SIZE/0VAL]",
      "enabled":true
    }
  ]
}
  • radios: list of radios on the system
  • status: short radio-specific status string
  • counters: number of packets transmitted, received, and rejected for the 3 reasons listed (bad CRC, bad size, failed validation)
  • enabled: whether or not the radio is enabled

TODO(MUSTARDTIGER) Document remaining endpoints