Thursday, December 11, 2025

How to add your own images to Imager

Are you an image vendor or a hobbyist looking to distribute your own custom Raspberry Pi OS image through Raspberry Pi Imager? If yes, then this guide is for you. In this post, we’ll take a deep, technical look at how Raspberry Pi Imager discovers and lists operating system images, and how the repository JSON format works under the hood.

With the release of Raspberry Pi Imager 2.0, a number of improvements have been made to the user interface, the imaging process, and internal configuration handling (for more details, see the Raspberry Pi Imager 2.0 announcement post). One of the more interesting changes is the updated JSON schema used to define available OS images. This update is particularly relevant to the introduction of cloud-init support in Raspberry Pi OS, including a new cc_raspberry_pi module that enables configuration features like enabling SPI automatically.

How Imager knows about images

Raspberry Pi Imager and Raspberry Pi OS are not released on the same schedule. The operating system might receive several updates before a new version of Imager is published. Releasing a new Imager build for every OS update would be inefficient — not to mention inconvenient for users.

To solve this, Raspberry Pi Imager doesn’t ship with a fixed list of operating system images. Instead, it fetches this information dynamically from a remote JSON file, known as the ‘repository JSON’. This allows us to update the list of supported devices and available operating system images separately to Imager releases. Users get the latest options automatically, without needing to reinstall or update the application.

The current version of this format — used by Imager 2.0 and beyond — is formally encoded as Repository JSON V4.

Why keep the repository separate?

Hosting the image metadata externally opens up some powerful possibilities. For example, you can maintain multiple repositories — one for official stable releases, another for nightly builds or testing images, or even a private repository for internal deployments or classroom environments.

To make this more accessible, Imager 2.0 introduces a new option in the app settings, allowing you to switch between the official repository and a custom JSON file, which can be loaded from either a local file or a URL.

When you change this setting, Imager resets the current session and reloads the interface using the contents of the selected repository JSON. This feature is intended for advanced users and maintainers — typical users will never need to change this.

For power users or automation scenarios, the classic method still exists: you can pass a custom repository using the --repo command-line option. This can point to either a URL or a local JSON file, making it ideal for scripted workflows or provisioning setups.

Understanding the repository JSON structure

A Raspberry Pi Imager repository file follows a predictable structure, and is built around four main configuration elements:

  • The latest Imager version
  • A URL where users can download updates
  • A list of supported device profiles
  • A list of available operating system entries

Here’s the basic structure:

{
  "imager": {
    "latest_version": "2.0.0",
    "url": "https://www.raspberrypi.com/software/",
    "devices": [
      /* Device objects go here */
    ]
  },
  "os_list": [
    /* OS objects go here */
  ]
}

imager.latest_version and url

The latest_version field is used by Imager to determine whether a newer version is available. When a user launches the application, it compares its own version against this field. If the repository indicates a newer version, Imager displays an update prompt and links to the URL provided in the url field.

The devices list

The devices array contains a list of supported hardware profiles. These profiles allow Imager to filter OS entries based on the selected Raspberry Pi model. For example, an image may be restricted to Raspberry Pi 5 only, or marked as compatible with all boards.

You’ll also see a special entry called ‘No filtering’. When this option is selected, all OS images are displayed without applying any device compatibility filters. This mode is often used for testing or when working with generic images. It behaves like a virtual device profile that supports every feature. That means all configuration options are available, even when no specific Raspberry Pi model is selected.

The os_list

This is where the real action happens. The os_list contains all operating system entries that Imager displays to the user. Each entry can represent a full OS, a subgroup with multiple variants, or even reference nested JSON files for modular repositories.

If you’re building your own custom repository, this is typically the only section you’ll edit. The top-level imager block — which includes device metadata and update information — is managed by Raspberry Pi and tightly integrated with how the official application works.

A JSON device object — defining hardware profiles

Before Raspberry Pi Imager can decide which operating systems to show for which device, it needs a way to understand the identity and capabilities of each Raspberry Pi model. That’s where the device object comes in.

Each entry in the devices array represents a device profile — not necessarily a single board, but often a group of compatible models. For example, there may be a single profile representing ‘Raspberry Pi 4 / 400’, rather than separate entries for every board variant.

Here’s what a device object can contain:

Key Type Description
name string Display name shown in Imager (e.g. ‘Raspberry Pi 5’)
tags string[] A list of identifiers that OS objects can reference to declare compatibility
default boolean (default: true) Only one device should have this set; Imager will auto-select it when no manual filter is applied
icon string (URL) A small PNG icon displayed next to the name in the device selection dialogue
description string Optional text listing supported models or giving extra context
matching_type "inclusive" | "exclusive" Defines how OS entries that do not declare device tags should behave:
inclusive → show them anyway
exclusive → hide them, unless explicitly tagged for this device
capabilities (new in Imager 2.0) string[] (e.g. “usb_otg“) Acts as feature flags — used to hide or enable UI options depending on whether the selected device supports them

Device capabilities are especially useful because they allow Imager to only surface configuration options that make sense. For example, the USB gadget mode toggle will only be shown if both the selected device and the selected OS list usb_otg in their capabilities. This avoids confusing users with options that won’t work on their hardware.

