The NUCLEO-L476RG is a development board from STMicroelectronics based on the STM32L476RG MCU, and features Arduino Uno V3 connectivity support and ST morpho headers that easily enables the board to be used in collaboration with a wide variety of shields and other add-on boards to expand its functionality. This notably includes the X-NUCLEO-IKS01A3 environmental shield, that comes complete with sensors for temperature, pressure, acceleration, magnetic forces, and motion.

The NUCLEO-L476RG doesn’t include connectivity on its own, so with use in Atmosphere you can either print its data into a debug console, or give it BLE connectivity by connecting it to the X-NUCLEO-IDB05A1 Bluetooth Low Energy expansion board, which features the SPBTLE-RF BlueNRG-MS RF module. Atmosphere supports this module through a corresponding BlueNRG element located in Atmosphere Studio’s Element Library.

Project Specifics

There are no imported sensors or specialized elements or tools native to NUCLEO-L476RG projects.

Hardware Specifics

Some devices may have limitations or design restrictions that cause unexpected behavior when used with Atmosphere. Specific information and details pertaining to the NUCLEO-L476RG and its performance on Atmosphere is noted below.

Code Export

Code exported from the Atmosphere Studio will be in the format of an STM32 Workbench project. If you are importing the code into STM32Cube IDE, then select “Import STM32 Workbench Project” from the import options dialog.

ST Driver Requirements

When you plug a NUCLEO-L476RG into your computer via USB, the device should mount itself as a USB mass storage device. Most computers and operating systems come with the necessary drivers to display this device. However if you experience the device not appearing while plugged in, you likely need to install drivers to enable this. This behavior has been noticed on Windows and Linux operating systems.

To access and download drivers for ST development boards, see the STM32 Utilities page on the ST website.

Default Pin Mapping

Atmosphere configures each peripheral to a default pin for every supported device, based on ideal pairing of pins and their usage. The default pin configuration is set for convenience and enables each peripheral to work naturally without needing to be modified.

All pins can be accessed using the nomenclature P[PORT][PIN].

NUCLEO-L476RG projects start with the following pin configuration:

Pin Description Notes
D0 Arduino connector D0 Maps to PA3
D1 Arduino connector D1 Maps to PA2
D2 Arduino connector D2 Maps to PA10
D3 Arduino connector D3 Maps to PB3
D4 Arduino connector D4 Maps to PB5
D5 Arduino connector D5 Maps to PB4
D6 Arduino connector D6 Maps to PB10
D7 Arduino connector D7 Maps to PA8
D8 Arduino connector D8 Maps to PA9
D9 Arduino connector D9 Maps to PC7
D10 Arduino connector D10 Maps to PB6
D11 Arduino connector D11 Maps to PA7
D12 Arduino connector D12 Maps to PA6
D13 Arduino connector D13 Maps to PA5
D14 Arduino connector D14 Maps to PB9
D15 Arduino connector D15 Maps to PB8
A0 Arduino connector A0 Maps to PA0
A1 Arduino connector A1 Maps to PA1
A2 Arduino connector A2 Maps to PA4
A3 Arduino connector A3 Maps to PB0
A4 Arduino connector A4 Maps to PC1
A5 Arduino connector A5 Maps to PC0
P_LED2 LED2 Maps to PA5
P_BTN User Button Maps to PC13

The default pin for any peripheral can be changed within an element's properties, from an element that references that particular peripheral.


Below is information regarding the NUCLEO-L476RG’s exposed peripherals.


The I2C bus is exposed via the SCL(D15) and SDA(D14) pins on the Arduino header.


The SPI bus is exposed via the SCK(D3), MOSI(D11), and MISO(D12) pins on the Arduino header.


This UART is exposed via the micro-USB connector on the Nucleo board or the TX (D1) and RX (D0) pins on the Arduino header.


Pins A0, A1, A3, A4, and A5 may be used for ADC.

Pin A2 can also be used, but you’ll lose any debug print capability since this pin is multiplexed with UART Tx.


Pins D3, D4, D5, D6, D7, D8, D9, D10 and D11 can be used as PWM outputs.

Programming Method

Programming the NUCLEO-L476RG can be done by downloading its project firmware from Atmosphere Studio and directly transferring it to the device over USB.

Setup Configuration

In order to program a NUCLEO-L476RG, ensure you have the following initial setup:

  • The jumpers on CN2 should populated, connecting the ST-Link to the rest of the Nucleo board.

With the initial setup finished, complete the remaining setup configuration steps:

  • The NUCLEO-L476RG is connected to the computer via USB to an available communication port.
  • The project to be programmed has been compiled.

Programming Instructions

With setup complete, you can program the NUCLEO-L476RG:

  1. From Atmosphere Studio’s Embedded tab, click the Program Firmware button from the tab’s toolbar. This will download the .bin file.
  2. Locate the downloaded file on your computer, and move it into the ST Nucleo board’s mounted drive.
  3. After around 5 seconds of programming, the ST Nucleo board will remount itself and your project will begin running on the NUCLEO-L476RG.

If your NUCLEO-L476RG is not appearing as a mounted drive on your computer, it's possible you need to install the proper drivers from STMicroelectronics in order for the board to mount. See this page's Hardware Specifics for information on accessing and installing these drivers.

Guides and Tutorials

Get started using the NUCLEO-L476RG with Atmosphere by walking through the following guides:

NUCLEO-L476RG Guides
Getting Started with NUCLEO-L476RG

Demo Projects

Atmosphere includes a variety of NUCLEO-L476RG demo projects for users of all levels. Check them out by clicking the demo’s name to open the project in Atmosphere.

Name Description
NUCLEO-L476RG Sensor Demo A complete demo that uses the NUCLEO-L476RG alongside the X-NUCLEO-IDB05A1 BLE shield and X-NUCLEO-IKS01A3 sensor shield that reads data from all shield sensors and sends it to the cloud.
NUCLEO-L476RG Temperature Demo A basic demo that uses the NUCLEO-L476RG alongside the X-NUCLEO-IDB05A1 BLE shield and X-NUCLEO-IKS01A3 sensor shield that reads a temperature sensor and sends the data to the cloud.


The Atmosphere video library contains the following videos on the NUCLEO-L476RG:


The following additional resources and downloadable files are available for the NUCLEO-L476RG: