Not able to interface SD card with nrf52840dk_nrf52840

I have created the sample_fs project from subsys/fs/sample_fs. I have not made any changes to the project. I have built it and flashed it onto a nrf52840dk. But I'm getting errors.

*** Booting nRF Connect SDK v3.5.99-ncs1-1 ***

[00:00:00.255,706] <err> main: Storage init ERROR!
[00:00:00.261,413] <err> fs: fs mount error (-5)
Error mounting disk.
[00:00:00.268,859] <err> fs: fs not mounted (mp == 0x20000000)

i tried check the code to see which spi pin it is using but i couldnt find it so i assumed it is spi0 and gave the connections according to the device tree file for spi0. How do I choose the spi? Also i have seen in so
i am using v2.6.1 for both toolchain and nrf connect sdk in VS code.

Parents
  • Unmodified example code will store the data either in the code flash of the NRF52840 or in the QSPI NOR flash on the DK.

    Check the finished dts (build dir / zephyr subdir) for details.

    You will need quite a few changes in the overlay in order to enable SD SPI support, this will also set the spi peripherial used and the pins either directly or indirectly.

  • i saw this post devzone.nordicsemi.com/.../sd-card-error-using-fs_sample-zephyr-example-code and am facing the exact same error here is the output after making changes mentioned in this post.
    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    [00:00:00.255,798] <err> disk: disk interface already registered!!
    [00:00:00.262,908] <err> flashdisk: Failed to register disk SD error -22
    [00:00:00.270,599] <dbg> sd: sd_init_io: Host controller support 3.3V max
    [00:00:00.278,076] <dbg> sd: sd_init_io: Resetting power to card
    [00:00:00.288,360] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd0 arg 0x0
    [00:00:00.295,959] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd8 arg 0x1aa
    [00:00:00.303,710] <dbg> sd: sd_send_interface_condition: Found SDHC with CMD8 support
    [00:00:00.312,347] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd59 arg 0x1
    [00:00:00.320,037] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd58 arg 0x0
    [00:00:00.327,789] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.335,479] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.353,851] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.361,541] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.394,836] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.417,449] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.450,775] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.473,388] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.506,713] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.529,327] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.562,622] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.585,235] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.618,560] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.641,174] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.674,468] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.697,052] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.730,377] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.752,960] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.786,285] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.808,898] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.842,193] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.864,807] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.898,101] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.920,715] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:00.954,010] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:00.976,593] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.009,918] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.032,531] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.065,826] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.088,439] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.121,734] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.144,348] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.177,673] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.200,286] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.233,612] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.256,225] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.289,550] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.312,164] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.345,489] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.368,103] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.401,428] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.424,041] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.457,336] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.479,949] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.513,275] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.535,888] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.569,183] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.591,796] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.625,091] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.647,705] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.680,999] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.703,613] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.736,907] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.759,521] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.792,816] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.815,399] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.848,693] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.871,307] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.904,602] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.927,215] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:01.960,510] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:01.983,123] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.016,418] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:02.039,031] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.072,326] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:02.094,940] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.128,234] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:02.150,817] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.184,112] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:02.206,695] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.240,020] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:02.262,603] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.295,928] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:02.318,511] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.351,806] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:02.374,420] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.407,714] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:02.430,328] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.463,623] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd55 arg 0x0
    [00:00:02.486,206] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.509,674] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd41 arg 0x40000000
    [00:00:02.532,867] <err> sd: Failed to query card OCR
    [00:00:02.553,771] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd0 arg 0x0
    [00:00:02.576,263] <err> main: Storage init ERROR!
    [00:00:02.596,893] <dbg> sd: sd_init_io: Host controller support 3.3V max
    [00:00:02.619,293] <dbg> sd: sd_init_io: Resetting power to card
    [00:00:02.644,500] <dbg> sdhc_spi: sdhc_spi_send_cmd: cmd0 arg 0x0
    [00:00:02.668,304] <err> sd: Card error on CMD0
    [00:00:02.688,629] <err> fs: fs mount error (-5)
    Error mounting disk.
    [00:00:02.725,952] <err> fs: fs not mounted (mp == 0x20000000)

    devicetree

    /*
     * Copyright (c) 2017 Linaro Limited
     *
     * SPDX-License-Identifier: Apache-2.0
     */
    
    /dts-v1/;
    #include <nordic/nrf52840_qiaa.dtsi>
    #include "nrf52840dk_nrf52840-pinctrl.dtsi"
    #include <zephyr/dt-bindings/input/input-event-codes.h>
    
    / {
    	model = "Nordic nRF52840 DK NRF52840";
    	compatible = "nordic,nrf52840-dk-nrf52840";
    
    	chosen {
    		zephyr,console = &uart0;
    		zephyr,shell-uart = &uart0;
    		zephyr,uart-mcumgr = &uart0;
    		zephyr,bt-mon-uart = &uart0;
    		zephyr,bt-c2h-uart = &uart0;
    		zephyr,sram = &sram0;
    		zephyr,flash = &flash0;
    		zephyr,code-partition = &slot0_partition;
    		zephyr,ieee802154 = &ieee802154;
    	};
    
    	leds {
    		compatible = "gpio-leds";
    		led0: led_0 {
    			gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
    			label = "Green LED 0";
    		};
    		led1: led_1 {
    			gpios = <&gpio0 14 GPIO_ACTIVE_LOW>;
    			label = "Green LED 1";
    		};
    		led2: led_2 {
    			gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
    			label = "Green LED 2";
    		};
    		led3: led_3 {
    			gpios = <&gpio0 16 GPIO_ACTIVE_LOW>;
    			label = "Green LED 3";
    		};
    	};
    
    	pwmleds {
    		compatible = "pwm-leds";
    		pwm_led0: pwm_led_0 {
    			pwms = <&pwm0 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
    		};
    	};
    
    	buttons {
    		compatible = "gpio-keys";
    		button0: button_0 {
    			gpios = <&gpio0 11 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
    			label = "Push button switch 0";
    			zephyr,code = <INPUT_KEY_0>;
    		};
    		button1: button_1 {
    			gpios = <&gpio0 12 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
    			label = "Push button switch 1";
    			zephyr,code = <INPUT_KEY_1>;
    		};
    		button2: button_2 {
    			gpios = <&gpio0 24 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
    			label = "Push button switch 2";
    			zephyr,code = <INPUT_KEY_2>;
    		};
    		button3: button_3 {
    			gpios = <&gpio0 25 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
    			label = "Push button switch 3";
    			zephyr,code = <INPUT_KEY_3>;
    		};
    	};
    
    	arduino_header: connector {
    		compatible = "arduino-header-r3";
    		#gpio-cells = <2>;
    		gpio-map-mask = <0xffffffff 0xffffffc0>;
    		gpio-map-pass-thru = <0 0x3f>;
    		gpio-map = <0 0 &gpio0 3 0>,	/* A0 */
    			   <1 0 &gpio0 4 0>,	/* A1 */
    			   <2 0 &gpio0 28 0>,	/* A2 */
    			   <3 0 &gpio0 29 0>,	/* A3 */
    			   <4 0 &gpio0 30 0>,	/* A4 */
    			   <5 0 &gpio0 31 0>,	/* A5 */
    			   <6 0 &gpio1 1 0>,	/* D0 */
    			   <7 0 &gpio1 2 0>,	/* D1 */
    			   <8 0 &gpio1 3 0>,	/* D2 */
    			   <9 0 &gpio1 4 0>,	/* D3 */
    			   <10 0 &gpio1 5 0>,	/* D4 */
    			   <11 0 &gpio1 6 0>,	/* D5 */
    			   <12 0 &gpio1 7 0>,	/* D6 */
    			   <13 0 &gpio1 8 0>,	/* D7 */
    			   <14 0 &gpio1 10 0>,	/* D8 */
    			   <15 0 &gpio1 11 0>,	/* D9 */
    			   <16 0 &gpio1 12 0>,	/* D10 */
    			   <17 0 &gpio1 13 0>,	/* D11 */
    			   <18 0 &gpio1 14 0>,	/* D12 */
    			   <19 0 &gpio1 15 0>,	/* D13 */
    			   <20 0 &gpio0 26 0>,	/* D14 */
    			   <21 0 &gpio0 27 0>;	/* D15 */
    	};
    
    	arduino_adc: analog-connector {
    		compatible = "arduino,uno-adc";
    		#io-channel-cells = <1>;
    		io-channel-map = <0 &adc 1>,	/* A0 = P0.3 = AIN1 */
    				 <1 &adc 2>,	/* A1 = P0.4 = AIN2 */
    				 <2 &adc 4>,	/* A2 = P0.28 = AIN4 */
    				 <3 &adc 5>,	/* A3 = P0.29 = AIN5 */
    				 <4 &adc 6>,	/* A4 = P0.30 = AIN6 */
    				 <5 &adc 7>;	/* A5 = P0.31 = AIN7 */
    	};
    
    	/* These aliases are provided for compatibility with samples */
    	aliases {
    		led0 = &led0;
    		led1 = &led1;
    		led2 = &led2;
    		led3 = &led3;
    		pwm-led0 = &pwm_led0;
    		sw0 = &button0;
    		sw1 = &button1;
    		sw2 = &button2;
    		sw3 = &button3;
    		bootloader-led0 = &led0;
    		mcuboot-button0 = &button0;
    		mcuboot-led0 = &led0;
    		watchdog0 = &wdt0;
    		spi-flash0 = &mx25r64;
    	};
    };
    
    &adc {
    	status = "okay";
    };
    
    &uicr {
    	gpio-as-nreset;
    };
    
    &gpiote {
    	status = "okay";
    };
    
    &gpio0 {
    	status = "okay";
    	gpio-reserved-ranges = <0 2>, <6 1>, <8 3>, <17 7>;
    	gpio-line-names = "XL1", "XL2", "AREF", "A0", "A1", "RTS", "TXD",
    		"CTS", "RXD", "NFC1", "NFC2", "BUTTON1", "BUTTON2", "LED1",
    		"LED2", "LED3", "LED4", "QSPI CS", "RESET", "QSPI CLK",
    		"QSPI DIO0", "QSPI DIO1", "QSPI DIO2", "QSPI DIO3","BUTTON3",
    		"BUTTON4", "SDA", "SCL", "A2", "A3", "A4", "A5";
    };
    
    &gpio1 {
    	status = "okay";
    	gpio-line-names = "", "D0", "D1", "D2", "D3", "D4", "D5", "D6",
    		"D7", "", "D8", "D9", "D10", "D11", "D12", "D13";
    };
    
    &uart0 {
    	compatible = "nordic,nrf-uarte";
    	status = "okay";
    	current-speed = <115200>;
    	pinctrl-0 = <&uart0_default>;
    	pinctrl-1 = <&uart0_sleep>;
    	pinctrl-names = "default", "sleep";
    };
    
    arduino_serial: &uart1 {
    	current-speed = <115200>;
    	pinctrl-0 = <&uart1_default>;
    	pinctrl-1 = <&uart1_sleep>;
    	pinctrl-names = "default", "sleep";
    };
    
    arduino_i2c: &i2c0 {
    	compatible = "nordic,nrf-twi";
    	status = "okay";
    	pinctrl-0 = <&i2c0_default>;
    	pinctrl-1 = <&i2c0_sleep>;
    	pinctrl-names = "default", "sleep";
    };
    
    &i2c1 {
    	compatible = "nordic,nrf-twi";
    	/* Cannot be used together with spi1. */
    	/* status = "okay"; */
    	pinctrl-0 = <&i2c1_default>;
    	pinctrl-1 = <&i2c1_sleep>;
    	pinctrl-names = "default", "sleep";
    };
    
    &pwm0 {
    	status = "okay";
    	pinctrl-0 = <&pwm0_default>;
    	pinctrl-1 = <&pwm0_sleep>;
    	pinctrl-names = "default", "sleep";
    };
    
    &spi0 {
    	compatible = "nordic,nrf-spi";
    	/* Cannot be used together with i2c0. */
    	/* status = "okay"; */
    	pinctrl-0 = <&spi0_default>;
    	pinctrl-1 = <&spi0_sleep>;
    	pinctrl-names = "default", "sleep";
    };
    
    &spi1 {
    	compatible = "nordic,nrf-spi";
    	status = "okay";
    	pinctrl-0 = <&spi1_default>;
    	pinctrl-1 = <&spi1_sleep>;
    	pinctrl-names = "default", "sleep";
    };
    
    &spi2 {
    	compatible = "nordic,nrf-spi";
    	status = "disabled";
    	pinctrl-0 = <&spi2_default>;
    	pinctrl-1 = <&spi2_sleep>;
    	pinctrl-names = "default", "sleep";
    };
    
    &qspi {
    	status = "okay";
    	pinctrl-0 = <&qspi_default>;
    	pinctrl-1 = <&qspi_sleep>;
    	pinctrl-names = "default", "sleep";
    	mx25r64: mx25r6435f@0 {
    		compatible = "nordic,qspi-nor";
    		reg = <0>;
    		/* MX25R64 supports only pp and pp4io */
    		writeoc = "pp4io";
    		/* MX25R64 supports all readoc options */
    		readoc = "read4io";
    		sck-frequency = <8000000>;
    		jedec-id = [c2 28 17];
    		sfdp-bfp = [
    			e5 20 f1 ff  ff ff ff 03  44 eb 08 6b  08 3b 04 bb
    			ee ff ff ff  ff ff 00 ff  ff ff 00 ff  0c 20 0f 52
    			10 d8 00 ff  23 72 f5 00  82 ed 04 cc  44 83 68 44
    			30 b0 30 b0  f7 c4 d5 5c  00 be 29 ff  f0 d0 ff ff
    		];
    		size = <67108864>;
    		has-dpd;
    		t-enter-dpd = <10000>;
    		t-exit-dpd = <35000>;
    	};
    };
    
    arduino_spi: &spi3 {
    	status = "okay";
    	cs-gpios = <&arduino_header 16 GPIO_ACTIVE_LOW>; /* D10 */
    	pinctrl-0 = <&spi3_default>;
    	pinctrl-1 = <&spi3_sleep>;
    	pinctrl-names = "default", "sleep";
    };
    
    &ieee802154 {
    	status = "okay";
    };
    
    &flash0 {
    
    	partitions {
    		compatible = "fixed-partitions";
    		#address-cells = <1>;
    		#size-cells = <1>;
    
    		boot_partition: partition@0 {
    			label = "mcuboot";
    			reg = <0x00000000 0x0000C000>;
    		};
    		slot0_partition: partition@c000 {
    			label = "image-0";
    			reg = <0x0000C000 0x00076000>;
    		};
    		slot1_partition: partition@82000 {
    			label = "image-1";
    			reg = <0x00082000 0x00076000>;
    		};
    
    		/*
    		 * The flash starting at 0x000f8000 and ending at
    		 * 0x000fffff is reserved for use by the application.
    		 */
    
    		/*
    		 * Storage partition will be used by FCB/LittleFS/NVS
    		 * if enabled.
    		 */
    		storage_partition: partition@f8000 {
    			label = "storage";
    			reg = <0x000f8000 0x00008000>;
    		};
    	};
    };
    
    zephyr_udc0: &usbd {
    	compatible = "nordic,nrf-usbd";
    	status = "okay";
    };
    

    overlay

    &spi1 {
        status = "okay";
        cs-gpios = < &gpio0 21 GPIO_ACTIVE_HIGH>;
        mx25r645: sdhc-spi-slot@0 {
    		compatible = "zephyr,sdhc-spi-slot";
    		reg = <0x0>;
    		spi-max-frequency = <8000000>;
    		status = "okay";
    		
    		mmc {
    			compatible = "zephyr,sdmmc-disk";
    			status = "okay";
    			
    		};	
    	};
    };
    
    /*
     * Copyright (c) 2023 Nordic Semiconductor ASA
     *
     * SPDX-License-Identifier: Apache-2.0
     */
    
    /* Because FAT FS needs at least 64kiB partition and default
     * storage_partition is 32kiB for that board, we need to reorgatnize
     * partitions to get at least 64KiB.
     * This overlay removes image slot partitions and strips each of 64kiB,
     * and removes the storage partition to add the additional 2*64kiB to
     * it.
     */
    /delete-node/ &slot0_partition;
    /delete-node/ &slot1_partition;
    /delete-node/ &storage_partition;
    
    &flash0 {
    
    	partitions {
    		compatible = "fixed-partitions";
    		#address-cells = <1>;
    		#size-cells = <1>;
    
    		slot0_partition: partition@c000 {
    			reg = <0x0000C000 0x00066000>;
    		};
    		slot1_partition: partition@72000 {
    			reg = <0x00072000 0x00066000>;
    		};
    
    		storage_partition: partition@d8000 {
    			label = "storage";
    			reg = <0x000d8000 0x00028000>;
    		};
    	};
    };
    
    / {
    	msc_disk0 {
    		status="okay";
    		compatible = "zephyr,flash-disk";
    		partition = <&storage_partition>;
    		disk-name = "SD";
    		/* cache-size == page erase size */
    		cache-size = <4096>;
    	};
    };
    
    pinctrl.dtsi
    /*
     * Copyright (c) 2022 Nordic Semiconductor
     * SPDX-License-Identifier: Apache-2.0
     */
    
    &pinctrl {
    	uart0_default: uart0_default {
    		group1 {
    			psels = <NRF_PSEL(UART_TX, 0, 6)>,
    				<NRF_PSEL(UART_RTS, 0, 5)>;
    		};
    		group2 {
    			psels = <NRF_PSEL(UART_RX, 0, 8)>,
    				<NRF_PSEL(UART_CTS, 0, 7)>;
    			bias-pull-up;
    		};
    	};
    
    	uart0_sleep: uart0_sleep {
    		group1 {
    			psels = <NRF_PSEL(UART_TX, 0, 6)>,
    				<NRF_PSEL(UART_RX, 0, 8)>,
    				<NRF_PSEL(UART_RTS, 0, 5)>,
    				<NRF_PSEL(UART_CTS, 0, 7)>;
    			low-power-enable;
    		};
    	};
    
    	uart1_default: uart1_default {
    		group1 {
    			psels = <NRF_PSEL(UART_RX, 1, 1)>;
    			bias-pull-up;
    		};
    		group2 {
    			psels = <NRF_PSEL(UART_TX, 1, 2)>;
    		};
    	};
    
    	uart1_sleep: uart1_sleep {
    		group1 {
    			psels = <NRF_PSEL(UART_RX, 1, 1)>,
    				<NRF_PSEL(UART_TX, 1, 2)>;
    			low-power-enable;
    		};
    	};
    
    	i2c0_default: i2c0_default {
    		group1 {
    			psels = <NRF_PSEL(TWIM_SDA, 0, 26)>,
    				<NRF_PSEL(TWIM_SCL, 0, 27)>;
    		};
    	};
    
    	i2c0_sleep: i2c0_sleep {
    		group1 {
    			psels = <NRF_PSEL(TWIM_SDA, 0, 26)>,
    				<NRF_PSEL(TWIM_SCL, 0, 27)>;
    			low-power-enable;
    		};
    	};
    
    	i2c1_default: i2c1_default {
    		group1 {
    			psels = <NRF_PSEL(TWIM_SDA, 0, 30)>,
    				<NRF_PSEL(TWIM_SCL, 0, 31)>;
    		};
    	};
    
    	i2c1_sleep: i2c1_sleep {
    		group1 {
    			psels = <NRF_PSEL(TWIM_SDA, 0, 30)>,
    				<NRF_PSEL(TWIM_SCL, 0, 31)>;
    			low-power-enable;
    		};
    	};
    
    	pwm0_default: pwm0_default {
    		group1 {
    			psels = <NRF_PSEL(PWM_OUT0, 0, 13)>;
    			nordic,invert;
    		};
    	};
    
    	pwm0_sleep: pwm0_sleep {
    		group1 {
    			psels = <NRF_PSEL(PWM_OUT0, 0, 13)>;
    			low-power-enable;
    		};
    	};
    
    	spi0_default: spi0_default {
    		group1 {
    			psels = <NRF_PSEL(SPIM_SCK, 0, 27)>,
    				<NRF_PSEL(SPIM_MOSI, 0, 26)>,
    				<NRF_PSEL(SPIM_MISO, 0, 29)>;
    		};
    	};
    
    	spi0_sleep: spi0_sleep {
    		group1 {
    			psels = <NRF_PSEL(SPIM_SCK, 0, 27)>,
    				<NRF_PSEL(SPIM_MOSI, 0, 26)>,
    				<NRF_PSEL(SPIM_MISO, 0, 29)>;
    			low-power-enable;
    		};
    	};
    
    	spi1_default: spi1_default {
    		group1 {
    			psels = <NRF_PSEL(SPIM_SCK, 0, 31)>,
    				<NRF_PSEL(SPIM_MOSI, 0, 30)>,
    				<NRF_PSEL(SPIM_MISO, 1, 8)>;
    		};
    	};
    
    	spi1_sleep: spi1_sleep {
    		group1 {
    			psels = <NRF_PSEL(SPIM_SCK, 0, 31)>,
    				<NRF_PSEL(SPIM_MOSI, 0, 30)>,
    				<NRF_PSEL(SPIM_MISO, 1, 8)>;
    			low-power-enable;
    		};
    	};
    
    	spi2_default: spi2_default {
    		group1 {
    			psels = <NRF_PSEL(SPIM_SCK, 0, 19)>,
    				<NRF_PSEL(SPIM_MOSI, 0, 20)>,
    				<NRF_PSEL(SPIM_MISO, 0, 21)>;
    		};
    	};
    
    	spi2_sleep: spi2_sleep {
    		group1 {
    			psels = <NRF_PSEL(SPIM_SCK, 0, 19)>,
    				<NRF_PSEL(SPIM_MOSI, 0, 20)>,
    				<NRF_PSEL(SPIM_MISO, 0, 21)>;
    			low-power-enable;
    		};
    	};
    
    	qspi_default: qspi_default {
    		group1 {
    			psels = <NRF_PSEL(QSPI_SCK, 0, 19)>,
    				<NRF_PSEL(QSPI_IO0, 0, 20)>,
    				<NRF_PSEL(QSPI_IO1, 0, 21)>,
    				<NRF_PSEL(QSPI_IO2, 0, 22)>,
    				<NRF_PSEL(QSPI_IO3, 0, 23)>,
    				<NRF_PSEL(QSPI_CSN, 0, 17)>;
    			nordic,drive-mode = <NRF_DRIVE_H0H1>;
    		};
    	};
    
    	qspi_sleep: qspi_sleep {
    		group1 {
    			psels = <NRF_PSEL(QSPI_SCK, 0, 19)>,
    				<NRF_PSEL(QSPI_IO0, 0, 20)>,
    				<NRF_PSEL(QSPI_IO1, 0, 21)>,
    				<NRF_PSEL(QSPI_IO2, 0, 22)>,
    				<NRF_PSEL(QSPI_IO3, 0, 23)>;
    			low-power-enable;
    		};
    		group2 {
    			psels = <NRF_PSEL(QSPI_CSN, 0, 17)>;
    			low-power-enable;
    			bias-pull-up;
    		};
    	};
    
    	spi3_default: spi3_default {
    		group1 {
    			psels = <NRF_PSEL(SPIM_SCK, 1, 15)>,
    				<NRF_PSEL(SPIM_MISO, 1, 14)>,
    				<NRF_PSEL(SPIM_MOSI, 1, 13)>;
    		};
    	};
    
    	spi3_sleep: spi3_sleep {
    		group1 {
    			psels = <NRF_PSEL(SPIM_SCK, 1, 15)>,
    				<NRF_PSEL(SPIM_MISO, 1, 14)>,
    				<NRF_PSEL(SPIM_MOSI, 1, 13)>;
    			low-power-enable;
    		};
    	};
    
    };
    

  • Is that zephyr.dts? I can't see that your overlay changes have been applied to that. Did you make sure the overlay was included in the build?

  • it is the default dts file that comes with sdk. After few changes in the overlay file 

    *** Booting nRF Connect SDK v3.5.99-ncs1-1 ***
    [00:00:00.251,678] <err> disk: disk interface already registered!!
    [00:00:00.251,708] <err> flashdisk: Failed to register disk SD error -22

    [00:00:23.376,739] <err> sd: Card never left busy state
    [00:00:23.376,739] <err> sd: Failed to query card OCR
    [00:00:23.376,770] <err> fs: fs mount error (-5)
    Error mounting disk.
    [00:00:23.376,831] <err> fs: fs not mounted (mp == 0x20000000)

    the overlay im using rn

    &spi1 {
        status = "okay";
        cs-gpios = <&gpio0 27 GPIO_ACTIVE_LOW>;
    
        sdhc0: sdhc@0 {
                compatible = "zephyr,sdhc-spi-slot";
                reg = <0>;
                status = "okay";
                mmc {
                    compatible = "zephyr,sdmmc-disk";
                    status = "okay";
                };
                spi-max-frequency = <24000000>;
        };
    };
    
    &i2c1 {
        status="disabled";
    };
    
    &i2c0 {
        status="disabled";
    };
    
    
    /delete-node/ &slot0_partition;
    /delete-node/ &slot1_partition;
    /delete-node/ &storage_partition;
    
    &flash0 {
    
    	partitions {
    		compatible = "fixed-partitions";
    		#address-cells = <1>;
    		#size-cells = <1>;
    
    		slot0_partition: partition@c000 {
    			reg = <0x0000C000 0x00066000>;
    		};
    		slot1_partition: partition@72000 {
    			reg = <0x00072000 0x00066000>;
    		};
    
    		storage_partition: partition@d8000 {
    			label = "storage";
    			reg = <0x000d8000 0x00028000>;
    		};
    	};
    };
    
    / {
    	msc_disk0 {
    		status="okay";
    		compatible = "zephyr,flash-disk";
    		partition = <&storage_partition>;
    		disk-name = "SD";
    		/* cache-size == page erase size */
    		cache-size = <4096>;
    	};
    };

    prj.conf

    CONFIG_DISK_ACCESS=y
    CONFIG_LOG=y
    CONFIG_FILE_SYSTEM=y
    CONFIG_FAT_FILESYSTEM_ELM=y
    CONFIG_PRINTK=y
    CONFIG_MAIN_STACK_SIZE=2048
    
    
    # # Copyright (c) 2023 Antmicro <www.antmicro.com>
    # # SPDX-License-Identifier: Apache-2.0
    
    # CONFIG_LOG_MODE_IMMEDIATE=y
    
    # # Enable to allow formatting
    # # CONFIG_FILE_SYSTEM_MKFS=y
    # # CONFIG_TEST_RANDOM_GENERATOR=y
    # CONFIG_DISK_DRIVER_SDMMC=y
    # CONFIG_DISK_ACCESS=y
    
    # # CONFIG_LOG_MODE_IMMEDIATE=y
    # CONFIG_SPI_NRFX=y
    # CONFIG_DISK_DRIVERS=y
    CONFIG_DISK_DRIVER_SDMMC=y
    CONFIG_SDHC=y
    CONFIG_GPIO=y
    CONFIG_SPI=y
    # CONFIG_SD_LOG_LEVEL_DBG=y
    CONFIG_SDHC_LOG_LEVEL_DBG=y
    CONFIG_SDMMC_LOG_LEVEL_DBG=y

    the is a proj_ext.conf in the samples and boards/nrf52840dk_nrf52840.conf, boards/nrf52840dk_nrf52840.overlay, boards/nrf52840dk_nrf52840_qspi.conf, boards/nrf52840dk_nrf52840_qspi.overlay. Im not using any of those in this build. it was getting included automatically but i removed them. Im using the device tree that came with the sdk without making any changes. same for pinctrl. im using v2.6.1 for both toolchain and sdk. I have made no changes to the code at all.

  • Kevin_0987654 said:
    it is the default dts file that comes with sdk.

    Can you also upload build/zephyr/zephyr.dts to see the dts after building?

