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.
| Pin | Signal | On the FC | ArduPilot |
|---|---|---|---|
| 1 | GND | Ground | — |
| 2 | VBAT | Onboard 5 V BEC input and voltage sense | Battery voltage |
| 3 | M1 | Output 1 (DShot) | SERVO1 |
| 4 | M2 | Output 2 | SERVO2 |
| 5 | M3 | Output 3 | SERVO3 |
| 6 | M4 | Output 4 | SERVO4 |
| 7 | TLM | UART7 RX (receive only) | SERIAL5 |
| 8 | CUR | Analog current input | Battery 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
- 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. - Connect the ground station. Mission Planner or QGroundControl will find the MAVLink heartbeat on the USB port.
- 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) | UART | Intended use | ArduPilot port | Set |
|---|---|---|---|---|
| USB-C | USB | Ground station | SERIAL0 | — |
T1 R1 + SDA SCL | UART1 + I2C2 | GPS + external compass | SERIAL1 | SERIAL1_PROTOCOL = 5 |
T2 R2 | UART2 | Digital VTX / OSD | SERIAL2 | SERIAL2_PROTOCOL = 42 |
T3 R3 | UART3 | Telemetry radio | SERIAL3 | SERIAL3_PROTOCOL = 2 |
T4 R4 | UART4 | Spare (e.g. companion computer) | SERIAL4 | as needed |
| ESC pin 7 | UART7 RX | ESC telemetry | SERIAL5 | SERIAL5_PROTOCOL = 16 |
T8 R8 | UART8 | Spare | SERIAL6 | as needed |
T6 R6 | UART6 | RC receiver (CRSF/ELRS) | SERIAL7 | SERIAL7_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
- Accelerometer: six-position calibration, then level.
- Compass: on-board calibration with the external module mounted in its final position.
- Radio: channel calibration and flight-mode switch.
- Failsafes: radio failsafe, battery failsafe and (with GPS) geofence.
- 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:
- Hold the BOOT button and plug in USB-C.
- The board appears as
DFU in FS Mode(USB ID 0483:DF11). - 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.