Setup guide · ArduPilot

Nestua H743 setup: wiring and ArduPilot parameters.

Everything you need from unboxing to first hover: plug the H743 into a standard 8-pin 4-in-1 ESC, assign the seven UARTs, set up GPS, receiver, digital OSD and DroneCAN, and turn on the 256 MB onboard blackbox.

The Nestua H743 ships flashed with ArduPilot (ArduCopter) and works with Mission Planner, QGroundControl and MAVProxy. Setup is a normal ArduPilot setup. This page covers the parts specific to this board: what is on each pad, which SERIALn number each UART has, and the few parameters that are easy to get wrong.

  • Battery goes to the ESC. The FC takes battery voltage over the 8-pin ESC cable and makes its own 5 V and 3.3 V.
  • USB powers only the 3.3 V domain. GPS, receiver and VTX on the 5 V pads need a battery connected.
  • Logging goes to onboard NAND: keep LOG_BACKEND_TYPE = 4.
  • No compass on the board. Use an external GPS/compass over I2C or DroneCAN.
  • Cannot be bricked: hold BOOT while plugging in USB to reach the ROM bootloader.

Before you start

You need a 4-in-1 ESC with the standard 8-pin JST-SH 1.0 mm connector, a USB-C cable, a ground station (Mission Planner on Windows, or QGroundControl on Windows, macOS and Linux) and, for GPS modes, an external GPS/compass module. Keep props off for everything on this page until the motor test.

Mount the board with the arrow on the silkscreen pointing forward. With that orientation AHRS_ORIENTATION stays at its default of 0. The mounting pattern is 30.5 × 30.5 mm with Ø4 mm holes, so use M3 soft-mount grommets.

Connect the 4-in-1 ESC

The ESC cable carries battery voltage, four motor signals, ESC telemetry and the current-sense signal. There is no 5 V pin, because the FC does not need 5 V from the ESC.

PinSignalOn the FCArduPilot
1GNDGround—
2VBATOnboard 5 V BEC input and voltage senseBattery voltage
3M1Output 1 (DShot)SERVO1
4M2Output 2SERVO2
5M3Output 3SERVO3
6M4Output 4SERVO4
7TLMUART7 RX (receive only)SERIAL5
8CURAnalog current inputBattery current

Check the pin order before you plug in. This order is common on 4-in-1 ESCs, but a few brands differ. If your ESC's VBAT pin lands on a signal pin, the board will be damaged. Compare the ESC's silkscreen or manual with the table above, and re-pin the cable if needed.

Input range is 2–6S (7–25.2 V). The input has reverse-polarity protection and a 600 W TVS diode, and the 5 V BEC is rated 2 A. The motor phase wires and the battery lead solder to the ESC. Only low-current signals reach the FC.

First power-up

  1. USB only. Plug in USB-C. The green LED (3.3 V) lights and the amber LED (5 V) stays off. That is correct: USB powers the processor, sensors and log flash only. The board enumerates as NestuaH743.
  2. Connect the ground station. Mission Planner or QGroundControl will find the MAVLink heartbeat on the USB port.
  3. Battery. With props off, connect the battery to the ESC. The amber 5 V LED lights, and the GPS, receiver and VTX on the 5 V pads power up. USB and battery can be connected at the same time.

The two other LEDs are ArduPilot's status LEDs (blue and red). For a lost-model alarm, solder an active 5 V buzzer to the BZ+ and BZ− pads. The driver transistor and flyback diode are already on the board.

UART pads and SERIAL numbers

Every peripheral port is a group of labelled solder pads with its own 5V and G pads next to it. ArduPilot numbers ports in its own order, so use the right-hand column when you set parameters.

