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.

Parents Reply Children
  • I have included nrf_radio_fem in my board dts file as below but still i get the error

    /dts-v1/;
    #include <nordic/nrf52840_qiaa.dtsi>
    
    
    
    / {
    	model = "BT840x";
    	compatible = "bt840x";
    
    	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>;
    	};
    
    &flash0 {
    	partitions {
    		compatible = "fixed-partitions";
    		#address-cells = <1>;
    		#size-cells = <1>;
    
    		boot_partition: partition@0 {
    			label = "mcuboot";
    			reg = <0x0 0xc000>;
    		};
    		slot0_partition: partition@c000 {
    			label = "image-0";
    			reg = <0xc000 0x72000>;
    		};
    		slot1_partition: partition@7e000 {
    			label = "image-1";
    			reg = <0x7e000 0x72000>;
    		};
    		scratch_partition: partition@f0000 {
    			label = "image-scratch";
    			reg = <0xf0000 0xa000>;
    		};
    		storage_partition: partition@fa000 {
    			label = "storage";
    			reg = <0xfa000 0x6000>;
    		};
    	};
    
    
    };
    
    
    
    
     

  • Hi, 

    Try to move L18-L22 to before L15. 

    -Amanda H.

  • 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?

Related