Skip to content

Commit

Permalink
Fix upload problems
Browse files Browse the repository at this point in the history
  • Loading branch information
cmaglie committed Apr 19, 2021
1 parent ed06362 commit 9e649fa
Show file tree
Hide file tree
Showing 9 changed files with 85 additions and 21 deletions.
7 changes: 4 additions & 3 deletions go.mod
Expand Up @@ -6,9 +6,10 @@ go 1.14
replace go.bug.st/serial => github.com/cmaglie/go-serial v0.0.0-20200923162623-b214c147e37e

require (
github.com/arduino/arduino-cli v0.0.0-20200924151007-69ac12c98b2b
github.com/arduino/go-paths-helper v1.3.2
github.com/arduino/arduino-cli v0.0.0-20210419093035-6ca680d235a3
github.com/arduino/go-paths-helper v1.4.0
github.com/imjasonmiller/godice v0.1.2 // indirect
github.com/pkg/errors v0.9.1
github.com/stretchr/testify v1.6.1
go.bug.st/serial v1.1.1
go.bug.st/serial v1.1.2
)
58 changes: 58 additions & 0 deletions go.sum

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions modules/nina/main.go
Expand Up @@ -57,7 +57,7 @@ func Run(ctx *context.Context) {
if programmer == nil {
log.Fatal("ERROR: You must specify a programmer!")
}
if err := programmer.Flash(ctx.FWUploaderBinary); err != nil {
if err := programmer.Flash(ctx.FWUploaderBinary, nil); err != nil {
log.Fatal(err)
}
}
Expand Down Expand Up @@ -112,7 +112,7 @@ func Run(ctx *context.Context) {
if programmer == nil {
log.Fatal("ERROR: You must specify a programmer!")
}
if err := programmer.Flash(ctx.BinaryToRestore); err != nil {
if err := programmer.Flash(ctx.BinaryToRestore, nil); err != nil {
log.Fatal(err)
}
}
Expand Down
4 changes: 2 additions & 2 deletions modules/sara/main.go
Expand Up @@ -39,7 +39,7 @@ func Run(ctx *context.Context) {

if ctx.FWUploaderBinary != "" {
log.Println("Flashing firmware uploader sara")
if err := programmer.Flash(ctx.FWUploaderBinary); err != nil {
if err := programmer.Flash(ctx.FWUploaderBinary, nil); err != nil {
log.Fatal(err)
}
}
Expand Down Expand Up @@ -87,7 +87,7 @@ func Run(ctx *context.Context) {
if ctx.BinaryToRestore != "" {
log.Println("Restoring previous sketch")

if err := programmer.Flash(ctx.BinaryToRestore); err != nil {
if err := programmer.Flash(ctx.BinaryToRestore, nil); err != nil {
log.Fatal(err)
}
}
Expand Down
4 changes: 2 additions & 2 deletions modules/winc/main.go
Expand Up @@ -41,7 +41,7 @@ func Run(ctx *context.Context) {

if ctx.FWUploaderBinary != "" {
log.Println("Flashing firmware uploader winc")
if err := programmer.Flash(ctx.FWUploaderBinary); err != nil {
if err := programmer.Flash(ctx.FWUploaderBinary, nil); err != nil {
log.Fatal(err)
}
}
Expand Down Expand Up @@ -95,7 +95,7 @@ func Run(ctx *context.Context) {
if ctx.BinaryToRestore != "" {
log.Println("Restoring previous sketch")

if err := programmer.Flash(ctx.BinaryToRestore); err != nil {
if err := programmer.Flash(ctx.BinaryToRestore, nil); err != nil {
log.Fatal(err)
}
}
Expand Down
5 changes: 3 additions & 2 deletions programmers/avrdude/avrdude.go
Expand Up @@ -7,6 +7,7 @@ import (
"time"

"github.com/arduino/FirmwareUpdater/utils/context"
"github.com/arduino/arduino-cli/arduino/serialutils"
"github.com/arduino/arduino-cli/executils"
"github.com/arduino/go-paths-helper"
)
Expand All @@ -24,7 +25,7 @@ func NewAvrdude(ctx *context.Context) *Avrdude {
}
}

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

time.Sleep(3 * time.Second)
time.Sleep(5 * time.Second)

return err
}
Expand Down
11 changes: 6 additions & 5 deletions programmers/bossac/bossac.go
Expand Up @@ -23,19 +23,20 @@ func NewBossac(ctx *context.Context) *Bossac {
}
}

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

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

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

return err
}
Expand Down
9 changes: 5 additions & 4 deletions programmers/rp2040load/rp2040load.go
Expand Up @@ -3,6 +3,7 @@ package rp2040load
import (
"log"
"os"
"time"

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

func (b *RP2040Load) Flash(filename string) error {
func (b *RP2040Load) Flash(filename string, cb *serialutils.ResetProgressCallbacks) error {
log.Println("Entering board into bootloader mode")
port, err := serialutils.Reset(b.portName, true)
_, err := serialutils.Reset(b.portName, true, cb)
if err != nil {
return err
}
Expand All @@ -34,8 +35,8 @@ func (b *RP2040Load) Flash(filename string) error {
log.Fatalf("Error flashing %s: %s", filename, err)
}

b.portName, err = serialutils.WaitForNewSerialPortOrDefaultTo(port)
log.Println("Board is back online " + b.portName)
time.Sleep(5 * time.Second)

return err
}

Expand Down
4 changes: 3 additions & 1 deletion utils/context/context.go
Expand Up @@ -2,6 +2,8 @@ package context

import (
"fmt"

"github.com/arduino/arduino-cli/arduino/serialutils"
)

type addressFlags []string
Expand Down Expand Up @@ -29,5 +31,5 @@ type Context struct {
}

type Programmer interface {
Flash(filename string) error
Flash(filename string, cb *serialutils.ResetProgressCallbacks) error
}

0 comments on commit 9e649fa

Please sign in to comment.