🧠 Step Up from Arduino IDE: Embrace the Future with nRF SDK and VSCode!

Hi there,

Makers and beginners if you’ve plateaued in Software Development for these Xiao’s
I have been learning the nRF SDK using Visual Studio Code (VSCode) and it is a significant advancement for even beginner developers who feel limited by the Arduino IDE. check it out!

While the Arduino IDE is excellent for beginners and quick prototyping, VSCode, coupled with the nRF SDK, unlocks the full potential of the nRF52840 MCU. This transition provides access to a broader range of BLE features, such as Coded PHY for extended range BLE communication and Google’s Find My Device service. Moreover, Nordic Semiconductor is continually expanding their portfolio, adding support for WiFi and Low Power Cellular, which the SDK fully leverages. This means you can stay ahead in the rapidly evolving field of IoT and wireless communication.

The best part I’ve found is that Nordic Semiconductor offers a comprehensive, free training course through a series of YouTube videos. These guided videos are an excellent resource, requiring only an investment of around 10 hours of your time to get started.(took me probably an hour all in) installed and testing the DK board with a blink_pwm flash downloaded to the DK boards LED (1 of 4) ON! and breathing. Also For approximately $50, you can purchase the nRF52840 Development Kit (DK),


which includes a built-in J-Link debugger capable of programming external targets.That alone is very nice (not an edu version either) This powerful piece of technology is further enhanced if you already own the Power Profiler Kit 2 (PPK2). also works with the NRF_for_Desktops programmer tool too!
With abundant, and constantly updated documentation, learning and developing with the nRF SDK using VSCode is a free yet immensely valuable step up. The combination of advanced tools, extensive features, and high-quality support makes this transition a no-brainer for developers looking to elevate their skills.

With the addition of the nRF7002 WiFi module to your nRF52840 DK board, you’re well-equipped for WiFi applications.

UNO hat compatible pinouts
Seeed potentially creating a BLE/WiFi with IMU Sense type Xiao, would be incredibly versatile, combining the strengths of BLE, WiFi, and IMU sensing capabilities in a compact form factor.

And the debugging works, too—LOL! :smiley:

to
(you go from 3 pieces to 1 board.)
With the built-in J-Link debugger on the nRF52840 Development Kit, you can seamlessly debug your projects right from Visual Studio Code. This feature allows you to set breakpoints, step through your code, and inspect variables, making the development process much smoother and more efficient.

By moving to the nRF SDK and VSCode, you gain access to professional-grade platform for other stuff too, like Marlin builds, for 3d printers and PLatformIO but it’s the debugging tools that significantly enhance your ability to troubleshoot and optimize your projects.
It’s a game-changer, offering a level of insight and control that goes beyond what the Arduino IDE provides. So, dive in and experience the power of effective debugging alongside the comprehensive capabilities of the nRF52840 and its advanced features!
Nordic Semiconductor’s plan to integrate WiFi across their entire line, including the new nRF34 and nRF54 series, alongside low-power cellular, is indeed a game-changer. This comprehensive connectivity solution will enable seamless end-to-end IoT integration, providing robust and flexible options for developers. As these technologies converge, the potential for innovative IoT applications will expand significantly, offering improved performance, energy efficiency, and broader connectivity options. It’s a great time to be involved in IoT development!


with some ingenuity, jumpers and a good socket you can use it on the whole Xiao family.

More as it develops, I’m past the first two quizzes and pressing on! :stuck_out_tongue:
GL :slight_smile: PJ
:v:

2 Likes

comes with a NFC antenna for adding to the whole NFC Tag Game.!
You can add a Cellular board to it also. (more on that way later) :heart_eyes:

Please don’t forget to mention that the nRF SDK is based on Zephyr, which relies on a completely different architecture, the device-trees, inspired by Linux.

The GPIOs and ports are defined by the device-tree, separated from the code. The idea is to ease portability, as a different board would only require a different device-tree.

Despite the excellent free MOOCs provided by Nordic, the learning curve is steep and some tools are still missing, for example, for debugging the device-tree.

