Porting ncs example code to Fanstel BT840X that has an internal skyworks PA/LNA

I am looking to take example codes for the nrf52840dk and run them on a Fanstel BT840X EV board. I am looking at the central and peripheral coded low data rate firmware but want to achieve a much greater range by using the RF amp and LNA. Can anyone point me to some examples that might demonstrate of give some idea how to do this. I am using NRF connect SDK 2.2.99 with visual studio. I have got the Fanstel BT840X range test code working and I have been able to port the examples for the nrf52840dk to the Fanstel BT840X EV board but cannot get the extended range. Does the code need to control the switching of the PA/LNA as at the moment I have the PA fixed on and LNA off.

  • Hi, I did that and noticed that line 4 in the code snippet

    / {
    	model = "BT840x_caddy";
    	
    	compatible = "bt840x_caddy";
    
    	chosen {
    		zephyr,sram = &sram0;
    		zephyr,flash = &flash0;
    		zephyr,code-partition = &slot0_partition;
    	};
    	nrf_radio_fem: skyFem {
    		compatible = "skyworks,sky66112-11", "generic-fem-two-ctrl-pins";
    		ctx-gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
    		crx-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
    		};
    };
    has a squiggly line with message Unknown node type "bt840x_caddy"

  • Hi, 

    Not sure what causes the issue like that. 

    I have got the Fanstel BT840X range test code working and I have been able to port the examples for the nrf52840dk to the Fanstel BT840X EV board

    You should not touch the board files. Just create board/*board.overlay file under the application with the following content 

    / {
    	nrf_radio_fem: skyFem {
    		compatible = "skyworks,sky66112-11", "generic-fem-two-ctrl-pins";
    		ctx-gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
    		crx-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
    		};
    };

    -Amanda H.

  • Hi,

    So I have the ncs nrf Central and Peripheral Coded_phy heart rate examples ported over from two nrf52840 dk to work on two Fanstel BT840x EV boards. I can manually control the skyworks PA by forcing the logic (and I see a large pulse in current consumption on a scope) but I still dont get an increase in range. Is this because  the Bluetooth stack is not controlling the ctx-gpios & crx-gpios pins. How are these pins controlled?

    When I try and enable and use the nrf_radio_fem I get no increase in current consumption or range. I tried to port the fem pins to led output so I could try and see them toggling but nothing appears.

    Are there any other hardware features that I might need to disable to get the fem to work?

  • I have altered the overlay to port the ctx and crx pins to pins on the board that I can check with a scope and neither is toggling. So for some reason the FEM module is not being enabled. The following looks like the FEM is being configured with the following being shown in the autoconf.h output

    #define CONFIG_MPSL_FEM_ANY_SUPPORT 1
    #define CONFIG_MPSL_FEM_GENERIC_TWO_CTRL_PINS_SUPPORT 1
    #define CONFIG_MPSL_FEM_NCS_SUPPORTED_FEM_USED 1
    #define CONFIG_MPSL_FEM_API_AVAILABLE 1
    #define CONFIG_MPSL_FEM 1
    #define CONFIG_MPSL_FEM_SIMPLE_GPIO 1
    #define CONFIG_MPSL_FEM_DEVICE_CONFIG_254 1
    #define CONFIG_MPSL_FEM_LOG_LEVEL_INF 1
    #define CONFIG_MPSL_FEM_LOG_LEVEL 3
    #define CONFIG_MPSL_THREAD_COOP_PRIO 6
    #define CONFIG_MPSL_WORK_STACK_SIZE 1024
    #define CONFIG_MPSL_TIMESLOT_SESSION_COUNT 0
    #define CONFIG_MPSL_LOG_LEVEL_INF 1
    #define CONFIG_MPSL_LOG_LEVEL 3

  • Could you provide the .config and zephyr.dts under your build/zephyr folder?

    -Amanda H.

Related