Ossia Cota "Charge over the air" power receiver
firmware development


But first, what is a Cota receiver?

A Cota receiver is a device that sends a short RF packet whenever it needs RF energy beamed at it - in short it is a "receiver" of power. A power "server" (called a Cota transmitter) listens for such packets and sends a focused beam of RF energy back to the Cota receiver for the purposes of it harvesting and storing the RF energy into an attached LiPo battery. In this way multiple Cota receivers can receive energy from the same Cota transmitter in a timed sequence.

Below is the Archos wireless webcam, an early adapter of Cota technology.

Cota receiver development system, with IoT demonstration:

  • A temperature sensor (Sparkfun TMP-117, red board) is demonstrated.
  • Debugging and programming is accomplished via break-out-board (on left)
  • SWD to Segger J-link/Host (debugging and programming)
  • FTDI UART-to-USB bridge (debugging via COM port on host)

Note: Cota receiver is in the lower right in the photo. Not shown is the receiver antenna, which varies by product implementation.


Typical patch antenna (left) and Cota receiver (right)


Development toolset:

  • IAR Embedded workbench for ARM
  • Nordic nRF Connect for desktop


Cota receiver (target hardware) essential elements:

  • Nordic nRF52832 ARM Cortex-M4 SOC, with BLE transceiver
  • Amiccom 5.8 GHz FSK transceiver
  • AEM30300 ambient energy harvester
  • MAX17260 Fuel Gauge
  • STSAFE-A110 Secure Element


Product features:

  • Ultra low power: <100 uA average current (@ 1 beacon per second)
  • Bluetooth channel for OTA firmware updating, configuring, metrics and debugging
  • 5.8 GHz proprietary beacon (comm uplink to Cota transmitter), half-duplex, bi-directional capable (for IoT channel data)
  • Power reception/harvest from up to 10m from Cota transmitter
  • Boost converter output, can supply up to 12Vdc power to OEM system
  • Configurable I2C bus for IoT sensors


Development features:

  • C language, FreeRTOS
  • Architecture: run to completion (cold start, beacon, set wake alarm, shut down <200ms), harvest energy while in deep sleep (MCU powered down via RTC load switch, <1 uA)
  • Beacon strategy: RSSI read before beaconing, back-off and retry "n" times, wake time compensation to retain wake synchronization.
  • Unit testing on hardware (C language)
  • CLI (UART-USB bridge and BLE virtual com port): for commissioning (configuration), debug output. Over 100 commands available.
  • OTA firmware updating: via BLE only
  • Python for CI pipeline tested basic operation at system level (early stages of development)
  • Git repository. One single repo for multiple versions of receiver hardware.
  • JIRA for planning and task tracking.
  • CI pipeline: Jenkins build at every PR merge, build artifacts archived to Nexus


Unit testing log file (extract):