Pads (silk)UARTIntended useArduPilot portSet
USB-CUSBGround stationSERIAL0—
T1 R1 + SDA SCLUART1 + I2C2GPS + external compassSERIAL1SERIAL1_PROTOCOL = 5
T2 R2UART2Digital VTX / OSDSERIAL2SERIAL2_PROTOCOL = 42
T3 R3UART3Telemetry radioSERIAL3SERIAL3_PROTOCOL = 2
T4 R4UART4Spare (e.g. companion computer)SERIAL4as needed
ESC pin 7UART7 RXESC telemetrySERIAL5SERIAL5_PROTOCOL = 16
T8 R8UART8SpareSERIAL6as needed
T6 R6UART6RC receiver (CRSF/ELRS)SERIAL7SERIAL7_PROTOCOL = 23

Remember to cross the data lines: the device's TX goes to the FC's R pad and the device's RX to the FC's T pad. Reboot the board after changing any SERIALn_PROTOCOL.

RC receiver

For CRSF or ELRS receivers, wire the receiver to T6 R6 and set SERIAL7_PROTOCOL = 23 (RCIN). ArduPilot detects the protocol automatically. Since the receiver is powered from 5 V, connect a battery when you bind and check the channels on the radio calibration page.

GPS and compass

Connect a GPS/compass module to the GPS pad group: GPS data to T1 R1, and the module's compass to the SDA/SCL pads next to it (external I2C bus, with 4.7 k pull-ups on the board). Set SERIAL1_PROTOCOL = 5. ArduPilot detects the GPS baud rate and the external compass on its own.

The board has no compass on purpose. A compass mounted on a flight controller sits centimetres from the battery and motor current and reads it as magnetic field. Mount the GPS/compass on a mast or as far from power wiring as your frame allows, then run the compass calibration.

DroneCAN peripherals

The CAN port is on the CH/CL pads, with 5V and G next to them. It has an NXP TJA1057 transceiver, ESD protection and a fixed 120 Ω terminator, because the flight controller is always one end of the bus. Terminate the far end of the bus too, and leave the nodes in between unterminated.

CAN_P1_DRIVER   = 1    # enable CAN port 1
CAN_D1_PROTOCOL = 1    # DroneCAN
GPS1_TYPE       = 9    # DroneCAN GPS (GPS_TYPE on older firmware)

DroneCAN compasses, airspeed sensors and rangefinders are found once the driver is enabled. They show up in Mission Planner under Setup → Optional Hardware → DroneCAN/UAVCAN.

Digital OSD (DJI, HDZero, Walksnail)

The H743 has no analog OSD chip. It drives the on-screen display of digital video systems over MSP DisplayPort. Wire the air unit's UART to T2 R2, then set:

SERIAL2_PROTOCOL = 42  # DisplayPort
OSD_TYPE         = 5   # MSP DisplayPort

Some air units also need MSP or DisplayPort enabled on their side. See your video system's documentation.

Frame, motors and ESC telemetry

FRAME_CLASS      = 1   # quad
FRAME_TYPE       = 1   # X
MOT_PWM_TYPE     = 6   # DShot600 (5 = DShot300)
SERIAL5_PROTOCOL = 16  # ESC telemetry on the ESC connector
SERVO_BLH_AUTO   = 1   # request telemetry from the DShot motor outputs

DShot does not need ESC calibration. ArduCopter's quad X order is motor 1 front-right, 2 rear-left, 3 front-left, 4 rear-right. A 4-in-1 ESC's M1–M4 positions depend on how you mount it, so run Motor Test in Mission Planner (props off) and reassign SERVO1_FUNCTION–SERVO4_FUNCTION (33–36 = motors 1–4) until each motor spins in the right place. Fix spin direction in the ESC configurator, or by swapping two motor wires.

Outputs 5–8 are on the M5–M8 pads, for an octocopter, servos or a second ESC. Outputs 1–4 and 5–8 are separate timer groups, so each group of four can run a different protocol or rate.

Battery voltage and current

Voltage monitoring is set up out of the box: BATT_MONITOR = 4 (analog voltage and current) with a voltage divider sized for 6S (BATT_VOLT_MULT about 11.0). Check the reading against a multimeter and adjust the multiplier if needed.

