Schlagwort: Arduino CLI

  • Arduino CLI 1.0 is out!

    Arduino CLI 1.0 is out!

    Reading Time: 2 minutes

    We are excited to share some incredible news with you all! We recently released the Arduino CLI version 1.0.0, marking a significant milestone for our software. This release is a big deal because it signifies the stabilization of the software API, bringing greater reliability and predictability to our users and developers leveraging it in their projects.

    The Arduino CLI offers multiple ways to integrate and utilize its capabilities:

    • Command line interface: The most straightforward way to use Arduino CLI is through its command line interface. This allows you to manage boards, libraries, compile sketches, and upload code to your Arduino boards with ease.
    • gRPC interface: For more advanced use cases, the Arduino CLI provides a gRPC interface. This enables developers to interact with the CLI using their preferred programming language, allowing for the creation of custom applications and services that leverage the full functionality of the Arduino ecosystem. The gRPC interface is particularly useful for building complex workflows and creating custom IDEs or plug-ins.
    • Go module: You can also use Arduino CLI’s packages within your own applications written in the Go programming language. By importing the source code, you can embed the functionality of the Arduino CLI directly into your projects. This approach is beneficial for developers who want to integrate the tool seamlessly into their own software.

    You can find more information about the different ways the Arduino CLI can be integrated in your software in the official documentation.

    It’s been almost two months since the release of version 1.0.0, and we are now at version 1.0.4. In this short time, we have been working hard to address issues, fix bugs, and enhance the software. We are committed to delivering the best possible experience for our users, and each new version brings us closer to that goal.

    For a comprehensive overview of the features included in Arduino CLI version 1.0.0, please refer to the official release notes. This list details all the enhancements, improvements, and new functionalities that make this release a significant step forward for our community.

    To minimize the impact on our users, we accumulated almost all of the breaking changes for the 1.0.0 release, allowing us to clean up early design errors and other issues in one major event. From now on, our backward compatibility policy is designed to ensure stability and predictability for our community, specifically for the Arduino CLI. For more details about this policy, you can refer to the relevant documentation.

    As we continue to build upon this foundation, we are looking forward to delivering even more improvements and new features in future releases. Thank you to our amazing community for your support and feedback – we couldn’t have reached this milestone without you. Stay tuned for future updates, and thank you for being part of this journey! 

    The post Arduino CLI 1.0 is out! appeared first on Arduino Blog.

    Website: LINK

  • Mass scale with the new Arduino Cloud CLI

    Mass scale with the new Arduino Cloud CLI

    Reading Time: 4 minutes

    The Arduino IoT Cloud enables makers, IoT enthusiasts and professionals to build easily connected projects based on a wide range of Arduino, ESP32, and ESP8266 boards.

    Following Arduino’s vision, it has been carefully designed to provide the most user-friendly and intuitive experience, abstracting the complex tasks that create barriers for users who are not familiar with coding. Some of the features include:

    • Easy onboarding that will automatically generate a sketch layout when setting up a new device so you can edit it right away and quickly go from unboxing to building your project.
    • Building rich and customizable dashboards to visualize your device’s status and data, accessible remotely via a native mobile App and your web space
    • Keeping your devices up-to-date with secure remote OTA updates
    • Storing historical data
    • Automagically” syncing variables between multiple devices
    • Integration with 3rd party platforms like Alexa or IFTTT

    The intuitive and user-friendly web interface is a major factor of Arduino IoT Cloud’s popularity. It simply makes it easy to get started for a great variety of users, from the ones with no prior coding experience to those who are expert Arduino users.

    Introducing a new alternative IoT Cloud experience

    Alternatively, it is possible to interact with the Cloud via the API. This method is mainly used for integration with other platforms, applications or web pages.

    The interaction with the cloud is now complemented with a new Cloud CLI that provides a tool to execute scripted operations on Arduino Cloud, and satisfy use cases like massive device provisioning. As it empowers users to access the major features of Arduino IoT Cloud from a terminal, it is also a long-time demanded feature for skilled users.

    With the new Cloud CLI, the Arduino IoT Cloud has a full suite of tools available for every kind of user.

    All your favorite IoT Cloud actions available on your terminal

    With the new Cloud CLI tool it is possible to perform most of the tasks that can be done using the web interface.

    The Cloud CLI needs a credentials file containing an Arduino IoT Cloud client ID and its corresponding secret. Credentials can also include an optional organisation ID that specifies the organisation to use. These credentials can be retrieved from the cloud by creating a new API key.

    Devices and things can be created, deleted and listed. Things can be bound to devices. In a very similar way it is possible to manage the dashboards.

    OTA firmware updates can also be performed with the ability to defer the update up to one week. It is also possible to perform a mass OTA upload through a specific command.

    One of the key features is the ability to download in different text formats (JSON, YAML, …) the templates of the dashboards, devices and things, so that you can keep them for future use. It is very useful to modify them to create copies of the entities with some properties changed and upload the new templates to the Cloud.

    Mass scale provisioning journey

    The Cloud CLI is a tool that can be integrated easily in scripts and so, it is well-suited for scenarios where mass scale and automated actions are needed.

    The typical journey would consist of the following phases.

    Phase 1: Prototyping

    The user journey starts creating a first prototype of a Thing and a Sketch code that resolves the use case. This activity can be done using IoT Cloud web application, or even editing the Sketch in online Editor or offline Arduino IDE.:

    Phase 2: Factory provisioning

    At this point, the user can replicate the entire configuration of the “prototype” thing on many other devices, going through provisioning and connecting all of those to the cloud. In this phase, using Cloud CLI it’s possible to streamline the provisioning process and even to hook it to automation scripts. 

    Phase 3: Production update

    During the normal life of a thing on the field, it is very typical to need to update the firmware remotely. With Cloud CLI, it is possible to update devices individually, but also many devices with a single  command. Updates can be deferred if needed.

    Phase 4: Dashboards (optional)

    Dashboard creation would be the last optional step. The goal is to create custom dashboards that help us manage and monitor the deployed devices. Once the first dashboard is created in phase 1, it’s easy to replicate it for multiple devices with Cloud CLI.

    Try it now

    Download and get started with the Cloud CLI and associated documentation.

    Website: LINK

  • Arduino CLI 0.23 makes your projects future-proof with Build Profiles

    Arduino CLI 0.23 makes your projects future-proof with Build Profiles

    Reading Time: 4 minutes
    Arduino CLI build profiles

    This new release of Arduino CLI delivers more than the usual bug fixes and performance enhancements. Today we’re delighted to bring you Build Profiles. These have been long in the works and we kept it a bit hush-hush despite releasing a public RFC a bit shy of a year ago.

    Build Profiles

    Sometimes Arduino users end up not being able to build and upload a Sketch after the project is completed, and this might be due to libraries changing an API, or cores having deprecated some parts in favor of a more modern approach.

    Legacy is the enemy of progress, and sometimes developers need to rip the band-aid off and break things. We see this all the time.

    Build Profiles aim at fixing this, and allow users of Arduino CLI to define a configuration file which contains the exact version of platforms and libraries to use, ensuring the project can be built at any time in the future.

    This relies on the libraries being part of the Arduino Library Registry and the platforms to be source-able by the Arduino CLI. All platforms developed by Arduino are available by default, but users can add additional URLs to their configuration and make sure the required platform can always be found and installed.

    For detailed documentation, take a look at the official Arduino CLI docs on GitHub. But let’s take a closer look at how it works so you can get started making your Arduino project future-proof.

    Arduino CLI 0.23

    How does this work?

    Let’s assume you have an Arduino IoT Cloud project running on an Arduino Nano RP2040 Connect that is based on the following:

    • Platform: Arduino Mbed OS Nano Boards 3.1.1
    • Libraries:
      • ArduinoIoTCloud 1.6.0
      • Arduino_ConnectionHandler 0.6.6
      • WiFiNINA 1.8.13
      • Arduino_DebugUtils 1.1.0
      • ArduinoECCX08 1.3.6
      • ArduinoMqttClient 0.1.5

    Your project will compile successfully, but what about five years from now?

    Libraries get updated. That’s the beauty of the open source philosophy that has made Arduino so popular and the same happens with platforms.

    Any dependency might discontinue an API or introduce other kinds of breaking changes, and your sketch may no longer compile. At that point, you won’t be able to upload it to a board.

    We can finally address this shortcoming by creating a Build Profile for the future.

    Let’s learn how to generate one and use it when the day comes.

    To create a Build Profile we need to know which libraries and platforms are used during compilation,, and such dependencies can be made available to the user when compiling using `arduino-cli` and adding `–dump-profile` to the `compile` command as follows.

    `arduino-cli compile -b arduino:mbed_nano:nanorp2040connect --dump-profile`

    Core platforms and libraries used during the build will be listed in the report at the end of the operation, and can be copied and saved into your Build Profile, but in the future you will be able to directly create a Profile entry from a `compile` directive so the leg work will not be required.

    Note that multiple profile configurations can be entered into the Build Profile and used at a later time.

    The output will look something like this.

    ```
    arduino-cli compile -b arduino:mbed_nano:nanorp2040connect --dump-profile Sketch uses 387234 bytes (2%) of program storage space. Maximum is 16777216 bytes.
    Global variables use 68868 bytes (25%) of dynamic memory, leaving 201468 bytes for local variables. Maximum is 270336 bytes. profile: nanorp2040connect: fqbn: arduino:mbed_nano:nanorp2040connect platforms: - platform: arduino:mbed_nano (3.0.1) libraries: - ArduinoIoTCloud (1.6.0) - Arduino_ConnectionHandler (0.6.6) - WiFiNINA (1.8.13) - Arduino_DebugUtils (1.1.0) - ArduinoECCX08 (1.3.6) - ArduinoMqttClient (0.1.5) ```

    Followed by a full report of dependencies and their paths on your system, which we will ignore in this guide.

    Creating a Build Profile

    Using the information above we can create a file named `sketch.yaml` and add the following content to it.

    ```
    profile: nanorp2040connect: fqbn: arduino:mbed_nano:nanorp2040connect platforms: - platform: arduino:mbed_nano (3.0.1) libraries: - ArduinoIoTCloud (1.6.0) - Arduino_ConnectionHandler (0.6.6) - WiFiNINA (1.8.13) - Arduino_DebugUtils (1.1.0) - ArduinoECCX08 (1.3.6) - ArduinoMqttClient (0.1.5) ```

    We can now rely on this file to compile our project even if we don’t have any of the libraries or the Mbed core installed by doing as follows:

    `arduino-cli compile --profile nanorp2040connect`

    This command will install the appropriate platforms and libraries and proceed to build your sketch into a working firmware for your board.

    You can add multiple profiles in the Project file and build with different versions of a platform or any library.

    When you store or distribute your sketch make sure your `sketch.yaml` file is also part of the archive, and you can have the sketch compiled cleanly at any time in the future. 

    No, we can’t do anything about the past, but you can spend some time upgrading your old projects and creating their own `sketch.yaml` file, which will make your work future-proof.

    Sit back, relax and watch out for Terminators coming back to hunt you down.

    Website: LINK

  • The new Arduino CLI 0.19.0 is out and better than ever!

    The new Arduino CLI 0.19.0 is out and better than ever!

    Reading Time: 2 minutes

    Arduino TeamSeptember 2nd, 2021

    There’s a truckload of news from the Arduino Tooling Team today: Arduino CLI 0.19.0 is now available! This release has tons of great enhancements, exciting new features and heaps of bug fixes. Some things required quite a bit of breaking changes but they’re worth the hassle.

    The highlights of this release are certainly the addition of pluggable discovery and the internal restructuring of the startup steps of the Arduino CLI. These affected the JSON output of some commands and the gRPC interface functions, which is documented in the upgrading guide.

    We’re really excited about the release of the pluggable discovery. This new feature will give platform developers the possibility to support more and more boards (such as the Teensy), and also new ways of uploading to boards, like via WiFi, Bluetooth, SSH, CAN bus and anything that comes to mind! If you’re a platform developer and want to know how to start supporting pluggable discovery take a look at the updated platform specification documentation.

    The internal restructuring is also no small thing, it makes the Arduino CLI much more resilient to errors. For example, if the user added an invalid or unreachable package index URL, Arduino CLI would previously be completely unusable. After this change, a warning is shown to notify the user of that failure and other functionality of Arduino CLI is unaffected. And last but not least this change greatly improves other tools as well, in some tests we managed to slice in half the startup time of the Arduino IDE 2.0!

    There are some breaking changes that only affect those that use the Arduino CLI code as a Go library. These were the result of improvements to the internal structures that store information about Sketches, and to the support for different languages. 

    As always, all breaking changes are documented in the upgrading guide. You will find the complete changelog here!

    Website: LINK

  • Arduino CLI 0.16.0 is ready for you all!

    Arduino CLI 0.16.0 is ready for you all!

    Reading Time: < 1 minute

    Arduino CLI 0.16.0 is ready for you all!

    Arduino TeamFebruary 15th, 2021

    This article was written by Silvano Cerza from the Arduino Tooling Team.

    Big news from the Arduino Tooling team: The new Arduino CLI version 0.16.0 has been released!

    You can now use arduino-cli core list –all to return all installed and installable platforms, including those installed manually in the Sketchbook hardware folder.

    We also have a breaking change to mention:

    7e1ff323 [breaking] Fix export binaries binding not working in gRPC interface (#1171)

    It’s in the CLI gRPC interface, so command line users should not be affected! You will find all the details in our handy upgrading guide.

    You can see the complete changelog here.

    Website: LINK

  • Detect problems with your Arduino projects

    Detect problems with your Arduino projects

    Reading Time: 4 minutes

    This article was written by Per Tillisch, Tooling Team SW Engineer at Arduino.

    The Arduino team created a tool to check Arduino projects for common problems. Arduino Lint runs over 175 checks on your sketches, libraries, and boards platforms which cover specification compliance, Library Manager submission requirements, and best practices.

    Arduino Lint is an easy to use, yet powerful, command line tool. Its focus is on the structure, metadata, and configuration of Arduino projects, rather than the code.

    Follow the installation instructions to get ready to use Arduino Lint: https://arduino.github.io/arduino-lint/latest/installation/

    Now you only need to open a terminal at your project folder and run the command: arduino-lint

    This will automatically detect the project type and check it against the relevant rules.

    The default configuration of Arduino Lint provides for the most common use cases, while offering the option to change settings via command line flags.

    Compliance setting

    The --compliance flag allows you to configure the strictness of the applied rules. The three compliance level values accepted by this flag are:

    • permissive – failure will occur only when severe rule violations are found. Although a project that passes at the permissive setting will work with the current Arduino development software versions, it may not be fully specification-compliant, risking incompatibility or a poor experience for the users.
    • specification –  the default setting, enforces compliance with the official Arduino project specifications (sketch, library, platform).
    • strict – enforces best practices, above and beyond the minimum requirements for specification compliance. Use this setting to ensure the best experience for the users of the project.

    Library Manager setting

    Arduino Library Manager is the best way to provide installation and updates of Arduino libraries. In order to be accepted for inclusion in Library Manager, a library is required to meet some requirements.

    Arduino Lint provides checks for these requirements as well, controlled by the --library-manager flag.

    The Library Manager submission-specific rules are enabled via --library-manager submit.

    Even if your library isn’t yet ready to be added to Library Manager, it’s a good idea to use this setting to ensure no incompatibilities are introduced.

    Once your library is in the Library Manager index, each release is automatically picked up and made available to the Arduino community. Releases are also subject to special rules. The command arduino-lint --library-manager update will tell you whether your library is compliant with these rules.

    Integration

    The --format flag configures the format of arduino-lint‘s output. The default --format text setting provides human readable output. For automation or integration with other tools, the machine readable output provided by --format json may be more convenient. This setting exposes every detail of the rules that were applied.

    The --report-file flag causes arduino-lint to write the JSON output to the specified file.

    Arduino Lint would be a great addition to your continuous integration system. Running the tool after each change to the project can allow you to identify any problems that were introduced.

    This is easily done by using the arduino/arduino-lint-action GitHub Actions action: https://github.com/arduino/arduino-lint-action

    Add a simple workflow file to the repository of your Arduino project and GitHub will automatically run Arduino Lint on every pull request and push.

    Will your project get a passing grade from Arduino Lint? There’s only one way to find out…

    Support and feedback

    You can discuss or get assistance with using Arduino Lint on the Arduino Forum.

    Feedback is welcome! Please submit feature requests or bug reports to the issue trackers:

    Website: LINK

  • arduino-cli 0.14.0 is out and ready for the public!

    arduino-cli 0.14.0 is out and ready for the public!

    Reading Time: 2 minutes

    arduino-cli 0.14.0 is out and ready for the public!

    Arduino TeamDecember 11th, 2020

    This article was written by Silvano Cerza from the Arduino Tooling team.

    It’s been a while, so this time around you’re in for a treat. Don’t forget to go through the list of breaking changes and the new upgrade guide, this might save you some headaches.

    Highlights for our latest release include:

    • Added flags to install libraries from a local zip file or git url
    • Added a `–clean` flag for the `compile` command
    • Added a `–dest-file` flag to the `config init` command
    • Better tracking of installed platforms
    • A few useful UX improvements
    • A bunch of bug fixes

    The complete changelog is available here!

    As you may know, the Arduino CLI is still in “alpha” state, meaning that the tool is under heavy development. This is the reason why here and there we still introduce some breaking changes:

    • Use debug “configurations” instead or “recipes” (#1033)
    • Local binaries export (a `build` folder in your sketch) must now be explicitly specified (#1042)
    • Programmers can’t be any longer listed using using the `burn-bootloader` programmers list flag (`-P list`) (#982)
    • `lib install –git-url` or `–zip-file` must now be explicitly enabled (#1075)

    Might seem like a lot, but not to worry! We’ve prepared an upgrade guide that you can find here.

    Website: LINK

  • CLI and IDE get better together

    CLI and IDE get better together

    Reading Time: 2 minutes

    CLI and IDE get better together

    Arduino TeamAugust 24th, 2020

    This article was written by Silvano Cerza and Ubi de Feo from the Arduino Tooling team.

    Over the past two months our newly established Tooling Team has taken over operations concerning the Arduino CLI and Pro IDE.

    We’ve been silent at work in our little rooms, striving to come up with solutions to reported issues and feature requests.

    As time went on, the development of the CLI and Pro IDE has been moving forward in a parallel fashion, so here we bring you new versions of both applications for you to play with and build your workflows around.

    arduino-cli 0.12.0

    The new Arduino CLI is alive and kicking!

    Highlights for this release include:

    • We introduced high-level update, outdated, upgrade commands to make arduino-cli more package manager like
    • Package index is now downloaded automatically at first run
    • Custom post-installation scripts can now be executed safely (3rd party cores will issue non blocking warnings)
    • Slight but useful UX improvements
    • Bugfixes
    • Security bugfixes

    Remember, we have CLI nightly builds if you want to stay updated on the latest features!

    Release link

    Arduino Pro IDE

    The Arduino Pro IDE is now better than ever! The team squeezed out a very juicy release, enough to skip ahead in the version numbers and jump from 0.0.6 to 0.1.0.

    Highlights for this release include:

    • Updated the bundled CLI version to ‘0.12.0’
    • Reworked the menu organization
    • Added support for upload using external programmers
    • UI bugfixes aplenty

    We are pleased to announce that from now on we have nightly builds available if you want to try out the latest features (and bugfixes). They can be found at the links below depending on your preferred operating system:

    Release link

    Website: LINK

  • The three pillars of the Arduino CLI

    The three pillars of the Arduino CLI

    Reading Time: 5 minutes

    The Arduino CLI is an open source command line application written in Golang that can be used from a terminal to compile, verify and upload sketches to Arduino boards, and that’s capable of managing all the software and tools needed in the process. But don’t get fooled by its name: the Arduino CLI can do much more than the average console application, as shown by the Pro IDE and Arduino Create, which rely on it for similar purposes but each one in a completely different way from the other.

    In this article, we introduce the three pillars of the Arduino CLI, explaining how we designed the software so that it can be effectively leveraged under different scenarios.

    Console applications for humans

    As you might expect, the first way to use the Arduino CLI is from a terminal and by a human, and user experience plays a key role here. The UX is under a continuous improvement process as we want the tool to be powerful without being too complicated. We heavily rely on sub-commands to provide a rich set of different operations logically grouped together, so that users can easily explore the interface while getting very specific contextual help.

    Console applications for robots

    Humans are not the only type of customers we want to support and the Arduino CLI was also designed to be used programmatically — think about automation pipelines or a CI/CD system. 

    There are some niceties to observe when you write software that’s supposed to be easy to run when unattended and one in particular is the ability to run without a configuration file. This is possible because every configuration option you find in the arduino-cli.yaml configuration file can be provided either through a command line flag or by setting an environment variable. To give an example, the following commands are all equivalent and will proceed fetching the unstable package index that can be used to work with experimental versions of cores: 

    See the documentation for details about Arduino CLI’s configuration system.

    Consistent with the previous paragraph, when it comes to providing output the Arduino CLI aims to be user friendly but also slightly verbose, something that doesn’t play well with robots. This is why we added an option to provide output that’s easy to parse. For example, the following figure shows what getting the software version in JSON format looks like.

    Even if not related to software design, one last feature that’s worth mentioning is the availability of a one-line installation script that can be used to make the latest version of the Arduino CLI available on most systems with an HTTP client like curl or wget and a shell like bash.

    gRPC is a high-performance RPC framework that can efficiently connect client and server applications. The Arduino CLI can act as a gRPC server (we call it daemon mode), exposing a set of procedures that implement the very same set of features of the command line interface and waiting for clients to connect and use them. To give an idea, the following is some Golang code capable of retrieving the version number of a remote running Arduino CLI server instance:

    gRPC is language-agnostic: even if the example is written in Golang, the programming language used for the client can be Python, JavaScript or any of the many supported ones, leading to a variety of possible scenarios. The new Arduino Pro IDE is a good example of how to leverage the daemon mode of the Arduino CLI with a clean separation of concerns: the Pro IDE knows nothing about how to download a core, compile a sketch or talk to an Arduino board and it demands all these features of an Arduino CLI instance. Conversely, the Arduino CLI doesn’t even know that the client that’s connected is the Pro IDE, and neither does it care.

    The Arduino CLI is written in Golang and the code is organized in a way that makes it easy to use it as a library by including the modules you need in another Golang application at compile time. Both the first and second pillars rely on a common Golang API, a set of functions that abstract all the functionalities offered by the Arduino CLI, so that when we provide a fix or a new feature, they are automatically available to both the command line and gRPC interfaces. 

    The source modules implementing this API can be imported in other Golang programs to embed a full-fledged Arduino CLI. For example, this is how some backend services powering Arduino Create can compile sketches and manage libraries. Just to give you a taste of what it means to embed the Arduino CLI, here is how to search for a core using the API:

    Embedding the Arduino CLI is limited to Golang applications and requires a deep knowledge of its internals. For the average use case, the gRPC interface might be a better alternative; nevertheless this remains a valid option that we use and provide support for.

    You can start playing with the Arduino CLI right away. The code is open source and we provide extensive documentation. The repo contains example code showing how to implement a gRPC client, and if you’re curious about how we designed the low-level API, have a look at the commands package and don’t hesitate to leave feedback on the issue tracker if you’ve got a use case that doesn’t fit one of the three pillars.

    Website: LINK

  • The Arduino CLI just got some new exciting features

    The Arduino CLI just got some new exciting features

    Reading Time: 3 minutes

    The arduino-cli tool just got some new exciting features with the release of 0.11.0:

    • Command-line completion
    • External programmer support
    • Internationalization and localization support (i18n)

    Command-line completion

    Finally, the autocompletion feature has landed!

    With this functionality, the program automatically fills in partially typed commands by pressing the tab key. For example, with this update, you can type arduino-cli bo:

    And, after pressing the <TAB> key, the command will auto-magically become: 

    There are a few steps to follow in order to make it work seamlessly. We have to generate the required file — to do so, we have added a new command named “completion.” 

    To generate the completion file, you can use:

    By default, this command will print on the standard output (the shell window) the content of the completion file. To save to an actual file, use the “>” redirect symbol. Now you can move it to the required location (it depends on the shell you are using). Remember to open a new shell! Finally, you can press <TAB><TAB> to get the suggested command and flags.

    In a future release, we will also be adding the completion for cores names, libraries, and boards.

    Example with Bash (from the documentation)

    To generate the completion file, use:

    At this point, you can move that file in /etc/bash_completion.d/ (root access is required) with:

    A not recommended alternative is to source the completion file in .bashrc.

    Remember to open a new shell to test the functionality.

    External programmer

    Another brand new feature is support for external programmers!

    Now you can specify the external programmer to use when uploading code to a board. For example, you can use arduino-cli upload …. –programmer programmer-id for that. You can list the supported programmers with arduino-cli upload –fqbn arduino:avr:uno –programmer list.

    And if you’re using the external programmer to burn a bootloader, you can do that from arduino-cli as well: arduino-cli burn-bootloader –fqbn …

    Internationalization and localization support

    Now the Arduino CLI messages can be translated to your native language thanks to i18n support! We are currently setting up the infrastructure; however, if you would like to help us with the translation, we will provide you more details in another blog post soon!

    That’s all folks!

    That’s it, we’ve worked hard to add these new features. Check them out by downloading 0.11.0 here. Do you like them? What are your thoughts on the arduino-cli? Are you using it for your projects? Let us know in the comments!

    Website: LINK

  • Hands-on with the Arduino CLI!

    Hands-on with the Arduino CLI!

    Reading Time: < 1 minute

    Hands-on with the Arduino CLI!

    Arduino TeamApril 23rd, 2020

    In our last post, we told you that the Arduino CLI’s primary goal is to provide a flexible yet simple command line tool with all the features and ease of use that made Arduino a successful platform, and enable users to find new ways of improving their workflows. 

    The Arduino CLI is not just a command line tool, but contains all you need to build applications around the Arduino ecosystem.

    For example, you can:

    • Parse the JSON output of the CLI and easily integrate it into your custom application.
    • Run the CLI as an always-on service that accepts commands via a gRPC interface using your language of choice.
    • Use the CLI in your Go application as a library.

    In the video below, we’ll focus on how to start using the Arduino CLI in a terminal session. The tutorial will walk you through setting up all the required tools on your machine to the fastest way to compile and upload a sketch on your target board to allow quick iterations in developing your project with Arduinos.

    [youtube https://www.youtube.com/watch?v=J-qGn1eEidA?feature=oembed&w=500&h=281]

    Website: LINK

  • arduino-cli 0.10.0 is out!

    arduino-cli 0.10.0 is out!

    Reading Time: < 1 minute

    arduino-cli 0.10.0 is out!

    Arduino TeamApril 16th, 2020

    The Arduino CLI is steady as she goes! The team is constantly fixing issues and modeling the user experience thanks to the community’s feedback.

    Highlights for this release include:

    • board attach‘ command now also supports the upload port for an easier sketch upload
    • Minor UX improvements
    • Bugfixes

    You can see the full list of changes here. We have also just opened a CLI dedicated forum section. Please check it out!

    Website: LINK

  • arduino-cli 0.8.0 is here!

    arduino-cli 0.8.0 is here!

    Reading Time: < 1 minute

    arduino-cli 0.8.0 is here!

    Arduino TeamFebruary 14th, 2020

    Our dev team is grateful for the high quality contributions that the project is receiving, and is working hard to collect all the lovely feedback we have received to shape the Arduino CLI into the best tool possible for the community!

    Highlights of our latest release include:

    • Resource usage improvements
    • Better libraries handling
    • Bug fixing

    You can see the full list of changes here.

    Website: LINK

  • arduino-cli 0.7.0 is out!

    arduino-cli 0.7.0 is out!

    Reading Time: < 1 minute

    arduino-cli 0.7.0 is out!

    Arduino TeamDecember 20th, 2019

    Our dev team is about to kick off their holiday breaks, but not without sharing some exciting news first: the release of arduino-cli 0.7.0!

    Highlights include:

    • Notarization compliance for macOS
    • Some breaking changes:
      • Remove Sketchbook concept, introduce user data folder
      • “lib list” now returns an empty JSON array when there are no libraries installed
      • Change configuration file format
      • Terminate daemon command when parent process exits; added “–daemonize” flag to keep old behavior
    • Added a lot of bugfixing and minor features

    The latest version will be available on the other distribution channels (i.e. Homebrew) in the coming days. Stay tuned!

    Website: LINK

  • Announcing the Arduino Command Line Interface (CLI)

    Announcing the Arduino Command Line Interface (CLI)

    Reading Time: 3 minutes

    [youtube https://www.youtube.com/watch?v=3vtIisvxewc?feature=oembed&w=500&h=375]

    The Arduino team has been working hard to support the needs of our professional developer community. Many of you requested a way to use our tools in Makefiles, and wanted Arduino IDE features available via a fast, clean command line interface.  How cool would it be to install project dependencies with:

    arduino-cli lib install "WiFi101” “WiFi101OTA”

    So that’s what we’ve done! To make it even cooler, most Arduino CLI commands have the option to output JSON for easy parsing by other programs:

    arduino-cli --format json lib search wifinina | jq
    {
 "libraries": [
    {
 "Name": "WiFiNINA",
 "Author": "Arduino",
 "Maintainer": "Arduino <info@arduino.cc>",
 "Sentence": "Enables network connection (local and Internet) with the Arduino MKR WiFi 1010, Arduino MKR VIDOR 4000 and Arduino UNO WiFi Rev.2.",
 "Paragraph": "With this library you can instantiate Servers, Clients and send/receive UDP packets through WiFi. The board can connect either to open or encrypted networks (WEP, WPA). The IP address can be assigned statically or through a DHCP. The library can also manage DNS.",
 "Website": "http://www.arduino.cc/en/Reference/WiFiNINA",
 "Category": "Communication",
 "Architectures": [
 "*"
    ],
 "types": [
 "Arduino"
    ],
 "releases": {
 "1.0.0": {
 "version": "1.0.0",
 "resource": {
 "URL": "http://downloads.arduino.cc/libraries/github.com/arduino-libraries/WiFiNINA-1.0.0.zip",
 "ArchiveFileName": "WiFiNINA-1.0.0.zip",
 "Checksum": "SHA-256:79f133fedf86411ca7add773a4293137dec057a3b8f1a7904db2d444ed8f4246",
 "Size": 65651,
 "CachePath": "libraries"
    }
    }
    },
 "Folder": null,
 "SrcFolder": null,
 "UtilityFolder": null,
 "Layout": 0,
 "RealName": "",
 "DotALinkage": false,
 "Precompiled": false,
 "LDflags": "",
 "IsLegacy": false,
 "Version": "",
 "License": "",
 "Properties": null
    }
    ]
    }

    The other big news is you can run Arduino CLI on both ARM and Intel (x86, x86_64) architectures. This means you can install Arduino CLI on a Raspberry Pi or on your servers, and use it to compile Sketches targeting the board of your choice (Don’t forget you can also remotely manage your Linux device with Arduino Create Device Manager!)

    Getting Started

    This first release is an alpha, and we would like your feedback to help us improve it. You can download the Arduino CLI alpha preview binaries from:

    Linux (64-bit): https://downloads.arduino.cc/arduino-cli/0.1.0-alpha.preview/arduino-cli-0.1.0-alpha.preview-linux64.tar.bz2

    Linux (32-bit): https://downloads.arduino.cc/arduino-cli/0.1.0-alpha.preview/arduino-cli-0.1.0-alpha.preview-linux32.tar.bz2

    Linux (ARM): https://downloads.arduino.cc/arduino-cli/0.1.0-alpha.preview/arduino-cli-0.1.0-alpha.preview-linuxarm.tar.bz2

    OSX: https://downloads.arduino.cc/arduino-cli/0.1.0-alpha.preview/arduino-cli-0.1.0-alpha.preview-osx.zip

    Windows: https://downloads.arduino.cc/arduino-cli/0.1.0-alpha.preview/arduino-cli-0.1.0-alpha.preview-windows.zip

    Once you’ve installed Arduino CLI, you can try it out using our getting started guide: https://github.com/arduino/arduino-cli#getting-started

    The Arduino CLI code repository is also available at: https://github.com/arduino/arduino-cli. As usual, it’s open source – but if you’re a company who wants to use it to create a customized tool, you can also contact us for a commercial license.

    Integrate Arduino Support Into Your Preferred Platform

    After we used Arduino CLI for awhile, we decided to make it the standard way our software communicates. Imagine having the Arduino IDE or Arduino Create Editor speaking directly to Arduino CLI – and you having full control of it. You will be able to compile on your machine or on our online servers, detect your board or create your own IDE on top of it!

    We want you to be able to add Arduino support to whatever development flow you prefer. Whether you use Atom, Eclipse, Emacs, Vim, VSCode, or are even building your own tools, Arduino CLI makes this possible. Let us know what you think!

    Website: LINK