Skip to content

Pr delta calc - #14

Draft
pillo79 wants to merge 217 commits into
mainfrom
pr-delta-calc
Draft

pillo79 wants to merge 217 commits into
mainfrom
pr-delta-calc

Conversation

@pillo79

@pillo79 pillo79 commented Sep 22, 2026

Copy link
Copy Markdown
Owner

No description provided.

gibix and others added 30 commits June 17, 2026 15:02
Signed-off-by: Gilberto Conti <g.conti@arduino.cc>
Arduino_RouterBridge 0.4.3 fixes maximum buffer size for udp and tcp client implementations
Squash change that includes PRs arduino#482 arduino#483 arduino#484 arduino#485 arduino#486.

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
Force a version update of the xz dependency to v0.5.15 in the go.mod
file of the sync-zephyr-artifacts tool to fix the following issue with
v0.5.14 when building on darwin/arm64:

   lzma/reader.go:33:15: cannot use 1 << 31 (untyped int constant
                         2147483648) as int value in assignment
			 (overflows)

See ulikunitz/xz#65 .
unoq: silence bogus error if loader/sketch needs reflashing
Needed for automatic loader updates on USB-based boards.
tools: require arduino/scripting-tools 0.0.7
docs: correct typos and improve clarity in documentation files
json: unoq: update Arduino_RouterBridge to 0.4.3
Escape double quotes and backslashes everywhere in the JSON output of
get_board_details.sh to ensure that the output is a valid JSON.
Rewrite get_core_version.sh to properly separate each version component
during processing. Export a Zephyr-compatible VERSION file if a filename
is provided as the first argument.
Add the possibility of writing to platform.local.txt instead of
boards.local.txt when the board variable is not set. This allows for
global configuration settings that are not specific to any particular
board to be saved.
The build.sh script now saves the build version to loader/VERSION (so it
is picked up by the Zephyr build system) and updates the version field
in both platform.local.txt and boards.local.txt.

To ensure multiple boards share the same version, the build_all.sh
script exports a global PINNED_CORE_VERSION environment variable so that
get_core_version.sh can use it instead of generating a new version for
each run.
This is step 1. for automatic flash of the loader if the onboard version
is different from the one shipped with the core: passing the current
build version in the USB descriptor as iConfig, so that it is available
on the host side to check if the loader needs to be reflashed.

For the legacy USB stack, the version is passed to USB drivers directly
via the Kconfig option CONFIG_USB_CONFIGURATION_STRING_DESC.
Boards using the new USB stack, like the Portenta C33, set this value
via the USBD_DESC_CONFIG_DEFINE macro instead.
Add generic 'upload.artifacts.loader' and 'upload.artifacts.sketch'
variables to platform.txt to allow for cleaner upload patterns and
explicit file dependencies.

Remove 'stm32flash' and 'adb' upload patterns, as they are not used by
any of the supported boards. Also remove any '.erase' patterns, as all
of them were empty anyway.
Switching to this core requires an updated bootloader.
Since it will be flashed only if needed, the procedure is now:

* Double click reset to enter bootloader mode
* Burn bootloader
* Wait until the blue led starts flashing
* Double click reset to enter bootloader mode again
* Upload sketch
For boards that have soft USB, use the new 'scripting-tools' tool to
check the USB configuration string reported by the board. If it does not
match the expected version, reflash the bootloader before uploading the
sketch.

Refactor loader and sketch commands so they can be reused in both the
bootloader and upload patterns. Note that {loader.cmd} should leave the
target waiting for the sketch upload, and additional arguments are
passed to the loader command depending on whether the sketch will be
flashed in the same session or not.

Convert the bossac tool to use the new loader/sketch commands, and
remove the old upload/bootloader patterns.
Requires a new version of rp2040tool that:

- includes the option to skip the final RESET of the CPU
- accepts .uf2 files without always adding the extension

Add missing artifact with the new version.
Bootloader VID/PID and upload/bootloader interfaces are not used if the
upload tool is not DFU, so remove those extra fields.
- nicla_vision: 0x005b was copied from portenta H7
- portentac33: add bootloader USB information
- ek_ra8d1: use VID/PID from Renesas bootloader mode
- frdm_mcxn947, frdm_rw612: set open source VID/PIDs
- Remove redundant legacy <board>.vid/pid entries (in IDE 2.x they are
  used as a fallback for when the new <board>.upload_port.0.vid/pid
  for pluggable discovery aren't defined).

- To minimize the repetitions, define a set of default values in
  platform.txt that can be overridden by the boards:

  - {bootloader.vid/pid} is set to {upload_port.0.vid/pid}, for boards
    that do not switch to a different state after the connection

  - {upload.vid/pid} is set to {bootloader.vid/pid}, because that is the
    most common case where flashing is done by the bootloader.

  This requires boards to only provide the upload_port.0.vid/pid values,
  and optionally override the {bootloader.pid} values if it differs.

- Remove entries that duplicate the above defaults.
Enable CONFIG_DYNAMIC_THREAD (+ its required CONFIG_THREAD_STACK_INFO dependency) with CONFIG_DYNAMIC_THREAD_ALLOC=y and no static pool, so runtime thread stacks (k_thread_stack_alloc) are allocated from the system heap (CONFIG_HEAP_MEM_POOL_SIZE) rather than a fixed build-time pool.
Freshen up the README to reflect the current state of the project and
remove outdated information. Updated instructions for installation,
first use, and troubleshooting. Added acknowledgments for contributors.
pennam and others added 13 commits September 1, 2026 12:58
Arduino_LED_Matrix: add missing include guard
Signed-off-by: Daniele Cloralio <d.cloralio@arduino.cc>
Signed-off-by: Daniele Cloralio <d.cloralio@arduino.cc>
libraries: WiFi: add firmware version support
libraries: WiFi: add documentation for esp32 reflash
boards: giga/portentah7; change dmas to use 1 not 0
misc: export k_work cancel APIs and ignore generated files
moved sketch header outside of loader main, in order to favor reuse of
that code section, it can then be used by the sketch itself for ota

Signed-off-by: Andrea Gilardoni <a.gilardoni@arduino.cc>
loader: sketch_header: moved sketch header
@github-actions

Copy link
Copy Markdown

Memory usage change @ 8e2365f

Board flash % RAM for global variables %
arduino:zephyr:unoq:link_mode=dynamic 🔺 +11904 - +13896 +0.08 - +0.19 🔺 +8046 - +9936 +0.15 - +0.36
arduino:zephyr:unoq:link_mode=static 🔺 +3012 - +4864 +0.03 - +0.15 🔺 +5016 - +6048 +0.84 - +2.98
arduino:zephyr_contrib:ek_ra8d1:link_mode=dynamic 🔺 +624 - +624 +0.09 - +0.09 🔺 +20 - +20 +0.04 - +0.04
arduino:zephyr_contrib:ek_ra8d1:link_mode=static 🔺 +20 - +20 +0.02 - +0.02 🔺 +496 - +496 +1.12 - +1.12
arduino:zephyr_contrib:frdm_mcxn947:link_mode=dynamic 🔺 +4156 - +4156 +0.33 - +0.33 🔺 +4780 - +4780 +1.78 - +1.78
arduino:zephyr_contrib:frdm_mcxn947:link_mode=static 🔺 +1088 - +1088 +0.43 - +0.43 🔺 +4388 - +4388 +5.48 - +5.48
arduino:zephyr_contrib:frdm_rw612:link_mode=dynamic 🔺 +3524 - +3524 +0.25 - +0.25 🔺 +2806 - +2806 +0.93 - +0.93
arduino:zephyr_contrib:frdm_rw612:link_mode=static 🔺 +1000 - +1000 +0.23 - +0.23 🔺 +2192 - +2192 +4.38 - +4.38
arduino:zephyr_main:giga:link_mode=dynamic ❔ -35544 - +16424 -0.08 - +0.48 ❔ -27320 - +12982 -0.12 - +2.56
arduino:zephyr_main:giga:link_mode=static ❔ -36768 - +4224 -0.12 - +0.59 🔺 +9216 - +10244 +0.12 - +4.94
arduino:zephyr_main:nano33ble:link_mode=dynamic 🔺 +3276 - +3804 +0.03 - +0.23 🔺 +4640 - +5134 +0.14 - +1.69
arduino:zephyr_main:nano33ble:link_mode=static 🔺 +900 - +1380 +0.03 - +0.35 🔺 +3312 - +4356 +0.7 - +3.87
arduino:zephyr_main:nano_connect:link_mode=dynamic 🔺 +3500 - +3908 +0.03 - +0.27 🔺 +8590 - +8987 +0.23 - +2.67
arduino:zephyr_main:nano_connect:link_mode=static 🔺 +1028 - +1368 +0.03 - +0.39 🔺 +7632 - +8656 +2.16 - +5.34
arduino:zephyr_main:nano_matter:link_mode=dynamic 🔺 +332 - +968 0.0 - +0.05 ❔ -18 - +2396 -0.02 - +0.73
arduino:zephyr_main:nano_matter:link_mode=static ❔ -224 - +444 -0.08 - +0.01 🔺 +504 - +2552 +1.1 - +2.52
arduino:zephyr_main:nicla_sense:link_mode=dynamic 🔺 +508 - +808 +0.01 - +0.09 🔺 +20 - +2112 +0.03 - +0.84
arduino:zephyr_main:nicla_sense:link_mode=static 🔺 +20 - +210 0.0 - +0.04 ❔ -408 - +1640 -0.51 - +2.01
arduino:zephyr_main:nicla_vision:link_mode=dynamic 🔺 +4536 - +18220 +0.01 - +0.63 🔺 +8576 - +11174 +0.12 - +2.42
arduino:zephyr_main:nicla_vision:link_mode=static 🔺 +1076 - +4436 0.0 - +0.68 🔺 +7168 - +8196 +0.1 - +7.9
arduino:zephyr_main:opta:link_mode=dynamic 🔺 +3428 - +17160 0.0 - +0.74 🔺 +6620 - +9190 +0.1 - +2.34
arduino:zephyr_main:opta:link_mode=static 🔺 +968 - +4268 0.0 - +0.73 🔺 +6144 - +6148 +0.07 - +5.95
arduino:zephyr_main:portentac33:link_mode=dynamic ❔ -16 - +13624 -0.01 - +0.41 🔺 +9612 - +12188 +0.13 - +2.11
arduino:zephyr_main:portentac33:link_mode=static 🔺 +16 - +3360 0.0 - +0.44 🔺 +9652 - +10680 +0.11 - +5.07
arduino:zephyr_main:portentah7:link_mode=dynamic ❔ -35024 - +16988 -0.08 - +0.55 ❔ -24404 - +15394 -0.11 - +3.5
arduino:zephyr_main:portentah7:link_mode=static ❔ -36222 - +4248 -0.12 - +0.62 🔺 +12276 - +13312 +0.14 - +12.84
Click for full report table
Board arduino-examples 01.Basics/AnalogReadSerial
flash
% arduino-examples 01.Basics/AnalogReadSerial
RAM for global variables
% arduino-examples 01.Basics/Blink
flash
% arduino-examples 01.Basics/Blink
RAM for global variables
% arduino-examples 04.Communication/SerialPassthrough
flash
% arduino-examples 04.Communication/SerialPassthrough
RAM for global variables
% ArduinoBLE Central/LedControl
flash
% ArduinoBLE Central/LedControl
RAM for global variables
% ArduinoBLE Central/Scan
flash
% ArduinoBLE Central/Scan
RAM for global variables
% ArduinoBLE Peripheral/Advertising/EnhancedAdvertising
flash
% ArduinoBLE Peripheral/Advertising/EnhancedAdvertising
RAM for global variables
% ArduinoBLE Peripheral/ButtonLED
flash
% ArduinoBLE Peripheral/ButtonLED
RAM for global variables
% Arduino_JSON JSONArray
flash
% Arduino_JSON JSONArray
RAM for global variables
% Arduino_JSON JSONKitchenSink
flash
% Arduino_JSON JSONKitchenSink
RAM for global variables
% Arduino_JSON JSONObject
flash
% Arduino_JSON JSONObject
RAM for global variables
% Arduino_JSON JSONValueExtractor
flash
% Arduino_JSON JSONValueExtractor
RAM for global variables
% Arduino_LED_Matrix Basic
flash
% Arduino_LED_Matrix Basic
RAM for global variables
% Arduino_LED_Matrix Reflash_Bootanimation
flash
% Arduino_LED_Matrix Reflash_Bootanimation
RAM for global variables
% Arduino_LED_Matrix Video
flash
% Arduino_LED_Matrix Video
RAM for global variables
% Arduino_RPClite rpc_lite_client
flash
% Arduino_RPClite rpc_lite_client
RAM for global variables
% Arduino_RPClite rpc_lite_server
flash
% Arduino_RPClite rpc_lite_server
RAM for global variables
% Arduino_RouterBridge client
flash
% Arduino_RouterBridge client
RAM for global variables
% Arduino_RouterBridge hci
flash
% Arduino_RouterBridge hci
RAM for global variables
% Arduino_RouterBridge monitor
flash
% Arduino_RouterBridge monitor
RAM for global variables
% Arduino_RouterBridge server
flash
% Arduino_RouterBridge server
RAM for global variables
% Arduino_RouterBridge udp_ntp_client
flash
% Arduino_RouterBridge udp_ntp_client
RAM for global variables
% CAN CANEvent
flash
% CAN CANEvent
RAM for global variables
% CAN CANRead
flash
% CAN CANRead
RAM for global variables
% CAN CANWrite
flash
% CAN CANWrite
RAM for global variables
% M95M01 M95M01_test
flash
% M95M01 M95M01_test
RAM for global variables
% RTC AlarmRTC
flash
% RTC AlarmRTC
RAM for global variables
% RTC CalibrationRTC
flash
% RTC CalibrationRTC
RAM for global variables
% RTC SimpleRTC
flash
% RTC SimpleRTC
RAM for global variables
% Arduino_GigaDisplayTouch Touch_IRQ
flash
% Arduino_GigaDisplayTouch Touch_IRQ
RAM for global variables
% Arduino_GigaDisplayTouch Touch_Polling
flash
% Arduino_GigaDisplayTouch Touch_Polling
RAM for global variables
% Arduino_SecureElement CertificateSigningRequest
flash
% Arduino_SecureElement CertificateSigningRequest
RAM for global variables
% Arduino_SecureElement ConfigurationLocking
flash
% Arduino_SecureElement ConfigurationLocking
RAM for global variables
% Arduino_SecureElement RandomNumber
flash
% Arduino_SecureElement RandomNumber
RAM for global variables
% Arduino_SecureElement SelfSignedCertificate
flash
% Arduino_SecureElement SelfSignedCertificate
RAM for global variables
% Arduino_Video ArduinoLogo
flash
% Arduino_Video ArduinoLogo
RAM for global variables
% Arduino_Video ArduinoLogoDrawing
flash
% Arduino_Video ArduinoLogoDrawing
RAM for global variables
% Arduino_Video LVGLDemo
flash
% Arduino_Video LVGLDemo
RAM for global variables
% Camera CameraCaptureRawBytes
flash
% Camera CameraCaptureRawBytes
RAM for global variables
% Storage FlashFormat
flash
% Storage FlashFormat
RAM for global variables
% Storage ListFiles
flash
% Storage ListFiles
RAM for global variables
% Storage PartitionInfo
flash
% Storage PartitionInfo
RAM for global variables
% Storage SDListFiles
flash
% Storage SDListFiles
RAM for global variables
% WiFi ScanNetworksAdvanced
flash
% WiFi ScanNetworksAdvanced
RAM for global variables
% ArduinoCore-zephyr/libraries/WiFi/examples/SerialBridge
flash
% ArduinoCore-zephyr/libraries/WiFi/examples/SerialBridge
RAM for global variables
% WiFi WiFiWebClient
flash
% WiFi WiFiWebClient
RAM for global variables
% WiFi WiFiWebClientTLS
flash
% WiFi WiFiWebClientTLS
RAM for global variables
% Zephyr_SDRAM SDRAM_operations
flash
% Zephyr_SDRAM SDRAM_operations
RAM for global variables
% Arduino_APDS9960 ColorSensor
flash
% Arduino_APDS9960 ColorSensor
RAM for global variables
% Arduino_BMI270_BMM150 SimpleAccelerometer
flash
% Arduino_BMI270_BMM150 SimpleAccelerometer
RAM for global variables
% Arduino_HS300x ReadSensors
flash
% Arduino_HS300x ReadSensors
RAM for global variables
% Arduino_LPS22HB ReadPressure
flash
% Arduino_LPS22HB ReadPressure
RAM for global variables
% PDM PDMCaptureRawBytes
flash
% PDM PDMCaptureRawBytes
RAM for global variables
% PDM PDMSerialPlotter
flash
% PDM PDMSerialPlotter
RAM for global variables
% ArduinoCore-zephyr/libraries/Camera/examples/CameraCaptureRawBytes
flash
% ArduinoCore-zephyr/libraries/Camera/examples/CameraCaptureRawBytes
RAM for global variables
% Ethernet AdvancedChatServer
flash
% Ethernet AdvancedChatServer
RAM for global variables
% Ethernet LinkStatus
flash
% Ethernet LinkStatus
RAM for global variables
% Ethernet TelnetClient
flash
% Ethernet TelnetClient
RAM for global variables
% Ethernet UDPSendReceiveString
flash
% Ethernet UDPSendReceiveString
RAM for global variables
% Ethernet UdpNtpClient
flash
% Ethernet UdpNtpClient
RAM for global variables
% Ethernet WebClient
flash
% Ethernet WebClient
RAM for global variables
% Ethernet WebClientRepeating
flash
% Ethernet WebClientRepeating
RAM for global variables
% Ethernet WebServer
flash
% Ethernet WebServer
RAM for global variables
%
arduino:zephyr:unoq:link_mode=dynamic 12640 0.17 8860 0.34 12020 0.19 8052 0.35 12120 0.18 8120 0.35 13888 0.08 9936 0.15 13896 0.08 9936 0.15 13896 0.08 9936 0.15 13896 0.08 9936 0.15 12708 0.14 8868 0.27 12692 0.14 8840 0.28 12972 0.14 8972 0.26 12712 0.15 8864 0.29 12664 0.13 8828 0.28 12680 0.1 8840 0.28 11980 0.08 8060 0.36 12460 0.16 8807 0.32 12312 0.17 8110 0.29 13320 0.15 8872 0.27 13172 0.17 8836 0.31 12056 0.14 8046 0.27 12432 0.14 8536 0.26 13028 0.13 9092 0.22 12752 0.16 8844 0.26 12768 0.16 8852 0.27 12728 0.16 8844 0.27 11904 0.15 8084 0.27 12792 0.17 8876 0.34 12784 0.18 8880 0.35 12788 0.17 8872 0.34
arduino:zephyr:unoq:link_mode=static 3820 0.15 6048 2.98 3012 0.13 6040 2.97 3076 0.13 6040 2.97 4864 0.07 6040 1.4 4864 0.08 6040 1.4 4864 0.08 6040 1.4 4864 0.07 6040 1.4 3828 0.12 6048 2.96 3796 0.12 6048 2.96 3952 0.11 6048 2.96 3820 0.12 6048 2.96 3792 0.12 5024 1.23 3800 0.07 5016 1.22 3020 0.03 6048 2.98 3764 0.14 6048 2.98 3136 0.13 6040 1.18 3832 0.12 6040 1.97 3800 0.13 6040 2.97 3076 0.1 6040 2.97 3492 0.11 6040 2.97 4052 0.11 6040 0.98 3812 0.13 6040 0.84 3816 0.14 6040 0.84 3804 0.14 6040 0.84 3012 0.11 5024 0.98 3832 0.15 6040 2.97 3836 0.15 6040 2.97 3828 0.15 6040 2.97
arduino:zephyr_contrib:ek_ra8d1:link_mode=dynamic 624 0.09 20 0.04
arduino:zephyr_contrib:ek_ra8d1:link_mode=static 20 0.02 496 1.12
arduino:zephyr_contrib:frdm_mcxn947:link_mode=dynamic 4156 0.33 4780 1.78
arduino:zephyr_contrib:frdm_mcxn947:link_mode=static 1088 0.43 4388 5.48
arduino:zephyr_contrib:frdm_rw612:link_mode=dynamic 3524 0.25 2806 0.93
arduino:zephyr_contrib:frdm_rw612:link_mode=static 1000 0.23 2192 4.38
arduino:zephyr_main:giga:link_mode=dynamic 2812 0.11 10416 2.16 2916 0.11 10412 2.09 2952 0.12 10416 2.56 2964 0.02 10852 0.28 2968 0.02 10856 0.3 2972 0.02 10856 0.29 2972 0.02 10856 0.28 2908 0.07 10448 0.95 2892 0.07 10424 0.98 3172 0.07 10548 0.83 2920 0.07 10452 1.11 2964 0.09 10444 0.85 2972 0.09 10452 0.88 2900 0.09 10444 0.86 2784 0.08 10380 0.98 2952 0.11 10444 2.11 2960 0.11 10444 2.34 2944 0.11 10440 2.2 2868 0.09 10432 1.31 2832 0.09 10428 1.3 2756 0.05 10436 0.74 2732 0.06 10412 0.97 2744 0.07 10424 1.08 2696 0.05 10424 0.68 2812 0.01 10396 0.93 2804 0.05 10388 0.91 -35544 -0.08 -27320 -0.12 5824 0.2 11320 1.85 2896 0.0 10420 1.82 2888 0.11 10412 2.15 2892 0.1 10416 2.05 2888 0.11 10412 2.21 16316 0.48 12856 1.69 N/A N/A N/A N/A 16264 0.39 12912 1.31 16424 0.36 12982 0.14 2776 0.09 10404 1.99
arduino:zephyr_main:giga:link_mode=static 928 0.21 9216 4.47 924 0.2 9216 4.47 924 0.25 9216 4.47 1332 0.03 9216 2.21 1336 0.03 9216 2.21 1336 0.03 9216 2.21 1336 0.03 9216 2.21 960 0.08 9216 4.44 932 0.08 9216 4.44 1074 0.08 9216 4.44 964 0.1 9216 4.44 932 0.13 10236 1.66 940 0.14 10236 1.66 924 0.13 10236 1.66 860 0.11 10240 2.49 956 0.2 9216 4.45 960 0.23 9216 4.45 956 0.21 9216 4.45 944 0.16 9216 2.23 940 0.16 9216 2.23 948 0.07 10240 2.47 928 0.1 10240 2.47 940 0.13 10240 2.47 936 0.06 10240 2.47 908 0.0 10240 3.31 904 0.07 10240 3.31 -36768 -0.12 10240 2.48 1832 0.31 9216 4.46 936 0.0 9216 4.47 924 0.19 9216 4.47 928 0.18 9216 4.47 924 0.2 9216 4.47 4100 0.59 10244 4.94 N/A N/A N/A N/A 4160 0.45 10244 4.93 4224 0.34 10244 0.12 920 0.19 9216 4.47
arduino:zephyr_main:nano33ble:link_mode=dynamic 3484 0.2 4688 1.35 3588 0.22 4682 1.49 3596 0.23 4686 1.69 3648 0.03 5130 0.14 3652 0.03 5134 0.14 3648 0.03 5134 0.14 3652 0.03 5134 0.14 3544 0.1 4710 0.48 3516 0.1 4682 0.48 3804 0.1 4814 0.41 3556 0.12 4722 0.57 3428 0.14 4640 0.58 3632 0.18 4722 1.11 3632 0.21 4714 1.48 3620 0.19 4718 1.2 3472 0.14 4702 0.68 3276 0.05 4666 0.23 3392 0.14 4662 0.72 3428 0.14 4674 0.71 3560 0.18 4706 0.5 3528 0.17 4698 0.49
arduino:zephyr_main:nano33ble:link_mode=static 964 0.28 4336 3.87 960 0.31 4336 3.87 960 0.35 4336 3.87 1376 0.03 4336 1.34 1380 0.04 4336 1.34 1376 0.04 4336 1.34 1380 0.04 4336 1.34 988 0.09 4336 3.83 956 0.09 4336 3.83 1106 0.09 4336 3.83 1000 0.12 4336 3.83 900 0.14 4336 1.36 1004 0.21 4332 3.84 992 0.3 4332 3.84 996 0.25 4332 3.84 984 0.17 4336 2.01 940 0.03 3312 1.04 940 0.18 4336 2.01 952 0.17 4336 2.01 952 0.25 4356 0.7 944 0.24 4356 0.7
arduino:zephyr_main:nano_connect:link_mode=dynamic 3528 0.23 8596 2.25 3668 0.25 8590 2.4 3700 0.27 8590 2.67 3748 0.03 8975 0.23 3756 0.03 8987 0.23 3752 0.03 8979 0.23 3756 0.03 8983 0.23 3648 0.11 8614 0.82 3660 0.11 8626 0.84 3908 0.1 8710 0.69 3660 0.13 8626 0.97 3548 0.16 8616 1.01 3504 0.09 8610 0.7 3500 0.11 8606 0.98 3508 0.13 8618 1.11 3512 0.08 8622 0.64
arduino:zephyr_main:nano_connect:link_mode=static 1040 0.32 7632 5.34 1036 0.35 7632 5.34 1032 0.39 7632 5.34 1356 0.03 7632 2.16 1368 0.03 7632 2.16 1360 0.03 7632 2.16 1364 0.03 7632 2.16 1060 0.1 7632 5.3 1068 0.1 7632 5.3 1170 0.09 7632 5.3 1072 0.12 7632 5.3 1028 0.16 8656 2.48 1056 0.08 7632 3.07 1056 0.13 7632 3.07 1068 0.17 7632 3.07 1068 0.08 7632 3.07
arduino:zephyr_main:nano_matter:link_mode=dynamic 588 0.04 1948 0.73 428 0.05 -18 -0.02 584 0.0 2356 0.06 776 0.0 2396 0.07 780 0.0 2396 0.07 584 0.0 2356 0.06 692 0.02 1972 0.22 664 0.02 1944 0.22 968 0.02 2084 0.19 692 0.02 1984 0.26 332 0.01 1856 0.25
arduino:zephyr_main:nano_matter:link_mode=static 28 0.0 1528 1.24 -160 -0.08 504 2.52 264 0.0 2552 1.11 444 0.01 2552 1.11 440 0.01 2552 1.1 264 0.0 2552 1.1 48 0.0 1528 1.23 20 0.0 1528 1.23 182 0.01 1528 1.23 60 0.0 1528 1.23 -224 -0.04 2552 1.13
arduino:zephyr_main:nicla_sense:link_mode=dynamic 564 0.03 2036 0.81 624 0.09 20 0.03 544 0.01 2008 0.22 520 0.01 1988 0.22 808 0.02 2112 0.19 544 0.01 2012 0.27 512 0.02 2012 0.58 516 0.03 2008 0.84 508 0.03 2004 0.64
arduino:zephyr_main:nicla_sense:link_mode=static 116 0.04 1640 2.01 20 0.02 -408 -0.51 84 0.0 1640 1.99 68 0.0 1640 1.99 210 0.01 1640 1.99 88 0.01 1640 1.99 92 0.02 1640 2.0 88 0.03 1640 2.0 84 0.02 1640 2.0
arduino:zephyr_main:nicla_vision:link_mode=dynamic 4604 0.22 8608 2.08 4716 0.24 8604 2.28 4752 0.25 8608 2.42 4760 0.04 9044 0.24 4760 0.04 9048 0.25 4760 0.04 9048 0.25 4760 0.04 9048 0.24 4700 0.13 8640 0.82 4680 0.13 8616 0.85 4960 0.12 8740 0.71 4708 0.14 8644 0.97 4576 0.17 8576 1.0 4744 0.22 8636 1.95 4748 0.23 8636 2.19 4736 0.22 8632 2.04 4584 0.08 8680 0.44 4536 0.11 8628 0.62 4556 0.12 8648 0.66 4580 0.08 8676 0.41 4688 0.01 8612 1.65 4676 0.22 8604 1.99 4684 0.21 8608 1.88 4676 0.22 8604 2.05 18108 0.63 11048 1.56 N/A N/A N/A N/A 18060 0.49 11104 1.19 18220 0.44 11174 0.12 4572 0.19 8596 1.83 N/A N/A N/A N/A
arduino:zephyr_main:nicla_vision:link_mode=static 1140 0.31 8192 7.9 1136 0.34 8192 7.9 1140 0.37 8192 7.9 1544 0.04 8192 2.61 1548 0.04 8192 2.61 1548 0.04 8192 2.61 1548 0.04 8192 2.61 1172 0.11 8192 7.81 1144 0.11 8192 7.81 1286 0.1 8192 7.81 1176 0.13 8192 7.81 1076 0.16 8192 2.65 1168 0.28 8192 7.84 1172 0.32 8192 7.84 1168 0.3 7168 3.46 1208 0.06 8192 1.98 1156 0.1 8192 1.98 1176 0.11 8192 1.98 1204 0.05 8192 1.98 1148 0.0 8192 7.9 1136 0.27 8192 7.9 1140 0.24 8192 7.9 1136 0.29 8192 7.9 4312 0.68 8196 3.95 N/A N/A N/A N/A 4372 0.5 8196 3.94 4436 0.37 8196 0.1 1132 0.26 8192 7.9 N/A N/A N/A N/A
arduino:zephyr_main:opta:link_mode=dynamic 3544 0.24 6624 1.91 3656 0.27 6620 2.13 3692 0.29 6624 2.34 3700 0.03 7060 0.19 3700 0.04 7064 0.2 3700 0.03 7064 0.2 3700 0.03 7064 0.19 3648 0.12 6656 0.68 3612 0.12 6624 0.71 3896 0.11 6748 0.59 3648 0.13 6660 0.81 3684 0.24 6652 1.8 3696 0.25 6652 2.07 3676 0.24 6648 1.9 3488 0.09 6644 0.54 3464 0.12 6620 0.75 3480 0.13 6632 0.85 3428 0.08 6632 0.49 3628 0.0 6628 1.48 3624 0.23 6620 1.84 3624 0.22 6624 1.72 3624 0.24 6620 1.91 17044 0.74 9064 1.43 N/A N/A N/A N/A 17012 0.56 9120 1.06 17160 0.49 9190 0.1 3848 0.13 6920 0.85 3632 0.21 6648 1.72 3784 0.13 6848 0.97 13472 0.4 8494 0.97 13316 0.41 8330 0.99 3776 0.12 6848 0.83 3708 0.12 6781 0.89 3736 0.11 6860 0.82
arduino:zephyr_main:opta:link_mode=static 972 0.31 6144 5.95 968 0.35 6144 5.95 972 0.4 6144 5.95 1376 0.04 6144 1.96 1380 0.04 6144 1.96 1380 0.04 6144 1.96 1380 0.04 6144 1.96 1004 0.1 6144 5.88 968 0.1 6144 5.88 1110 0.09 6144 5.88 1008 0.12 6144 5.88 1000 0.28 6144 5.9 1004 0.34 6144 5.9 1000 0.31 6144 5.9 992 0.08 6144 1.97 972 0.13 6144 1.97 984 0.16 6144 1.97 980 0.07 6144 1.97 980 0.0 6144 5.95 968 0.28 6144 5.95 972 0.24 6144 5.95 968 0.29 6144 5.95 4144 0.73 6148 2.97 N/A N/A N/A N/A 4204 0.53 6148 2.96 4268 0.38 6148 0.07 1268 0.16 6144 2.96 996 0.29 6144 5.9 1196 0.17 6144 5.86 3500 0.41 6148 5.86 3336 0.41 6148 5.86 1200 0.14 6144 5.86 1132 0.15 6144 5.86 1208 0.14 6144 5.86
arduino:zephyr_main:portentac33:link_mode=dynamic 16 0.0 9624 1.85 72 0.0 9620 1.78 72 0.0 9624 2.11 208 0.0 10068 0.26 212 0.0 10072 0.27 212 0.0 10072 0.27 212 0.0 10072 0.26 132 0.0 9648 0.83 92 0.0 9620 0.84 396 0.0 9760 0.72 136 0.0 9660 0.96 80 0.0 9656 0.76 96 0.0 9664 0.79 48 0.0 9656 0.77 64 0.0 10032 0.96 32 0.0 9684 0.45 -16 -0.01 9632 0.62 4 0.0 9652 0.66 32 0.0 9680 0.43 40 0.0 9632 1.62 32 0.0 9620 1.81 40 0.0 9624 1.72 32 0.0 9620 1.85 13464 0.41 12068 1.49 N/A N/A N/A N/A 13516 0.34 12124 1.17 13624 0.3 12188 0.13 0 0.0 9612 1.68 356 0.0 9944 0.98 144 0.0 9672 1.67 340 0.0 9872 1.1 10032 0.23 11522 1.08 9876 0.23 11358 1.1 336 0.0 9876 0.95 268 0.0 9804 1.03 308 0.0 9884 0.97
arduino:zephyr_main:portentac33:link_mode=static 64 0.01 9656 5.07 60 0.01 9656 5.07 68 0.01 9656 5.07 476 0.01 9656 2.41 480 0.01 9656 2.41 480 0.01 9656 2.41 480 0.01 9656 2.41 88 0.0 9656 5.03 56 0.0 9656 5.03 214 0.01 9656 5.03 100 0.01 9656 5.03 72 0.0 9652 1.37 80 0.01 9652 1.37 64 0.0 9652 1.37 16 0.0 10680 2.69 120 0.0 9656 1.93 68 0.0 9656 1.93 88 0.0 9656 1.93 116 0.0 9656 1.93 76 0.0 9656 5.07 60 0.01 9656 5.07 64 0.01 9656 5.07 60 0.01 9656 5.07 3240 0.44 9660 3.28 N/A N/A N/A N/A 3300 0.34 9660 3.28 3360 0.26 9660 0.11 56 0.01 9656 5.07 384 0.04 9656 3.27 112 0.02 9656 5.05 312 0.03 9656 5.02 2620 0.25 9660 5.03 2456 0.24 9660 5.03 320 0.03 9656 5.02 248 0.02 9656 5.02 324 0.03 9656 5.02
arduino:zephyr_main:portentah7:link_mode=dynamic 3376 0.15 12828 2.94 3484 0.16 12824 3.23 3516 0.17 12828 3.5 3492 0.03 13264 0.36 3496 0.03 13268 0.37 3500 0.03 13268 0.36 3500 0.03 13268 0.36 3476 0.09 12860 1.22 3452 0.09 12836 1.26 3736 0.09 12960 1.05 3480 0.1 12864 1.43 3596 0.12 12832 1.09 3600 0.13 12840 1.14 3416 0.12 12832 1.11 3348 0.11 12776 1.46 3516 0.15 12856 2.84 3524 0.15 12856 3.18 3508 0.15 12852 2.97 3356 0.07 12848 0.94 3332 0.09 12824 1.25 3348 0.1 12836 1.39 3296 0.06 12836 0.86 4120 0.01 13344 0.79 4108 0.06 13336 0.77 -35024 -0.08 -24404 -0.11 6388 0.26 13732 2.69 3460 0.0 12832 2.42 3452 0.15 12824 2.9 3456 0.14 12828 2.74 3452 0.15 12824 2.99 16880 0.55 15268 2.13 N/A N/A N/A N/A 16828 0.44 15324 1.62 16988 0.4 15394 0.17 3344 0.13 12816 2.67 3740 0.09 13148 1.43 3524 0.13 12876 2.64 3676 0.1 13076 1.61 13364 0.32 14722 1.51 13208 0.32 14558 1.55 3672 0.09 13076 1.41 3604 0.09 13009 1.51 3624 0.09 13088 1.41
arduino:zephyr_main:portentah7:link_mode=static 952 0.23 13312 12.84 948 0.26 13312 12.84 948 0.28 13312 12.84 1356 0.03 12288 3.92 1360 0.04 12288 3.92 1360 0.03 12288 3.91 1360 0.03 12288 3.91 984 0.09 13312 12.7 956 0.09 13312 12.7 1098 0.08 13312 12.7 988 0.11 13312 12.7 964 0.15 12276 1.7 972 0.17 12276 1.7 956 0.16 12276 1.7 884 0.12 12288 3.97 980 0.22 13312 12.75 984 0.25 13312 12.75 980 0.24 12288 5.94 972 0.07 12288 2.96 952 0.11 12288 2.96 964 0.14 12288 2.96 960 0.07 12288 2.96 1486 0.0 12288 3.97 1482 0.08 12288 3.97 -36222 -0.12 12284 3.97 1856 0.38 13312 12.8 960 0.0 13312 12.84 948 0.21 13312 12.84 952 0.19 13312 12.84 948 0.22 13312 12.84 4124 0.62 12292 5.93 N/A N/A N/A N/A 4184 0.47 12292 5.92 4248 0.35 12292 0.14 944 0.2 13312 12.84 1272 0.14 12288 5.91 1000 0.22 12288 5.94 1200 0.15 12288 5.91 3504 0.36 12292 5.92 3340 0.36 12292 5.92 1204 0.13 12288 5.91 1136 0.13 12288 5.91 1212 0.13 12288 5.91
Click for full report CSV
Board,arduino-examples 01.Basics/AnalogReadSerial<br>flash,%,arduino-examples 01.Basics/AnalogReadSerial<br>RAM for global variables,%,arduino-examples 01.Basics/Blink<br>flash,%,arduino-examples 01.Basics/Blink<br>RAM for global variables,%,arduino-examples 04.Communication/SerialPassthrough<br>flash,%,arduino-examples 04.Communication/SerialPassthrough<br>RAM for global variables,%,ArduinoBLE Central/LedControl<br>flash,%,ArduinoBLE Central/LedControl<br>RAM for global variables,%,ArduinoBLE Central/Scan<br>flash,%,ArduinoBLE Central/Scan<br>RAM for global variables,%,ArduinoBLE Peripheral/Advertising/EnhancedAdvertising<br>flash,%,ArduinoBLE Peripheral/Advertising/EnhancedAdvertising<br>RAM for global variables,%,ArduinoBLE Peripheral/ButtonLED<br>flash,%,ArduinoBLE Peripheral/ButtonLED<br>RAM for global variables,%,Arduino_JSON JSONArray<br>flash,%,Arduino_JSON JSONArray<br>RAM for global variables,%,Arduino_JSON JSONKitchenSink<br>flash,%,Arduino_JSON JSONKitchenSink<br>RAM for global variables,%,Arduino_JSON JSONObject<br>flash,%,Arduino_JSON JSONObject<br>RAM for global variables,%,Arduino_JSON JSONValueExtractor<br>flash,%,Arduino_JSON JSONValueExtractor<br>RAM for global variables,%,Arduino_LED_Matrix Basic<br>flash,%,Arduino_LED_Matrix Basic<br>RAM for global variables,%,Arduino_LED_Matrix Reflash_Bootanimation<br>flash,%,Arduino_LED_Matrix Reflash_Bootanimation<br>RAM for global variables,%,Arduino_LED_Matrix Video<br>flash,%,Arduino_LED_Matrix Video<br>RAM for global variables,%,Arduino_RPClite rpc_lite_client<br>flash,%,Arduino_RPClite rpc_lite_client<br>RAM for global variables,%,Arduino_RPClite rpc_lite_server<br>flash,%,Arduino_RPClite rpc_lite_server<br>RAM for global variables,%,Arduino_RouterBridge client<br>flash,%,Arduino_RouterBridge client<br>RAM for global variables,%,Arduino_RouterBridge hci<br>flash,%,Arduino_RouterBridge hci<br>RAM for global variables,%,Arduino_RouterBridge monitor<br>flash,%,Arduino_RouterBridge monitor<br>RAM for global variables,%,Arduino_RouterBridge server<br>flash,%,Arduino_RouterBridge server<br>RAM for global variables,%,Arduino_RouterBridge udp_ntp_client<br>flash,%,Arduino_RouterBridge udp_ntp_client<br>RAM for global variables,%,CAN CANEvent<br>flash,%,CAN CANEvent<br>RAM for global variables,%,CAN CANRead<br>flash,%,CAN CANRead<br>RAM for global variables,%,CAN CANWrite<br>flash,%,CAN CANWrite<br>RAM for global variables,%,M95M01 M95M01_test<br>flash,%,M95M01 M95M01_test<br>RAM for global variables,%,RTC AlarmRTC<br>flash,%,RTC AlarmRTC<br>RAM for global variables,%,RTC CalibrationRTC<br>flash,%,RTC CalibrationRTC<br>RAM for global variables,%,RTC SimpleRTC<br>flash,%,RTC SimpleRTC<br>RAM for global variables,%,Arduino_GigaDisplayTouch Touch_IRQ<br>flash,%,Arduino_GigaDisplayTouch Touch_IRQ<br>RAM for global variables,%,Arduino_GigaDisplayTouch Touch_Polling<br>flash,%,Arduino_GigaDisplayTouch Touch_Polling<br>RAM for global variables,%,Arduino_SecureElement CertificateSigningRequest<br>flash,%,Arduino_SecureElement CertificateSigningRequest<br>RAM for global variables,%,Arduino_SecureElement ConfigurationLocking<br>flash,%,Arduino_SecureElement ConfigurationLocking<br>RAM for global variables,%,Arduino_SecureElement RandomNumber<br>flash,%,Arduino_SecureElement RandomNumber<br>RAM for global variables,%,Arduino_SecureElement SelfSignedCertificate<br>flash,%,Arduino_SecureElement SelfSignedCertificate<br>RAM for global variables,%,Arduino_Video ArduinoLogo<br>flash,%,Arduino_Video ArduinoLogo<br>RAM for global variables,%,Arduino_Video ArduinoLogoDrawing<br>flash,%,Arduino_Video ArduinoLogoDrawing<br>RAM for global variables,%,Arduino_Video LVGLDemo<br>flash,%,Arduino_Video LVGLDemo<br>RAM for global variables,%,Camera CameraCaptureRawBytes<br>flash,%,Camera CameraCaptureRawBytes<br>RAM for global variables,%,Storage FlashFormat<br>flash,%,Storage FlashFormat<br>RAM for global variables,%,Storage ListFiles<br>flash,%,Storage ListFiles<br>RAM for global variables,%,Storage PartitionInfo<br>flash,%,Storage PartitionInfo<br>RAM for global variables,%,Storage SDListFiles<br>flash,%,Storage SDListFiles<br>RAM for global variables,%,WiFi ScanNetworksAdvanced<br>flash,%,WiFi ScanNetworksAdvanced<br>RAM for global variables,%,ArduinoCore-zephyr/libraries/WiFi/examples/SerialBridge<br>flash,%,ArduinoCore-zephyr/libraries/WiFi/examples/SerialBridge<br>RAM for global variables,%,WiFi WiFiWebClient<br>flash,%,WiFi WiFiWebClient<br>RAM for global variables,%,WiFi WiFiWebClientTLS<br>flash,%,WiFi WiFiWebClientTLS<br>RAM for global variables,%,Zephyr_SDRAM SDRAM_operations<br>flash,%,Zephyr_SDRAM SDRAM_operations<br>RAM for global variables,%,Arduino_APDS9960 ColorSensor<br>flash,%,Arduino_APDS9960 ColorSensor<br>RAM for global variables,%,Arduino_BMI270_BMM150 SimpleAccelerometer<br>flash,%,Arduino_BMI270_BMM150 SimpleAccelerometer<br>RAM for global variables,%,Arduino_HS300x ReadSensors<br>flash,%,Arduino_HS300x ReadSensors<br>RAM for global variables,%,Arduino_LPS22HB ReadPressure<br>flash,%,Arduino_LPS22HB ReadPressure<br>RAM for global variables,%,PDM PDMCaptureRawBytes<br>flash,%,PDM PDMCaptureRawBytes<br>RAM for global variables,%,PDM PDMSerialPlotter<br>flash,%,PDM PDMSerialPlotter<br>RAM for global variables,%,ArduinoCore-zephyr/libraries/Camera/examples/CameraCaptureRawBytes<br>flash,%,ArduinoCore-zephyr/libraries/Camera/examples/CameraCaptureRawBytes<br>RAM for global variables,%,Ethernet AdvancedChatServer<br>flash,%,Ethernet AdvancedChatServer<br>RAM for global variables,%,Ethernet LinkStatus<br>flash,%,Ethernet LinkStatus<br>RAM for global variables,%,Ethernet TelnetClient<br>flash,%,Ethernet TelnetClient<br>RAM for global variables,%,Ethernet UDPSendReceiveString<br>flash,%,Ethernet UDPSendReceiveString<br>RAM for global variables,%,Ethernet UdpNtpClient<br>flash,%,Ethernet UdpNtpClient<br>RAM for global variables,%,Ethernet WebClient<br>flash,%,Ethernet WebClient<br>RAM for global variables,%,Ethernet WebClientRepeating<br>flash,%,Ethernet WebClientRepeating<br>RAM for global variables,%,Ethernet WebServer<br>flash,%,Ethernet WebServer<br>RAM for global variables,%
arduino:zephyr:unoq:link_mode=dynamic,12640,0.17,8860,0.34,12020,0.19,8052,0.35,12120,0.18,8120,0.35,13888,0.08,9936,0.15,13896,0.08,9936,0.15,13896,0.08,9936,0.15,13896,0.08,9936,0.15,12708,0.14,8868,0.27,12692,0.14,8840,0.28,12972,0.14,8972,0.26,12712,0.15,8864,0.29,12664,0.13,8828,0.28,12680,0.1,8840,0.28,11980,0.08,8060,0.36,12460,0.16,8807,0.32,12312,0.17,8110,0.29,13320,0.15,8872,0.27,13172,0.17,8836,0.31,12056,0.14,8046,0.27,12432,0.14,8536,0.26,13028,0.13,9092,0.22,12752,0.16,8844,0.26,12768,0.16,8852,0.27,12728,0.16,8844,0.27,11904,0.15,8084,0.27,12792,0.17,8876,0.34,12784,0.18,8880,0.35,12788,0.17,8872,0.34
arduino:zephyr:unoq:link_mode=static,3820,0.15,6048,2.98,3012,0.13,6040,2.97,3076,0.13,6040,2.97,4864,0.07,6040,1.4,4864,0.08,6040,1.4,4864,0.08,6040,1.4,4864,0.07,6040,1.4,3828,0.12,6048,2.96,3796,0.12,6048,2.96,3952,0.11,6048,2.96,3820,0.12,6048,2.96,3792,0.12,5024,1.23,3800,0.07,5016,1.22,3020,0.03,6048,2.98,3764,0.14,6048,2.98,3136,0.13,6040,1.18,3832,0.12,6040,1.97,3800,0.13,6040,2.97,3076,0.1,6040,2.97,3492,0.11,6040,2.97,4052,0.11,6040,0.98,3812,0.13,6040,0.84,3816,0.14,6040,0.84,3804,0.14,6040,0.84,3012,0.11,5024,0.98,3832,0.15,6040,2.97,3836,0.15,6040,2.97,3828,0.15,6040,2.97
arduino:zephyr_contrib:ek_ra8d1:link_mode=dynamic,,,,,624,0.09,20,0.04,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:ek_ra8d1:link_mode=static,,,,,20,0.02,496,1.12,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:frdm_mcxn947:link_mode=dynamic,,,,,4156,0.33,4780,1.78,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:frdm_mcxn947:link_mode=static,,,,,1088,0.43,4388,5.48,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:frdm_rw612:link_mode=dynamic,,,,,3524,0.25,2806,0.93,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_contrib:frdm_rw612:link_mode=static,,,,,1000,0.23,2192,4.38,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:giga:link_mode=dynamic,2812,0.11,10416,2.16,2916,0.11,10412,2.09,2952,0.12,10416,2.56,2964,0.02,10852,0.28,2968,0.02,10856,0.3,2972,0.02,10856,0.29,2972,0.02,10856,0.28,2908,0.07,10448,0.95,2892,0.07,10424,0.98,3172,0.07,10548,0.83,2920,0.07,10452,1.11,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2964,0.09,10444,0.85,2972,0.09,10452,0.88,2900,0.09,10444,0.86,2784,0.08,10380,0.98,2952,0.11,10444,2.11,2960,0.11,10444,2.34,2944,0.11,10440,2.2,2868,0.09,10432,1.31,2832,0.09,10428,1.3,2756,0.05,10436,0.74,2732,0.06,10412,0.97,2744,0.07,10424,1.08,2696,0.05,10424,0.68,2812,0.01,10396,0.93,2804,0.05,10388,0.91,-35544,-0.08,-27320,-0.12,5824,0.2,11320,1.85,2896,0.0,10420,1.82,2888,0.11,10412,2.15,2892,0.1,10416,2.05,2888,0.11,10412,2.21,16316,0.48,12856,1.69,N/A,N/A,N/A,N/A,16264,0.39,12912,1.31,16424,0.36,12982,0.14,2776,0.09,10404,1.99
arduino:zephyr_main:giga:link_mode=static,928,0.21,9216,4.47,924,0.2,9216,4.47,924,0.25,9216,4.47,1332,0.03,9216,2.21,1336,0.03,9216,2.21,1336,0.03,9216,2.21,1336,0.03,9216,2.21,960,0.08,9216,4.44,932,0.08,9216,4.44,1074,0.08,9216,4.44,964,0.1,9216,4.44,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,932,0.13,10236,1.66,940,0.14,10236,1.66,924,0.13,10236,1.66,860,0.11,10240,2.49,956,0.2,9216,4.45,960,0.23,9216,4.45,956,0.21,9216,4.45,944,0.16,9216,2.23,940,0.16,9216,2.23,948,0.07,10240,2.47,928,0.1,10240,2.47,940,0.13,10240,2.47,936,0.06,10240,2.47,908,0.0,10240,3.31,904,0.07,10240,3.31,-36768,-0.12,10240,2.48,1832,0.31,9216,4.46,936,0.0,9216,4.47,924,0.19,9216,4.47,928,0.18,9216,4.47,924,0.2,9216,4.47,4100,0.59,10244,4.94,N/A,N/A,N/A,N/A,4160,0.45,10244,4.93,4224,0.34,10244,0.12,920,0.19,9216,4.47
arduino:zephyr_main:nano33ble:link_mode=dynamic,3484,0.2,4688,1.35,3588,0.22,4682,1.49,3596,0.23,4686,1.69,3648,0.03,5130,0.14,3652,0.03,5134,0.14,3648,0.03,5134,0.14,3652,0.03,5134,0.14,3544,0.1,4710,0.48,3516,0.1,4682,0.48,3804,0.1,4814,0.41,3556,0.12,4722,0.57,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3428,0.14,4640,0.58,3632,0.18,4722,1.11,3632,0.21,4714,1.48,3620,0.19,4718,1.2,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3472,0.14,4702,0.68,3276,0.05,4666,0.23,3392,0.14,4662,0.72,3428,0.14,4674,0.71,3560,0.18,4706,0.5,3528,0.17,4698,0.49
arduino:zephyr_main:nano33ble:link_mode=static,964,0.28,4336,3.87,960,0.31,4336,3.87,960,0.35,4336,3.87,1376,0.03,4336,1.34,1380,0.04,4336,1.34,1376,0.04,4336,1.34,1380,0.04,4336,1.34,988,0.09,4336,3.83,956,0.09,4336,3.83,1106,0.09,4336,3.83,1000,0.12,4336,3.83,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,900,0.14,4336,1.36,1004,0.21,4332,3.84,992,0.3,4332,3.84,996,0.25,4332,3.84,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,984,0.17,4336,2.01,940,0.03,3312,1.04,940,0.18,4336,2.01,952,0.17,4336,2.01,952,0.25,4356,0.7,944,0.24,4356,0.7
arduino:zephyr_main:nano_connect:link_mode=dynamic,3528,0.23,8596,2.25,3668,0.25,8590,2.4,3700,0.27,8590,2.67,3748,0.03,8975,0.23,3756,0.03,8987,0.23,3752,0.03,8979,0.23,3756,0.03,8983,0.23,3648,0.11,8614,0.82,3660,0.11,8626,0.84,3908,0.1,8710,0.69,3660,0.13,8626,0.97,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3548,0.16,8616,1.01,,,,,,,,,,,,,,,,,,,,,3504,0.09,8610,0.7,3500,0.11,8606,0.98,3508,0.13,8618,1.11,3512,0.08,8622,0.64,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nano_connect:link_mode=static,1040,0.32,7632,5.34,1036,0.35,7632,5.34,1032,0.39,7632,5.34,1356,0.03,7632,2.16,1368,0.03,7632,2.16,1360,0.03,7632,2.16,1364,0.03,7632,2.16,1060,0.1,7632,5.3,1068,0.1,7632,5.3,1170,0.09,7632,5.3,1072,0.12,7632,5.3,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1028,0.16,8656,2.48,,,,,,,,,,,,,,,,,,,,,1056,0.08,7632,3.07,1056,0.13,7632,3.07,1068,0.17,7632,3.07,1068,0.08,7632,3.07,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nano_matter:link_mode=dynamic,588,0.04,1948,0.73,428,0.05,-18,-0.02,,,,,584,0.0,2356,0.06,776,0.0,2396,0.07,780,0.0,2396,0.07,584,0.0,2356,0.06,692,0.02,1972,0.22,664,0.02,1944,0.22,968,0.02,2084,0.19,692,0.02,1984,0.26,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,332,0.01,1856,0.25,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nano_matter:link_mode=static,28,0.0,1528,1.24,-160,-0.08,504,2.52,,,,,264,0.0,2552,1.11,444,0.01,2552,1.11,440,0.01,2552,1.1,264,0.0,2552,1.1,48,0.0,1528,1.23,20,0.0,1528,1.23,182,0.01,1528,1.23,60,0.0,1528,1.23,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-224,-0.04,2552,1.13,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nicla_sense:link_mode=dynamic,564,0.03,2036,0.81,624,0.09,20,0.03,,,,,,,,,,,,,,,,,,,,,544,0.01,2008,0.22,520,0.01,1988,0.22,808,0.02,2112,0.19,544,0.01,2012,0.27,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,512,0.02,2012,0.58,516,0.03,2008,0.84,508,0.03,2004,0.64,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nicla_sense:link_mode=static,116,0.04,1640,2.01,20,0.02,-408,-0.51,,,,,,,,,,,,,,,,,,,,,84,0.0,1640,1.99,68,0.0,1640,1.99,210,0.01,1640,1.99,88,0.01,1640,1.99,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,92,0.02,1640,2.0,88,0.03,1640,2.0,84,0.02,1640,2.0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
arduino:zephyr_main:nicla_vision:link_mode=dynamic,4604,0.22,8608,2.08,4716,0.24,8604,2.28,4752,0.25,8608,2.42,4760,0.04,9044,0.24,4760,0.04,9048,0.25,4760,0.04,9048,0.25,4760,0.04,9048,0.24,4700,0.13,8640,0.82,4680,0.13,8616,0.85,4960,0.12,8740,0.71,4708,0.14,8644,0.97,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,4576,0.17,8576,1.0,4744,0.22,8636,1.95,4748,0.23,8636,2.19,4736,0.22,8632,2.04,,,,,,,,,4584,0.08,8680,0.44,4536,0.11,8628,0.62,4556,0.12,8648,0.66,4580,0.08,8676,0.41,,,,,,,,,,,,,,,,,4688,0.01,8612,1.65,4676,0.22,8604,1.99,4684,0.21,8608,1.88,4676,0.22,8604,2.05,18108,0.63,11048,1.56,N/A,N/A,N/A,N/A,18060,0.49,11104,1.19,18220,0.44,11174,0.12,4572,0.19,8596,1.83,,,,,,,,,,,,,,,,,,,,,,,,,N/A,N/A,N/A,N/A
arduino:zephyr_main:nicla_vision:link_mode=static,1140,0.31,8192,7.9,1136,0.34,8192,7.9,1140,0.37,8192,7.9,1544,0.04,8192,2.61,1548,0.04,8192,2.61,1548,0.04,8192,2.61,1548,0.04,8192,2.61,1172,0.11,8192,7.81,1144,0.11,8192,7.81,1286,0.1,8192,7.81,1176,0.13,8192,7.81,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1076,0.16,8192,2.65,1168,0.28,8192,7.84,1172,0.32,8192,7.84,1168,0.3,7168,3.46,,,,,,,,,1208,0.06,8192,1.98,1156,0.1,8192,1.98,1176,0.11,8192,1.98,1204,0.05,8192,1.98,,,,,,,,,,,,,,,,,1148,0.0,8192,7.9,1136,0.27,8192,7.9,1140,0.24,8192,7.9,1136,0.29,8192,7.9,4312,0.68,8196,3.95,N/A,N/A,N/A,N/A,4372,0.5,8196,3.94,4436,0.37,8196,0.1,1132,0.26,8192,7.9,,,,,,,,,,,,,,,,,,,,,,,,,N/A,N/A,N/A,N/A
arduino:zephyr_main:opta:link_mode=dynamic,3544,0.24,6624,1.91,3656,0.27,6620,2.13,3692,0.29,6624,2.34,3700,0.03,7060,0.19,3700,0.04,7064,0.2,3700,0.03,7064,0.2,3700,0.03,7064,0.19,3648,0.12,6656,0.68,3612,0.12,6624,0.71,3896,0.11,6748,0.59,3648,0.13,6660,0.81,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3684,0.24,6652,1.8,3696,0.25,6652,2.07,3676,0.24,6648,1.9,,,,,,,,,3488,0.09,6644,0.54,3464,0.12,6620,0.75,3480,0.13,6632,0.85,3428,0.08,6632,0.49,,,,,,,,,,,,,,,,,3628,0.0,6628,1.48,3624,0.23,6620,1.84,3624,0.22,6624,1.72,3624,0.24,6620,1.91,17044,0.74,9064,1.43,N/A,N/A,N/A,N/A,17012,0.56,9120,1.06,17160,0.49,9190,0.1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3848,0.13,6920,0.85,3632,0.21,6648,1.72,3784,0.13,6848,0.97,13472,0.4,8494,0.97,13316,0.41,8330,0.99,3776,0.12,6848,0.83,3708,0.12,6781,0.89,3736,0.11,6860,0.82
arduino:zephyr_main:opta:link_mode=static,972,0.31,6144,5.95,968,0.35,6144,5.95,972,0.4,6144,5.95,1376,0.04,6144,1.96,1380,0.04,6144,1.96,1380,0.04,6144,1.96,1380,0.04,6144,1.96,1004,0.1,6144,5.88,968,0.1,6144,5.88,1110,0.09,6144,5.88,1008,0.12,6144,5.88,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1000,0.28,6144,5.9,1004,0.34,6144,5.9,1000,0.31,6144,5.9,,,,,,,,,992,0.08,6144,1.97,972,0.13,6144,1.97,984,0.16,6144,1.97,980,0.07,6144,1.97,,,,,,,,,,,,,,,,,980,0.0,6144,5.95,968,0.28,6144,5.95,972,0.24,6144,5.95,968,0.29,6144,5.95,4144,0.73,6148,2.97,N/A,N/A,N/A,N/A,4204,0.53,6148,2.96,4268,0.38,6148,0.07,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1268,0.16,6144,2.96,996,0.29,6144,5.9,1196,0.17,6144,5.86,3500,0.41,6148,5.86,3336,0.41,6148,5.86,1200,0.14,6144,5.86,1132,0.15,6144,5.86,1208,0.14,6144,5.86
arduino:zephyr_main:portentac33:link_mode=dynamic,16,0.0,9624,1.85,72,0.0,9620,1.78,72,0.0,9624,2.11,208,0.0,10068,0.26,212,0.0,10072,0.27,212,0.0,10072,0.27,212,0.0,10072,0.26,132,0.0,9648,0.83,92,0.0,9620,0.84,396,0.0,9760,0.72,136,0.0,9660,0.96,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,80,0.0,9656,0.76,96,0.0,9664,0.79,48,0.0,9656,0.77,64,0.0,10032,0.96,,,,,,,,,,,,,,,,,,,,,32,0.0,9684,0.45,-16,-0.01,9632,0.62,4,0.0,9652,0.66,32,0.0,9680,0.43,,,,,,,,,,,,,,,,,40,0.0,9632,1.62,32,0.0,9620,1.81,40,0.0,9624,1.72,32,0.0,9620,1.85,13464,0.41,12068,1.49,N/A,N/A,N/A,N/A,13516,0.34,12124,1.17,13624,0.3,12188,0.13,0,0.0,9612,1.68,,,,,,,,,,,,,,,,,,,,,,,,,,,,,356,0.0,9944,0.98,144,0.0,9672,1.67,340,0.0,9872,1.1,10032,0.23,11522,1.08,9876,0.23,11358,1.1,336,0.0,9876,0.95,268,0.0,9804,1.03,308,0.0,9884,0.97
arduino:zephyr_main:portentac33:link_mode=static,64,0.01,9656,5.07,60,0.01,9656,5.07,68,0.01,9656,5.07,476,0.01,9656,2.41,480,0.01,9656,2.41,480,0.01,9656,2.41,480,0.01,9656,2.41,88,0.0,9656,5.03,56,0.0,9656,5.03,214,0.01,9656,5.03,100,0.01,9656,5.03,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,72,0.0,9652,1.37,80,0.01,9652,1.37,64,0.0,9652,1.37,16,0.0,10680,2.69,,,,,,,,,,,,,,,,,,,,,120,0.0,9656,1.93,68,0.0,9656,1.93,88,0.0,9656,1.93,116,0.0,9656,1.93,,,,,,,,,,,,,,,,,76,0.0,9656,5.07,60,0.01,9656,5.07,64,0.01,9656,5.07,60,0.01,9656,5.07,3240,0.44,9660,3.28,N/A,N/A,N/A,N/A,3300,0.34,9660,3.28,3360,0.26,9660,0.11,56,0.01,9656,5.07,,,,,,,,,,,,,,,,,,,,,,,,,,,,,384,0.04,9656,3.27,112,0.02,9656,5.05,312,0.03,9656,5.02,2620,0.25,9660,5.03,2456,0.24,9660,5.03,320,0.03,9656,5.02,248,0.02,9656,5.02,324,0.03,9656,5.02
arduino:zephyr_main:portentah7:link_mode=dynamic,3376,0.15,12828,2.94,3484,0.16,12824,3.23,3516,0.17,12828,3.5,3492,0.03,13264,0.36,3496,0.03,13268,0.37,3500,0.03,13268,0.36,3500,0.03,13268,0.36,3476,0.09,12860,1.22,3452,0.09,12836,1.26,3736,0.09,12960,1.05,3480,0.1,12864,1.43,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3596,0.12,12832,1.09,3600,0.13,12840,1.14,3416,0.12,12832,1.11,3348,0.11,12776,1.46,3516,0.15,12856,2.84,3524,0.15,12856,3.18,3508,0.15,12852,2.97,,,,,,,,,3356,0.07,12848,0.94,3332,0.09,12824,1.25,3348,0.1,12836,1.39,3296,0.06,12836,0.86,4120,0.01,13344,0.79,4108,0.06,13336,0.77,-35024,-0.08,-24404,-0.11,6388,0.26,13732,2.69,3460,0.0,12832,2.42,3452,0.15,12824,2.9,3456,0.14,12828,2.74,3452,0.15,12824,2.99,16880,0.55,15268,2.13,N/A,N/A,N/A,N/A,16828,0.44,15324,1.62,16988,0.4,15394,0.17,3344,0.13,12816,2.67,,,,,,,,,,,,,,,,,,,,,,,,,,,,,3740,0.09,13148,1.43,3524,0.13,12876,2.64,3676,0.1,13076,1.61,13364,0.32,14722,1.51,13208,0.32,14558,1.55,3672,0.09,13076,1.41,3604,0.09,13009,1.51,3624,0.09,13088,1.41
arduino:zephyr_main:portentah7:link_mode=static,952,0.23,13312,12.84,948,0.26,13312,12.84,948,0.28,13312,12.84,1356,0.03,12288,3.92,1360,0.04,12288,3.92,1360,0.03,12288,3.91,1360,0.03,12288,3.91,984,0.09,13312,12.7,956,0.09,13312,12.7,1098,0.08,13312,12.7,988,0.11,13312,12.7,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,964,0.15,12276,1.7,972,0.17,12276,1.7,956,0.16,12276,1.7,884,0.12,12288,3.97,980,0.22,13312,12.75,984,0.25,13312,12.75,980,0.24,12288,5.94,,,,,,,,,972,0.07,12288,2.96,952,0.11,12288,2.96,964,0.14,12288,2.96,960,0.07,12288,2.96,1486,0.0,12288,3.97,1482,0.08,12288,3.97,-36222,-0.12,12284,3.97,1856,0.38,13312,12.8,960,0.0,13312,12.84,948,0.21,13312,12.84,952,0.19,13312,12.84,948,0.22,13312,12.84,4124,0.62,12292,5.93,N/A,N/A,N/A,N/A,4184,0.47,12292,5.92,4248,0.35,12292,0.14,944,0.2,13312,12.84,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1272,0.14,12288,5.91,1000,0.22,12288,5.94,1200,0.15,12288,5.91,3504,0.36,12292,5.92,3340,0.36,12292,5.92,1204,0.13,12288,5.91,1136,0.13,12288,5.91,1212,0.13,12288,5.91

…g outliers

Adds a tool that flattens ci_calc_size_reports.py's per-board JSON delta
reports into per-sketch records and flags flash/RAM deltas that are
statistical outliers (MAD-based) within their own board/link_mode's
distribution. Outliers are computed per board rather than across a pooled
global distribution, since boards are not comparable to each other (each
has its own typical delta from board-specific code paths) and pooling them
would hide genuine per-board regressions behind cross-board noise.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@pillo79
pillo79 force-pushed the pr-delta-calc branch 3 times, most recently from 387ef88 to 9c26801 Compare September 22, 2026 14:54
pillo79 and others added 10 commits September 23, 2026 12:17
Adds per-board delta summaries (min/mean/median/max) and cross-board
trend reporting for sketches already flagged as outliers.

Introduces MIN_DELTA (a general "is this delta notable" threshold, not
tied to any particular output format) and _build_report_data(), which
assembles every row set a report needs (board summary, flash/RAM outlier
tables, outlier-sketch trend table) as plain Python values with no markup.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds the HTML rendering primitives (_Safe/_Cell wrapper types, _render_td,
_html_table, _html_table_grouped for two-row grouped headers -- both
replacing an empty table with a "none" message rather than rendering a
table with no rows, _mono/_board_name/_bold_board_label for typewriter-
font package and board names, _delta_cell for sign/threshold-based
shading) and generate_html(), which wires them and _build_report_data()'s
output into an actual page: an intro paragraph, a grouped per-board
summary table (Flash/RAM x min/mean/median/max) with package/board
rendered in a typewriter font, flash/RAM outlier tables, and the
outlier-sketch cross-board trend table, with a "(top N of M)" heading
suffix only when a table is actually truncated. Delta columns are shaded
green/red/gray by sign and the MIN_DELTA threshold. Wires up --output-html
in main().

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Render each metric's delta distribution as a bubble chart (one row per
board/link_mode, bubble size = matching sketch count), embedded as
inline SVG so the report stays a single self-contained file with no
external assets or JavaScript. Boards below MIN_DELTA are left out of
the plot and summarized in a companion table instead.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Deltas span a huge dynamic range (a handful of bytes up to tens of
kilobytes) all on one linear axis, which crushes every point except the
largest outliers into an unreadable cluster near the noise band. symlog
(not plain log) since deltas can be negative or zero; every plotted point
already clears MIN_DELTA, so the linear region just covers the (empty)
noise band it's centered on without needing to render anything there.