Luckily, Nordic is well aware of this situation. As a Nordic representative put it, « Zephyr makes complicated projects simple, and makes simple projects complicated. »

Hi there,
Hmmm, maybe I slightly agree for some it is a stretch but if you have been writing code and working with different MCU’s it is totally within the wheelhouse and I’ll submit these points for anyone serious about moving ahead of the mundane and not lazy to learn. (not you ofcourse, your contributions are many I see that from the quality of the contributions you’ve made here and I appreciate it and your engagement) :stuck_out_tongue_winking_eye: :heart_hands:

  1. Enhanced Portability and Scalability:
  • Device-Tree Abstraction: The use of device-trees in Zephyr allows for a clean separation of hardware configuration from application logic. This abstraction means that switching to a different board or MCU is much simpler, as it often involves just updating the device-tree instead of rewriting significant portions of the code.
  • Future-Proofing: As Nordic Semiconductor plans to expand their product line with new capabilities like WiFi and low-power cellular, the device-tree approach ensures that your codebase remains adaptable and scalable to future hardware advancements.
  1. Robust Ecosystem and Community Support:
  • Thriving Community: Zephyr is an open-source RTOS with a large and active community. This means extensive resources, community-driven support, and continuous improvements. Nordic’s active involvement ensures that the SDK is tailored for their hardware while benefiting from the broader Zephyr ecosystem.
  • Comprehensive Documentation: Zephyr’s documentation, coupled with Nordic’s detailed guides and resources, provides a solid foundation for learning and troubleshooting. The availability of free MOOCs and guided tutorials helps mitigate the learning curve.
  1. Advanced Features and Professional Tools:
  • Powerful Debugging Capabilities: While there are concerns about debugging the device-tree, the overall debugging tools in the nRF SDK are powerful and professional-grade, especially when used with Visual Studio Code and the built-in J-Link debugger on the nRF52840 DK.
  • Rich Feature Set: Zephyr supports a wide range of advanced features, including multi-threading, power management, and security, which are essential for building sophisticated IoT applications.
  1. Nordic’s Commitment and Continuous Improvement:
  • Active Development: Nordic is fully aware of the challenges and is committed to improving the development experience. Their continuous updates and improvements to the SDK demonstrate their dedication to making the transition as smooth as possible.
  • Real-World Applications: The assertion that “Zephyr makes complicated projects simple and simple projects complicated” although I have never heard anyone say that and feel it’s a ridiculous conflicting statement to me it only reflects the reality that Zephyr is designed for complex, real-world applications not just blinking light on a model. For developers aiming to build robust, scalable IoT solutions, the initial learning curve is a worthwhile investment for the long-term benefits.
  1. Real-World Success Stories:
  • Industry Adoption: Many industry leaders have adopted Zephyr for their projects, showcasing its reliability and effectiveness in production environments. These success stories can provide reassurance and motivation for developers considering the switch.
    The initial challenges are far outweigh and emphasizes the significant long-term benefits of switching to the nRF SDK and Zephyr.
    What tools are you saying that are missing? that you need? With all of the great integration of PPK and WiFi, Low power Cellular it’s a NO-brainer. Have you built anything with it that’s not a single thread application? reading data and flashing some Led’s? just curious to know. I have dabbled in it in the past but was too busy with patent work to go ALL IN. ESP_IDF is way worse IMO and Arduino comes up short. and for someone who’s best friend was assembly language this stuff is a dream LOL :smile: :+1:
    YMMV

There forum is Robust with help and solutions, they are not distracted by the new shiny thing (AI in the maker space) I don’t need an AI based shoe-horn to get my shoes on in the morning! and Nordic isn’t cranking out bits and Bob’s without thorough Documentation and very helpful resources.

thanks for the good points & discussion, it makes this place better for sure.

GL :slight_smile: PJ
:v:

My rep is pointing me to this

wow, pretty impressive even with the Nrf52840 silicon. imagine with the Nrf54 Series X100 in performance and 2/3 less power requirements.

The main reason we selected Nordic’s nRF52840 for Kallisto¼ is the extremely power efficient implementation, but also the available Bluetooth front end, as well as the Zephyr RTOS support, the very well designed Bluetooth driver, the many available examples, and the excellent software support,” Behrens says.
The module also integrates sophisticated power management through the Nordic nPM1100 dedicated power management IC (PMIC). This allows the multi-sensor to be powered by USB or a connected battery, which can be charged by USB as well or via wireless charging (Qi) as well.

“We selected the Nordic nPM1100 PMIC due to its high integration with the battery charger and all required DC/DC converters,” he adds. “In addition, we have been able to rely on the excellent design-in support, the Nordic DevZone forum, and the availability of direct, competent discussion partners at Nordic.”

Pretty strong IMO. :muscle: :grinning:

Hi there,
A Quick video to show what the desktop environment looks like for Nrf_SDK and the Nrf52840DK development board, No Racoons were harmed in the making of this video
 LOL The Beagles are on guard watching for Cat food poaching Racoon that’s been visiting the last two nights. (b-roll) @ the End

Best view is full Screen


HTH
GL :slight_smile: PJ :v:

1 Like

Hi there,
This is possible,
Using the Jlink in the nRF52840DK development board to Flash a Xiao via the SWD interface and NRF_SDK or The NRF for Desktop Programmer, So for 46 bucs you get it ALL.
and yes you can use it with arduino.



:+1:
the rev 2 part is the Xiao BlE Sense
The rev 3 part is the Nrf52840 chip on the DK board.

HTH
GL :slight_smile: PJ
:v:

Hi there,
Here is an Update video, using the JLink that’s included(built-IN) to the Nordic Nrf52840DK it is a real development board/platform for the Nordic Nrf52840 MCU and can be used for debugging and flash reading and troubleshooting. Also picture is the connection to the Xiao Expansion board and the SWD interface for Serial Wire Debugger like the Jlink. Compared to the actual $700 Jlink-II (Was a Gift) it does all of it plus more can be updated by Drag&Drop file onto JLink Flash Drive. Also is a plug for the Product of the century for them IMO.
$9 BLE Dongle, If you even think about BLE and some of the great things you can do with it. Truly is the Best $9 dollars one can spend these days LOL :+1:

HTH
GL :slight_smile: PJ :v:
Phone app for the NBS is on there at the end. :+1:

Notice , No soft device or Bootloader on this Blinky example written to a Xiao Nrdf52840 BLE


Add in a Read of the Xiao with the Jlink on the DK board.


Shows the MBR first(orange) then the softdevice (blue ver 1.40) then the rest is marked as Application(green).
:v:

notice the lack of a softdevice on the DK version of the same code. less space too.

Check out the FREE video’s for getting started by number 3 you’ll get it and want more.
Well documented , Well supported, Better silicon Period. Now an SDK that is working and getting updated and improved almost quarterly. No one is doing that, SES, ESP-IDF-Arduino-IDE, ST
 none.
nordic stuff is free now. (debugging built in)
HTH :v:

2 Likes

Hi there,
So, As an Arduino IDE user you may be overwhelmed by the differences NCS presents and what’s needed to understand this more professional way of Code development, Nordic has you covered and so does Element14 here is a great (article)take on it and if you ingest it like its good for you it makes perfect sense.

The Newest prototyping platform available from Nordic Semi is the thingy53 This thing is packed with stuff, and NOT on the spendy side at $60 bucs plus a $10 for the WiFi 6 is the end of the day. Most Dev hardware budgets for makers are minimal R&D funds. This thing is perfect, NO hardware to put together and gather up, NO wiring or soldering is required, all the sensors and interfaces are reference designs and brings proof of concept to SOFTWARE development focus and that makes
 making , fun and Fast!

It takes a few reads to grasp it , but if your in the middle part of learning the NCS (NRF_Connect_SDK)
standard toolchain is 2.6.1 with experimental version at 2.7.1 (any new features and hardware tests)

I’ll bring more as it grows. The difference between Hardware Development (DK_Boards) and this type of prototyping platforms.
Stay tuned.
GL :slight_smile: PJ :v:

