Hi all, I'm quite new to nrf, zephyr and embedded of this complexity but have completed the fundamentals and intermediate courses. My intention is to get SPI set up for a TI ADS1298 chip connected to my nrf52DK/52832 board. The only way I know to do this is via bindings and as shown in the lessons and if there is a better way for a custom device with this SPI device connected and an SPI SD card (backup for later BLE comms), please let me know.. I am trying to create a new binding file for the ADS1298 so I can get communication in a similar way to the intermediate course SPI module. I am working on SDK v2.8.0 in VSCode. I have created a new blank project and tried to create my own binding file, keeping it simple. Basic file structure within the project is as follows: my_app |___ build |___ src |___ prj.conf |___ CMakeLists.txt |___ dts |___ bindings |___ sensor |___ ti,ads1298.yaml I have not edited the CMakeLists.txt file. # ti,ads1298.yaml # Put this in the project\dts\bindings\sensor folder # Make one if it doesnt exist description: | The ADS1298 is a 8-channel, 24-bit analog front-end for measuring electrophysiological signals such as ECG or EEG. compatible: "ti...Code When I build this project I notice a warning in the log: appears in binding directories but isn't valid YAML: while parsing a block mapping in "", line 5, column 1 did not find expected key in "", line 13, column 2 FULL LOG BELOW: (markup won't let me put these in a code box, sry) Building ads1298test1 C:\Windows\system32\cmd.exe /d /s /c "west build --build-dir c:/Users/harri/ncs-inter/ads1298test1/build c:/Users/harri/ncs-inter/ads1298test1 --pristine --board nrf52dk/nrf52832 -- -DNCS_TOOLCHAIN_VERSION=NONE -DBOARD_ROOT=c:\Users\harri\ncs-inter\l3_e1\my_boards" -- west build: generating a build system Loading Zephyr module(s) (Zephyr base): sysbuild_default -- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter -- Cache files will be written to: C:/ncs/v2.8.0/zephyr/.cache -- Found west (found suitable version "1.2.0", minimum required is "0.14.0") -- Board: nrf52dk, qualifiers: nrf52832 Parsing C:/ncs/v2.8.0/zephyr/share/sysbuild/Kconfig Loaded configuration 'C:/Users/harri/ncs-inter/ads1298test1/build/_sysbuild/empty.conf' Merged configuration 'C:/Users/harri/ncs-inter/ads1298test1/build/_sysbuild/empty.conf' Configuration saved to 'C:/Users/harri/ncs-inter/ads1298test1/build/zephyr/.config' Kconfig header saved to 'C:/Users/harri/ncs-inter/ads1298test1/build/_sysbuild/autoconf.h' -- ********************************** * Running CMake for ads1298test1 * ********************************** Loading Zephyr default modules (Zephyr base). -- Application: C:/Users/harri/ncs-inter/ads1298test1 -- CMake version: 3.21.0 -- Found Python3: C:/ncs/toolchains/b620d30767/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.8") found components: Interpreter -- Cache files will be written to: C:/ncs/v2.8.0/zephyr/.cache -- Zephyr version: 3.7.99 (C:/ncs/v2.8.0/zephyr) -- Found west (found suitable version "1.2.0", minimum required is "0.14.0") -- Board: nrf52dk, qualifiers: nrf52832 -- Found host-tools: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk) -- Found toolchain: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk) -- Found Dtc: C:/ncs/toolchains/b620d30767/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") -- Found BOARD.dts: C:/ncs/v2.8.0/zephyr/boards/nordic/nrf52dk/nrf52dk_nrf52832.dts -- Found devicetree overlay: C:/Users/harri/ncs-inter/ads1298test1/nrf52dk_nrf52832.overlay -- Generated zephyr.dts: C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1/zephyr/zephyr.dts -- Generated devicetree_generated.h: C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1/zephyr/include/generated/zephyr/devicetree_generated.h WARNING: 'C:/Users/harri/ncs-inter/ads1298test1/dts/bindings\sensor\ti,ads1298.yaml' appears in binding directories but isn't valid YAML: while parsing a block mapping in "", line 5, column 1 did not find expected key in "", line 13, column 2 -- Including generated dts.cmake file: C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1/zephyr/dts.cmake Parsing C:/ncs/v2.8.0/zephyr/Kconfig Loaded configuration 'C:/ncs/v2.8.0/zephyr/boards/nordic/nrf52dk/nrf52dk_nrf52832_defconfig' Merged configuration 'C:/Users/harri/ncs-inter/ads1298test1/prj.conf' Merged configuration 'C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1/zephyr/.config.sysbuild' Configuration saved to 'C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1/zephyr/.config' Kconfig header saved to 'C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1/zephyr/include/generated/zephyr/autoconf.h' -- Found GnuLd: c:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi/bin/ld.bfd.exe (found version "2.38") -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- The ASM compiler identification is GNU -- Found assembler: C:/ncs/toolchains/b620d30767/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe -- Setting build type to 'MinSizeRel' as none was specified. -- Configuring done -- Generating done -- Build files have been written to: C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1 -- Configuring done -- Generating done -- Build files have been written to: C:/Users/harri/ncs-inter/ads1298test1/build -- west build: building application [4/138] Generating include/generated/zephyr/version.h -- Zephyr version: 3.7.99 (C:/ncs/v2.8.0/zephyr), build: v3.7.99-ncs1 [138/138] Linking C executable zephyr\zephyr.elf Memory region Used Size Region Size %age Used FLASH: 18494 B 512 KB 3.53% RAM: 5632 B 64 KB 8.59% IDT_LIST: 0 GB 32 KB 0.00% Generating files from C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1/zephyr/zephyr.elf for board: nrf52dk [10/10] Generating ../merged.hex * Terminal will be reused by tasks, press any key to close it. Looking at the zephyr documentation, it says it should just find it (which it did in a way). Despite doing Intermediate Lesson 7 I am still unsure how to get bindings done right. After adding the following code into an overlay: &spi1 { compatible = "nordic,nrf-spi"; //using SPI as per ERRATA 58 status = "okay"; pinctrl-0 = ; pinctrl-1 = ; pinctrl-names = "default", "sleep"; cs-gpios = ; ads1298: ads1298@0 { compatible = "ti,ads1298"; Code I cannot build standard or pristine and get the following Logs and error: Building ads1298test1 C:\Windows\system32\cmd.exe /d /s /c "west build --build-dir c:/Users/harri/ncs-inter/ads1298test1/build --domain ads1298test1" -- west build: building domain(s): ads1298test1 [0/1] Re-running CMake... Loading Zephyr default modules (Zephyr base (cached)). -- Application: C:/Users/harri/ncs-inter/ads1298test1 -- CMake version: 3.21.0 -- Cache files will be written to: C:/ncs/v2.8.0/zephyr/.cache -- Zephyr version: 3.7.99 (C:/ncs/v2.8.0/zephyr) -- Found west (found suitable version "1.2.0", minimum required is "0.14.0") -- Board: nrf52dk, qualifiers: nrf52832 -- Found host-tools: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk) -- Found toolchain: zephyr 0.17.0 (C:/ncs/toolchains/b620d30767/opt/zephyr-sdk) -- Found BOARD.dts: C:/ncs/v2.8.0/zephyr/boards/nordic/nrf52dk/nrf52dk_nrf52832.dts -- Found devicetree overlay: C:/Users/harri/ncs-inter/ads1298test1/nrf52dk_nrf52832.overlay devicetree error: 'C:/Users/harri/ncs-inter/ads1298test1/dts/bindings\sensor\ti,ads1298.yaml' appears in binding directories but isn't valid YAML: while parsing a block mapping in "", line 5, column 1 did not find expected key in "", line 13, column 2 CMake Error at C:/ncs/v2.8.0/zephyr/cmake/modules/dts.cmake:295 (execute_process): execute_process failed command indexes: 1: "Child return code: 1" Call Stack (most recent call first): C:/ncs/v2.8.0/zephyr/cmake/modules/zephyr_default.cmake:133 (include) C:/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:66 (include) C:/ncs/v2.8.0/zephyr/share/zephyr-package/cmake/ZephyrConfig.cmake:97 (include_boilerplate) CMakeLists.txt:2 (find_package) -- Configuring incomplete, errors occurred! See also "C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1/CMakeFiles/CMakeOutput.log". See also "C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1/CMakeFiles/CMakeError.log". FAILED: build.ninja C:\ncs\toolchains\b620d30767\opt\bin\cmake.exe --regenerate-during-build -SC:\Users\harri\ncs-inter\ads1298test1 -BC:\Users\harri\ncs-inter\ads1298test1\build\ads1298test1 ninja: error: rebuilding 'build.ninja': subcommand failed FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\b620d30767\opt\bin\cmake.EXE' --build C:/Users/harri/ncs-inter/ads1298test1/build/ads1298test1 * The terminal process terminated with exit code: 1. * Terminal will be reused by tasks, press any key to close it. I can identify that the issue is with the child within the node, if I comment this out it builds without error. However I am unsure how to fix the error that is causing it to say that first the YAML is not a valid YAML?