Adjust margins to fit the new axis scale.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Each bubble now shows board/link_mode, exact delta value, and sketch
count (bubble size) on hover, via a native SVG <title> element -- the
SVG equivalent of HTML's title="" attribute, rendered by the browser
with no JavaScript.

matplotlib has no per-point tooltip API, so this switches from one
batched scatter() call for all points to one call per point, each with
its own gid; matplotlib wraps a gid'd artist in <g id="...">...</g>, and
_figure_to_inline_svg (already doing font-family/tspan post-processing on
the raw SVG) inserts a <title> as that group's first child.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Adds a Markdown renderer built on the same _build_report_data() output the
HTML report already uses: a one-line count recap, the outlier-sketch
cross-board trend table, the per-board summary filtered down to rows with
at least one notable (>= MIN_DELTA) value, and one collapsed <details>
section per package titled "Full per-board/link-mode summary for
`<package>`" (package column dropped inside each, since it's constant
within its own group). Package/board names are rendered in a typewriter
font (backticks).

Numeric delta columns are right-aligned, always signed (+/-), and values
exceeding MIN_DELTA are bolded and prefixed with a small colored dot by
sign (green negative, red positive) using nested <sub>/<sup> to shrink and
vertically center it without inflating row height — GitHub is the only
Markdown renderer this targets, so relying on that tag nesting is safe.
Ignored deltas (within MIN_DELTA) get no dot, only the plain signed
number. An empty table (e.g. no outliers found) renders as "_none_"
instead of a header row with nothing under it. No charts (no Markdown
equivalent for an embedded image with per-point styling), just plain GFM
tables.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…port