I hit up my local rep to see about getting hands on one of these, so keep watching. :+1:

“We have more engineers working on the software development than we do on the Hardware. Even though we are a hardware company” :mega: ENOUGH SAID! :face_with_peeking_eye: Finn Boetius from Nordic Semiconductor, HERE

Boi , another company would really do well adopting this approach
 Just saying. :star_struck:

As you were,
GL :slight_smile: PJ :v:

Hi there,
So 
 Great news the first moves for FMD for the nRF52840 is now added to the newest SDK 2.7.1
the basics are , there is testing keys available, You only need to register your device if you plan on making a finished product. it is similar to signing up to Google MAPS API.
When I have more on the Coded PHY and the other supported features of FMD and as it comes out, STay tuned.

GL :slight_smile: PJ :v:

Heya GL :slightly_smiling_face: PJ

I came across this thread, looking for something else (I can’t even remember what I was looking for now!) and thought, that looks like a useful project :grinning:

So off I headed and picked up a nice shiny nRF54L15 DK board (from Mouser - free shipping), registered for Nordic’s nRF DevAcademy Fundamentals course and off I go, novice hat in hand. What a great free resource (DevAcademy)! I’ve now (only) just got through Exercise 2.

The reason I am only through to the end of Exercise 2, is I chased my tail for a number of hours with flashing the code to the hardware (in VSCode - nRF Connect for Desktop was easy!), at the end of Exercise2. After spending far too much time with Mr Google and the Nordic DevZone search engine, I finally worked out that I had to load nrfutil.exe (not relevant - but I’m using a VirtualBox Win10 VM on a Win11 Host) via cmd (I used CURB to do this) and then run the nrfutil sub-program: ‘Device’. The reason I bring this up is - did I miss something obvious? The fundamentals course is incredibly detailed, yet it mentioned the need for nrfutil only in passing, at the volume of a whisper and with a lisp! Is this just somehow known by everybody?

One other question - did you sign up for DevZone? If so, how long did it take for Nordic to approve your application? I received two rapid-fire emails back with a login and temp password, but using these just sent back a boilerplate: “Your account is not yet approved.” Its been nearly a week now since I signed up.

Apart from these two grumbles, what a great resource. Also, again as you’ve already pointed out, what a bargain to have a nRF54 board with a J-Link debugger chip (admittedly the EM version - but still blinkin handy) for the price of a meal for the family at McD’s :grin:

2 Likes

Hi there,

Wow, bold strategy :stuck_out_tongue_winking_eye: Going virtual right out the box. Nice

I’m working on MCUboot and DFU with APP . the dev course does that throws you down a hole for a bit until you kinda re-read and figure it out yourself. Like anything worth learning This stuff gives you super power with your code knowledge as you break and fix stuff, over and Over
LOL :+1:
the advantages are these:
The nRF Connect SDK has the following distinguishing features:

Based on Zephyr and open source

The nRF Connect SDK integrates the Zephyrℱ real-time operating system (RTOS) and is compatible with most of Zephyr’s applications and samples. Just like Zephyr, the nRF Connect SDK is open source and based on proven open-source projects.

Middleware and security

The nRF Connect SDK includes middleware from Zephyr, such as MQTT or Trusted Firmware-M for security. In addition to that, the nRF Connect SDK adds extra libraries and drivers, such as CoAP, LwM2M, a secure bootloader (MCUboot), Mbed TLS, nRF 802.15.4 Radio Driver, nRF Security, nRF Profiler, nRF Remote procedure call libraries, and many more.

Pre-certified libraries

The nRF Connect SDK provides pre-certified, optimized libraries, including for SoftDevice, Matter, and Thread.

Robust connectivity support

The nRF Connect SDK supports a wide range of connectivity technologies. In addition to connectivity technologies provided by Zephyr, such as BluetoothÂź Low Energy, IPv6, TCP/IP, UDP, LoRa and LoRaWAN, the nRF Connect SDK supports ANT, Bluetooth Mesh, Apple Find My, LTE-M/NB-IoT/GPS, DECT NR+, Matter, Amazon Sidewalk, Thread, and Wi-FiÂź, among others.

