Skip to content

Releases: arduino/ArduinoCore-mbed

Release 2.4.1

11 Aug 15:58
dee489f
Compare
Choose a tag to compare

Core

Rebuild variants on mbed 6.13
RP2040: support led indication when the core crashes

Libraries

PDM: fix glitches RP2040
Networking: introduce SocketWrapper library and derive WiFi/Ethernet from it
This makes much easier to port any networking class to Arduino APIs
SocketWrapper: make available() non blocking

Bootloaders

Update Nano33BLE updateBootloader sketch

Release 2.3.1

14 Jul 13:30
Compare
Choose a tag to compare

Core

Rebuild variants on mbed 6.12

analogWrite() for Portenta doesn't crash anymore on HRTIM pins (eg. pin 3).

  • The default frequency of the PWM on such pins is 720Hz

Serial: properly protect ringbuffer access

Libraries

PDM: fix gain on RP2040
WiFi: refactor to match new mbed-os APIs

Extra

Restore functionality as mbed library (sample project in the comment here )

Release 2.2.0

05 Jul 12:54
Compare
Choose a tag to compare

Core

Allow UART constructors in both PinName and pin number
Fix Arduino.h inclusion in C files
Nano33BLE: Fix pins 0 / 1 not usable as GPIOs
RP2040: fix watchdog behaviour
RP2040: avoid implicit conversion from NinaPin to int (LEDR, LEDG, LEDB) [1]

Libraries

Add Nano33_updateBootloader sketch to support SoftDevices
PDM: Correct default gain for Portenta
PDM: Run clock at 2.08MHz on RP2040
Fix OTA second stage bootloader for Nano RP2040 Connect (SFU)

Examples

MultipleBlinks: fix Nano RP2040 Connect build

[1]
These leds are connected to the ESP32 module, so using them in digitalWrite() is transparent unless the values are cast to int.
In this case, an explicit error will be raised, explaining how to fix the problem,

Release 2.1.0

17 May 10:33
Compare
Choose a tag to compare

Core

RP2040: improve the overall user experience
RP2040: fix some relevant bugs (complete list here https://github.com/ARMmbed/mbed-os/pull/14488/commits)
USBSerial: speedup operations and tackle corner cases

Libraries

PDM: rationalize gain() and buffer size
Ethernet: fix library discovery on case insensitive platforms
Wire: fix I2C scan

Extra

Update openocd to its latest release (fixes a bug with nRF52)

Release 2.0.0

08 Apr 16:27
Compare
Choose a tag to compare

New targets!

Arduino Nano RP2040 Connect
Raspberry Pi Pico

RP2040 support to be mainlined as ARMmbed/mbed-os#14488

Libraries

SDCard: Fix reliability on Portenta H7 when used with WiFi
PDM: improve library for Portenta (Vision Shield): now it handles stereo, mono and a lot of sample rates
Portenta Camera (Vision Shield): implement motion detection, faster crop, better examples
Portenta Video: implement HDMI cable detect (hotplug)
Ethernet: port Arduino APIs to Portenta PHY
WiFi: improve compatibility with WiFiNINA examples
Wire: fix slave operations
ThreadDebug: add support for Nano 33 BLE

Core

Use a timer with microsecond resolution for micros()
Allow deepest sleep if USB is unused
USB: support runtime speed detection for Portenta
[BREAKING] Speedup compilation by making singletons opaque [1]
Add all the available pins for Portenta H7 (Breakout Carrier)
SerialUSB: fix race condition on rx_buffer
SerialUSB: support line coding APIs
Update underlying mbed-os to 6.9.0

Extra

Improve packaging scripts by splitting the core into families [1]
Update openocd and dfu-util to their latest releases

[1] Breaking changes:

Following a broad community request, we targeted two pain point of existing core:

  • installation speed
  • compilation speed

They are both very noticeable on Windows platforms, where file access is much slower and the antivirus can potentially check every file being compiled.

To fix the first, we removed debugging information from libmbed.a (to make the final library much smaller) and we split the core into different packages. This only happens at release time, if you are developing nothing changes.
Debugging information are being added back when compiling the user sketch, so IDE 2.0 users will be able to debug proficiently.
If you are interested in debugging the mbed internals, just run
./mbed-os -a TARGET_BOARD:TARGET_BOARD after removing 0001-PACKAGING-remove-gdb-exta-information-to-slim-librar.patch from patches folder and this will recreated a debuggable (and bigger) libmbed.a

To fix the slow compilation, we invested some time in profiling what was going on when g++ was called. It turns out that most of the time was spent parsing and resolving Callback.h from mbed-os. Since most of the drivers are including it, Arduino.h was "tainted". The solution we applied involves not including directly the headers, but only "stubs", and provide the object definition in a cpp file. This way, only that file will be compiled slowly and not the whole core.
This creates, however, a bunch of incompatibilities with older code, notably:

  • SerialUSB does not inherit from mbed::FileHandle anymore
    • you can't call printf or redirect stdout to it directly
      FIX: use REDIRECT_STDOUT_TO(Serial) macro as usual
  • Using mbed internal APIs may result in compile time errors
    FIX: always explicitely include mbed headers when using an mbed class

As always, feel free to report any bug you may find!

Release 1.3.2

04 Feb 10:51
a2c06d7
Compare
Choose a tag to compare

Bugfixes and improvements since 1.3.1

PluggableUSB: fix drivers issues on Windows when changing USB device type
Fix and improve Portenta_Camera driver
WiFi: support download() on both HTTP and HTTPS schemes

Release 1.3.1

04 Jan 15:32
Compare
Choose a tag to compare

Bugfixes and improvements since 1.3.0

Generic

  • analogWrite: delete pwm object if duty < 0 (useful on nRF52 since PWMs are limited)
  • USBSerial: fix sending more than CDC_MAX_PACKET_SIZE in a single shot
  • Tone: allow pitches higher than 500Hz

Portenta

  • Port PluggableUSBMSD (allows exposing any mass storage medium over USB)
  • WiFi: fix AccessPoint functionlity
  • CM4: route Serial object to UART1

Release 1.3.0

12 Oct 12:07
Compare
Choose a tag to compare

Bugfixes and improvements since 1.2.2

  • Various fixes on WiFi library

    • WiFi firmware is now stored in external QSPI flash
    • SSL certificates are stored in external QSPI flash too
    • Please run PortentaWiFiFirmwareUpdater sketch once to setup your board
  • Allow a second USBSerial port

    • This port can be used to redirect ThreadDebug calls while keeping Serial functional
      #include <ThreadDebug.h>
      
      USBSerial SerialUSB1(false, "DebugPort");
      UsbDebugCommInterface  debugComm(&SerialUSB1);
      ThreadDebug            threadDebug(&debugComm, DEBUG_BREAK_IN_SETUP);
      
  • Fix and improve Portenta Camera library

  • Bootloader:

    • Fix frequent upload failures on various USB configurations
    • Handle double tap more consistently
    • Use full 96 bit UID as iSerial field
    • Improve getBootloaderInfo and updateBootloader sketches to contain more reliable information
  • RPC:

    • Introduce SerialRPC library (experimental)
    • Optimize the library for speed and to use less resources
  • Fix interrupts not being fired on Portenta_H7_M4