Objects inside os_list: categories vs. operating systems

The os_list section can contain two different types of objects, each serving a different purpose:

1. Category object

A category is a container used to organise multiple OS entries or even subcategories. It cannot be selected for download and does not contain a url or image metadata.

A category object supports only the following keys:

Key Type Description
name string The category title shown in the UI
description string Optional text shown under the name
icon string (URL) Icon displayed next to the category name
random boolean (optional) If true, randomises the order of the entries inside subitems
subitems array Contains operating system objects and/or nested category objects

Think of a category as a folder in the UI — you click it to reveal what’s inside.

2. Operating system object

An operating system object defines a selectable image. These are the entries that are installable. They do not contain random or subitems.

The supported keys for an operating system entry are:

Key Type Description
name string Display name of the OS
description string Short explanation or variant info
icon string (URL) Icon to display next to the entry
url string (URL) Direct link to the compressed image file (.img.xz, .img.zip, etc.)
extract_size int Uncompressed image size (used for UI space estimation)
extract_sha256 string SHA256 hash of the extracted image
image_download_size int Size of the compressed download
image_download_sha256 string SHA256 hash of the compressed file
release_date string (date) Displayed date for version/build identification
init_format "none" | "systemd" | "cloudinit" | "cloudinit-rpi" Declares what kind of customisation Imager can offer; cloudinit-rpi enables the Raspberry Pi–specific cc_raspberry_pi module
devices string[] A list of device tags (from device objects) that this OS supports
capabilities string[] Indicates which features this OS image supports (e.g. usb_otg or rpi_connect)

Tip: For development or internal testing, you can omit the checksum and size fields. However, for public repositories, providing them helps Imager give accurate progress information and allows for checksum validation.

Rule of thumb:

  • If it contains other items → it’s a category object
  • If it downloads something → it’s an operating system object

Capabilities — feature matching

Here’s a clearer explanation of capabilities that applies to both device and OS objects:

Value Applies to Meaning
usb_otg Device and OS Only shown if the selected device and OS both support USB gadget functionality (requires rpi-usb-gadget in the OS and OTG-capable hardware)
rpi_connect OS image only Indicates support for Raspberry Pi Connect connectivity features in the UI

Image requirements

If you want your image to offer customisation options in Raspberry Pi Imager, especially with the new cloud-init integration, there are a few technical requirements your image must meet.

Supporting cloud-init customisation

To enable cloud-init–based configuration (like setting your hostname, Wi-Fi credentials, or SSH keys during first boot), your image must:

  • Support cloud-init’s Network Config Version 2 — typically implemented through Netplan with the correct network renderer
  • Include cloud-init with support for the NoCloud data source via the bootfs partition (Imager writes configuration files into bootfs, and the OS must detect them on first boot)

cloudinit-rpi — advanced Raspberry Pi integration

If you declare init_format: "cloudinit-rpi" in your OS entry, Imager will also expose Raspberry Pi–specific options, such as enabling SPI or I2C automatically. To support this mode, your image must:

  • Have the cc_raspberry_pi cloud-init module enabled
  • Include the raspi-config-vendor package (modified for your distro), which provides integration hooks for the cloud-init module during first boot

More details, including a template setup, can be found here.

Other init modes

init_format value Imager behavior
"none" No customisation is offered to the user — simple download and flash workflow
"systemd" Enables the legacy bootfs-based firstrun.sh customisation mechanism
"cloud-init" Enables standard cloud-init (NoCloud) with generic options
"cloud-init-rpi" Enables extended, Raspberry Pi–specific options through cc_raspberry_pi

If your image does not support any customisation mechanism, use init_format: "none" to explicitly disable the customisation step in the UI.

Getting included in the official Raspberry Pi Imager repository

If you’re maintaining a high-quality image and would like it to appear alongside official images in Raspberry Pi Imager (under one of the community categories), you can submit it for review by filling out the following application form.

Our team will review your submission, verify its compatibility, and get in touch if any adjustments are needed. Once approved, your image can be distributed to thousands of Raspberry Pi Imager users worldwide through our main repository infrastructure.

The post How to add your own images to Imager appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/YZR0pCo

Labels: ,

Tuesday, December 9, 2025

A new documentation team and a new documentation process

As a company that began with a mission to empower people by making computing accessible, it’s no surprise that we view our technical documentation as an important part of our products. To that end, we are powering up our documentation team. This year, we have added two new Documentation Specialists to our staff: Jeunese Payne, who comes from a psychology and UX background, and Kat Shann (that’s me — hello!), with 15 years’ experience as a technical author with a background in software.

Jeunese and Kat

We’re looking forward to making lots of additions and improvements to our documentation. One of the first improvements we are making is to how we manage our repositories. Our documentation is open source, located on GitHub in raspberrypi/documentation, and we license it under a Creative Commons Attribution-ShareAlike licence — meaning you can take it, remix it, and translate it, as long as you give us credit for the original. Previously, we would build our documentation site directly from this repo; now we are moving our development work to a private internal repository and setting up raspberrypi/documentation to mirror it. 

Why are we making this change?

