Skip to content

WIP - RP2350 with Nuttx master #24666

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 45 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
7d5bd00
temp: upd .gitmodules
vidma Jan 4, 2025
ffdd1c9
Updated platforms/nuttx/NuttX/nuttx - RP23xx WIP vidma
vidma Jan 4, 2025
a7c2c42
minimal rp23xx wip
vidma Feb 22, 2025
dee9e9d
wip pico1
vidma Feb 22, 2025
cdeab14
pico 1 & 2 adc wip
vidma Feb 22, 2025
b3e88ec
pico2 configs wip
vidma Feb 22, 2025
8f8cd2c
wip pico2 plus 16mb ldscripts
vidma Feb 22, 2025
cd8cb6b
wip gitmodules try px4_master
vidma Feb 22, 2025
f366acb
Updated platforms/nuttx/NuttX/nuttx to px4_master
vidma Feb 22, 2025
52eae9f
Updated platforms/nuttx/NuttX/apps to px4_master
vidma Feb 22, 2025
7e60dcc
wip nuttx starts, px4_dmesg, uart RX OK uart KO
vidma Mar 27, 2025
571bfc9
wip nuttx forward compat (master branch)
vidma Mar 27, 2025
4f46d1b
wip nuttx forward compat - up_check_intstack_remain (master branch)
vidma Mar 27, 2025
e94b14b
wip serial_console prints A*
vidma Mar 27, 2025
2d28d42
cleanup cdev
vidma Mar 27, 2025
67c5729
wip/temp boards/raspberrypi/pico-2/nuttx-config/Kconfig safer, maybe …
vidma Mar 27, 2025
8bbcdb2
rm crap in boards/rp../src
vidma Mar 27, 2025
d3f50a7
wip serial_console prints A* and config fixes etc
vidma Mar 27, 2025
ae7b90f
config with only serial RX
vidma Mar 28, 2025
081d685
fix build: w/o FPU for now
vidma Mar 28, 2025
6544453
Updated platforms/nuttx/NuttX/nuttx
vidma Mar 31, 2025
87c6ba3
serial TX nsh works now
vidma Apr 1, 2025
e38dfa2
wip
vidma Apr 3, 2025
4e0096e
wip spi mess
vidma Apr 3, 2025
4c21165
wip
vidma Apr 3, 2025
1d8bcbb
temp/fixme - rcS disable reboot
vidma Apr 3, 2025
88fd504
Updated platforms/nuttx/NuttX/nuttx
vidma Apr 3, 2025
9f166fb
revert src/lib/geo/geo.cpp
vidma Apr 3, 2025
a7851e5
rm uneeded files
vidma Apr 3, 2025
60e8e1c
rm uneeded files - rp23xx_uniqueid
vidma Apr 3, 2025
d8c0808
rm uneeded files - defconfig_smp
vidma Apr 3, 2025
b7cc128
rm uneeded files
vidma Apr 3, 2025
7da346c
cleanup
vidma Apr 4, 2025
e7b78e7
SPI fixing UART TX
vidma Apr 4, 2025
151f6c2
cleanup
vidma Apr 4, 2025
b6e2e1d
debug SPI UART TX
vidma Apr 4, 2025
406e966
debug SPI I2C UART TX
vidma Apr 4, 2025
ffb3767
support GY-91
vidma Apr 4, 2025
1a06df4
GY-91 IMU on I2C
vidma Apr 4, 2025
e2667f4
disable warnings as errors for now
vidma Apr 4, 2025
120ed5a
add storage on flash, for params
vidma Apr 18, 2025
63b28bf
setup params on mounted flash
vidma Apr 18, 2025
72d9a26
fix pico 1
vidma Apr 18, 2025
0186cb7
pico 1 wip
vidma May 1, 2025
dcf3137
pico2 fixes usb ttyACM0, hrt timer, CRSF ELRS
vidma May 4, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
branch = main
[submodule "platforms/nuttx/NuttX/nuttx"]
path = platforms/nuttx/NuttX/nuttx
url = https://github.com/PX4/NuttX.git
branch = px4_firmware_nuttx-10.3.0+
url = https://github.com/vidma/PX4-NuttX.git
branch = px4_master
[submodule "platforms/nuttx/NuttX/apps"]
path = platforms/nuttx/NuttX/apps
url = https://github.com/PX4/NuttX-apps.git
branch = px4_firmware_nuttx-10.3.0+
branch = master
[submodule "Tools/flightgear_bridge"]
path = Tools/simulation/flightgear/flightgear_bridge
url = https://github.com/PX4/PX4-FlightGear-Bridge.git
Expand Down
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,11 @@ include(px4_add_common_flags)
px4_add_common_flags()
px4_os_add_flags()

