Posts | Comments

Planet Arduino

Archive for the ‘arm Mbed OS’ Category

It was back in January that we first introduced you to the Arduino Nano RP2040 Connect. The first Arduino board to include Raspberry Pi silicon. It’s been a roller coaster ride getting it to you, and enthusiasm during the wait has been incredibly encouraging. The wait, you’ll be glad to hear, is over.

The Arduino Nano RP2040 Connect mountain climbing

The RP2040 Processor

Working with the Raspberry Pi Foundation is nothing short of a pleasure. The teams there make some incredible devices, and their first in-house silicon is no exception. These guys get it.

This system-on-a-chip is a 32-bit dual-core ARM Cortex-M0+ microcontroller, clocked at 133MHz and is powerful enough to run TensorFlow Lite. It’s young, but proving to be incredibly popular with makers, as well as electronics manufacturers. It’s going to be incredibly exciting to see how the Arduino community reacts to it. We can only imagine what you guys can achieve with the extra features of the Nano RP2040 Connect board.

Welcome the Arduino Nano RP2040 Connect

So it was an easy choice for Arduino to put an RP2040 at the core of a new board. We felt so strongly about the excellence of this new chip that we knew it deserved a powerful, premium Nano board that is unrivalled in terms of features.

First and foremost is the inclusion of the u-blox NINA-W102 WiFi and Bluetooth radio module. Nano users are probably quite familiar with this excellent module already.

Coupled with a six-axis machine learning-capable IMU motion sensor, on-board microphone for sound and voice activation, an RGB LED and loads of multi-function GPIO pins, this is the project maker’s dream come true. And all on such a tiny board.

Nano RP2040 Connect in the Cloud

Just like everything Arduino, the hardware of the Nano RP2040 Connect is only half the story.

Right off the bat this device is fully compatible with the Arduino Cloud. It landed at just the right moment, as Arduino Cloud plans were given an overhaul. These offer a lot more on the free tier, while bringing in a new Entry Plan that really unlocks the power of the cloud.

Nano RP2040 Connect to Arduino Cloud

Because the Nano RP2040 Connect is a connected device, this opens up all kinds of possibilities. Not least of all over-the-air updates and programming. This alone can make a Cloud accompaniment to the board worthwhile. It gives you full, incredibly easy access to the hardware. This is true even after it’s been deployed, installed or buried in the guts of a project. If it’s got a WiFi signal, you can do everything as if it was plugged in by USB. Furthermore, it has the added bonus of smartphone control through the Arduino IoT Remote app.

The Cloud even makes it super easy for your Nano RP2040 Connect to communicate wirelessly with other boards. Any devices connected to your Arduino Cloud can communicate, and we’re not just talking about official Arduino boards.

So Much Software

A couple of weeks ago we updated the official Arduino Mbed Core to provide native RP2040 support.

The plug-and-play nature of the Arduino Core means you can use existing sketches you made for, say, a Nano 33 BLE Sense on your brand new Nano RP2040 Connect. So you can have this little workhorse up and running within minutes, if you’ve already been working on some project sketches. Plus, it’s compatible with the entire RP2040 software ecosystem, so if this is an upgrade for an existing RP2040 board, you’re good to go.

If you’re just getting started on sketches for the device, it offers full support for MicroPython. There’s even a free OpenMV license bundled in, for any machine vision projects you might have planned.

Arduino Nano RP2040 Connect

Go Get Your Arduino Nano RP2040 Connect

Yes, there’s a limited supply at launch. We built as many as possible for the first run. But a lot have been sent out to our reseller partners. So head on over to the store right now if you want to be one of the first to get this premium RP2040 board.

If you want to stay up to date on all things Arduino Nano RP2040 Connect, make sure you’re signed up to our email list. From there we’ll keep you advised on restocking, new updates, special offers and everything else to do with this tiny, but mighty, board.

The post The Arduino Nano RP2040 Connect is here appeared first on Arduino Blog.

Arduino support for the Raspberry Pi RP2040 chip is available now using the official Arduino Mbed Core. This is obviously very important, and exciting, for the upcoming Arduino Nano RP2040 Connect. But it goes beyond the Arduino device to also bring support to other boards built around the RP2040 chip.

Arduino Core and Mbed OS

Arduino is no stranger to Mbed OS. It’s a hugely important platform and operating system in the IoT space. This is due toits support for Cortex-M microcontrollers and its real-time operating system capabilities. So a lot of work was done when Mbed OS was adopted for the Nano 33 BLE and Nano 33 BLE Sense devices. Since all Mbed infrastructure and drivers were in place, we could easily support all new Arduino boards with minimal effort. Including new ones like the Portenta H7 and Nano RP2040 Connect.

