Hi everyone,
I’m working on a custom PX4 flight controller based on STM32F427 (FMUv4-style design), and I’m currently facing an issue with SD card parameter storage.
Setup
-
MCU: STM32F427
-
PX4 Firmware: v1.14.0 (custom board)
-
OS: NuttX
-
SD card: Kingston 2GB (formatted as FAT32)
-
SDIO interface (4-bit mode, external module via wires ~20 cm)
Current Behavior
-
The SD card is detected and mounted correctly:
/fs/microsd type vfat -
The device node
/dev/mmcsd0is present -
I can create directories:
mkdir /fs/microsd/testsdand remove them successfully
However, when trying to save parameters:
param save
I get the following error:
ERROR [tinybson] killed: write error
ERROR [parameters] BSON encoder finalize failed
ERROR [parameters] parameter export to /fs/microsd/params failed (-1)
ERROR [param] Param save failed (-1)
Also:
-
loggerfails to create log directory:ERROR [logger] failed creating log root dir: /fs/microsd/log -
QGroundControl shows missing parameters (e.g.
COM_DL_LOSS_T,NAV_DLL_ACT), likely because parameters are not persisted
Additional Observations
-
SD card is confirmed working on PC (FAT32)
-
Mount succeeds, but write operations fail
-
Reducing SDIO clock divider (even to very low speed) does not fix the issue
-
Using external SD module connected via wires (not on PCB)
Questions
-
Could this behavior indicate a partially working SDIO bus (read/mount OK but write unstable)?
-
Is this likely caused by signal integrity issues (long wires, noise, missing pull-ups)?
-
Are there known requirements or best practices for SDIO wiring on custom PX4 boards (length, impedance, pull-ups)?
-
Could this be related to missing DMA or incorrect SDIO configuration in board config?
Any guidance or similar experiences would be greatly appreciated!
Thanks in advance.