With the rapid pace of documentation updates and new product releases (we’re often working on documentation for several new products at once), maintaining multiple branches in our private repository, as well as all the rebasing and merge-conflicts that ensued, was becoming a bit unmanageable. Our new process allows us to spend more time writing quality documentation and less time wrangling with git! At the same time, our documentation gets to stay open source, and the public repository remains open for issues and pull requests from the community.

Community contributions — keep ’em coming!

We have a rich history of docs contributions from the Raspberry Pi community: almost 10% of the pull requests merged to the documentation repository in the last year came from you, not us. We want to keep those contributions flowing. Keep raising pull requests against our docs and letting us know what changes you’d like to see, including any mistakes that have slipped through the net. Our new process ensures that you’ll still get credit for your changes, whether we pull them in as a patch or use the co-author feature in GitHub.

Beyond these changes, the docs team is still growing; we’re planning to add another Documentation Specialist in the new year, preferably someone with a hardware background. If that sounds like you, check out the job listing on our website.

The post A new documentation team and a new documentation process appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/DNgPjX8

Labels: ,

Monday, December 8, 2025

Sustainable solutions: Our environmental, social, and governance metrics

Environmental, social, and governance (ESG) metrics are non-financial information used by stakeholders — particularly investors — to assess a company’s sustainability and ethical impact. They cover a firm’s interaction with the planet, its relationship with people and the community, and its corporate leadership. As a publicly listed company, transparency on these issues is critical for Raspberry Pi; investors increasingly use these data points to evaluate businesses’ long-term value, risk, and social license to operate. The absence of ESG reporting is often considered more concerning than poor metrics, as the lack of visibility makes companies seem riskier and less accountable.

Raspberry Pi’s approach to ESG metrics

While our core mission to democratise technology by providing access to tools and education has always been inherently ESG-positive, our formal reporting on ESG metrics has been somewhat lean since listing on the London Stock Exchange last year.

As a newly listed company, we were awarded the London Stock Exchange’s Green Economy Mark, which recognises that at least 50% of our revenue comes from products and services that have a positive environmental impact. To take this even further, we are improving our reporting process and committing to a more transparent approach, starting with the release of a focused number of ESG metrics in our 2025 Annual Report. 

The initial set will concentrate on areas we already report on under the TCFD (Task Force on Climate-related Financial Disclosures) and SECR (streamlined energy and carbon reporting) regulatory frameworks. This will help us to establish a baseline for the future. We can then make more comprehensive disclosures as we come to better understand how to demonstrate the work we do while adhering to our guiding principles for sustainability.

Why ESG reporting is crucial for Raspberry Pi

Formalising our ESG disclosure is vital for several reasons. Firstly, it helps our shareholders gain a clear, evidence-based understanding of the work we do, demonstrating that our commercial success is intrinsically linked to our positive environmental impact. And beyond this, providing this data to the market enables investors, analysts, and customers to quantify and assess the work already being done, whether that’s the energy efficiency of our single-board computers or our efforts to ensure that our manufacturing is as environmentally sustainable as it can be. This increased visibility will generate data that builds trust and strengthens our position in the global technology market.

The post Sustainable solutions: Our environmental, social, and governance metrics appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/hc9iGf2

Labels: ,

Friday, December 5, 2025

The 6th edition of our Beginner’s Guide is available now!

It was just over two years ago that we introduced the 5th edition of The Official Raspberry Pi Beginner’s Guide. That edition featured the latest and greatest of our hardware and software at the time: Raspberry Pi 5 and Raspberry Pi OS Bookworm. Since then, we’ve released many shiny new things, and the time was right for a major update. The 6th edition is available now, featuring Raspberry Pi 500 and 500+, and Raspberry Pi OS Trixie. We’ve also incorporated numerous improvements, clarifications, and corrections.

The cover of the 6th edition of the Official Raspberry Pi Beginner's Guide

Everything you need to get started

The book begins with a guided tour of Raspberry Pi hardware, covering the features and capabilities of the latest Raspberry Pi computers. After that, you’ll learn how to set up your Raspberry Pi and prepare it for its first boot. You’ll also get to know the desktop environment and find out how to install software (including the must-play games from Code the Classics Volume I and Volume II). And that’s just the first three chapters, which feature all-new full-colour images of Raspberry Pi 500+ and Raspberry Pi OS Trixie.

Write code with Python and Scratch

Chapters 4 through 7 introduce you to programming with Scratch and Python. You’ll start by writing simple programs that don’t require any extra hardware or peripherals. After you’ve mastered the basics of the two programming languages, you’ll move on to creating programs that interact with the outside world, taking your first step into physical computing with inputs such as push buttons and outputs such as LEDs. From there, you’ll progress to programming with the Sense HAT, an optional Raspberry Pi accessory that features on-board sensors and an LED matrix for visualisation.

Accessorise your Raspberry Pi

The rest of the book continues the theme of “things you can wire up to your Raspberry Pi.” The penultimate chapter shows you how to use a Raspberry Pi Camera Module, while the final chapter covers the Raspberry Pi Pico 2 microcontroller board, building on the Python and physical computing skills you learned earlier. Finally, the Beginner’s Guide wraps up with some useful reference appendices.

Get it today

