Beginning Guidance for Custom Application on 7002DK

Hello,

The subject of this post is mostly accurate in that I am developing custom hardware that is based on the nRF7002DK. For all intents and purposes, the Interface MCU is stripped out, the nRF5340 and nrF7002 sections with both antennas are identical, and then my custom application hardware has been overlaid on top of that.

Despite the documentation being very good, I am finding it difficult to converge on what SDK sample design I should clone to form the basis of my custom BLE + WiFi application. I am hoping there is an example application that simply gets both the BLE and WiFi radios running independently on their own antennas (simple concurrent not coexistence) with just some minor bells and whistles to demonstrate the radios are functioning.

I have gone down a two-day rabbit hole with the peripheral_lbs sample that has me up against a brick wall. The example builds fine as copied directly from the examples folder, but when I try to modify it to get all contexts to build (not just BLE) outside of the SDK in a Workspace application I come up against a SERIAL_HAS_DRIVER build error that I cannot resolve even after a full day of going around in circles with ChatGPT. "We" tried using sysbuild configurations, non-sysbuild workarounds, child tree configurations, etc., and all attempts continued to hit this hard wall where the make system though we were hard assigning this non-assignable variable when we were not. There's some kind of build inheritance thing going on that "we" don't have visibility to.

Anyway, I'm on a super aggressive schedule for getting something "simple" up and running on the 7002DK for starters. I've completed the nRF SDK Fundamentals course and the BLE course, so I'm not completely green in regard to what I'm working with here, but I am thoroughly confounded by the complexity of the make/build system right now with the multi-context aspects factored in.

If anyone can provide guidance on which sample application I should start with for this I would greatly appreciate it. Any guidance on the most relevant documentation path to what I need to do would be greatly appreciated as well. I'm going to start my own brute force pass through all the docs myself now to see if any lights turn on in my head.

Thanks in advance,

Chris

Parents
  • Hello Chris,

    I can see that you have some experience with the Academy pages already w.r.t the fundamentals and BLE course, but I think I would recommend you to also go through the intermediate and the wi-fi fundamentals course as well. The intermediate course does have some deeper insight into how the build system works. I see that you've been somewhat mislead by Chatgpt w.r.t what build system is being used (child and parent images vs sysbuild). It does unfortunately look like a case of having spent more time trying to prompt your way through a fix than it would've taken to work through familiarizing yourself with the SDK and the solution. Zephyr and NCS is quite large so there's (unfortunately) quite a bit of work required to get over the first hurdle, but the academy and docs pages (docs.nordicsemi) have lessened that over the years

    I cannot resolve even after a full day of going around in circles with ChatGPT. "We" tried using sysbuild configurations, non-sysbuild workarounds, child tree configurations, etc., and all attempts continued to hit this hard wall where the make system though we were hard assigning this non-assignable variable when we were not. There's some kind of build inheritance thing going on that "we" don't have visibility to.

    ChatGPT is unfortunately notoriously overconfident w.r.t thinking that it knows how NCS and Zephyr works. It's pretty decent at C and peripherals, but it mixes up quite a bit in the SDK due to the huge differences in the various SDK versions. Something that was valid in NCS 2.6.x might be deprecated in 2.7.x for instance. If anything I would recommend that you use the built in chatbot Kapa here on Devzone and prompt it for where to find samples and documentations for the specific boards and specific SDK versions instead. 

    If I would've given you a golden path for how to get started with creating a wifi+ble application as someone relatively new to NCS I would've gone through the following steps:

    1. Decide which SDK version you're working with. For instance if you're not going to use sysbuild, you will have to stick with NCS v2.6.x. If it doesn't really matter, start with the latest tagged release (currently NCS v3.0.2)
    2. Fundamentals NCS lesson 1, 2, 3, 4 and 5
    3. Intermediate NCS lesson 1, 2, 3, 8 and then maybe 9 and 7
    4. BLE and WiFi fundamentals course for more knowledge of how you may develop your application

    After this (or atleast not before after the 2nd item), I would've started with finding a sample that I could base my application on. Here you can prompt Kapa for input, for instance as follows:

    The resulting sample: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/wifi/ble_coex/README.html, which you also can find here: https://github.com/nrfconnect/sdk-nrf/tree/main/samples/wifi/ble_coex 

    Let me know if this answers your question and if the sample below

    Kind regards,
    Andreas

Reply
  • Hello Chris,

    I can see that you have some experience with the Academy pages already w.r.t the fundamentals and BLE course, but I think I would recommend you to also go through the intermediate and the wi-fi fundamentals course as well. The intermediate course does have some deeper insight into how the build system works. I see that you've been somewhat mislead by Chatgpt w.r.t what build system is being used (child and parent images vs sysbuild). It does unfortunately look like a case of having spent more time trying to prompt your way through a fix than it would've taken to work through familiarizing yourself with the SDK and the solution. Zephyr and NCS is quite large so there's (unfortunately) quite a bit of work required to get over the first hurdle, but the academy and docs pages (docs.nordicsemi) have lessened that over the years

    I cannot resolve even after a full day of going around in circles with ChatGPT. "We" tried using sysbuild configurations, non-sysbuild workarounds, child tree configurations, etc., and all attempts continued to hit this hard wall where the make system though we were hard assigning this non-assignable variable when we were not. There's some kind of build inheritance thing going on that "we" don't have visibility to.

    ChatGPT is unfortunately notoriously overconfident w.r.t thinking that it knows how NCS and Zephyr works. It's pretty decent at C and peripherals, but it mixes up quite a bit in the SDK due to the huge differences in the various SDK versions. Something that was valid in NCS 2.6.x might be deprecated in 2.7.x for instance. If anything I would recommend that you use the built in chatbot Kapa here on Devzone and prompt it for where to find samples and documentations for the specific boards and specific SDK versions instead. 

    If I would've given you a golden path for how to get started with creating a wifi+ble application as someone relatively new to NCS I would've gone through the following steps:

    1. Decide which SDK version you're working with. For instance if you're not going to use sysbuild, you will have to stick with NCS v2.6.x. If it doesn't really matter, start with the latest tagged release (currently NCS v3.0.2)
    2. Fundamentals NCS lesson 1, 2, 3, 4 and 5
    3. Intermediate NCS lesson 1, 2, 3, 8 and then maybe 9 and 7
    4. BLE and WiFi fundamentals course for more knowledge of how you may develop your application

    After this (or atleast not before after the 2nd item), I would've started with finding a sample that I could base my application on. Here you can prompt Kapa for input, for instance as follows:

    The resulting sample: https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/samples/wifi/ble_coex/README.html, which you also can find here: https://github.com/nrfconnect/sdk-nrf/tree/main/samples/wifi/ble_coex 

    Let me know if this answers your question and if the sample below

    Kind regards,
    Andreas

Children
  • Hello Andreas,

    Thank you very much for the guidance here. I really appreciate it. I did try to use the coexistence sample to but had trouble getting it to build and so that's when I went off on a tangent trying to find a quick fix to the learning process. I'm going to spend the next few days finishing all of the course materials and follow your lead thereafter. I'd like to leave this topic open as unresolved for just a bit in case I have any follow up questions.

    Cheers,

    Chris

Related