
Maximum Power Point Tracker
Efficient UAS Solar Power Management System
Packet Digital leverages decades of experience to build world-class fast-tracking maximum power point trackers for the UASs around the world. All MPPTs are designed, developed, and manufactured here in the US, and customer support is based in Fargo, ND. If you are looking to maximize power conversion during drone operations, Packet Digital’s MPPT offers industry-leading efficiency.

It’s essential to account for sunlight changes, solar-panel temperature, vehicle orientation, and other factors, for efficient solar power generation during long-endurance UAS operations. Packet Digital’s Maximum Power Point Tracker (MPPT) hardware and embedded algorithms take precise power measurements and adjust settings quickly to maintain maximum power transfer from solar panels to battery storage, pushing the limits on solar UAS operations.
MPPT Features
- Fast-tracking (1024 Hz)
- Super-fast adaptive search algorithm typically converges within five samples
- 200W peak capacity
- Half the size of the competition
- High efficiency (94% to 98%)
- High resolution for accurate tracking with sharp knee in high-performance PV array
- Customization available to meet power and form-factor requirements
MPPT Specifications
Converter Architecture | Buck-Boost |
Input Voltage Range | 12.5V to 50V |
Output Voltage Range | Up to 50V |
Absolute Max Input Voltage | 55V |
Absolute Max Output Voltage | 55V |
Maximum Input Current | 5A |
Maximum Output Current | 5A |
Over-temperature Threshold | 60C with 5C Hysteresis |
Switching Frequency | 400 kHz |
MPPT Update Frequency | 500 Hz |
Dimensions | 60.96mm x 53.34mm x 17.4mm (LxWxH) |
Mounting holes | #2 holes in each corner of PCB |
Weight with VIN and VOUT Connectors | 31 grams |
Weight without VIN and VOUT Connectors | 28 grams |
PCB Coating | HumiSeal 1B31 |


Packet Digital’s MPPT Experience

In collaboration with the U.S. Naval Research Lab (NRL), developed power management for extended endurance, portable, hand-launchable solar-soaring UAS
- Providing efficient Power Management and Delivery (PMAD), energy dense smart battery, and high-performance solar Maximum Power Point Tracker (MPPT)
- NRL delivering expertise in advanced optoelectronics/photovoltaics and thermal soaring algorithms
- Test flights at Aberdeen Proving Ground and Cape Canaveral: aircraft flew 11 hours from sunrise to sunset
- Advance to OECIF project targeting a larger airframe and longer, multi-day flights