The Official Raspberry Pi Beginner’s Guide, 6th edition, is out today. You can pick up your copy from our store for just £19.99. It’s also available from online retailers such as Amazon, and from booksellers who have exceptional taste in books. If you’re interested in an electronic version, we’ve got several ways you can get your hands on a PDF or ePUB.

After you add this new book to your shopping cart, be sure to check out the many other books we offer in our online shop.

The post The 6th edition of our Beginner’s Guide is available now! appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/9APkhrY

Labels: ,

Wednesday, December 3, 2025

Software updates for Raspberry Pi AI products

Raspberry Pi Software Engineering Manager Naush Patuck explains how users of our AI products can take advantage of our most recent software updates, including Hailo support for the Trixie release of Raspberry Pi OS and an input tensor injection feature for our AI Camera.

Raspberry Pi AI HAT+ and Raspberry Pi AI Kit

The Raspberry Pi AI HAT+ and the Raspberry Pi AI Kit, both based on Hailo AI accelerators, are now fully supported on the recently released Trixie version of Raspberry Pi OS. All the required software packages are available and ready to install from our apt repo.

This package release does contain one significant change: we have removed the Hailo device driver from our kernel builds and are now using DKMS to build and install the kernel driver as part of the package installation. This decoupling not only enables more flexibility with software releases going forward, but also allows our users to downgrade the device driver without downgrading the kernel itself. Downgrading a driver is only necessary if custom-built models were generated from an older version of the Hailo Dataflow Compiler.

The installation instructions are exactly the same as before, with the additional step of installing the DKMS framework needed to compile the kernel device driver:

sudo apt install dkms
sudo apt install hailo-all

In related news, Hailo have also recently launched their application infrastructure framework on GitHub. This framework provides a foundation for developing your own AI-based applications by using reusable pipelines and components! Head over to the repo to check out the examples and demos.

Raspberry Pi AI Camera

One previously missing but frequently requested feature on the Raspberry Pi AI Camera is the ability to easily debug custom or purpose-built neural networks running on the device. We have now implemented an input tensor injection feature on the AI Camera that fulfils this request. Input tensor injection allows users to validate the quality and/or performance of the network running on the device using an existing image dataset in a repeatable way. These images may come from a standard dataset (e.g. COCO) or an entirely custom dataset tailored to your application.

Raspberry Pi AI Camera

To use this feature, make sure your software is fully up to date:

sudo apt update
sudo apt full-upgrade -y

You can also give our example input tensor injection script a try.

The post Software updates for Raspberry Pi AI products appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/GxH6l4m

Labels: ,

Monday, December 1, 2025

1GB Raspberry Pi 5 now available at $45, and memory-driven price rises

At Raspberry Pi, our mission is to put high-performance, low-cost, general-purpose computers in the hands of people all over the world. For me, the crucial element of that sentence is low-cost. Over the years we’ve worked hard to hold down the prices of our single-board computers – at $35, a 1GB Raspberry Pi 4 costs the same as a 256MB Raspberry Pi 1 from 2012 – and to introduce new products at ever lower price points, from the $10 Raspberry Pi Zero to the $4 Raspberry Pi Pico.

But today, to offset the recent unprecedented rise in the cost of LPDDR4 memory, we are announcing price increases to some Raspberry Pi 4 and 5 products. These largely mirror the increases that we announced in October for our Compute Module products, and will help us to secure memory supplies as we navigate an increasingly constrained market in 2026.

In happier news, we are also announcing the immediate availability of a new 1GB version of Raspberry Pi 5. This brings our flagship platform, with its quad-core 2.4GHz Arm Cortex-A76 processor, dual-band Wi-Fi and PCI Express port, to a new low price point of $45.

What’s changing?

With effect from today, we’re making the following changes to the prices of Raspberry Pi 4 and Raspberry Pi 5 single-board computers:

Product Density Old price New price
Raspberry Pi 4 4GB $55 $60
Raspberry Pi 4 8GB $75 $85
Raspberry Pi 5 1GB $45
Raspberry Pi 5 2GB $50 $55
Raspberry Pi 5 4GB $60 $70
Raspberry Pi 5 8GB $80 $95
Raspberry Pi 5 16GB $120 $145

We’re also increasing the price of 16GB variants of Compute Module 5, which remained unchanged in October, by $20. The prices of lower-density Raspberry Pi 4 variants, of Raspberry Pi 3+ and earlier models, and of Raspberry Pi Zero products remain unchanged.

Nothing ever lasts forever

The current pressure on memory prices, driven by competition from the AI infrastructure roll-out, is painful but ultimately temporary. We remain committed to driving down the cost of computing and look forward to unwinding these price increases once it abates.

The post 1GB Raspberry Pi 5 now available at $45, and memory-driven price rises appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/dkBweR0

Labels: ,

Thursday, November 27, 2025

Cloud-init on Raspberry Pi OS

As some of you may have already noticed, the latest Raspberry Pi OS release based on Debian Trixie now includes cloud-init. This marks the beginning of a transition away from our legacy first-boot customisation system based on the firstrun.sh script.

Cloud-init is a cross-platform, distribution-agnostic tool used to automatically configure systems on first boot. (Definition adapted from the official cloud-init documentation.) With it, you can provision your Raspberry Pi images with users, network settings, SSH keys, storage configurations, and much more — all without manually logging in after flashing the image.

How can I use it?

If you’ve downloaded the latest image (released on 2 October 2025), you’ll find that three new files have appeared on the boot partition. This is the FAT32 partition that your computer automatically mounts when you insert a freshly flashed Raspberry Pi OS microSD card. It already contains familiar files like config.txt, but now you’ll also see:

  • meta-data
  • network-config
  • user-data

For most users, meta-data can be left untouched — it simply enables cloud-init to process the other configuration files correctly. Advanced users may use it for more complex provisioning workflows, but it’s safe to ignore in typical setups.

Cloud-init uses YAML for its configuration files. If you’re new to YAML, it’s worth taking a quick look at the official documentation, as indentation and formatting matter. For now, we’ll focus on the two most relevant files: user-data and network-config.

General configuration (user-data)

The user-data file is the central place for your configuration. With the exception of networking, almost everything cloud-init sets up on first boot is controlled from here.

You can use it to create a default user, define your locale, install additional packages, configure SSH access, and much more — all of which is covered in the official cloud-init documentation.

Unlike many other distributions, Raspberry Pi OS includes a few Raspberry Pi–specific extensions for cloud-init configuration. These allow you to enable hardware interfaces such as I2C, SPI, serial, and 1-Wire, and even activate USB gadget mode (rpi-usb-gadget) automatically.

Here’s an example configuration that sets up a user and demonstrates all the currently supported Raspberry Pi–specific options:

#cloud-config

# Set the hostname for this device. This will also update /etc/hosts if manage_etc_hosts is enabled.
hostname: mypi2025
manage_etc_hosts: true

# Set the system timezone
timezone: Europe/London

# Create a default user account and apply permissions
users:
  - name: pi
    groups: users,adm,dialout,audio,netdev,video,plugdev,cdrom,games,input,gpio,spi,i2c,render,sudo
    shell: /bin/bash
    lock_passwd: false  # Set to true to disable password login entirely
    plain_text_password: mysecretpassword123  # Alternatively, use 'passwd:' with a hashed password for better security
    ssh_authorized_keys:
      - ssh-ed25519 mykeystuff  # Replace with your actual SSH public key
    sudo: ALL=(ALL) NOPASSWD:ALL  # Allow passwordless sudo for this user

# Raspberry Pi–specific options (provided by the cc_raspberry_pi module)
rpi:
    spi: true               # Enable SPI interface
    i2c: true               # Enable I2C interface
    serial: true            # Enable serial console and UART interface
    onewire: true           # Enable 1-Wire interface
    enable_usb_gadget: true # Enable USB gadget mode

# Additional Raspberry Pi OS option (not available on generic cloud-init images)
enable_ssh: true  # Enables the SSH server on first boot

# Optional: Disable SSH password authentication if using SSH keys only (recommended for security)
# ssh_pwauth: false

For more details, you can refer to the cc_raspberry_pi module in the official cloud-init documentation.

Note:
The #cloud-config header at the top of the file is mandatory — cloud-init will not process the file correctly without it.

Networking configuration (network-config)

The network-config file defines how your Raspberry Pi should set up its network interfaces on first boot. As the name suggests, this is where you configure Wi-Fi or Ethernet settings before ever powering on the device.

Here’s a simple example that connects your Raspberry Pi to a Wi-Fi network:

network:
  version: 2
  wifis:
    # Make sure the target is NetworkManager which is the default on Raspberry Pi OS
    renderer: NetworkManager
    # The connection name
    wlan0:
      dhcp4: true
      # !VERY IMPORTANT! Change this to the ISO/IEC 3166 country code for the country you want to use this microSD card in.
      regulatory-domain: "GB"
      access-points:
        "My Net-Work":
          password: "mysupersecretpassword"
      # Don’t wait at boot for this connection to connect successfully
      optional: true

When you power on your Raspberry Pi with this microSD card inserted, cloud-init will process this configuration and attempt to connect to the specified network automatically — allowing you to SSH in or continue working without needing to attach a screen or a keyboard.

You can configure far more than just basic Wi-Fi credentials: multiple networks, priority fallback, static IP assignments, VLANs, and more are supported. For a full reference, see the official cloud-init networking documentation.

With the introduction of cloud-init, Raspberry Pi OS also includes Netplan, a unified abstraction layer for network configuration used by several modern Linux distributions.

More about Netplan

Netplan is now the primary source of truth for networking on Raspberry Pi OS. It uses its own YAML-based configuration format and can render network settings for both systemd-networkd and NetworkManager, depending on which renderer you choose. The major advantage of this approach is portability — a Netplan configuration can be reused across any Linux distribution that supports it, regardless of whether it uses NetworkManager or networkd underneath.

To use Netplan directly, place your configuration files in /etc/netplan/ — this is also where cloud-init stores your generated network configuration from network-config without modification. From there, you can generate the active configuration using:

sudo netplan generate

This writes the appropriate configuration files for the selected backend (NetworkManager on Raspberry Pi OS). To activate the configuration, run:

sudo netplan apply

