nRF Connect SDK Intermediate - Lesson 3, exercise 1 company name

While creating a new board in step 2 of the exercise, there are a couple of problems with the sub-steps 1-5:

First, sub-step 1 says to name the board "DevAcademy nRF52833" with a space shown on the DevAcademy lesson page.  On the Mac that causes problems with the builds due to the space that inserts in the resulting folder name and several of the filenames.  From the later screenshot in step 4, it looks like you actually named the board DevAcademy_nRF52833 with an underscore, which works much better.

Second, sub-step 5 says to "Provide your company name. In our case, we will pass “Nordic Semiconductor” for the exercise."

If I enter Nordic Semiconductor as shown with the space, then in the later step 7 I am unable to build the example application.  I found that the problem is that the generated DevAcademy_nRF52833.dts file inserts the "Nordic Semiconductor" text in the "compatible" field value, and spaces are not allowed, so the build process fails.  It seems like your lesson text should explain that lower case with no spaces is the norm here since it fills in the "compatible" manufacturer string.  "nordic" seems to be what you would want.

/ {
	model = "Custom Board auto generated by nRF Connect for VS Code";
	compatible = "Nordic Semiconductor,custom-board-name";

	chosen {
		zephyr,sram = &sram0;
		zephyr,flash = &flash0;
		zephyr,code-partition = &slot0_partition;
	};
};

With these changes I was able to get the build to run further, but then it ran into other problems that might suggest that the course materials are out of date:

- Warning about GPIO_AS_PINRESET (which the lesson step 5 says to put in the file) which is now deprecated.  I found the DevZone says from over a year ago says not to use that in custom board files!   Use RESET pin as GPIO - nRF52840 

- Warning about the UART_CONSOLE (which the lesson says to put in the defconfig file) being overridden as 'n' because SERIAL_HAS_DRIVER is 'n'

- CMake error 

CMake Error at /opt/nordic/ncs/v2.6.1/zephyr/boards/common/openocd-nrf5.board.cmake:13 (message):
  Can't match nrf5 subfamily from BOARD name.  To fix, set CMake variable
  OPENOCD_NRF5_SUBFAMILY.

I'm using the SDK v2.6.1.  I'm surprised to have so many problems following the exercise exactly and even copying and pasting the file edits to make sure they matched the exercise text.  It might be good to check this course and make sure it is up to date.

Related