I am trying to extend an older 1.7.0 SDK to add functional BT support, which currently only has serial port communications. i don't really understand the terms for the functional parts, and understand the sdk is replaced with new..

the provider has provided source for their firmware which provides serial port communications to control operation only in old sdk 1.7.0 format

I need to use some other approach..

I would like to use pairing to connect my app to the local device

and then the local device would be ble central

and remotes would be ble peripheral 

today the 'same' firmware is loaded on both identical devices

but my testing will have a different local device using the 52840 and the remote is 52833

so my firmware update should be able to distinguish how to operate, I 'think' this is different boards and different binary builds. 

my app would pair with the local device (should only ever connect to ONE local device, during initial setup, the device is nearby)

there 'is' a possibility that there COULD be multiple instances of the same local device within bt range, so want to preclude ever seeing talking to others

in the future these devices would be BT6 with channel sounding support. but still architected this way to minimize dependencies.

data traffic from app to local device is low, done with BT notification (using ble).. 

I suppose I could store persistent data on both app device and local device with some key/identifier to be able to use only ble (one of the future devices says single mode bt, aka ble only)

but I still don't understand how to configure the 1.7.0 sdk to add the function that I can use.   the java config app assumes you know what the words/terminology means

and understand the concurrence (this function and not that) restrictions..

the provider has another instance using the 1.7.0 sdk  with BT ble peripheral only (but does not have serial port comms at all) 

extending their firmware is an exercise for the user (me!).. so trying to get my head around the config 

I can build each w the segger IDE, so that part is ready.

I have flashed the build with the IDE as well and command line tools.. so have that

have ble code that does most of what I want in both ios and android.. so have ble experience.  now to get runtime in the right config.. 

Parents
  • Hi,

    I would recommend that you look in to using NRF Connect SDK that is based on Zephyr as the building blocks for a project that you want to future proof as you are looking at Channel sounding and Bluetooth 6, and use NCS 2.7.0.  


    If I understood correctly, 

    You are working with a product that needs to get some new features, the current product and its SW is provided and that is what you want to modify ?

    You should be able to get the programs to work with both the 840 and the 833.



    But I am a bit unsure what SDK you are talking about if it is the nRF5 SDK or the NCS


    BLE samples can be found here: https://docs.nordicsemi.com/bundle/ncs-2.7.99-cs2/page/nrf/samples/bl.html 


    Regards,
    Jonathan

  • i am extending the qorvo uwb build which uses the 1.7.0 sdk. its supports the 833 and 840 already.

    i will do similar with the nrf sdk for cs, but hardware not available yet 

  • thanks.. one more question.. (maybe more!)
    so the package I have from the vendor  has the NRF sdk embedded.. but there are no sdk files for softdevice, ble, ... I don't know what happens with the sdk when you configure it, can you extract JUST taht set of files? 

    (image from above)

    if I save their sdk_config.h

    can I just plop the whole sdk back in the package? 

    i see sdk_config.h all over the place when I seach for it in the sdk tree..

    which makes no sense to me.. 

    and the java sdk config tool reading the sdk_config.h from their package doesn't seem to detect what is enabled. 

  • You can either reference to the SDK by having the SDK under the example\package from vendor, or you can add the entire SDK above or put the example in the SDK. 

    So it is possible to add the files that include the softdeivce to the project. 

    Regards,
    Jonathan

  • Ok, so I put the sdk somewhere else and changed the paths in the segger IDE to point to that source
    compile works ok on the two kits..  
    one kit uses mergehex, as a postbuild step which is failing, rc -1
    if I run it manually outside segger build it works ok 

    I am running
    ```

    mergehex -v

    mergehex version: 10.24.2

    ```

    on macos..  some suggest downgrading to 9.8.0 ,

    but it works taking the preprocessor expanded filenames  that are shown in the error 

    ```

    mergehex -m /Users/sam/Downloads/Qorvo_Nearby_Interaction_3_2_0/Software/Accessory/Sources/QANI-All-FreeRTOS_QNI_3_0_0/Projects/Projects/QANI/FreeRTOS/DWM3001CDK/ses/Output/Common/Exe/DWM3001CDK-QANI-FreeRTOS.hex /Users/sam/Downloads/nRF5_SDK_17.1.0_ddde560/components/softdevice/s113/hex/s113_nrf52_7.2.0_softdevice.hex -o /Users/sam/Downloads/Qorvo_Nearby_Interaction_3_2_0/Software/Accessory/Sources/QANI-All-FreeRTOS_QNI_3_0_0/Projects/Projects/QANI/FreeRTOS/DWM3001CDK/ses/Output/Common/Exe/DWM3001CDK-QANI-FreeRTOS_full.hex

    ```

    the target file and permissions(from the manual execution of mergehex)

    -rw-r--r--  1 sam  staff  1267521 Nov  5 12:06 /Users/sam/Downloads/Qorvo_Nearby_Interaction_3_2_0/Software/Accessory/Sources/QANI-All-FreeRTOS_QNI_3_0_0/Projects/Projects/QANI/FreeRTOS/DWM3001CDK/ses/Output/Common/Exe/DWM3001CDK-QANI-FreeRTOS_full.hex

     
    the mergehex fails, no output file is created

    the two input files exist

    Mac-mini:sam$ ls -laF /Users/sam/Downloads/Qorvo_Nearby_Interaction_3_2_0/Software/Accessory/Sources/QANI-All-FreeRTOS_QNI_3_0_0/Projects/Projects/QANI/FreeRTOS/DWM3001CDK/ses/Output/Common/Exe/DWM3001CDK-QANI-FreeRTOS.hex

    -rw-r--r--  1 sam  staff  956835 Nov  5 12:26 /Users/sam/Downloads/Qorvo_Nearby_Interaction_3_2_0/Software/Accessory/Sources/QANI-All-FreeRTOS_QNI_3_0_0/Projects/Projects/QANI/FreeRTOS/DWM3001CDK/ses/Output/Common/Exe/DWM3001CDK-QANI-FreeRTOS.hex

    Mac-mini:sam$ ls -laF /Users/sam/Downloads/nRF5_SDK_17.1.0_ddde560/components/softdevice/s113/hex/s113_nrf52_7.2.0_softdevice.hex

    -rw-rw-r--@ 1 sam  staff  310854 Jul 31  2020 /Users/sam/Downloads/nRF5_SDK_17.1.0_ddde560/components/softdevice/s113/hex/s113_nrf52_7.2.0_softdevice.hex

     

  • Issue seems to be related to the mergehex operation so downgrading might be a good way to debug here. Could you try to not merge the files. 

    Regards,
    Jonathan

  • turns out this was a path problem..  inside segger there was no path to mergehex, adding the full path solve that..

    removing the SDK_BSP folder from the project and using full links to the sdk instead of relative (../../....) builds using the direct package sdk.  altho link fails, I think because link is still using the relative path(haven't fond that one in config yet) , and maybe the sdk_config.h not being correct 

Reply
  • turns out this was a path problem..  inside segger there was no path to mergehex, adding the full path solve that..

    removing the SDK_BSP folder from the project and using full links to the sdk instead of relative (../../....) builds using the direct package sdk.  altho link fails, I think because link is still using the relative path(haven't fond that one in config yet) , and maybe the sdk_config.h not being correct 

Children
  • so I have the projects building as distributed. I want to add BLE to one.

    I have checked and changed the sdk_config.h in the target project

    the embedded sdk file tree has the files (c and h) , but the project in Segger doesn't show them, 

    I can copy from one project to another, and the C files are processed, but the h files are not found. 

    another different sdk/IDE config I expect

Related