Skip to content

Commit 9e649fa

Browse files
committed
Fix upload problems
1 parent ed06362 commit 9e649fa

File tree

9 files changed

+85
-21
lines changed

9 files changed

+85
-21
lines changed

Diff for: go.mod

+4-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ go 1.14
66
replace go.bug.st/serial => github.com/cmaglie/go-serial v0.0.0-20200923162623-b214c147e37e
77

88
require (
9-
github.com/arduino/arduino-cli v0.0.0-20200924151007-69ac12c98b2b
10-
github.com/arduino/go-paths-helper v1.3.2
9+
github.com/arduino/arduino-cli v0.0.0-20210419093035-6ca680d235a3
10+
github.com/arduino/go-paths-helper v1.4.0
11+
github.com/imjasonmiller/godice v0.1.2 // indirect
1112
github.com/pkg/errors v0.9.1
1213
github.com/stretchr/testify v1.6.1
13-
go.bug.st/serial v1.1.1
14+
go.bug.st/serial v1.1.2
1415
)

Diff for: go.sum

+58
Large diffs are not rendered by default.

Diff for: modules/nina/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func Run(ctx *context.Context) {
5757
if programmer == nil {
5858
log.Fatal("ERROR: You must specify a programmer!")
5959
}
60-
if err := programmer.Flash(ctx.FWUploaderBinary); err != nil {
60+
if err := programmer.Flash(ctx.FWUploaderBinary, nil); err != nil {
6161
log.Fatal(err)
6262
}
6363
}
@@ -112,7 +112,7 @@ func Run(ctx *context.Context) {
112112
if programmer == nil {
113113
log.Fatal("ERROR: You must specify a programmer!")
114114
}
115-
if err := programmer.Flash(ctx.BinaryToRestore); err != nil {
115+
if err := programmer.Flash(ctx.BinaryToRestore, nil); err != nil {
116116
log.Fatal(err)
117117
}
118118
}

Diff for: modules/sara/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func Run(ctx *context.Context) {
3939

4040
if ctx.FWUploaderBinary != "" {
4141
log.Println("Flashing firmware uploader sara")
42-
if err := programmer.Flash(ctx.FWUploaderBinary); err != nil {
42+
if err := programmer.Flash(ctx.FWUploaderBinary, nil); err != nil {
4343
log.Fatal(err)
4444
}
4545
}
@@ -87,7 +87,7 @@ func Run(ctx *context.Context) {
8787
if ctx.BinaryToRestore != "" {
8888
log.Println("Restoring previous sketch")
8989

90-
if err := programmer.Flash(ctx.BinaryToRestore); err != nil {
90+
if err := programmer.Flash(ctx.BinaryToRestore, nil); err != nil {
9191
log.Fatal(err)
9292
}
9393
}

Diff for: modules/winc/main.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ func Run(ctx *context.Context) {
4141

4242
if ctx.FWUploaderBinary != "" {
4343
log.Println("Flashing firmware uploader winc")
44-
if err := programmer.Flash(ctx.FWUploaderBinary); err != nil {
44+
if err := programmer.Flash(ctx.FWUploaderBinary, nil); err != nil {
4545
log.Fatal(err)
4646
}
4747
}
@@ -95,7 +95,7 @@ func Run(ctx *context.Context) {
9595
if ctx.BinaryToRestore != "" {
9696
log.Println("Restoring previous sketch")
9797

98-
if err := programmer.Flash(ctx.BinaryToRestore); err != nil {
98+
if err := programmer.Flash(ctx.BinaryToRestore, nil); err != nil {
9999
log.Fatal(err)
100100
}
101101
}

Diff for: programmers/avrdude/avrdude.go

+3-2
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"time"
88

99
"github.com/arduino/FirmwareUpdater/utils/context"
10+
"github.com/arduino/arduino-cli/arduino/serialutils"
1011
"github.com/arduino/arduino-cli/executils"
1112
"github.com/arduino/go-paths-helper"
1213
)
@@ -24,7 +25,7 @@ func NewAvrdude(ctx *context.Context) *Avrdude {
2425
}
2526
}
2627

27-
func (b *Avrdude) Flash(filename string) error {
28+
func (b *Avrdude) Flash(filename string, cb *serialutils.ResetProgressCallbacks) error {
2829
log.Println("Flashing " + filename)
2930
err := b.invoke(
3031
fmt.Sprintf("-C%s", b.configPath),
@@ -38,7 +39,7 @@ func (b *Avrdude) Flash(filename string) error {
3839
fmt.Sprintf("-Uflash:w:%s:i", filename),
3940
"-Ufuse8:w:0x00:m")
4041

41-
time.Sleep(3 * time.Second)
42+
time.Sleep(5 * time.Second)
4243

4344
return err
4445
}

Diff for: programmers/bossac/bossac.go

+6-5
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,20 @@ func NewBossac(ctx *context.Context) *Bossac {
2323
}
2424
}
2525

26-
func (b *Bossac) Flash(filename string) error {
26+
func (b *Bossac) Flash(filename string, cb *serialutils.ResetProgressCallbacks) error {
2727
log.Println("Entering board into bootloader mode")
28-
port, err := serialutils.Reset(b.portName, true)
28+
port, err := serialutils.Reset(b.portName, true, cb)
2929
if err != nil {
3030
return err
3131
}
3232

3333
log.Println("Flashing " + filename)
34+
if port == "" {
35+
port = b.portName
36+
}
3437
err = b.invoke("-e", "-R", "-p", port, "-w", filename)
3538

36-
b.portName, err = serialutils.WaitForNewSerialPortOrDefaultTo(port)
37-
log.Println("Board is back online " + b.portName)
38-
time.Sleep(1 * time.Second)
39+
time.Sleep(5 * time.Second)
3940

4041
return err
4142
}

Diff for: programmers/rp2040load/rp2040load.go

+5-4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package rp2040load
33
import (
44
"log"
55
"os"
6+
"time"
67

78
"github.com/arduino/FirmwareUpdater/utils/context"
89
"github.com/arduino/arduino-cli/arduino/serialutils"
@@ -22,9 +23,9 @@ func NewRP2040Load(ctx *context.Context) *RP2040Load {
2223
}
2324
}
2425

25-
func (b *RP2040Load) Flash(filename string) error {
26+
func (b *RP2040Load) Flash(filename string, cb *serialutils.ResetProgressCallbacks) error {
2627
log.Println("Entering board into bootloader mode")
27-
port, err := serialutils.Reset(b.portName, true)
28+
_, err := serialutils.Reset(b.portName, true, cb)
2829
if err != nil {
2930
return err
3031
}
@@ -34,8 +35,8 @@ func (b *RP2040Load) Flash(filename string) error {
3435
log.Fatalf("Error flashing %s: %s", filename, err)
3536
}
3637

37-
b.portName, err = serialutils.WaitForNewSerialPortOrDefaultTo(port)
38-
log.Println("Board is back online " + b.portName)
38+
time.Sleep(5 * time.Second)
39+
3940
return err
4041
}
4142

Diff for: utils/context/context.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package context
22

33
import (
44
"fmt"
5+
6+
"github.com/arduino/arduino-cli/arduino/serialutils"
57
)
68

79
type addressFlags []string
@@ -29,5 +31,5 @@ type Context struct {
2931
}
3032

3133
type Programmer interface {
32-
Flash(filename string) error
34+
Flash(filename string, cb *serialutils.ResetProgressCallbacks) error
3335
}

0 commit comments

Comments
 (0)