-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New target: Radiomaster Nexus X and Nexus XR #11047
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
base: master
Are you sure you want to change the base?
Conversation
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
||||||||||||||||
|
@functionpointer are you associated with the manufacturer? |
|
No, i am not. |
|
what is the function/purpose of the 'Blackbox" feature ? |
https://github.com/iNavFlight/inav/blob/master/docs/Blackbox.md |
|
Thanks Sensei. My goal is rather simple, and I would not use that feature. I am just looking to get a wind rejection feature going in the RX. |
|
I am a github noob. where do I find the files to down load? |
|
Just a note to say that hopefully hardware will be on its way to @sensei-hacker and I for testing. Ideally I would like to see Blackbox support before the targets get merged in to master. Perhaps this can be ported from RotorFlight? |
|
I can take a look at the Blackbox. I assume the driver for it should go into a separate PR? Unfortunately, I am not in a position where I can donate hardware. Hopefully someone else is willing to do so. |
As of now, you have to compile both iNav and iNav configurator yourself. The only way it gets easier is if this pull request gets merged. |
RadioMaster should be sending the hardware out. So no need to worry about that. |
I think this PR would be fine. As it's being introduced for this target. Maybe have it as a separate commit with it labelled as adding that driver. |
I am willing to risk a plane/hardware in this effort. That being said, I would need some guidance on how to compile/install/configure the suite. If these questions are out of order for this project, please advise. |
With all due respect. From these posts. You should wait until the official target is released. It isn't just risking a plane/hardware. That risk also adds the possibility of injuring people or damaging property. The developers will go through everything possible before flying the aircraft to minimise any risk. Also, where this is still developmental. The blackbox is extremely useful. If something bad does occur. It can provide insight in to what happened. |
This is being done as part of support for NEXUSX target. The previously introduced target ORBITH743 has already introduced support for the Winbond w25n02k 2Gbit/256MByte array. This commit refactors it to increase code quality. flash_w25n01g.c is renamed to flash_w25n.c. The driver no longer supports just w25n01g, but two chips of the w25n family now. More chips might be added in future targets. The name change reflects this new larger family support. Cleanup of some magic numbers in flash_w25n.c Removal of w25n01g_readExtensionBytes. It had a magic number in it and was unused. Rather than fixing the magic number it just gets removed. Addition of USE_FLASH_W25N02K and use of it in targets. Keeps target definitions more accurate and independent of flash driver implementation details.
4e66150 to
4daf926
Compare
|
I have added support for the Blackbox chip. To make use of that, I rebased this PR on the latest master. However, I found some issues with the code supporting the new W25N02K Blackbox chip. I removed some magic numbers by placing them in properly organized preprocessor constants. Finally, the This leads to inaccurate target definitions, possibly causing issues in future Blackbox code changes. However, as of now, both directives call the same code. The actual chip is detected at runtime. |
20251019_174546.mp4So my initial tests show this is 100% viable as a board. Issue I have had is around the timers. When set to auto, my servos would not all work. When manually set.. The channel order no longer matches what your readme has. Rest of it all seems good. |
|
Thanks so much for the additional work @functionpointer and for the testing @robthomson ! I do have a board or two now and will do a full test of every pin soon, hopefully taking care of the issue regarding the ordering of outputs. |
Binaries for this PR can be found buried under the "checks" tab for the PR. If you click through it ends up showing the artifact URL as https://github.com/iNavFlight/inav/actions/runs/18606734711/artifacts/4304815389 |
|
I got a board today. Hopefully all of your dedicated, and hard work will make it into v9. I really appreciate you guys. |
|
Thanks to the discussion over on #11082 i was able to unify the targets while enabling even more pin combinations. Specifically, the RPM/TLM and AUX/SBUS pins can either be Servo/Motor or UART. Additionally, the "C" port can switch between I2C and UART3 pending correct priority handling of the pins. The most extreme possible configs are:
|
User description
Adds support for Radiomaster Nexus X and Nexus XR.
Fixes #10983
Testing
I have tested:
Choice of pin functions
Many pins can have multiple functions, see the second table in README.md.
I have chosen three targetsNEXUSX,NEXUSX_9SERVOSandNEXUSX_NOI2Cthat I hope will cover most use cases.NEXUSXhas 7 servo/motor outputs spread over 4 timers, 3 accessible UARTs and 1 accessible non-shared I2C bus.NEXUSX_9SERVOStrades 1 UART for 2 more servo/motor outputs.NEXUSX_NOI2Ctrades the I2C for another UART.Update:
I have created one target
NEXUSXthat enables several combinations of pin usages.Specifically, the RPM/TLM and AUX/SBUS pins can either be Servo/Motor or UART.
See the readme for more details.
Additionally, the "C" port can switch between I2C and UART3 pending correct priority handling of the pins.
The most extreme possible configs are:
PR Type
Other
Description
This description is generated by an AI tool. It may have inaccuracies
Adds support for Radiomaster Nexus X and XR flight controllers
Implements three target variants with different pin configurations
Configures STM32F722 hardware with IMU, barometer, and UART support
Includes built-in ELRS receiver support for Nexus XR
Diagram Walkthrough
File Walkthrough
config.c
Target configuration setupsrc/main/target/NEXUSX/config.c
target.c
Timer hardware configurationsrc/main/target/NEXUSX/target.c
target.h
Complete hardware pin definitionssrc/main/target/NEXUSX/target.h
CMakeLists.txt
Build system configurationsrc/main/target/NEXUSX/CMakeLists.txt
README.md
Hardware documentationsrc/main/target/NEXUSX/README.md