Kraus Aerospace, a developer of long-endurance Unmanned Aerial Systems (UAS), integrated Packet Digital’s MPPTs into their solar-covered wings to provide high-efficiency solar power management for their fixed-wing aircraft.
“We consider the Packet Digital Maximum Power Point Tracker to be a key technology component of our aircraft. We have 100s of hours of flight time using the MPPT and it has been bulletproof for us”. – Kraus Aerospace
MPPT Documentation
CAN Commands
Communication over the CAN port follows the UAVCAN v0 specification (https://legacy.uavcan.org).
CAN bitrate: 1Mbps
Status LED
Color | Pattern | Description |
None | N/A | No Power/Catastrophic Fault |
Red | Fast Blink | Fault – Check Status Messages |
Green | Slow Blink | Normal Operation |
CAN Communication
Pin | Name | Description |
1 | 5V | Supply for CAN transceiver (required for CAN operation) |
2 | CAN_HI | High level CAN bus line |
3 | CAN_LO | Low level CAN bus line |
4 | VSS | CAN Bus communication ground |
Broadcasted Data Types
The following data types are broadcast once per second.
- NodeStatus – Link
- Stream
- Default data type ID: 20009
- This is a non-standard UAVCAN datatype, the dsdl definition is included below:
# # MPPT streaming data, transmitted at 1Hz # uint8 OV_FAULT = 1 # over-voltage uint8 UV_FAULT = 2 # under-voltage uint8 OC_FAULT = 4 # over-current uint8 OT_FAULT = 8 # over-temperature uint8 fault_flags int8 temperature # [Celsius] float16 input_voltage # [Volt] float16 input_current # [Amp] float16 input_power # [Watt] float16 output_voltage # [Volt] float16 output_current # [Amp] float16 output_power # [Watt]
Supported Service Requests
OutputEnable
Full name: uavcan.thirdparty.mppt.OutputEnable
Default data type ID: 240
This is a non-standard UAVCAN datatype, the dsdl definition is included below:
# # Service to enable or disable the mppt output # void6 # If both enable and disable are true then no change is applied bool enable bool disable --- void7 # The new enable state after applying the reqeust bool enabled
Node Parameters
uavcan.node_id
This parameter sets the node ID for this MPPT. If set to 0 dynamic ID allocation will be used. Requires restart to take effect.
Default value: 0 Minimum value: 0 Maximum value: 127
mppt.dcdc_en
This parameter controls whether the MPPT output is enabled automatically when powered on.
Default value: 1 Minimum value: 0 Maximum value: 1
mppt.dcdc_algorithm
This parameter selects which maximum power point tracking algorithm is used. This does not take effect until the next time the output is turned on.
0: Perturb and Observe 1: Reserved 2: Constant voltage test mode – the MPPT maintains a fixed output for stable conversion efficiency measurements. There is no maximum power point tracking in this mode, however all of the sensors and software functions remain active for accurate measurements. This is intended to be used with a controlled load on the output – do not use in a live system. 3: Integrated Adaptive Step Search (default) 4: Reserved Default value: 3 Minimum value: 0 Maximum value: 4
mppt.vout_set
Sets the output voltage when the output power is less than the maximum powerpoint. This value should be larger than the battery voltage. This does not take effect until the next time the output is turned on.
Default value: 47.0 Minimum value: 12.0 Maximum value: 54.0
mppt.cvt_set
Sets the output voltage when operating in constant voltage test mode. This does not take effect until the next time the output is turned on.
Default value: 45.0 Minimum value: 12.0 Maximum value: 54.0
mppt.impedance_comp
This parameter sets the resistance value used for impedance compensation on the output voltage. This does not take effect until the next time the output is turned on.
Default value: 0.0 Minimum value: 0.0 Maximum value: 1.0
ArduPilot Documentation

Connect the MPPTs, solar panels, battery, and autopilot as shown above.
The board’s LED should flash green once the solar panel provides more than 12V. It may be easiest to initially connect a 4S or 6S battery to the MPPT’s VIN port
Configuration
Connect a ground station to the autopilot. For the following example, we’ll use Mission Planner. In Mission Planner, set the following parameters and reboot the autopilot.
- BATT_MONITOR = 8 (DroneCAN)
- CAN_P1_DRIVER = 1 (DroneCAN)
To check the MPPT board’s parameters, connect through “SLCAN”
- Mission Planner’s SETUP -> Optional Hardware -> UAVCAN(DroneCAN) page
- In the top righthand corner, select the COM port for the autopilot’s SLCAN connection (usually one higher than the MAVLink COM port)
- Press the “SLCan Mode CAN1” button. The table should be filled in as shown below. If this does not work try changing to the Config screen, connect over MAVLink and set CAN_SLCAN_CPORT = 1. Return to SETUP -> Optional Hardware -> UAVCAN(DroneCAN) page and press the “SLCan Mode CAN1” button again

Connecting Multiple MPPTs
More than one Packet Digital MPPT board can be connected in parallel to the same battery (but different solar panels) to increase the total current provided.
To allow the autopilot to connect to all the MPPTs:
- Enable one battery monitor per MPPT by setting BATTx_MONITOR = 8
- Use Mission Planner’s SETUP >> Optional Hardware >> UAVCAN(DroneCAN) page’s “Menu” button to manually configure the uavcan.node_id of each MPPT
- set BATTx_SERIAL_NUM to match the uavcan.node_ids set above