Using the NXP FRDM-RW612 with Golioth

We decided to give NXP’s new FRDM-RW612 development board and try and found it was dead simple to get it up and running with Golioth!

The FRDM-RW612 boasts a tri-radio, for WiFi, Bluetooth Low Energy, and 802.15.4 (Thread), but we haven’t had a change to test-drive those options yet. Instead, it was the built-in Ethernet that we used for connectivity. (Keep your eyes on the block for new posts putting the radios to the test.)

Zephyr Conf Files

Adding a Kconfig file for this board, and ensuring we’re using Zephyr v4.1 is all that it took to get this model to connect to Golioth.

While a new release of the Golioth Firmware SDK based on Zephyr v4.1.0 is just around the corner, I was able unlock my own unofficial support by building a repository based on Zephyr 4.1, and adding Golioth as a module. The approach for this is shown in the Golioth Zephyr README.

From there, add a boards/frdm_rw612.conf file to any of the Golioth sample applications with the following configuration:

CONFIG_GOLIOTH_SAMPLE_DHCP_BIND=y
CONFIG_NET_DHCPV4=y
CONFIG_BUILD_OUTPUT_HEX=y

Building and Flashing

Run the Zephyr build as usual. In this case I’ve specified that runtime credentials (PSK-ID/PSK) should be used for authenticating with Golioth.

cd modules/lib/golioth
west build -p -b frdm_rw612 examples/zephyr/hello/ -- -DEXTRA_CONF_FILE=../common/runtime_settings.conf
west flash

Note that although this board is using a USB-C connector, I found that it would not enumerate correctly in one of the orientations. If you do not see a J-Link device mounted on your system, try flipping the USB connector over and inserting it the other ways.

Now that the firmware is running, the board will connect to your network (assuming you’ve remembered to connect the Ethernet cable). However, we need to provision the Golioth credentials onto the device for it to connect to the Golioth cloud.

Head over to the Golioth console and choose the project you’d like this device to connect to. Select Devices from the left sidebar and the Create button in the upper right.

Summary screen showing newly created device details.

The confirmation screen will show your automatically-generated PSK ID and PSK credentials. Use these inside of your favorite terminal program to provision the device:

settings set golioth/psk-id 20250414181107-my-frdm-rw612@developer-training
settings set golioth/psk 271cb8228ec1b54334a0ebe2a7ec069c
kernel reboot

The device will restart (although running kernel reboot is not strictly necessary), connect to your LAN, and subsequently connect to Golioth!

[00:02:08.481,359] <inf> phy_mc_ksz8081: PHY 2 is up
[00:02:08.481,411] <inf> phy_mc_ksz8081: PHY (2) Link speed 100 Mb, full duplex

[00:02:08.483,296] <inf> eth_nxp_enet_mac: Link is up
*** Booting Zephyr OS build v4.1.0 ***
*** Golioth Firmware SDK v0.17.0-34-g6c1b87827242 ***
[00:02:08.484,509] <inf> golioth_settings_autoload: Initializing settings subsystem
[00:02:08.485,934] <inf> fs_nvs: 8 Sectors of 4096 bytes
[00:02:08.485,956] <inf> fs_nvs: alloc wra: 0, f30
[00:02:08.485,959] <inf> fs_nvs: data wra: 0, 254
[00:02:08.486,009] <inf> golioth_settings_autoload: Loading settings
[00:02:08.486,203] <dbg> hello_zephyr: main: start hello sample
[00:02:08.486,219] <inf> golioth_samples: Starting DHCP to obtain IP address
[00:02:08.486,294] <inf> golioth_samples: Waiting to obtain IP address
[00:02:14.504,941] <inf> net_dhcpv4: Received: 192.168.1.152
[00:02:14.505,345] <inf> golioth_mbox: Mbox created, bufsize: 1232, num_items: 10, item_size: 112
[00:02:14.785,831] <inf> golioth_coap_client_zephyr: Golioth CoAP client connected
[00:02:14.785,917] <inf> hello_zephyr: Sending hello! 0
[00:02:14.785,992] <inf> hello_zephyr: Golioth client connected
[00:02:14.786,140] <inf> golioth_coap_client_zephyr: Entering CoAP I/O loop
[00:02:19.785,984] <inf> hello_zephyr: Sending hello! 1

Golioth device summary page showing the device connected 2 minutes ago

From Zero to Fleet-Worthy

Golioth’s mission is to make IoT fleets simple to build and manage. Our cross-platform support means that in most cases, Golioth is just ready to use with your project. In this case, the Zephyr support for the new line of NXP chips means that the Golioth cloud is already compatible.

Give us a try, Golioth is free for individuals so you can have your first boards connecting today with no more than a free Golioth account and a bit of configuration!

Mike Szczys
Mike Szczys
Mike is a Firmware Engineer at Golioth. His deep love of microcontrollers began in the early 2000s, growing from the desire to make more of the BEAM robotics he was building. During his 12 years at Hackaday (eight of them as Editor in Chief), he had a front-row seat for the growth of the industry, and was active in developing a number of custom electronic conference badges. When he's not reading data sheets he's busy as an orchestra musician in Madison, Wisconsin.

Post Comments

No comments yet! Start the discussion at forum.golioth.io

More from this author

Related posts

spot_img

Latest posts

New Pipelines Data Destination: LightDB State

A new Pipelines data destination for LightDB State is now generally available for Golioth users and will enable a range of new bidirectional interactions with 3rd party services.

How to Query LightDB Stream Data the Right Way (POST vs GET)

Golioth's REST API is a power way to query data that has been sent to the cloud. Marko explains how he approaches the tradeoffs of POST vs GET calls to the API and how it impacts the resulting data.

How to Sniff Cellular Packets with a Nordic nRF91

Sniffing network packets from a cellular modem is actually pretty easy. It only seems daunting because at first glance you're left wondering how to acquire the packets. Nordic's nRF91 modems have a trace capability that can be used to pipe packets from the device into Wireshark over a USB connection. Here's how to use it.

Want to stay up to date with the latest news?

Subscribe to our newsletter and get updates every 2 weeks. Follow the latest blogs and industry trends.