Skip to content

Commit 27a77e8

Browse files
authored
Merge pull request #13 from arduino/nano_33_iot_support
Added support for Nano 33 IoT
2 parents cffa595 + b9139e6 commit 27a77e8

File tree

4 files changed

+19
-23
lines changed

4 files changed

+19
-23
lines changed
Binary file not shown.

modules/nina/flasher.go

+1-8
Original file line numberDiff line numberDiff line change
@@ -249,18 +249,11 @@ func (flasher *Flasher) Md5sum(data []byte) error {
249249
}
250250

251251
func OpenFlasher(portName string) (*Flasher, error) {
252-
253252
port, err := utils.OpenSerial(portName)
254-
255253
if err != nil {
256254
return nil, &FlasherError{err: "Error opening serial port. " + err.Error()}
257255
}
258256

259-
flasher := &Flasher{
260-
port: port,
261-
}
262-
263257
time.Sleep(2 * time.Second)
264-
265-
return flasher, err
258+
return &Flasher{port: port}, err
266259
}

utils/flasher.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,12 @@ var baudRates = []int{
1717
}
1818

1919
func OpenSerial(portName string) (serial.Port, error) {
20-
var err error
20+
var lastError error
21+
2122
for _, baudRate := range baudRates {
22-
mode := &serial.Mode{
23-
BaudRate: baudRate,
24-
}
25-
port, err := serial.Open(portName, mode)
23+
port, err := serial.Open(portName, &serial.Mode{BaudRate: baudRate})
2624
if err != nil {
25+
lastError = err
2726
// try another baudrate
2827
continue
2928
}
@@ -33,8 +32,9 @@ func OpenSerial(portName string) (serial.Port, error) {
3332
log.Fatalf("Could not set timeout on serial port: %s", err)
3433
return nil, err
3534
}
35+
3636
return port, nil
3737
}
3838

39-
return nil, err
39+
return nil, lastError
4040
}

utils/utils.go

+12-9
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ func GetCompatibleWith(name string) map[string][]firmware {
4040

4141
knownBoards := make(map[string]combo)
4242
knownBoards["mkr1000"] = combo{match: "(WINC1500)*(3a0)", loader: "WINC1500/Firmware*"}
43-
knownBoards["mkrwifi1010"] = combo{match: "(NINA)", loader: "NINA/Firmware*(mkrwifi)*", avoid: "uno"}
44-
knownBoards["nano_33_iot"] = combo{match: "(NINA)", loader: "NINA/Firmware*(mkrwifi)*", 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"}
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"}
4747
knownBoards["mkrnb1500"] = combo{match: "SARA", loader: "SARA/SerialSARAPassthrough*"}
4848

4949
listAll := false
@@ -55,25 +55,28 @@ func GetCompatibleWith(name string) map[string][]firmware {
5555
exePath, _ := os.Executable()
5656
root := filepath.Dir(exePath)
5757
root = filepath.Join(root, "firmwares")
58+
loader := regexp.MustCompile(knownBoards[name].loader)
59+
fw := regexp.MustCompile(knownBoards[name].match)
5860

5961
err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error {
62+
if info.IsDir() {
63+
return nil
64+
}
6065
unixPath := filepath.ToSlash(path)
6166
parts := strings.Split(unixPath, "/")
6267
fancyName := parts[len(parts)-3] + " " + parts[len(parts)-2]
63-
loader := regexp.MustCompile(knownBoards[name].loader)
64-
fw := regexp.MustCompile(knownBoards[name].match)
6568
f := firmware{
6669
Path: path,
6770
Name: fancyName,
6871
IsLoader: loader.MatchString(path) && !listAll,
6972
}
70-
if info.IsDir() {
71-
return nil
72-
}
7373
folder := filepath.Dir(path)
7474
lowerPath, _ := filepath.Rel(root, path)
7575
lowerPath = strings.ToLower(lowerPath)
7676
_, alreadyPopulated := files[folder]
77+
if strings.HasPrefix(f.Name, "firmwares") && !f.IsLoader {
78+
return nil
79+
}
7780
if listAll && !strings.HasPrefix(f.Name, "firmwares") {
7881
files[folder] = append(files[folder], f)
7982
}

0 commit comments

Comments
 (0)