Remote observability

The nRF Connect SDK provides remote observability support to maintain optimal device performance and reliability in ever-changing device ecosystems after devices are deployed. Once devices are in the field, you can implement device reliability best practices such as remote debug, monitoring, and FOTA support.

Scalable and extensible

The nRF Connect SDK is out-of-tree ready and can be used for projects and applications of all sizes and levels of complexity.

Third-party integrations

The nRF Connect SDK provides integrations with third-party and Nordic products within the SDK, such as AWS, nRF Cloud, Memfault (Remote Observability) and more.

Varied reference designs

The nRF Connect SDK comes with advanced hardware reference designs for different use cases, ranging from nRF Desktop for Human Interface Devices to nRF5340 Audio for audio devices based on Bluetooth LE Audio specifications.

None of the other MCU competitors offer this level of openness, FREEness, and completeness
 PERIOD!

The Silicon is superior, the power is the LOWEST in the industry. The radio has NO competitor. The support is WORLD class, the longest track record of BL & BLE devices (c’mon the standard was named after a VIKING so) the quality is unsurpassed. The List is growing of OEM’s using the Nordic part for there underlying foundation for MCU.
many of the world’s best-known module manufacturers offer modules/modems based on Nordic technology.
These modules/modems are available with the necessary external circuitry and are either partly or fully qualified (with/without integrated antenna) towards relevant wireless standards.

If you are just getting started then, you picked a good time to Master the Craft!

HTH

GL :slight_smile: PJ :v:

Use the Tools
 :hammer_and_wrench:

Awesome thread, PJ, and great videos! How couldn’t I find it before? It just summarizes all of our discussions in another thread as well as answers some of my questions I had.
I have moved from Arduino IDE to PlatformIO as soon as I had around 10 h/cpp files and was super happy with it. However, then with your help, PJ, I’ve realized you definitely need to go off Arduino framework if you want all the features working flawlessly in your device. The NCS extension for VS is awesome: terminals, etc. are way better than in PIO, in my opinion. DeviceTree is a special nice feature for me. It takes time to understand it, but it provides such a layer of encapsulation: like you just provide a button overlay for XIAO and the “native” nordic Button\Led service starts working out of the box for you. So far I am very happy with the switch.
One downside: I’ve started the Intermediate course and I see, that many of the exercises are not yet ported to the latest 2.9 SDK. So, after the fundamentals I’ve switched right away to the BLE course.

Several questions, though:

In the NRF Desktop, when you observe the XIAO board there’s a Soft Device. However, for DK there isn’t. Let’s say one starts the BLE course and the course is built upon the Soft Device: does it mean one should re-flash the bootloader for one which contains SoftDevice in it, or will the SDK do this automatically? Namely: clicking FLASH in the SDK is only affecting the application or the bootloader as well?

Other question, and I hate myself for asking it again: any experience with the nrf54L15 DK? Is it missing anything that nrf52 DK has? Like I see it has 1 USB port, while another has 2, but does it matter? I see it is cheaper than nrf52840 DK, and the nrf54 chip is itself cheaper, than nrf52, and moreover, the modules, let’s say, Raytac ones, based on nrf54 are cheaper that the ones based on nrf52. And on top you have a 20% less power consumption on nrf54. Unless there are some hidden issues, the nrf54 looks like a no-brainer to switch to. The only thing missing is the dev boards built with this chip. Is it for a reason? Though, I see there will be a Feather one soon. However, if one targets a custom board, why should one bother?
Why am I asking? I can’t just justify the purchase of 52 DK over 54 DK :smiley:

Ah, one more. On the community:
Unfortunately, I can’t say the NCS community is big. If you have any issue you google it and the first result (and the most relevant one) is the Dev Zone forum, where usually an engineer or a company representative has a specific problem. So, I can’t say, that they have lots of topics on all the possible problems, like Arduino community has. However, I believe there’s a prerequisite: if you deals with NCS you are at least at some level of engineering confidence, to investigate the issue yourself with minimum external knowledge/help.