-
Notifications
You must be signed in to change notification settings - Fork 13.4k
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
new board support ZeroOne x6 #23623
base: main
Are you sure you want to change the base?
new board support ZeroOne x6 #23623
Conversation
I have rebased on main and squash my commits into 1.
I have updated pab_manifest.c: // BASE ID 0x150 ZeroOne Pixhawk Baseboard Alaised to ID 0 {HW_BASE_ID(0x150), base_configuration_0, arraySize(base_configuration_0)}, // ZeroOne Pixhawk Baseboard ver 0x150
Hello, our flight control is based on the V6X standard, and board_types.txt,pixhawk-standards and pab_manifest.c were merged before. Now the firmware I modified is written into our flight control board, and the sensors are all normal. I have the following questions: 1. Every time I modify the code, I execute make zeroone_x6_bootloader and make zeroone_x6_default, and then connect the debug port of fmu through STLink to write Zeroone_x6_bootloader.bin. Then connect QGC or MP to write zeroone_x6_default.px4 via USB port. Is this process correct? 2. Is our CONFIG_CDCACM_PRODUCTID 0x15E0 (5600)? 3. How do I get this value from CONFIG_CDCACM_VENDORID? 4. Does the bootloader of the flight control board need to be replaced when PX4 firmware and APM firmware are used respectively? 5, After burning the bootloader, and then downloading the Firmware through the ground station, an ERROR will be reported: firmware not suitable for this board fw: 53-board :101, what is the reason? 6. the remote control channel can not be identified, what is the problem? 7. Can I compile firmware with bootloader?
There should be bootloader compatibility in both directions, however we've seen minor problems in the past so if you're comfortable changing the bootloader matching PX4 bootloader + PX4 app won't hurt. |
Can you delete |
boards/zeroone/x6/rover.px4board
Outdated
@@ -0,0 +1,17 @@ | |||
CONFIG_MODULES_AIRSPEED_SELECTOR=n |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We carry a lot of extras in px4_fmu-v6x for testing, you can probably delete this file.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok,I have deleted this file.
boards/zeroone/x6/zenoh.px4board
Outdated
@@ -0,0 +1,4 @@ | |||
# CONFIG_BOARD_UAVCAN_TIMER_OVERRIDE is not set |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
delete
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok,I have deleted this file.
@@ -0,0 +1,13 @@ | |||
CONFIG_COMMON_DIFFERENTIAL_PRESSURE=n |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
delete
default.px4board contains both multicopter, fixedwing, and VTOL
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok,I have deleted this file.
boards/zeroone/x6/cmake/upload.cmake
Outdated
############################################################################ | ||
|
||
|
||
set(PX4_FW_NAME ${PX4_BINARY_DIR}/${PX4_BOARD_VENDOR}_${PX4_BOARD_MODEL}_${PX4_BOARD_LABEL}.px4) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
delete this file
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok,I have deleted this file.
Modified according to your comments
1,Is our CONFIG_CDCACM_PRODUCTID 0x15E0 (5600)? |
This is set in the def config of the bootloader and the default You are currently using Auterion VID and the PID is for V6X. You need a VID (CONFIG_CDCACM_VENDORID) and CONFIG_CDCACM_PRODUCTI (PID). Ask @mrpollo for permission to use the dronecode PID and for the VID use 0x15e0. If not you have to buy a VID from USB for $$$$. Once you sort out the values you will need a PR in QGC @mrpollo can guide you on this,
I do not understand, is there USB not connecting?
Do you mean one bin file with the bootloader and firmware? |
If you are not making changes to the bootloader files (defconfig, init.c, board.h or nuttx) - you do not need to build the bootloader. but it is good to test it and check in that last working bin in the PR. In a development mode (faster cycle time) you can load the elf files of the bootloader and default builds with JTAG. When done with development is is good to load the elf file of the bootloader that you committed. And use QGC and the .px4 (of the default) build. But this will only work once the PR in QGC is merged and you use a daily build of QGC after the merge. Until then. Use VID, PID "board_id" of V6X.
Once the QGC PR is in use
|
Bootloader and Firmware need to built with `"board_id": , set to the same value. Hex 00x35 (decimal 53) which is an Auterion V6X. If the bootloader is built with board_id of 5600 and the firmware is built with a board_id of 53 you would get that message. |
1、This sentence already exists in board_types.txt :AP_HW_ZeroOne_X6 5600 4、Yes, that's what you mean. |
Ok, for the current testing phase, I will use V6X PID and VID. |
@davids5 Ok,thank you very much.Now I do not use the zerooneX6 compiled by myself to write, and I use the bl and firmware compiled by PX4-fmuv6x. After connecting to QGC, I still cannot recognize the channel value of the remote control.Do you know the reason ? |
@ZeroOne-Aero for HW that has not been programed before, you must JTAG on the booloader for the H7 and for the F3. Use elf files (if you use bin files you need the address) Once that is done. Load the Firmware (_default.elf) from your PX4 build folder. This firmware will update the px4io firmware. Once done, with the unit powered from USB the FMU leds indicate boot loading and the console will show PX4IO being updated. Once you have correctly loaded the FMU and the IO you will have working HW. Now connect the radio receiver and bind it with the remote. do |
@davids5 @dagar I have modified board_id,board_type and CONFIG_CDCACM_PRODUCTID 5600, I have tested zeroone/x6 with board_id,board_type and CONFIG_CDCACM_PRODUCTID of 53, everything is OK; Then modify these values to 5600 on github, could you please help merge them? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ZeroOne-Aero Ask @mrpollo for permission to use the DroneCode VID use 0x15e0 for the PID. If not you have to buy a VID from USB for $$$$. You can not use Auterion VID https://the-sz.com/products/usbid/index.php?v=0x3185&p=&n=
You did a pr adding the base ID. The Base Id is 0x150. You can detect the board with Here is an eaxmple:
|
Co-authored-by: David Sidrane <David.Sidrane@Nscdg.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This board need to be added to ci.
see
.ci/Jenkinsfile-compile
.github/workflows/compile_nuttx.yml
.vscode/cmake-variants.yaml
see https://github.com/PX4/PX4-Autopilot/pull/22263/files for an example of hw to add a board
#Start Auterion Power Module selector for zeroone boards if ver hwbasecmp 150 then pm_selector_auterion start else if [ $INA_CONFIGURED = no ] then # INA226, INA228, INA238 auto-start i2c_launcher start -b 1 if [ $HAVE_PM2 = yes ] then i2c_launcher start -b 2 fi fi fi
I have modified it, but I don't quite understand the function of this paragraph, please help to check it. |
I add: "zeroone_x6_bootloader", "zeroone_x6_default", "zeroone_x6_rover",
I add: zeroone_x6_default: short: zeroone_x6 buildType: MinSizeRel settings: CONFIG: zeroone_x6_default zeroone_x6_bootloader: short: zeroone_x6_bootloader buildType: MinSizeRel settings: CONFIG: zeroone_x6_bootloader
I didn't find this file:.github/workflows/compile_nuttx.yml, |
There was a subsequent PR that adds the board automatically. So ignore my comment about adding anything to compile_nuttx.yaml |
@dagar I think this is OK to come in. Any further work can be done, now that it build. |
Hello, our flight control is based on the V6X standard, and board_types.txt,pixhawk-standards and pab_manifest.c were merged before. Now I copied the px4/fmu-v6x folder and modified it.The firmware I modified is written into our flight control board, and the sensors are all normal. I have the following questions:
5, After burning the bootloader, and then downloading the Firmware through the ground station, an ERROR will be reported: firmware not suitable for this board fw: 53-board :101, what is the reason?
6, the remote control channel can not be identified, what is the problem?
7, can compile and generate firmware with bootloader?