# FIXME: temporary debug
message(STATUS "CMAKE_C_FLAGS: ${CMAKE_C_FLAGS}")
message(STATUS "CMAKE_CXX_FLAGS: ${CMAKE_CXX_FLAGS}")
message(STATUS "CFLAGS: ${CFLAGS}")

#=============================================================================
# board cmake init (optional)
#
Expand Down
4 changes: 2 additions & 2 deletions ROMFS/px4fmu_common/init.d/rcS
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# Un comment and use set +e to ignore and set -e to enable 'exit on error control'
set +e
# Un comment the line below to help debug scripts by printing a trace of the script commands
#set -x
# set -x
# PX4FMU startup script.
#
# NOTE: environment variable references:
Expand All @@ -27,7 +27,7 @@ set FRC /fs/microsd/etc/rc.txt
set IOFW "/etc/extras/px4_io-v2_default.bin"
set LOGGER_ARGS ""
set LOGGER_BUF 8
set PARAM_FILE ""
set PARAM_FILE "/flash/params.txt"
set PARAM_BACKUP_FILE ""
set RC_INPUT_ARGS ""
set STORAGE_AVAILABLE no
Expand Down
80 changes: 80 additions & 0 deletions boards/raspberrypi/pico-2/default.px4board
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
CONFIG_BOARD_TOOLCHAIN="arm-none-eabi"
# quite important to set this
CONFIG_RP23XX_BOARD_W=n
CONFIG_BOARD_ARCHITECTURE="cortex-m33"
# FIXME - rename the dir
CONFIG_BOARD_PARAM_FILE="/flash/px4params"
#CONFIG_BOARD_ROMFSROOT=""
#CONFIG_BOARD_ROOT_PATH="/fs/microsd"
CONFIG_BOARD_CONSTRAINED_MEMORY=y
CONFIG_BOARD_CONSTRAINED_FLASH=y
CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS1"
#CONFIG_DRIVERS_RC_CRSF_RC=y
# CONFIG_EXAMPLES_FAKE_GPS=y
# CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS1"
CONFIG_DRIVERS_IMU_INVENSENSE_MPU9250=y
CONFIG_DRIVERS_IMU_INVENSENSE_ICM45686=y
CONFIG_DRIVERS_ADC_BOARD_ADC=y
CONFIG_DRIVERS_CDCACM_AUTOSTART=y
CONFIG_DRIVERS_GPS=y
CONFIG_DRIVERS_PWM_OUT=y
CONFIG_DRIVERS_RC_INPUT=y
# CONFIG_DRIVERS_RC_INPUT depends on CONFIG_MODULES_RC_UPDATE
CONFIG_MODULES_RC_UPDATE=y
CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q=n
CONFIG_MODULES_BATTERY_STATUS=n
CONFIG_MODULES_COMMANDER=y
CONFIG_MODULES_CONTROL_ALLOCATOR=y
CONFIG_MODULES_DATAMAN=y
CONFIG_MODULES_EKF2=y
CONFIG_MODULES_EVENTS=y
CONFIG_MODULES_FLIGHT_MODE_MANAGER=y
CONFIG_MODULES_FW_ATT_CONTROL=n
CONFIG_MODULES_FW_AUTOTUNE_ATTITUDE_CONTROL=n
CONFIG_MODULES_FW_POS_CONTROL=n
CONFIG_MODULES_FW_RATE_CONTROL=n
CONFIG_MODULES_GYRO_CALIBRATION=n
CONFIG_MODULES_LAND_DETECTOR=n
# FIXME?
CONFIG_SYSTEMCMDS_PERF=y
# CONFIG_SYSTEMCMDS_TOP=y
# FIXME? is it needed?
CONFIG_MODULES_LOAD_MON=n
# FIXME CONFIG_MODULES_LOGGER maybe thats why I am not seeing some logs?
CONFIG_MODULES_LOGGER=n
CONFIG_SYSTEMCMDS_TOP=n
CONFIG_MODULES_MAG_BIAS_ESTIMATOR=y
CONFIG_MODULES_MANUAL_CONTROL=y
CONFIG_MODULES_MAVLINK=y
# FIXME ?
CONFIG_MODULES_NAVIGATOR=y
# FIXME was n
CONFIG_MODULES_AVOIDANCE=n
CONFIG_NAVIGATOR_ADSB=n
CONFIG_MODULES_SENSORS=y
CONFIG_SYSTEMCMDS_DMESG=y
CONFIG_SYSTEMCMDS_DUMPFILE=y
CONFIG_SYSTEMCMDS_I2CDETECT=y
CONFIG_SYSTEMCMDS_LED_CONTROL=y
CONFIG_SYSTEMCMDS_NSHTERM=y
CONFIG_SYSTEMCMDS_PARAM=y
CONFIG_SYSTEMCMDS_REBOOT=y
CONFIG_SYSTEMCMDS_REFLECT=y
CONFIG_SYSTEMCMDS_TUNE_CONTROL=y
CONFIG_SYSTEMCMDS_UORB=y
CONFIG_SYSTEMCMDS_USB_CONNECTED=y
CONFIG_SYSTEMCMDS_VER=y
CONFIG_SYSTEMCMDS_MFT=y
CONFIG_SYSTEMCMDS_MTD=y
CONFIG_SYSTEMCMDS_BSONDUMP=y
# are these needed even if not used?
CONFIG_SYSTEMCMDS_WORK_QUEUE=n
CONFIG_MODULES_MC_ATT_CONTROL=y
CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=n
CONFIG_MODULES_MC_POS_CONTROL=y
CONFIG_MODULES_MC_RATE_CONTROL=n
CONFIG_EXAMPLES_HELLO=n