Reply Children
  • zephyr.dts

    .

    /dts-v1/;
    
    / {
    	#address-cells = < 0x1 >;
    	#size-cells = < 0x1 >;
    	model = "Nordic nRF52840 DK NRF52840";
    	compatible = "nordic,nrf52840-dk-nrf52840";
    	chosen {
    		zephyr,entropy = &cryptocell;
    		zephyr,flash-controller = &flash_controller;
    		zephyr,console = &uart0;
    		zephyr,shell-uart = &uart0;
    		zephyr,uart-mcumgr = &uart0;
    		zephyr,bt-mon-uart = &uart0;
    		zephyr,bt-c2h-uart = &uart0;
    		zephyr,sram = &sram0;
    		zephyr,flash = &flash0;
    		zephyr,code-partition = &slot0_partition;
    		zephyr,ieee802154 = &ieee802154;
    	};
    	aliases {
    		led0 = &led0;
    		led1 = &led1;
    		led2 = &led2;
    		led3 = &led3;
    		pwm-led0 = &pwm_led0;
    		sw0 = &button0;
    		sw1 = &button1;
    		sw2 = &button2;
    		sw3 = &button3;
    		bootloader-led0 = &led0;
    		mcuboot-button0 = &button0;
    		mcuboot-led0 = &led0;
    		watchdog0 = &wdt0;
    		spi-flash0 = &mx25r64;
    	};
    	soc {
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x1 >;
    		compatible = "nordic,nrf52840-qiaa", "nordic,nrf52840", "nordic,nrf52", "simple-bus";
    		interrupt-parent = < &nvic >;
    		ranges;
    		nvic: interrupt-controller@e000e100 {
    			#address-cells = < 0x1 >;
    			compatible = "arm,v7m-nvic";
    			reg = < 0xe000e100 0xc00 >;
    			interrupt-controller;
    			#interrupt-cells = < 0x2 >;
    			arm,num-irq-priority-bits = < 0x3 >;
    			phandle = < 0x1 >;
    		};
    		systick: timer@e000e010 {
    			compatible = "arm,armv7m-systick";
    			reg = < 0xe000e010 0x10 >;
    			status = "disabled";
    		};
    		ficr: ficr@10000000 {
    			compatible = "nordic,nrf-ficr";
    			reg = < 0x10000000 0x1000 >;
    			#nordic,ficr-cells = < 0x1 >;
    			status = "okay";
    		};
    		uicr: uicr@10001000 {
    			compatible = "nordic,nrf-uicr";
    			reg = < 0x10001000 0x1000 >;
    			status = "okay";
    			gpio-as-nreset;
    		};
    		sram0: memory@20000000 {
    			compatible = "mmio-sram";
    			reg = < 0x20000000 0x40000 >;
    		};
    		clock: clock@40000000 {
    			compatible = "nordic,nrf-clock";
    			reg = < 0x40000000 0x1000 >;
    			interrupts = < 0x0 0x1 >;
    			status = "okay";
    		};
    		power: power@40000000 {
    			compatible = "nordic,nrf-power";
    			reg = < 0x40000000 0x1000 >;
    			interrupts = < 0x0 0x1 >;
    			status = "okay";
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x1 >;
    			gpregret1: gpregret1@4000051c {
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x1 >;
    				compatible = "nordic,nrf-gpregret";
    				reg = < 0x4000051c 0x1 >;
    				status = "okay";
    			};
    			gpregret2: gpregret2@40000520 {
    				#address-cells = < 0x1 >;
    				#size-cells = < 0x1 >;
    				compatible = "nordic,nrf-gpregret";
    				reg = < 0x40000520 0x1 >;
    				status = "okay";
    			};
    		};
    		radio: radio@40001000 {
    			compatible = "nordic,nrf-radio";
    			reg = < 0x40001000 0x1000 >;
    			interrupts = < 0x1 0x1 >;
    			status = "okay";
    			ieee802154-supported;
    			ble-2mbps-supported;
    			ble-coded-phy-supported;
    			tx-high-power-supported;
    			ieee802154: ieee802154 {
    				compatible = "nordic,nrf-ieee802154";
    				status = "okay";
    			};
    		};
    		uart0: uart@40002000 {
    			compatible = "nordic,nrf-uarte";
    			reg = < 0x40002000 0x1000 >;
    			interrupts = < 0x2 0x1 >;
    			status = "okay";
    			current-speed = < 0x1c200 >;
    			pinctrl-0 = < &uart0_default >;
    			pinctrl-1 = < &uart0_sleep >;
    			pinctrl-names = "default", "sleep";
    		};
    		i2c0: arduino_i2c: i2c@40003000 {
    			compatible = "nordic,nrf-twi";
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x0 >;
    			reg = < 0x40003000 0x1000 >;
    			clock-frequency = < 0x186a0 >;
    			interrupts = < 0x3 0x1 >;
    			easydma-maxcnt-bits = < 0x10 >;
    			status = "disabled";
    			pinctrl-0 = < &i2c0_default >;
    			pinctrl-1 = < &i2c0_sleep >;
    			pinctrl-names = "default", "sleep";
    		};
    		spi0: spi@40003000 {
    			compatible = "nordic,nrf-spi";
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x0 >;
    			reg = < 0x40003000 0x1000 >;
    			interrupts = < 0x3 0x1 >;
    			max-frequency = < 0x7a1200 >;
    			easydma-maxcnt-bits = < 0x10 >;
    			status = "disabled";
    			pinctrl-0 = < &spi0_default >;
    			pinctrl-1 = < &spi0_sleep >;
    			pinctrl-names = "default", "sleep";
    		};
    		i2c1: i2c@40004000 {
    			compatible = "nordic,nrf-twi";
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x0 >;
    			reg = < 0x40004000 0x1000 >;
    			clock-frequency = < 0x186a0 >;
    			interrupts = < 0x4 0x1 >;
    			easydma-maxcnt-bits = < 0x10 >;
    			status = "disabled";
    			pinctrl-0 = < &i2c1_default >;
    			pinctrl-1 = < &i2c1_sleep >;
    			pinctrl-names = "default", "sleep";
    		};
    		spi1: spi@40004000 {
    			compatible = "nordic,nrf-spi";
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x0 >;
    			reg = < 0x40004000 0x1000 >;
    			interrupts = < 0x4 0x1 >;
    			max-frequency = < 0x7a1200 >;
    			easydma-maxcnt-bits = < 0x10 >;
    			status = "okay";
    			pinctrl-0 = < &spi1_default >;
    			pinctrl-1 = < &spi1_sleep >;
    			pinctrl-names = "default", "sleep";
    			cs-gpios = < &gpio0 0x1b 0x0 >;
    			sdhc0: sdhc@0 {
    				compatible = "zephyr,sdhc-spi-slot";
    				reg = < 0x0 >;
    				status = "okay";
    				spi-max-frequency = < 0x16e3600 >;
    				mmc {
    					compatible = "zephyr,sdmmc-disk";
    					status = "okay";
    				};
    			};
    		};
    		nfct: nfct@40005000 {
    			compatible = "nordic,nrf-nfct";
    			reg = < 0x40005000 0x1000 >;
    			interrupts = < 0x5 0x1 >;
    			status = "okay";
    		};
    		gpiote: gpiote0: gpiote@40006000 {
    			compatible = "nordic,nrf-gpiote";
    			reg = < 0x40006000 0x1000 >;
    			interrupts = < 0x6 0x5 >;
    			status = "okay";
    			instance = < 0x0 >;
    			phandle = < 0x18 >;
    		};
    		adc: adc@40007000 {
    			compatible = "nordic,nrf-saadc";
    			reg = < 0x40007000 0x1000 >;
    			interrupts = < 0x7 0x1 >;
    			status = "okay";
    			#io-channel-cells = < 0x1 >;
    			phandle = < 0x1c >;
    		};
    		timer0: timer@40008000 {
    			compatible = "nordic,nrf-timer";
    			status = "disabled";
    			reg = < 0x40008000 0x1000 >;
    			cc-num = < 0x4 >;
    			max-bit-width = < 0x20 >;
    			interrupts = < 0x8 0x1 >;
    			prescaler = < 0x0 >;
    		};
    		timer1: timer@40009000 {
    			compatible = "nordic,nrf-timer";
    			status = "disabled";
    			reg = < 0x40009000 0x1000 >;
    			cc-num = < 0x4 >;
    			max-bit-width = < 0x20 >;
    			interrupts = < 0x9 0x1 >;
    			prescaler = < 0x0 >;
    			phandle = < 0x19 >;
    		};
    		timer2: timer@4000a000 {
    			compatible = "nordic,nrf-timer";
    			status = "disabled";
    			reg = < 0x4000a000 0x1000 >;
    			cc-num = < 0x4 >;
    			max-bit-width = < 0x20 >;
    			interrupts = < 0xa 0x1 >;
    			prescaler = < 0x0 >;
    		};
    		rtc0: rtc@4000b000 {
    			compatible = "nordic,nrf-rtc";
    			reg = < 0x4000b000 0x1000 >;
    			cc-num = < 0x3 >;
    			interrupts = < 0xb 0x1 >;
    			status = "disabled";
    			clock-frequency = < 0x8000 >;
    			prescaler = < 0x1 >;
    		};
    		temp: temp@4000c000 {
    			compatible = "nordic,nrf-temp";
    			reg = < 0x4000c000 0x1000 >;
    			interrupts = < 0xc 0x1 >;
    			status = "okay";
    		};
    		rng: random@4000d000 {
    			compatible = "nordic,nrf-rng";
    			reg = < 0x4000d000 0x1000 >;
    			interrupts = < 0xd 0x1 >;
    			status = "okay";
    		};
    		ecb: ecb@4000e000 {
    			compatible = "nordic,nrf-ecb";
    			reg = < 0x4000e000 0x1000 >;
    			interrupts = < 0xe 0x1 >;
    			status = "okay";
    		};
    		ccm: ccm@4000f000 {
    			compatible = "nordic,nrf-ccm";
    			reg = < 0x4000f000 0x1000 >;
    			interrupts = < 0xf 0x1 >;
    			length-field-length-8-bits;
    			status = "okay";
    		};
    		wdt: wdt0: watchdog@40010000 {
    			compatible = "nordic,nrf-wdt";
    			reg = < 0x40010000 0x1000 >;
    			interrupts = < 0x10 0x1 >;
    			status = "okay";
    		};
    		rtc1: rtc@40011000 {
    			compatible = "nordic,nrf-rtc";
    			reg = < 0x40011000 0x1000 >;
    			cc-num = < 0x4 >;
    			interrupts = < 0x11 0x1 >;
    			status = "disabled";
    			clock-frequency = < 0x8000 >;
    			prescaler = < 0x1 >;
    		};
    		qdec: qdec0: qdec@40012000 {
    			compatible = "nordic,nrf-qdec";
    			reg = < 0x40012000 0x1000 >;
    			interrupts = < 0x12 0x1 >;
    			status = "disabled";
    		};
    		comp: comparator@40013000 {
    			compatible = "nordic,nrf-comp";
    			reg = < 0x40013000 0x1000 >;
    			interrupts = < 0x13 0x1 >;
    			status = "disabled";
    			#io-channel-cells = < 0x1 >;
    		};
    		egu0: swi0: egu@40014000 {
    			compatible = "nordic,nrf-egu", "nordic,nrf-swi";
    			reg = < 0x40014000 0x1000 >;
    			interrupts = < 0x14 0x1 >;
    			status = "okay";
    		};
    		egu1: swi1: egu@40015000 {
    			compatible = "nordic,nrf-egu", "nordic,nrf-swi";
    			reg = < 0x40015000 0x1000 >;
    			interrupts = < 0x15 0x1 >;
    			status = "okay";
    		};
    		egu2: swi2: egu@40016000 {
    			compatible = "nordic,nrf-egu", "nordic,nrf-swi";
    			reg = < 0x40016000 0x1000 >;
    			interrupts = < 0x16 0x1 >;
    			status = "okay";
    		};
    		egu3: swi3: egu@40017000 {
    			compatible = "nordic,nrf-egu", "nordic,nrf-swi";
    			reg = < 0x40017000 0x1000 >;
    			interrupts = < 0x17 0x1 >;
    			status = "okay";
    		};
    		egu4: swi4: egu@40018000 {
    			compatible = "nordic,nrf-egu", "nordic,nrf-swi";
    			reg = < 0x40018000 0x1000 >;
    			interrupts = < 0x18 0x1 >;
    			status = "okay";
    		};
    		egu5: swi5: egu@40019000 {
    			compatible = "nordic,nrf-egu", "nordic,nrf-swi";
    			reg = < 0x40019000 0x1000 >;
    			interrupts = < 0x19 0x1 >;
    			status = "okay";
    		};
    		timer3: timer@4001a000 {
    			compatible = "nordic,nrf-timer";
    			status = "disabled";
    			reg = < 0x4001a000 0x1000 >;
    			cc-num = < 0x6 >;
    			max-bit-width = < 0x20 >;
    			interrupts = < 0x1a 0x1 >;
    			prescaler = < 0x0 >;
    		};
    		timer4: timer@4001b000 {
    			compatible = "nordic,nrf-timer";
    			status = "disabled";
    			reg = < 0x4001b000 0x1000 >;
    			cc-num = < 0x6 >;
    			max-bit-width = < 0x20 >;
    			interrupts = < 0x1b 0x1 >;
    			prescaler = < 0x0 >;
    		};
    		pwm0: pwm@4001c000 {
    			compatible = "nordic,nrf-pwm";
    			reg = < 0x4001c000 0x1000 >;
    			interrupts = < 0x1c 0x1 >;
    			status = "okay";
    			#pwm-cells = < 0x3 >;
    			pinctrl-0 = < &pwm0_default >;
    			pinctrl-1 = < &pwm0_sleep >;
    			pinctrl-names = "default", "sleep";
    			phandle = < 0x1a >;
    		};
    		pdm0: pdm@4001d000 {
    			compatible = "nordic,nrf-pdm";
    			reg = < 0x4001d000 0x1000 >;
    			interrupts = < 0x1d 0x1 >;
    			status = "disabled";
    		};
    		acl: acl@4001e000 {
    			compatible = "nordic,nrf-acl";
    			reg = < 0x4001e000 0x1000 >;
    			status = "okay";
    		};
    		flash_controller: flash-controller@4001e000 {
    			compatible = "nordic,nrf52-flash-controller";
    			reg = < 0x4001e000 0x1000 >;
    			partial-erase;
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x1 >;
    			flash0: flash@0 {
    				compatible = "soc-nv-flash";
    				erase-block-size = < 0x1000 >;
    				write-block-size = < 0x4 >;
    				reg = < 0x0 0x100000 >;
    				partitions {
    					compatible = "fixed-partitions";
    					#address-cells = < 0x1 >;
    					#size-cells = < 0x1 >;
    					boot_partition: partition@0 {
    						label = "mcuboot";
    						reg = < 0x0 0xc000 >;
    					};
    					slot0_partition: partition@c000 {
    						label = "image-0";
    						reg = < 0xc000 0x76000 >;
    					};
    					slot1_partition: partition@82000 {
    						label = "image-1";
    						reg = < 0x82000 0x76000 >;
    					};
    					storage_partition: partition@f8000 {
    						label = "storage";
    						reg = < 0xf8000 0x8000 >;
    					};
    				};
    			};
    		};
    		ppi: ppi@4001f000 {
    			compatible = "nordic,nrf-ppi";
    			reg = < 0x4001f000 0x1000 >;
    			status = "okay";
    		};
    		mwu: mwu@40020000 {
    			compatible = "nordic,nrf-mwu";
    			reg = < 0x40020000 0x1000 >;
    			status = "okay";
    		};
    		pwm1: pwm@40021000 {
    			compatible = "nordic,nrf-pwm";
    			reg = < 0x40021000 0x1000 >;
    			interrupts = < 0x21 0x1 >;
    			status = "disabled";
    			#pwm-cells = < 0x3 >;
    		};
    		pwm2: pwm@40022000 {
    			compatible = "nordic,nrf-pwm";
    			reg = < 0x40022000 0x1000 >;
    			interrupts = < 0x22 0x1 >;
    			status = "disabled";
    			#pwm-cells = < 0x3 >;
    		};
    		spi2: spi@40023000 {
    			compatible = "nordic,nrf-spi";
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x0 >;
    			reg = < 0x40023000 0x1000 >;
    			interrupts = < 0x23 0x1 >;
    			max-frequency = < 0x7a1200 >;
    			easydma-maxcnt-bits = < 0x10 >;
    			status = "disabled";
    			pinctrl-0 = < &spi2_default >;
    			pinctrl-1 = < &spi2_sleep >;
    			pinctrl-names = "default", "sleep";
    		};
    		rtc2: rtc@40024000 {
    			compatible = "nordic,nrf-rtc";
    			reg = < 0x40024000 0x1000 >;
    			cc-num = < 0x4 >;
    			interrupts = < 0x24 0x1 >;
    			status = "disabled";
    			clock-frequency = < 0x8000 >;
    			prescaler = < 0x1 >;
    		};
    		i2s0: i2s@40025000 {
    			compatible = "nordic,nrf-i2s";
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x0 >;
    			reg = < 0x40025000 0x1000 >;
    			interrupts = < 0x25 0x1 >;
    			status = "disabled";
    		};
    		usbd: zephyr_udc0: usbd@40027000 {
    			compatible = "nordic,nrf-usbd";
    			reg = < 0x40027000 0x1000 >;
    			interrupts = < 0x27 0x1 >;
    			num-bidir-endpoints = < 0x1 >;
    			num-in-endpoints = < 0x7 >;
    			num-out-endpoints = < 0x7 >;
    			num-isoin-endpoints = < 0x1 >;
    			num-isoout-endpoints = < 0x1 >;
    			status = "okay";
    		};
    		uart1: arduino_serial: uart@40028000 {
    			compatible = "nordic,nrf-uarte";
    			reg = < 0x40028000 0x1000 >;
    			interrupts = < 0x28 0x1 >;
    			status = "disabled";
    			current-speed = < 0x1c200 >;
    			pinctrl-0 = < &uart1_default >;
    			pinctrl-1 = < &uart1_sleep >;
    			pinctrl-names = "default", "sleep";
    		};
    		qspi: qspi@40029000 {
    			compatible = "nordic,nrf-qspi";
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x0 >;
    			reg = < 0x40029000 0x1000 >, < 0x12000000 0x8000000 >;
    			reg-names = "qspi", "qspi_mm";
    			interrupts = < 0x29 0x1 >;
    			status = "okay";
    			pinctrl-0 = < &qspi_default >;
    			pinctrl-1 = < &qspi_sleep >;
    			pinctrl-names = "default", "sleep";
    			mx25r64: mx25r6435f@0 {
    				compatible = "nordic,qspi-nor";
    				reg = < 0x0 >;
    				writeoc = "pp4io";
    				readoc = "read4io";
    				sck-frequency = < 0x7a1200 >;
    				jedec-id = [ C2 28 17 ];
    				sfdp-bfp = [ E5 20 F1 FF FF FF FF 03 44 EB 08 6B 08 3B 04 BB EE FF FF FF FF FF 00 FF FF FF 00 FF 0C 20 0F 52 10 D8 00 FF 23 72 F5 00 82 ED 04 CC 44 83 68 44 30 B0 30 B0 F7 C4 D5 5C 00 BE 29 FF F0 D0 FF FF ];
    				size = < 0x4000000 >;
    				has-dpd;
    				t-enter-dpd = < 0x2710 >;
    				t-exit-dpd = < 0x88b8 >;
    			};
    		};
    		pwm3: pwm@4002d000 {
    			compatible = "nordic,nrf-pwm";
    			reg = < 0x4002d000 0x1000 >;
    			interrupts = < 0x2d 0x1 >;
    			status = "disabled";
    			#pwm-cells = < 0x3 >;
    		};
    		spi3: arduino_spi: spi@4002f000 {
    			compatible = "nordic,nrf-spim";
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x0 >;
    			reg = < 0x4002f000 0x1000 >;
    			interrupts = < 0x2f 0x1 >;
    			max-frequency = < 0x1e84800 >;
    			easydma-maxcnt-bits = < 0x10 >;
    			rx-delay-supported;
    			rx-delay = < 0x2 >;
    			status = "okay";
    			cs-gpios = < &arduino_header 0x10 0x1 >;
    			pinctrl-0 = < &spi3_default >;
    			pinctrl-1 = < &spi3_sleep >;
    			pinctrl-names = "default", "sleep";
    		};
    		gpio0: gpio@50000000 {
    			compatible = "nordic,nrf-gpio";
    			gpio-controller;
    			reg = < 0x50000000 0x200 0x50000500 0x300 >;
    			#gpio-cells = < 0x2 >;
    			status = "okay";
    			port = < 0x0 >;
    			gpiote-instance = < &gpiote >;
    			gpio-reserved-ranges = < 0x0 0x2 >, < 0x6 0x1 >, < 0x8 0x3 >, < 0x11 0x7 >;
    			gpio-line-names = "XL1", "XL2", "AREF", "A0", "A1", "RTS", "TXD", "CTS", "RXD", "NFC1", "NFC2", "BUTTON1", "BUTTON2", "LED1", "LED2", "LED3", "LED4", "QSPI CS", "RESET", "QSPI CLK", "QSPI DIO0", "QSPI DIO1", "QSPI DIO2", "QSPI DIO3", "BUTTON3", "BUTTON4", "SDA", "SCL", "A2", "A3", "A4", "A5";
    			phandle = < 0xc >;
    		};
    		gpio1: gpio@50000300 {
    			compatible = "nordic,nrf-gpio";
    			gpio-controller;
    			reg = < 0x50000300 0x200 0x50000800 0x300 >;
    			#gpio-cells = < 0x2 >;
    			ngpios = < 0x10 >;
    			status = "okay";
    			port = < 0x1 >;
    			gpiote-instance = < &gpiote >;
    			gpio-line-names = "", "D0", "D1", "D2", "D3", "D4", "D5", "D6", "D7", "", "D8", "D9", "D10", "D11", "D12", "D13";
    			phandle = < 0x1b >;
    		};
    		cryptocell: crypto@5002a000 {
    			compatible = "nordic,cryptocell", "arm,cryptocell-310";
    			reg = < 0x5002a000 0x1000 >, < 0x5002b000 0x1000 >;
    			reg-names = "wrapper", "core";
    			interrupts = < 0x2a 0x1 >;
    			status = "okay";
    		};
    	};
    	pinctrl: pin-controller {
    		compatible = "nordic,nrf-pinctrl";
    		uart0_default: uart0_default {
    			phandle = < 0x2 >;
    			group1 {
    				psels = < 0x6 >, < 0x20005 >;
    			};
    			group2 {
    				psels = < 0x10008 >, < 0x30007 >;
    				bias-pull-up;
    			};
    		};
    		uart0_sleep: uart0_sleep {
    			phandle = < 0x3 >;
    			group1 {
    				psels = < 0x6 >, < 0x10008 >, < 0x20005 >, < 0x30007 >;
    				low-power-enable;
    			};
    		};
    		uart1_default: uart1_default {
    			phandle = < 0x11 >;
    			group1 {
    				psels = < 0x10021 >;
    				bias-pull-up;
    			};
    			group2 {
    				psels = < 0x22 >;
    			};
    		};
    		uart1_sleep: uart1_sleep {
    			phandle = < 0x12 >;
    			group1 {
    				psels = < 0x10021 >, < 0x22 >;
    				low-power-enable;
    			};
    		};
    		i2c0_default: i2c0_default {
    			phandle = < 0x4 >;
    			group1 {
    				psels = < 0xc001a >, < 0xb001b >;
    			};
    		};
    		i2c0_sleep: i2c0_sleep {
    			phandle = < 0x5 >;
    			group1 {
    				psels = < 0xc001a >, < 0xb001b >;
    				low-power-enable;
    			};
    		};
    		i2c1_default: i2c1_default {
    			phandle = < 0x8 >;
    			group1 {
    				psels = < 0xc001e >, < 0xb001f >;
    			};
    		};
    		i2c1_sleep: i2c1_sleep {
    			phandle = < 0x9 >;
    			group1 {
    				psels = < 0xc001e >, < 0xb001f >;
    				low-power-enable;
    			};
    		};
    		pwm0_default: pwm0_default {
    			phandle = < 0xd >;
    			group1 {
    				psels = < 0x16000d >;
    				nordic,invert;
    			};
    		};
    		pwm0_sleep: pwm0_sleep {
    			phandle = < 0xe >;
    			group1 {
    				psels = < 0x16000d >;
    				low-power-enable;
    			};
    		};
    		spi0_default: spi0_default {
    			phandle = < 0x6 >;
    			group1 {
    				psels = < 0x4001b >, < 0x5001a >, < 0x6001d >;
    			};
    		};
    		spi0_sleep: spi0_sleep {
    			phandle = < 0x7 >;
    			group1 {
    				psels = < 0x4001b >, < 0x5001a >, < 0x6001d >;
    				low-power-enable;
    			};
    		};
    		spi1_default: spi1_default {
    			phandle = < 0xa >;
    			group1 {
    				psels = < 0x4001f >, < 0x5001e >, < 0x60028 >;
    			};
    		};
    		spi1_sleep: spi1_sleep {
    			phandle = < 0xb >;
    			group1 {
    				psels = < 0x4001f >, < 0x5001e >, < 0x60028 >;
    				low-power-enable;
    			};
    		};
    		spi2_default: spi2_default {
    			phandle = < 0xf >;
    			group1 {
    				psels = < 0x40013 >, < 0x50014 >, < 0x60015 >;
    			};
    		};
    		spi2_sleep: spi2_sleep {
    			phandle = < 0x10 >;
    			group1 {
    				psels = < 0x40013 >, < 0x50014 >, < 0x60015 >;
    				low-power-enable;
    			};
    		};
    		qspi_default: qspi_default {
    			phandle = < 0x13 >;
    			group1 {
    				psels = < 0x1d0013 >, < 0x1f0014 >, < 0x200015 >, < 0x210016 >, < 0x220017 >, < 0x1e0011 >;
    				nordic,drive-mode = < 0x3 >;
    			};
    		};
    		qspi_sleep: qspi_sleep {
    			phandle = < 0x14 >;
    			group1 {
    				psels = < 0x1d0013 >, < 0x1f0014 >, < 0x200015 >, < 0x210016 >, < 0x220017 >;
    				low-power-enable;
    			};
    			group2 {
    				psels = < 0x1e0011 >;
    				low-power-enable;
    				bias-pull-up;
    			};
    		};
    		spi3_default: spi3_default {
    			phandle = < 0x16 >;
    			group1 {
    				psels = < 0x4002f >, < 0x6002e >, < 0x5002d >;
    			};
    		};
    		spi3_sleep: spi3_sleep {
    			phandle = < 0x17 >;
    			group1 {
    				psels = < 0x4002f >, < 0x6002e >, < 0x5002d >;
    				low-power-enable;
    			};
    		};
    	};
    	rng_hci: entropy_bt_hci {
    		compatible = "zephyr,bt-hci-entropy";
    		status = "okay";
    	};
    	sw_pwm: sw-pwm {
    		compatible = "nordic,nrf-sw-pwm";
    		status = "disabled";
    		generator = < &timer1 >;
    		clock-prescaler = < 0x0 >;
    		#pwm-cells = < 0x3 >;
    	};
    	cpus {
    		#address-cells = < 0x1 >;
    		#size-cells = < 0x0 >;
    		cpu@0 {
    			device_type = "cpu";
    			compatible = "arm,cortex-m4f";
    			reg = < 0x0 >;
    			#address-cells = < 0x1 >;
    			#size-cells = < 0x1 >;
    			itm: itm@e0000000 {
    				compatible = "arm,armv7m-itm";
    				reg = < 0xe0000000 0x1000 >;
    				swo-ref-frequency = < 0x1e84800 >;
    			};
    		};
    	};
    	leds {
    		compatible = "gpio-leds";
    		led0: led_0 {
    			gpios = < &gpio0 0xd 0x1 >;
    			label = "Green LED 0";
    		};
    		led1: led_1 {
    			gpios = < &gpio0 0xe 0x1 >;
    			label = "Green LED 1";
    		};
    		led2: led_2 {
    			gpios = < &gpio0 0xf 0x1 >;
    			label = "Green LED 2";
    		};
    		led3: led_3 {
    			gpios = < &gpio0 0x10 0x1 >;
    			label = "Green LED 3";
    		};
    	};
    	pwmleds {
    		compatible = "pwm-leds";
    		pwm_led0: pwm_led_0 {
    			pwms = < &pwm0 0x0 0x1312d00 0x1 >;
    		};
    	};
    	buttons {
    		compatible = "gpio-keys";
    		button0: button_0 {
    			gpios = < &gpio0 0xb 0x11 >;
    			label = "Push button switch 0";
    			zephyr,code = < 0xb >;
    		};
    		button1: button_1 {
    			gpios = < &gpio0 0xc 0x11 >;
    			label = "Push button switch 1";
    			zephyr,code = < 0x2 >;
    		};
    		button2: button_2 {
    			gpios = < &gpio0 0x18 0x11 >;
    			label = "Push button switch 2";
    			zephyr,code = < 0x3 >;
    		};
    		button3: button_3 {
    			gpios = < &gpio0 0x19 0x11 >;
    			label = "Push button switch 3";
    			zephyr,code = < 0x4 >;
    		};
    	};
    	arduino_header: connector {
    		compatible = "arduino-header-r3";
    		#gpio-cells = < 0x2 >;
    		gpio-map-mask = < 0xffffffff 0xffffffc0 >;
    		gpio-map-pass-thru = < 0x0 0x3f >;
    		gpio-map = < 0x0 0x0 &gpio0 0x3 0x0 >, < 0x1 0x0 &gpio0 0x4 0x0 >, < 0x2 0x0 &gpio0 0x1c 0x0 >, < 0x3 0x0 &gpio0 0x1d 0x0 >, < 0x4 0x0 &gpio0 0x1e 0x0 >, < 0x5 0x0 &gpio0 0x1f 0x0 >, < 0x6 0x0 &gpio1 0x1 0x0 >, < 0x7 0x0 &gpio1 0x2 0x0 >, < 0x8 0x0 &gpio1 0x3 0x0 >, < 0x9 0x0 &gpio1 0x4 0x0 >, < 0xa 0x0 &gpio1 0x5 0x0 >, < 0xb 0x0 &gpio1 0x6 0x0 >, < 0xc 0x0 &gpio1 0x7 0x0 >, < 0xd 0x0 &gpio1 0x8 0x0 >, < 0xe 0x0 &gpio1 0xa 0x0 >, < 0xf 0x0 &gpio1 0xb 0x0 >, < 0x10 0x0 &gpio1 0xc 0x0 >, < 0x11 0x0 &gpio1 0xd 0x0 >, < 0x12 0x0 &gpio1 0xe 0x0 >, < 0x13 0x0 &gpio1 0xf 0x0 >, < 0x14 0x0 &gpio0 0x1a 0x0 >, < 0x15 0x0 &gpio0 0x1b 0x0 >;
    		phandle = < 0x15 >;
    	};
    	arduino_adc: analog-connector {
    		compatible = "arduino,uno-adc";
    		#io-channel-cells = < 0x1 >;
    		io-channel-map = < 0x0 &adc 0x1 >, < 0x1 &adc 0x2 >, < 0x2 &adc 0x4 >, < 0x3 &adc 0x5 >, < 0x4 &adc 0x6 >, < 0x5 &adc 0x7 >;
    	};
    };

    i removed this 

    msc_disk0 {
    status="okay";
    compatible = "zephyr,flash-disk";
    partition = <&storage_partition>;
    disk-name = "SD";
    /* cache-size == page erase size */
    cache-size = <4096>;
    }; 

    from the overlay cause it was saying sd card already initialised

  • I was using 3.3V as input instead of 5V. Changing that fixed it. Im sorry i didnt check all of this before hand

Related