You can still use nmcli as usual to inspect or manage connections. Since many existing tools and scripts rely on nmcli or the NetworkManager D-Bus API, there needs to be a communication layer between Netplan and NetworkManager. Canonical provides three patches that enable this two-way interoperability, allowing NetworkManager to signal configuration changes back to Netplan.

For Raspberry Pi OS, we’ve gone a step further and introduced additional patches to improve this workflow:

  • NetworkManager will only interact with connections that use the netplan- prefix. If you want a new connection to be persisted by Netplan, give it that prefix when creating it, and it will be stored in Netplan’s configuration.
  • When generating profiles, NetworkManager loads all Netplan-defined connections and writes its interpreted runtime configuration back in a format Netplan can understand.
  • During this process, all .yaml and .yml files under /etc/netplan/ are cleared to avoid conflicting definitions across multiple layers.
  • This does not affect manually created connections stored in /etc/NetworkManager/system-connections/.
  • Any profiles generated at runtime by Netplan will appear under /run/NetworkManager/system-connections/ and will also use the netplan- prefix.

This approach ensures consistency between both systems and prevents configuration drift when editing or reloading profiles via NetworkManager tools.

Wrapping up

With cloud-init and Netplan now integrated into Raspberry Pi OS, first-boot provisioning becomes far more powerful, repeatable, and portable across different setups. Whether you’re configuring a single device or preparing dozens of Raspberry Pis for a classroom, a lab, or an IoT deployment, these new tools make it easy to define everything up front — users, networking, interfaces, and more — before the system even powers on.

With the release of Raspberry Pi Imager 2.0, cloud-init configuration for Raspberry Pi OS is now generated by default. This makes it easy to further customise your setup after writing the image — simply edit the generated user-data or network-config files on the boot partition. Imager 2.0 also understands the Raspberry Pi–specific rpi: options, so features like SPI or I2C can be enabled directly in the customisation UI.

The legacy method still works, but cloud-init and Netplan open the door to a much more flexible and modern workflow. We’ll continue expanding support for Raspberry Pi–specific cloud-init modules and streamlined provisioning features in future releases.

If you create interesting user-data or network-config templates, or have feedback about the new system, we’d love to hear from you in the forums.


Header image resources: Background designed by Freepik. Icons by ziadarts, Dimas Anom, and Gregor Cresnar via Flaticon.

The post Cloud-init on Raspberry Pi OS appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/id3reS0

Labels: ,

Tuesday, November 25, 2025

The new Raspberry Pi sustainability portal

Raspberry Pi’s commitment extends beyond pioneering technology. As the business grows — and with it, our environmental impact — being transparent about our sustainable practices remains a priority. To support this focus, we’re delighted to introduce the Raspberry Pi sustainability portal.

While it’s currently fairly simple and modest in its content, the portal will gradually become the central repository for all information relating to our sustainability efforts. Its release marks a step forward in making sure that our focus is clear, and that our performance is accessible and easy to understand for everyone who is interested.

What the portal offers today

The portal is designed to serve as an anchor point for our sustainability work. Initially, you’ll find information about our approach to sustainability, as well as links to everything we’ve written about the actions we’re taking and planning. This includes short articles and perspectives from across the business on how we are integrating sustainable thinking into our operations and product design.

A platform for growth and disclosure

Crucially, the portal is not a static document; we plan that the breadth and depth of the information displayed will grow significantly over time. As our initiatives mature and our data collection processes become more sophisticated, we will continually update it with more detailed metrics and targets, providing deeper insight into the impact of our supply chain and operations. We aim to go beyond compliance, and we’re committed to giving clear, factual evidence of our progress towards a more sustainable business model. 

We’re inviting all our partners and customers, and the wider Raspberry Pi community, to have their say as well. By opening up our data, we’re hoping to foster a productive conversation about how Raspberry Pi can continue to innovate responsibly.

The post The new Raspberry Pi sustainability portal appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/VQpBmdW

Labels: ,

Monday, November 24, 2025

A new Raspberry Pi Imager

Today, I’m delighted to introduce Raspberry Pi Imager 2.0: a complete reimagining of the application that’s been brewing in our development pot for the past year. It brings a new wizard interface, the opportunity to pre-configure Raspberry Pi Connect, and improved accessibility for screen readers and other assistive technologies.

Five years ago, we introduced Raspberry Pi Imager in the hope that we could make getting started with Raspberry Pi much simpler than the typical workflow of the time. Since then, we’ve added new features, expanded customisation options, and listened carefully to your feedback. But as the application progressed, so did the strain on the interface. Eventually, the size of the customisation form grew so large that it became unwieldy. Today’s update responds to this challenge.

What’s new? Everything (almost)

One thing was clear: for Imager 2.0, we needed to make a radical UI change. OS customisation is one of the most popular aspects of Raspberry Pi Imager, but we’d left it hidden in a separate window. Why hide the good stuff?

Separately, we had a list of features we wanted to offer, from improvements in the network installer through to wider accessibility. Following the launch of Raspberry Pi Connect, an obvious hope was to enable Connect sign-in during imaging, rather than after booting.

But what would we choose to do?

Reader, we chose all of the above.

Imagers old and new

A wizard appears

The most obvious change is the new step-by-step wizard interface. In order to make OS customisation a first-class citizen, we needed to bring it into the main interface, so now you’ll progress through a series of clearly defined stages:

  1. Select your Raspberry Pi device
  2. Choose your operating system
  3. Pick your storage device
  4. Configure your system (hostname, location, user account, wireless LAN, remote access, Raspberry Pi Connect, and interface options)
  5. Write your image
  6. Done!

Each step gets the full window to itself, with room for helpful descriptions, validation feedback, and relevant links. It’s a more spacious, less crowded experience all round.

Raspberry Pi Connect: pre-configured and ready to go

One extremely popular customisation the original Raspberry Pi Imager offered was the ability to configure, at the point of writing your SD card, your remote access credentials, giving you the chance to pre-program your SSH public keys.

What if, however, you wanted to use the much simpler Raspberry Pi Connect? With Imager 2.0, you can do just that. Simply authenticate during the imaging process, and when your Raspberry Pi boots for the first time, it’ll already be connected to your Raspberry Pi Connect account — ready to offer screen sharing or remote shell access from the start.

Accessible by design, not by chance

Raspberry Pi Imager is a much-loved, widely used application that represents, for many people, their very first interaction with Raspberry Pi. Every user deserves the best possible experience.

Each control in the new interface includes accessibility labelling for screen readers and other assistive technologies. The entire application is fully navigable via keyboard — no mouse required. We’ve paid careful attention to colour contrast throughout, ensuring text remains readable against its background in all situations.

The new colour scheme, built around Raspberry Red, is designed to make the UI easier to read (and to draw your attention to sensible choices). We use white space generously to establish clear boundaries between controls, making the interface easier to parse at a glance.

A massive thank you to our beta testers and contributors

To borrow a phrase: “It takes a village…”.

Raspberry Pi Imager 2.0 has seen extensive changes compared to the original, with an entirely new UI, significant alterations to the core software, and numerous new features. On top of that, there are hundreds of new translatable strings!

In early October, we started publishing open beta builds — and to the users who provided feedback early and in abundance, your contributions were invaluable. You’ve made this release considerably better than it might have been.

Our community translators deserve particular thanks. Translating not only the UI but also the accessibility strings of this application is a major task, and I’m continually humbled that people freely offer their time to ensure their communities can make the most of Imager.

Finally, I’d like to extend an extra-special thanks to my two interns this summer, Ben and Paul, both of whom have made large contributions to the UI and core code of Imager. The success of this launch is in no small part thanks to their efforts, and I hope they rightly celebrate it.

What’s next?

Raspberry Pi Imager 2.0 is available now for Raspberry Pi OS, Windows, macOS, and as a Linux AppImage. You’ll find download links on our software page.

If you want to get involved in more early-access software testing, check out our beta forums.

Happy imaging!

The post A new Raspberry Pi Imager appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/3XC0IOs

Labels: ,

Thursday, November 20, 2025

Electronic drum business cards built on RP2040

The festive issue of Raspberry Pi Official Magazine is on sale from today and features one of the finest front covers our beloved illustrator, Sam Alder, has ever created. We wanted to share a Christmassy project from its pages, and have managed to shoehorn this RP2040-based build in on the grounds that it involves a drum and that there happens to be a Christmas song called ‘Little Drummer Boy’. The math checks out… as long as you don’t think about it too much.

Want to drum your name into someone’s memory at a networking event? Then Sergey Antonovich has got you covered. The embedded systems engineer has reinvented the age-old business card by turning it into a playable electronic drum kit — and we’d hazard a guess that this one won’t end up languishing, forgotten, in someone’s pocket.

It’s a fully functional instrument, with touchpads hidden under the colour UV silkscreen;
Sergey designed it to be fun and intuitive: tap the printed cymbal to hear a crash

Sergey got the idea for the project some months ago. He enjoys building digital musical instruments — including ultra-portable, all-in-one digital accordions — and he was inspired by business cards that can fit an entire Linux system on a tiny PCB. Producing a business card that could be played felt like a natural fit. “It does three jobs at once,” he says. “It instantly grabs attention when you hand it over, it communicates exactly what I do, and it invites people to learn by reproducing the design.”

The cards are being prepared for hand-soldering — they are normally created in batches of ten

This led him to create a card that incorporated an F1C100s system-on-chip running Linux, as well as a TTP229 capacitive touch sensor. Recipients simply needed to power it up and listen via headphones connected to a 3.5mm TRS audio jack, while tapping on an image of a drum kit printed on the card. “Touchpads were hidden under the silkscreen art, so you could tap drums right on the print,” Sergey says. “It worked, looked great, and felt like a real instrument.”

Digital drumming

Yet Sergey wasn’t entirely happy, as the project proved costly and complex. “A Linux image/toolchain is doable, but heavy for beginners or classrooms,” he notes. “And even with trimming, a boot time of a few seconds was noticeable. I wanted instant-on.”

RP2040 was soldered manually onto the PCB using a hot plate and hot air

To resolve these issues, he turned to the Raspberry Pi RP2040 microcontroller. “It’s inexpensive and it uses external QSPI flash, which is large enough for multiple stereo drum samples,” he says. “It can also be programmed using CircuitPython, and this takes you from idea to music in an evening. There’s no heavy toolchain.”

