0% found this document useful (0 votes)
20 views

Arduino Open Source Report 2023

Uploaded by

aviraj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

Arduino Open Source Report 2023

Uploaded by

aviraj
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

Arduino

Open Source Report 2023


Another busy year has passed in
the Arduino world, and it’s about
time to publish our annual
retrospective on the Arduino open
source ecosystem.
In this report you’ll learn about the
activities of the Arduino team from
the past year, as well as the
contributions from our passionate
and vibrant community.

This report is a snapshot of the ecosystem


as of December 31st, 2023.

2
Introduction

3
One more busy year
The Arduino name designates a company, an open source project, a
community.

We’re tens of millions of people sharing a passion for embedded


electronics. But we’re also thousands of companies who manufacture
boards, shields and accessories, and develop software for them. We’re
educators, students, hackers, consultants, engineers, designers,
entrepreneurs. In these 18 years we have all been collaborating every day
to share knowledge and solutions, building an incredibly vast amount of
resources around which an entire industry has grown.
As Arduino company, we believe in the values that make this community
great: openness, transparency, collaboration, sharing.
This yearly report documents our efforts and investments to support
the growth of the ecosystem. As you will see in the document, 2023 has
been an incredibly busy year in terms of open source development.

To comment on this report, join us in the Arduino Forum.

4
How to support the Arduino project

There are several ways to support the Arduino team:

● Buy original Arduino boards (their cost funds our investment in open
source development for the benefit of the entire ecosystem, including other
hardware manufacturers)

● Subscribe to an Arduino Cloud plan (for a few $/month you can fund our
open source development and also get web dashboards, smartphone app
as a remote control for your projects, remote firmware upload, variable
synchronization across devices, mobile push notifications and more)

● Make a donation

● Join the development and become a contributor!

But in addition to the Arduino team, do not forget to support the authors of
your favorite libraries. Many of them accept donations through GitHub or other
means, and all of them appreciate your gratitude in any form.

5
Activities carried out
by the Arduino team
In this section we’ll go through the main
projects delivered directly by the Arduino team.

6
Big news: Arduino joins the Zephyr® Project
In 2023 we joined the Zephyr® Project as Silver members.

Zephyr is an open source project at the Linux Foundation that


builds a secure, connected and flexible RTOS for future-proof
and resource-constrained devices, is easy to deploy and
manage. It is a proven RTOS ecosystem created by developers
for developers. Zephyr RTOS has a growing set of software
libraries that can be used across various applications and
industry sectors such as Industrial IoT, wearables, machine
learning and more. It is built with an emphasis on broad chipset
support, security, dependability, long-term support releases and
a growing open source ecosystem.

Funding and supporting Zephyr is important for us because it


helps keeping embedded development open, collaborative and
accessible while investing in security and robustness.

7
Open-Source Hardware boards NEW

During this year we released FIVE new open-source hardware


products:

● GIGA R1 WiFi
● GIGA Display Shield
● UNO R4 Minima
● UNO R4 WiFi
● Nano ESP32

For each of them, the full schematics and CAD files are available
on the docs.arduino.cc website along with web-based interactive
viewers that let users see the 3D models and click on individual
components to browse the BoM interactively and see part
numbers and other details.

HOW TO GET INVOLVED:

● Remix these boards, innovate and share your builds!

8
Arduino IDE 2
In 2022 we released the Arduino IDE 2, marking a big milestone
in Arduino history. Since then, we never stopped working in it:
the Arduino Tooling Team works on the IDE full time interacting
with the community to make sure the IDE is robust, maintained,
easy to use.

In 2023, 5 new versions were released with many improvements


to UX and reliability, as well as new features such as a big revamp
of the debugging framework.

HOW TO GET INVOLVED:

● Test the IDE 2 to spot issues and bugs


● Contribute the translation in your language
● Join the development and help testing bugs, fixing them
and developing new features!

9
Arduino CLI
The open-source Arduino CLI command line tool provides
access to all the features of the IDE, including
compilation, upload to boards, library management and
more. This tool allows you to manage your Arduino
sketches without leaving your editor of choice, as well as
integrate it in your scripts and custom applications.

We have been working on this tool on a daily basis to add


new features, and during this year we released 6 new
versions!
Thanks to the contribution of the community we’re
getting close to the release of the 1.0 stable version.

HOW TO GET INVOLVED:

● Contribute the translation in your language


● Jump into the development and help testing bugs,
fixing them and developing new features!

10
Arduino Firmware Uploader
Security in IoT is often neglected but for us it is very
important to make sure there’s a robust and versatile
toolchain to keep devices up-to-date. The open-source
Arduino Firmware Uploader tool provides a simple way to
update the firmware and/or add SSL certificates for any
Arduino board equipped with ESP32-S3 or NINA Wi-Fi
module.

During 2023, we released 3 new versions of the tool!

HOW TO GET INVOLVED:

● Jump into the development and help testing bugs,


fixing them and developing new features!

11
Pluggable discovery for DFU devices NEW

This one is very technical, but it’s an important


