The Bad Elf Flex firmware can be updated using a USB drive connected to the Bad Elf Flex using the supplied USB-OTG adapter.

Installation Steps

  1. Download the latest public firmware version (see table below) to your PC or Mac.
  2. Copy the file to any FAT-formatted USB drive, and cleanly unmount/eject the USB drive from your computer.
  3. Turn your Bad Elf Flex unit ON by holding the power button for 3-4 seconds, and wait until you see the main LCD screen (~30 seconds).
  4. Plug the USB drive into the supplied USB-OTG adapter cable.
  5. Plug the USB-OTG cable into the Mini-USB port on the back of your Bad Elf Flex.
  6. The left LED should illuminate with a purple status indication, indicating the OTG cable was detected.
  7. The LCD screen will display a message indicating the USB Drive was detected.
  8. Within a few seconds the Flex will start the update process.  You will usually see the all the LEDs turn purple during the update, and the screen will display a "Shutting down..." or "Updating firmware..." message.  Be patient, this can take 1-5 minutes depending on the state of your Flex.
  9. When finished, you will hear 2 beeps, and the new firmware will automatically start. 
  10. You can check the new firmware version by navigating to Settings > Flex Info.
  11. You can safely disconnect the USB drive and USB-OTG adapter cable from the back of your Bad Elf Flex.

Need orthometric height models for your region?  

Visit our Orthometric Height / GEOIDs page.  These packages can be copied to the USB drive along with the firmware update in step 2 above.

Public Firmware Releases

(build 1166)


  • Added base/rover support
  • Added UHF radio support via USB and Bluetooth
  • Improved Bluetooth screens (adding/unpairing/disconnecting)
  • Fixed bug causing app to restart on shutdown
  • Optimized UI when running in dark mode
  • Added support to NTRIP client for raw TCP connections

(build 1134)

  • Several fixes for BT connectivity issues with iOS devices
  • Fixed bug causing custom project names to be reset to default timestamp
  • Added NMEA streaming to PC or Mac via standard USB cables
  • Added NMEA streaming to Ground Penetrating Radar (GPR) head units via FTDI-based USB-RS232 cable
  • Added bridge support for LaserTech laser rangefinders for offset measurements
  • Added magnetic declination support based on current position (overridable) 
  • Added EPSG code suffix to horizontal datum metadata

(build 1098)
  • Added support for Point One Navigation RTK corrections service
  • Added GEOID99 support
  • Added CSV logging of NTRIP mount point and datum information
  • Added streaming of notifications to the Bad Elf Flex utility app

(build 1092)
  • Bluetooth connectivity and reconnect fixes
  • Supports new GEOID models: AUS/NZ, UK/IR/NIR, Brazil, and Caribbean  
  • Added CSV logging of MEMS accelerometer data
  • RTK baseline field now respects distance units
  • Added support for 2-20Hz track logging (requires additional license activation)
  • Added support for reduced track logging rates (every 2-60 sec)
(build 1084)
  • Major improvements to Bluetooth connectivity and reconnect logic.
  • Added support for US and Canadian GEOID orthometric height models.
  • Added support for pole height offset in elevation values shown on LCD, streamed to Flex app, and stored in logs.
  • Point and track logs now include NTRIP connection details, orthometric height fields, pole height, and datum in use (when available).
  • Speed values are in logs are now correctly labelled as km/h (not m/s).
  • Added support for RINEX 2.11 and 1-30 second decimations
  • Added support for raw message streaming to 3rd party apps via SDK
  • Added option for clearing Bluetooth pairings via LCD
  • Added option to delete log projects (all or individually)
(build 1061)
  • Fixed bug affecting charging via USB while Flex is OFF.
  • Improved Bluetooth connectivity
(build 1054)
  • First release shipped with production Flex hardware

Beta (Pre-Release) Firmware Releases

NOTE: beta firmware should only be used by customers in our beta release program, and may require access to our matching iOS or Android beta app for full functionality. 

(build 1168)

  • Added Flex setting to enable $PSAT via Bluetooth.
  • Fixed bug causing extra columns to appear in track and point CSV log files.
  • Fixed Bluetooth bug affecting UHF radio connections.