Indeed, as Sergey points out, he really did have a build ready within hours. “I started from a CircuitPython build for a 16MB RP2040 board, prepared a tiny drum sample set, and wrote a short script that scans pads and plays stereo WAVs via audiomixer and audiopwmio.” 

Feel the beat

The result has been a fresh RP2040 + CircuitPython version optimised for instant power-on via USB-C, which is ideal for beginners while also being cost-effective and quick to create. The touchpads are read directly by RP2040, so there is no need for an external touch-integrated circuit, and 16MB of external flash memory is more than sufficient for the code and sound samples.

Thanks to CircuitPython’s touchio module, RP2040 senses the pad capacitance directly. “A finger increases the capacitance, which leads to changes in the charge/discharge time that result in a reliable ‘touched’ flag,” Sergey explains. An LED provides instant visual feedback, and the sound is output via two of RP2040’s PWM channels.

Sergey is an embedded systems engineer specialising in real-time system software and sensor integration for self-driving cars and delivery robots

Sergey now wants other people to make the project their own, which is why he has made it open source. But even though he has printed his own details on the reverse, including a QR code pointing to his LinkedIn profile, he says its use goes beyond sharing contacts. 

“It’s a memorable handout that grabs attention the moment you tap it,” he says. “But the goal isn’t just to hand someone a cool card — it’s to give you a tiny, hackable instrument you can learn from and extend.”

Raspberry Pi Official Magazine #160 out NOW!

You can grab this issue from Tesco, Sainsbury’s, Asda, WHSmith, and other newsagents, including the Raspberry Pi Store in Cambridge. It’s also available from our online store, which ships around the world. And you can get a digital version via our app on Android or iOS.

You can also subscribe to the print version of our magazine. Not only do we deliver worldwide, but people who sign up to the six- or twelve-month print subscription get a FREE Raspberry Pi Pico 2 W!

The post Electronic drum business cards built on RP2040 appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/Fi1HI2N

Labels: ,

Wednesday, November 19, 2025

How thousands of students are growing plants in space with Raspberry Pi

We had a blast seeing everyone’s kooky creations at Open Sauce this summer, and one of the interesting people we met was Ted Tagami, who told us about a dare he couldn’t turn down over a decade ago…

“In 2013, a dear friend dared me to build an advertising network using satellites in space. Being a child of the 1960s, the idea that running a space programme was possible for me was something I could not pass by. I was not interested in the advertising.”

“That daring friend became my co-founder when we launched Magnitude.io, with zero science or engineering knowledge of how to do this. Fast-forward four years, and ExoLab-1 became our first mission to the International Space Station. With one lab running in microgravity 400km above the planet, we launched with a dozen Californian schools networked with Raspberry Pi–powered, ground-based labs.” 

Turning classrooms into space-faring research labs

ExoLab is an educational programme that connects students around the world with real scientific research taking place aboard the International Space Station (ISS). Students in ordinary classrooms on Earth grow plants while an identical experiment unfolds simultaneously in microgravity.

Each participating school receives an ExoLab growth chamber that tracks temperature, humidity, light, and CO₂ levels while capturing timelapse images of plant development. Students plant seeds, collect data, and compare their findings with the parallel experiment happening in space — all in real time.

Over the course of a four-week mission, students join live broadcasts with classrooms all over the world. They hear directly from astronauts and NASA scientists, discuss everyone’s observations, and share their own discoveries.

So far, more than 24,000 students and 1400 teachers across 15 countries have taken part in 12 missions. Keep your eyes peeled for the results of ExoLab-13: Mission MushVroom!

Team Magnitude.io

Not the only Raspberry Pis in space

We liked how much ExoLab reminded us of the Raspberry Pi Foundation’s groundbreaking Astro Pi programme, which sees students run their own code on the International Space Station. While ExoLab works with NASA, Astro Pi sees students collaborate with astronauts from the European Space Agency.

The first pair of Astro Pi computers went up for Tim Peake’s Principia mission

Last year’s challenge was bigger than ever, with 25,405 young people participating across 17,285 teams. They’re now analysing the data they’ve received from the experiments that ran on the ISS. It’s free to take part, so if you know of a young person (under 19 years of age) who would like to launch their code into space, they can choose their mission and get started within an hour!

Rocketry, satellites, space waste, and more

We’re big fans of seeing Raspberry Pis in space, and we’ve seen everything from space-grade waste recycling to kaleidoscopic space art.

cellar nerd deep space mirror
This wall art was inspired by the James Webb telescope — and there’s a Raspberry Pi inside

If you’ve already done Astro Pi and would like to try a more challenging build, you could look into the ISS Mimic project, which sees student teams build a 1%-scale version of the International Space Station and code it so that it mimics the exact actions of the real thing up in orbit. (It’s very cool. We follow Team ISS Mimic around to events like Open Sauce — they also introduced us to the ExoLab folks.)

ISS Mimic doing its… mimicking

If we’ve piqued your interest, why not peruse the space archives on our website? There are more Raspberry Pis up there than you think!

The post How thousands of students are growing plants in space with Raspberry Pi appeared first on Raspberry Pi.



from News - Raspberry Pi https://ift.tt/8oIET5J

Labels: ,