Arduino Mbed Core for RP2040

This makes the Arduino Core plug-and-play, and an easy choice for getting your devices up and running quickly. We provide two cores; one for our Nano RP2040 Connect board, and one for other RP2040-based boards, including the Raspberry Pi Pico. As the core is based on Mbed OS you can choose between using the Arduino’s API or Mbed’s.

If you’d like to support any other RP2040 board with its custom features you can do so. It requires very little effort by cloning and tweaking the Arduino Mbed Core.

Ready for the Nano RP2040 Connect

All Arduino APIs are standardized, which means they can be used on all boards. If you have a sketch for your Nano 33 BLE, you can now upload it to a Nano RP2040 Connect and run it without making any changes.

In effect this means you can create sketches for the new Arduino board, even if you don’t have your hands on it yet. It also makes project upgrades very easy. Nor does the Arduino Core require a custom bootloader for RP2040 devices, as it uses the ROM-based bootloader from Raspberry Pi.

Check out the Arduino Core Mbed right here. And sign up to our Nano RP2040 Connect contact list for more news as it happens.

The post Arduino Mbed Core for RP2040 Boards appeared first on Arduino Blog.

This post is from Martino Facchin, who is in charge of the firmware development team at Arduino. Hopefully this is the first of a series of posts describing the inner workings of what we do.

The new, shiny and tiny Nano 33 BLE and Nano 33 BLE Sense are on their way to becoming a serious threat to any hacker’s summer vacation. (I’d recommend spending a couple of days at the lake or beach anyway despite the board’s awesomeness!)

Quoting Sir Isaac Newton (who walked the same streets of Cambridge, UK that the Arm engineers use to get to work everyday), starting from scratch is not always a clever idea. Tens of thousands of man-hours have been spent since the beginning of computer science to reinvent the wheel, sometimes with great results, other times just bringing more fragmentation and confusion.

Since we didn’t have an official Arduino core for the Nordic nRF52840 Cortex-M4 microcontroller, which the Nano 33 BLE and Nano BLE Sense are based upon, we took a look at the various alternatives:

  • Using Nordic softdevice infrastructure
  • Writing a core from scratch
  • Using Mbed OS as a foundation

Option one looks juicy but clashes with a cornerstone of Arduino: open-source software. In fact, softdevice’s closed source approach limits the user’s freedom.

Option two would take a lot of burden on our shoulders for a single board, making the core not very reusable.

So, we went to option three: basing the core on Mbed OS foundation, sharing its drivers and libraries.

As many of you may know, Mbed is a fully preemptive RTOS (real-time operating system), meaning you can run multiple “programs” (more specifically, threads) at the same time, much like what happens in your notebook or smartphone. At Arduino, we have been looking for an RTOS to use on our more advanced boards for a long time but we never found something we liked until we started working with the Mbed OS. Programming an RTOS is usually quite complicated (every university grade course on operating systems will be full of frightening terms like ‘mutex’ and ‘starvation’), but you don’t have to worry if you just want to use it as an Arduino; setup() and loop() are in their usual place, and nobody will mess with your program while it’s running.

But if you want to do MORE, all Mbed infrastructure is there, hidden under the mbed:: namespace. As a side effect of reusing its drivers, we can now support every Mbed board in Arduino with minimal to no effort. Plus, the structure of the core allows any Mbed developer to use Arduino functions and libraries, simply by prepending arduino:: before the actual function call.

Mbed also supports tickless mode; in this way, every time you write delay() in your code, the board will try to go in low power modes, knowing exactly when to wake up for the next scheduled event (or any external interrupt). We are able to achieve an impressive 4.5uA of lower consumption while running a plain old Blink on the Nano 33 BLE (a minimal hardware modification is needed to obtain this value but another blog post is coming). As for Bluetooth support, you can start creating your BLE devices today using the wonderful https://github.com/arduino-libraries/ArduinoBLE but we support plain Cordio APIs as well, in case you need features not yet available in Arduino BLE.

And of course, it’s all open-source! 

If you just want to make awesome projects with its plethora of onboard sensors, fire up your Arduino IDE, open the board manager and search for Nano 33 BLE; one click and you are ready to go! 

If you want to hack the core, add another Mbed board or merely take a look, your next entry point is the GitHub repo. Don’t be shy if you find a bug or have a suggestion; we love our community, and will try to be as responsive as possible. 



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook