Skip to content

Commit 1a1d8e1

Browse files
authored
Merge pull request #28 from arduino/rp2040
Add support for Rp2040 / Refactored -get_available_for flag
2 parents 6449244 + 462e6d3 commit 1a1d8e1

8 files changed

+10
-21
lines changed
1.08 MB
Binary file not shown.

Diff for: firmwares/NINA/1.4.5/NINA_W102-Uno_WiFi_Rev2.bin

1.08 MB
Binary file not shown.

Diff for: firmwares/NINA/1.4.5/NINA_W102.bin

1.08 MB
Binary file not shown.

Diff for: firmwares/NINA/FirmwareUpdater.mkrwifi1010.ino.bin

100755100644
File mode changed.

Diff for: firmwares/NINA/FirmwareUpdater.nano_33_iot.ino.bin

100755100644
File mode changed.
1.57 MB
Binary file not shown.

Diff for: programmers/rp2040load/rp2040load.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
"github.com/arduino/arduino-cli/arduino/serialutils"
1010
"github.com/arduino/arduino-cli/executils"
1111
"github.com/arduino/go-paths-helper"
12+
"github.com/pkg/errors"
1213
)
1314

1415
type RP2040Load struct {
@@ -32,7 +33,7 @@ func (b *RP2040Load) Flash(filename string, cb *serialutils.ResetProgressCallbac
3233

3334
log.Println("Flashing " + filename)
3435
if err := b.invoke("-v", "-D", filename); err != nil {
35-
log.Fatalf("Error flashing %s: %s", filename, err)
36+
return errors.Errorf("Error flashing %s: %s", filename, err)
3637
}
3738

3839
time.Sleep(5 * time.Second)

Diff for: utils/utils.go

+8-20
Original file line numberDiff line numberDiff line change
@@ -16,21 +16,13 @@ type firmware struct {
1616

1717
type combo struct {
1818
match string
19-
prefer string
20-
avoid string
2119
loader string
2220
}
2321

24-
func isPreferred(existing bool, path string, board combo) bool {
22+
func isPreferred(path string) bool {
2523
if path == "" {
2624
return false
2725
}
28-
if board.avoid != "" && strings.Contains(path, board.avoid) {
29-
return false
30-
}
31-
if existing && !strings.Contains(path, board.prefer) {
32-
return false
33-
}
3426
return true
3527
}
3628

@@ -39,13 +31,13 @@ func GetCompatibleWith(name string, rootPath string) map[string][]firmware {
3931
files := make(map[string][]firmware)
4032

4133
knownBoards := make(map[string]combo)
42-
knownBoards["mkr1000"] = combo{match: "(WINC1500)*(3a0)", loader: "WINC1500/Firmware*"}
43-
knownBoards["mkrwifi1010"] = combo{match: "(NINA)", loader: "NINA/Firmware.*mkrwifi1010.*", avoid: "uno"}
44-
knownBoards["nano_33_iot"] = combo{match: "(NINA)", loader: "NINA/Firmware.*nano_33_iot.*", avoid: "uno"}
45-
knownBoards["mkrvidor4000"] = combo{match: "(NINA)", loader: "NINA/Firmware.*mkrvidor.*", avoid: "uno"}
46-
knownBoards["uno2018"] = combo{match: "(NINA)", loader: "NINA/Firmware.*unowifi.*", prefer: "uno", avoid: "mkr"}
34+
knownBoards["mkr1000"] = combo{match: "(WINC1500)*(3a0)", loader: "WINC1500/FirmwareUpdater.mkr1000.ino.bin"}
35+
knownBoards["mkrwifi1010"] = combo{match: "NINA_W102.bin", loader: "NINA/FirmwareUpdater.mkrwifi1010.ino.bin"}
36+
knownBoards["nano_33_iot"] = combo{match: "NINA_W102.bin", loader: "NINA/FirmwareUpdater.nano_33_iot.ino.bin"}
37+
knownBoards["mkrvidor4000"] = combo{match: "NINA_W102.bin", loader: "NINA/FirmwareUpdater.mkrvidor4000.ino.bin"}
38+
knownBoards["uno2018"] = combo{match: "NINA_W102-Uno_WiFi_Rev2.bin", loader: "NINA/FirmwareUpdater.unowifirev2.without_bl.ino.hex"}
4739
knownBoards["mkrnb1500"] = combo{match: "SARA", loader: "SARA/SerialSARAPassthrough*"}
48-
//knownBoards["nanorp2040connect"] = combo{match: "(NINA).*(Nano_RP2040_Connect)", loader: "NINA/Firmware.*nanorp2040connect.*"}
40+
knownBoards["nanorp2040connect"] = combo{match: "NINA_W102-Nano_RP2040_Connect", loader: "NINA/FirmwareUpdater.nanorp2040connect.ino.elf"}
4941

5042
listAll := false
5143

@@ -74,16 +66,12 @@ func GetCompatibleWith(name string, rootPath string) map[string][]firmware {
7466
IsLoader: loader.MatchString(unixPath) && !listAll,
7567
}
7668
folder := filepath.Dir(path)
77-
lowerPath, _ := filepath.Rel(root, path)
78-
lowerPath = strings.ToLower(lowerPath)
79-
_, alreadyPopulated := files[folder]
8069
if strings.HasPrefix(f.Name, "firmwares") && !f.IsLoader {
8170
return nil
8271
}
8372
if listAll && !strings.HasPrefix(f.Name, "firmwares") {
8473
files[folder] = append(files[folder], f)
85-
}
86-
if !listAll && (fw.MatchString(path) || f.IsLoader) && isPreferred(alreadyPopulated, lowerPath, knownBoards[name]) {
74+
} else if !listAll && (fw.MatchString(path) || f.IsLoader) {
8775
files[folder] = append(files[folder], f)
8876
}
8977
return nil

0 commit comments

Comments
 (0)