contribution. We care a lot about making sure the
Arduino ecosystem is open and supports any board on
the market, not just ours. We feel the responsibility to
make sure our industry is healthy and collaborative and
this is why we believe in open standards.

In the past few years we worked hard to implement a


modular way to have the CLI and IDE seamlessly
communicate with a board using many different
protocols. We call this framework “pluggable discovery”.
Among the various protocols available, we now
developed full support for DFU upload. DFU is part of the
USB standard.
Thanks to this contribution, any vendor can now design
boards leveraging DFU and provide a smooth user
experience to their users.

12
MicroPython installer for Arduino NEW

Following our mission to democratize embedded


development, we keep investing on new technologies to
empower the community.

This year we released the MicroPython Installer for


Arduino which is a cross-platform tool that streamlines
the process of downloading and installing MicroPython
firmware on compatible Arduino boards. It runs on
macOS, Linux, and Windows and is built using the
Electron framework.

HOW TO GET INVOLVED:

● Test the installer and report feedback


● Join the development and roadmap discussion on
GitHub

13
Arduino Lab for MicroPython
In 2022 we had released a new IDE for MicroPython was
released as an experimental project. Since then we have
received very good feedback from the community so we
have been improving it to add new features and improve
reliability.

In 2023 we have released 3 new versions of the Arduino


Lab for MicroPython!

HOW TO GET INVOLVED:

● Test the application in real-world situations and


report feedback
● Join the development and roadmap discussion on
GitHub

14
MicroPython Package Index NEW

We have created an initial list of MicroPython packages


that we consider useful to learn and experiment with this
language. The list is published as Arduino MicroPython
Package Index. You can browse the list, download the
packages from their corresponding Github repository
and install them via Arduino Lab Editor for MicroPython.
We plan to release tools to easily search, download and
install from this package index in the future.

HOW TO GET INVOLVED:

● Contribute to the accuracy of the package index


by submitting pull requests and joining the
discussion on GitHub

15
More MicroPython development
We have been working full-time on contributing to the
upstream MicroPython project which we fully support as
we believe in interoperability and collaboration. Some of
the major contributions are:

● New networking interface and drivers to support ESP32


chips running the Espressif's esp-hosted firmware
● Support for Open-AMP in MicroPython, to standardize
asymmetric multi-core support across different
hardware
● MsgPack-based RPC library
● New sensor drivers: Renesas HS3003 and Bosch's
BMM150 and BMI270.
● Refactored and fixed KPN's senml and cbor libraries HOW TO GET INVOLVED:
● Improved support for the IMXRT 117x series in imxrt
● Use MicroPython on Arduino boards in
port
● Improve standby/low-power modes support for STM32 real-world projects and report issues.
H7xx series ● Contribute to development MicroPython
● 100+ other fixes and improvements to MicroPython libraries and documentation!

16
Arduino Cloud CLI & Create Agent
The Arduino Cloud CLI supports, among other things,
mass device provisioning and Over-the-Air updates: this
allows anyone to upload sketches on remote devices
without leaving the command line.
During 2023, we have been improving this tool and we
released 4 new versions.

The Arduino Create Agent is the core of the Arduino


Cloud services and it’s fully open source.
During 2023, we released 8 new versions of it, improving
its security and compatibility with the latest OS versions.

HOW TO GET INVOLVED:

● Help testing bugs, fixing them and developing new


features!

17
Official libraries
We released two important libraries providing a new standard API
for data storage (see the blog post for more information):
− Arduino_UnifiedStorage
− Arduino_PosixStorage

In addition, 10 more new official libraries were published:


− Arduino_AdvancedAnalog
− Arduino_ESP32_OTA
− Arduino_GigaDisplay
− Arduino_GigaDisplayTouch
− Arduino_GigaDisplay_GFX
− Arduino_GigaDisplay_TinyGL
− Arduino_GroveI2C_Ultrasonic
− Arduino_PF1550 HOW TO GET INVOLVED:
− Arduino_ScienceKitCarrier
− Arduino_USBHostMbed5 ● Please help us fix bugs, review pull
requests and improve the examples
Also, during 2023 we performed 49 new releases of the official shipped with libraries to better
libraries with bug fixes and new features.
document their functionality!

18
Official cores
During 2023 we performed 13 new releases of the official cores
for AVR, megaAVR, SAMD, RP2040, STM32, nRF52, renesas with
bug fixes, new features and support for more boards.

We have been spending more time on reviewing and merging the


excellent contributions we get from the community, particularly
on the core used for our Renesas-based boards (UNO R4, C33) for
which we merged ~50 pull requests, and the core used on our
mbed-based boards (GIGA, RP2040, Portenta H7 and more) for
which we merged ~20 pull requests.

In addition, significant development was done on the


ArduinoCore-API abstraction layer.

HOW TO GET INVOLVED:

● There are still many pending issues and feature requests, so


you’re really more than welcome to help us in GitHub.

19
setup-protoc NEW

This is a minor one, but it’s still something we thought


would be a nice contribution to release.

At Arduino we make extensive use of Continuous