# fixme why are these needed? or how to disable? nope these dont help
#CONFIG_SYSTEMCMDS_MFT=y
#CONFIG_SYSTEMCMDS_MTD=y
57 changes: 57 additions & 0 deletions boards/raspberrypi/pico-2/default_.px4boar_backup
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
CONFIG_BOARD_TOOLCHAIN="arm-none-eabi"
CONFIG_BOARD_ARCHITECTURE="cortex-m33"
CONFIG_ARCH_CHIP="rp23xx"
CONFIG_ARCH_CHIP_RP23XX=y
CONFIG_ARCH_CORTEXM33=y
# CONFIG_ARCH_FPU is not set
# CONFIG_ARMV8M_USEBASEPRI is not set
CONFIG_BOARD_CONSTRAINED_FLASH=y
CONFIG_BOARD_CONSTRAINED_MEMORY=y
CONFIG_BOARD_SERIAL_GPS1="/dev/ttyS2"
CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS1"
CONFIG_DRIVERS_ADC_BOARD_ADC=y
CONFIG_DRIVERS_BAROMETER_BMP280=y
CONFIG_DRIVERS_CDCACM_AUTOSTART=y
CONFIG_DRIVERS_GPS=y
CONFIG_DRIVERS_IMU_INVENSENSE_MPU9250=y
CONFIG_DRIVERS_MAGNETOMETER_HMC5883=y
CONFIG_DRIVERS_PWM_OUT=y
CONFIG_DRIVERS_RC_INPUT=y
CONFIG_MODULES_ATTITUDE_ESTIMATOR_Q=y
CONFIG_MODULES_BATTERY_STATUS=y
CONFIG_MODULES_COMMANDER=y
CONFIG_MODULES_CONTROL_ALLOCATOR=y
CONFIG_MODULES_DATAMAN=y
CONFIG_MODULES_EKF2=y
CONFIG_MODULES_EVENTS=y
CONFIG_MODULES_FLIGHT_MODE_MANAGER=y
CONFIG_MODULES_GYRO_CALIBRATION=y
CONFIG_MODULES_LAND_DETECTOR=y
CONFIG_MODULES_LOAD_MON=y
CONFIG_MODULES_LOGGER=y
CONFIG_MODULES_MAG_BIAS_ESTIMATOR=y
CONFIG_MODULES_MANUAL_CONTROL=y
CONFIG_MODULES_MAVLINK=y
CONFIG_MODULES_MC_ATT_CONTROL=y
CONFIG_MODULES_MC_HOVER_THRUST_ESTIMATOR=n
CONFIG_MODULES_MC_POS_CONTROL=y
CONFIG_MODULES_MC_RATE_CONTROL=y
CONFIG_MODULES_NAVIGATOR=y
CONFIG_NAVIGATOR_ADSB=n
CONFIG_MODULES_RC_UPDATE=y
CONFIG_MODULES_SENSORS=y
CONFIG_SYSTEMCMDS_DMESG=y
CONFIG_SYSTEMCMDS_DUMPFILE=y
CONFIG_SYSTEMCMDS_I2CDETECT=y
CONFIG_SYSTEMCMDS_LED_CONTROL=y
CONFIG_SYSTEMCMDS_NSHTERM=y
CONFIG_SYSTEMCMDS_PARAM=y
CONFIG_SYSTEMCMDS_PERF=y
CONFIG_SYSTEMCMDS_REBOOT=y
CONFIG_SYSTEMCMDS_REFLECT=y
CONFIG_SYSTEMCMDS_TOP=y
CONFIG_SYSTEMCMDS_TUNE_CONTROL=y
CONFIG_SYSTEMCMDS_UORB=y
CONFIG_SYSTEMCMDS_USB_CONNECTED=y
CONFIG_SYSTEMCMDS_VER=y
CONFIG_SYSTEMCMDS_WORK_QUEUE=y
13 changes: 13 additions & 0 deletions boards/raspberrypi/pico-2/firmware.prototype
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"board_id": 4344,
"magic": "RASPBERRYPIPICO2",
"description": "Firmware for the raspberry pi Pico 2 board",
"image": "",
"build_time": 0,
"summary": "RaspberrypiPico2",
"version": "0.1",
"image_size": 0,
"image_maxsize": 1032192,
"git_identity": "",
"board_revision": 0
}
11 changes: 11 additions & 0 deletions boards/raspberrypi/pico-2/init/rc.board_defaults
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/sh
#
# board specific defaults
#------------------------------------------------------------------------------

#param set-default BAT1_V_DIV 13.653333333
#param set-default BAT1_A_PER_V 36.367515152

# system_power unavailable
#param set-default CBRK_SUPPLY_CHK 894281
param set-default MAV_TYPE 1
8 changes: 8 additions & 0 deletions boards/raspberrypi/pico-2/init/rc.board_mavlink
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/sh
#
# board specific MAVLink startup script.
#------------------------------------------------------------------------------

# Start MAVLink on the USB port
#mavlink start -d /dev/ttyS1
mavlink start -d /dev/ttyACM0
24 changes: 24 additions & 0 deletions boards/raspberrypi/pico-2/init/rc.board_sensors
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/sh
#
# board specific sensors init
#------------------------------------------------------------------------------

board_adc start

# try starting an IMU on external SPI
# fixme - specify interrupt pin somewhere
# icm45686 start -S

# or internal spi
# icm45686 start -s

# on external I2C1
mpu9250_i2c start -X
mpu9250_i2c status

# icm45686 start -s -c 5 -m 3 -f 1000

# icm45686 status

# try starting a bmp280 barometer on external SPI
# bmp280 start -S
Loading