Adds two exhaustive reference sections: one <details> per board/link_mode
listing every sketch's flash/RAM delta there, and one <details> per sketch
listing every board/link_mode it was built for and its delta there. Each
section is a native HTML accordion (<details name="...">) rather than one
giant flat table (28 board groups + 61 sketch groups in the sample data) —
opening one collapses any other open in the same named group, no
JavaScript required.

Board names use the report's usual bold-monospace style, sketch and
package names use plain monospace, in both the details title and the
table body. Per-board titles also carry the package name (constant within
the table, but not otherwise implied by the board/link_mode alone) and a
"- N sketches" / "- N boards" count of the hidden table's rows, so the
collapsed summary is informative on its own.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Reads head_sha/head_url from the report JSON's commit_hash/commit_url
fields (all files in one CI run describe the same commit, so the first
file found is representative) and adds --base-sha, since the reports
themselves never record what baseline they were diffed against
(ci_calc_size_reports.py only takes the baseline SHA as a transient CLI
argument, it isn't persisted into the JSON). Both reports now open with
"Commit <short-sha> vs base <short-sha>", each linked when a URL is
available -- the base commit's URL is derived from the head commit's URL
pattern (same repo), and either side falls back to "unknown" if not
available.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Install matplotlib via apt-get in the verify-core step so that
extra/ci_calc_size_trends.py can generate charts.

Runs extra/ci_calc_size_trends.py against sketches-reports/ right after
ci_calc_size_reports.py annotates it with deltas. The Markdown output is
appended below the existing build summary in both the step summary and
the PR comment that leave_pr_comment.yml already posts. The HTML report
(charts included) is uploaded as its own size-trends-report artifact,
and a link to it is appended to the body right after upload, once the
artifact ID is known.

The trends command is best-effort, matching how ci_calc_size_reports.py
is already treated in this step, and the HTML upload/link are skipped
cleanly (if-no-files-found: ignore, plus an artifact-id check on the
link step) if generation fails for any reason.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
package_core.yml now generates and posts its own size trends summary
(Markdown appended to the PR comment, full HTML linked as an artifact),
making the separate arduino/report-size-deltas@v1.1.0-based comment on the
sketches-reports artifact redundant duplicate output. Also drops the
sketches-reports artifact upload in package_core.yml, since that workflow
was its only consumer -- ci_calc_size_trends.py already reads the
directory directly within the same job, no artifact round-trip needed.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
For each plotted board/link_mode row, overlay a light-blue mean ± 1
standard deviation band (computed over every sketch on that board, not
just the ones clearing MIN_DELTA) plus a vertical bar at the mean, so
each row's typical spread is visible alongside the individual bubbles.
The axis extent is still driven purely by the plotted bubble values, not
by the sigma window, so a wide spread doesn't stretch the chart.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.