arduino / arduino/ArduinoCore-samd

Major performance issue with MKR4000 vidor compared to MKR1000 doing fine

Open
#518 2 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
502
Forks
740
PR merge metrics
No merged PRs in 30d

Description

I performed the following profiling on my sketch, MKR4000 vs MKR1000. The sketch used is the very same on MKR4000 and MK1000, except for conditional compilation to include the right WiFi header file for both platforms.

> Board Name | FirmWare | Library | Time
> MKR4000 | 1.1.0 | 1.0.0 | doesn't compile
>   | 1.1.0 | 1.1.0 | 15,3 sec
>   | 1.1.0 | 1.2.0 | 15,3 sec
>   | 1.1.0 | 1.3.0 | 14,7 sec
>   | 1.1.0 | 1.4.0 | 14,7 sec
>   | 1.1.0 | 1.5.0 | **14,7 sec**
> MKR1000 | 1.1.0 | 0.16.0 | **0,3 sec**
>

Vidor Wifi is about 50 (yes: fifty!!) times slower on MKR4000, compared MK1000!

I closed the door to several potential issues, namely : my code, CPU speed, RSSI etc...

Having read a lot of things about the history of this issue on the MKR4000 in Arduino's forum and in other places, my guess is that this is really either a WiFiNINA library issue, either as I read (I didn't check yet), caused by the board design that makes data path between the CPU and the NINA chip going through the FPGA (an issue or the design, due to FPGA related constrains?).

More complete description: https://forum.arduino.cc/index.php?topic=681564.0

Do you confirm this issue?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the reported profiling sketch on the MKR4000 and MKR1000, using the listed firmware and WiFi library versions. Compare the WiFiNINA library path and the board's CPU-to-NINA data path through the FPGA; done means identifying and documenting the source of the performance difference.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
embedded-iot, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.