I am evaluating a Fanstel BC805M device, which uses the nRF52805 chipset. I am using VSCode and have installed the nRF Connect Extension Pack, toolchain v2.8.0, and SDK v2.8.0. If I create a blinky sample application, then create a build configuration that targets the nrf52dk/nrf52805, everything builds successfully, so I think the tools and extension have been set up properly.
Now I am trying to build the sample for the BC805M by adding a custom board, but the build fails. My steps:
- Used the "Create a new board" option in the VSCode extension and successfully created a board at C:\my_boards\boards\fanstel\bc805m. For reference, I entered "bc805m" for both the human-readable and machine-readable names, then selected the NRF52805 CAAA for the target. The files in that directory are shown below.
- Question 1: are these files named correctly for Zephyr's Hardware Model v2?
- Used the "Create a new application" option to create a new blinky app at C:\my_apps\blinky, based on the zephyr blinky sample.
- Clicked "Add build configuration" button.
- Selected the "Custom" radio button, which automatically selected my custom board, bc805m/nrf52805.
- Left the rest of the options default and clicked "Build Configuration"
- The app built for a while but eventually threw an warning about drivers__gpio, then errored:
CMake Warning at C:/ncs/v2.8.0/zephyr/CMakeLists.txt:952 (message): No SOURCES given to Zephyr library: drivers__gpio Excluding target from build.
In file included from C:/ncs/v2.8.0/zephyr/include/zephyr/toolchain/gcc.h:98, from C:/ncs/v2.8.0/zephyr/include/zephyr/toolchain.h:50, from C:/ncs/v2.8.0/zephyr/include/zephyr/kernel_includes.h:23, from C:/ncs/v2.8.0/zephyr/include/zephyr/kernel.h:17, from C:/my_apps/blinky/src/main.c:8: C:/ncs/v2.8.0/zephyr/include/zephyr/device.h:92:41: error: '__device_dts_ord_DT_N_ALIAS_led0_P_gpios_IDX_0_PH_ORD' undeclared here (not in a function)
I am assuming there is more I need to do with the custom board files, but I'm having trouble determining what. DevAcademy's Lesson 3 - Adding custom board support, Exercise 1, indicates I need to add some configuration options to bc805m_defconfig, but a note at the beginning of that lesson says it's only applicable up to SDK v2.6.1, after which the Zephyr Hardware Model 2 was adopted.
Question 2: Are the defconfig options listed in Exercise 1 still valid? If not, where can I find the currently supported config options to add to bc805m_defconfig?
Exercise 1 also showed using the Devicetree Visual Editor to set up the board device tree, but it does not appear the device tree is in the build output folder.
I found How to work with boards and devices, but that doesn't have information about modifying device tree or config files.
Question 3: Is there a tutorial for custom boards with Zephyr Hardware Model 2?