Integration to test our software, relying on GitHub
Actions. In the past we already released actions (see the
full list) to compile and analyze Arduino libraries and
sketches. This one is relevant for projects using Protocol
Buffers to serialize data, like the Arduino IDE does under
the hood, and can now be used in any other context.

HOW TO GET INVOLVED:

● Contribute to the project on GitHub

20
Security
Last but not least, a lot of work has been carried out by our
dedicated security team that works full-time to inspect code,
handle reports, and secure the infrastructure including the way
assets are developed, compiled and distributed.

During 2023, we have been improving security of our open source


code thanks to proactive audits as well as prompt reaction to
reports we received directly and in the form of CVEs.

HOW TO GET INVOLVED:

● Help us inspect repositories to find vulnerabilities, and get


in touch with our security team according to the security
policy.

21
Contributions to external projects

Open source is about sharing and giving back, so we


care a lot about contributing to upstream projects.
During 2023, we have been dedicating significant
development time to contribute to the following
excellent projects:

● MicroPython
● TinyUSB
● Zephyr
● OpenPLC
● ESP32 core for Arduino

22
Highlights from
the community

We’re now going through the main


contributions from the community in 2023.

23
Community

+20%
contribution matters

1.068 new contributed


libraries have been added to
the Library Manager (once
more, this number is higher
YoY new libraries than the previous year!),
bringing the total number to
6,532. The Arduino library
ecosystem is having an
impressive growth.

24
5861
Libraries are a vibrant
big thing
This number represents the
incredibly active and continuous
efforts of the Arduino library
developers, growing each year. New versions of
libraries in 2023

25
You will never walk alone
205 new open-source tutorials were added to
Arduino Project Hub during the year.

(Note that we perform quality review and


moderation to avoid duplicates, so this number
does not include all the submissions but only
represents the projects that were approved and
published by the Project Hub maintainers.)

26
5300
The community is more
active than ever
This number represents the
number of people interactions on
the official Arduino repositories on
INTERACTIONS GitHub reporting issues or
submitting pull requests.

27
Many cores contributions
+101 new versions of contributed Arduino cores
were released during the year (more than previous
year).
Note that since there’s no official platform registry, this
number may not include platforms that we don’t know
about.

28
Top contributors of new libraries
Number of libraries Number of libraries Number of libraries
Author Author Author
added in 2023 added in 2023 added in 2023

Rob Tillaart 228 Luis LLamas 39 FaBo 24

Khoi Hoang 173 STMicrolectronics 38 RFtek Electronics 24

SparkFun Electronics 172 Picovoice Inc. 34 Larry Bank 22

DFRobot 110 RLL-Blue-Dragon 32 Bonezegei 21

Seeed Studio 75 SRA 32 Infineon Tech. 21

M5Stack 60 Zoran Pribičević 30 Adafruit 20

BESTMODULES 54 Soldered 39 Sensiron 19

hideakitai 53 RAKWireless 28 majicDesigns 18

Pololu 43 Brian Taylor 27 ClosedCube 17

29
Most active library maintainers
Number of Number of Number of
Maintainer Maintainer Maintainer
releases in 2023 releases in 2023 releases in 2023

Rob Tillaart 1827 Wolfgang Ewald 216 Picovoice Inc. 123

Khoi Hoang 1441 M5Stack 184 David Lloyd 121

SparkFun Electronics 847 marco_c 183 Jochen Kiemes 121

Mobizt 790 Brian Taylor 178 Cesanta Software 114

hideakitai 491 Zoran Pribičević 167 Michael C. Miller 114

stm32duino 446 PowerBroker2 163 AlexGyver 95

Adafruit Industries 370 Pololu 133 thecoderscorner 95

Kevin Harrington 320 Larry Bank 132 Ricardo Lima Caratti 94

Brian T. Park 227 Benoit Blanchon 126 Seeed Studio 92

(This ranking is based on the frequency of releases, which does not 30


necessarily reflect the complexity of each release.)
API interoperability
As the ecosystem grows, interoperability and portability become
important concepts. How do we ensure that libraries work on all
architectures, avoiding hard-coded architecture-specific code?
How can we improve the core API so that libraries (and final users)
can rely on a stronger abstraction layer?

We’re pleased to mention the great contribution by Juraj Andrássy


who worked on mapping the level of interoperability of the
networking API exposed by the major Arduino cores.

HOW TO GET INVOLVED:

● Join the discussion and help standardizing the Arduino APIs!


● Contribute with pull requests to the various cores and
libraries to improve their portability!

31
More contributions
The Arduino community is much more than this, and
given its size it is nearly impossible to track all the
contributions that are shared daily in unofficial
community platforms and independent websites.
This includes software contributions such as code
examples and full open-source sketches, but also
knowledge contributions such as documentation
and tutorials, and last but not least hardware design
contributions such as derivative or complementary
products (shields, accessories, derived boards).

Tracking and representing such a variety in a future


edition of this report, both in quantitative and in
qualitative form, would be a valuable addition to
recognize the tremendous efforts of thousands of
people and companies contributing to the success of
the Arduino ecosystem.

32
That’s a wrap
Thank you!

The Arduino Team

You might also like