Current comes from your ESC's current sensor on pin 8. The scale depends on the ESC, so set BATT_AMP_PERVLT (and BATT_AMP_OFFSET if needed) from the ESC's documentation, then calibrate it by comparing the mAh used in a flight with what the charger puts back in.

Calibration and first flight

  1. Accelerometer: six-position calibration, then level.
  2. Compass: on-board calibration with the external module mounted in its final position.
  3. Radio: channel calibration and flight-mode switch.
  4. Failsafes: radio failsafe, battery failsafe and (with GPS) geofence.
  5. Motor test with props off, then a first hover in Stabilize or AltHold in an open area.

For tuning, ArduPilot's own guides and the ArduPilot Methodic Configurator work unchanged on this board.

Blackbox: logging and downloading logs

Flight logs go to 256 MB of SPI NAND soldered to the board. There is no SD card to come loose under vibration. Logging works out of the box. The one setting to know:

LOG_BACKEND_TYPE = 4   # block logger on the onboard NAND (default)
LOG_DISARMED     = 0   # set to 1 only for bench debugging

LOG_BACKEND_TYPE is a bitmask: 1 = file system, 2 = MAVLink, 4 = block. This board has no file system, so setting it to 1 turns logging off without any error message. If logs disappear, check this parameter first.

To download logs, connect USB and use DataFlash Logs → Download DataFlash Log Via Mavlink in Mission Planner, or the log download screen in QGroundControl. On our bench a 1.17 MB log downloaded over USB at about 730 KB/s with no missing bytes. Logs open in Mission Planner, UAV Log Viewer or any ArduPilot log tool.

Firmware updates and recovery

Boards ship flashed and tested. We supply firmware updates as an .apj file, which you load over USB-C with Load custom firmware in Mission Planner or the custom-firmware option in QGroundControl. Your parameters are kept.

If an update is interrupted, the board cannot be bricked. The STM32H743 has a bootloader in ROM:

  1. Hold the BOOT button and plug in USB-C.
  2. The board appears as DFU in FS Mode (USB ID 0483:DF11).
  3. Flash the full image (bootloader + firmware) with STM32CubeProgrammer, or with dfu-util -a 0 -s 0x08000000:leave -D firmware_with_bl.bin.

dfu-util may print an error after "File downloaded successfully". That is a harmless quirk: the board has already reset into the new firmware.

Pad labels, defaults and firmware details on this page describe the current board revision and may change before the production batch. Questions? hello@nestua.net.

Setup questions.

Why do my GPS and receiver not power up on USB?
By design, USB powers only the 3.3 V domain: the processor, sensors and log flash. The 5 V pads are fed by the onboard BEC, which runs from battery voltage. Connect a battery (props off) when you need to set up the GPS, receiver or VTX.
Logging is enabled but there are no logs. Why?
LOG_BACKEND_TYPE is a bitmask, not a list index. The Nestua H743 logs to onboard NAND through the block backend, which is value 4. Value 1 selects the file-system backend, which this board does not have, so nothing is logged and no error is shown. Set LOG_BACKEND_TYPE = 4.
Can I fly GPS modes without a compass?
The board has no onboard compass on purpose, because a compass next to the battery and motor wiring reads current as magnetic field. For GPS modes connect an external GPS/compass module over I2C (SDA/SCL pads next to the GPS port) or over DroneCAN, and mount it away from power wiring.
What if a firmware update goes wrong?
The STM32H743 has a bootloader in ROM that cannot be erased. Hold the BOOT button while plugging in USB, the board appears as 'DFU in FS Mode', and you can flash a full image with STM32CubeProgrammer or dfu-util.
Which ESC pin order does the board use?
JST-SH 1.0 mm 8-pin, pin 1 to 8: GND, VBAT, M1, M2, M3, M4, TLM, CUR. There is no 5 V pin. This matches many 4-in-1 ESCs, but not all, so compare the order with your ESC before plugging in.

Reserve a Nestua H743.

€199 excl. VAT. No payment to reserve. We email you the ship date for the first batch.

Reserve a unit