diff --git a/firmwares/NINA/FirmwareUpdater.nanorp2040connect.ino.elf b/firmwares/NINA/FirmwareUpdater.nanorp2040connect.ino.elf new file mode 100755 index 00000000..02bcede1 Binary files /dev/null and b/firmwares/NINA/FirmwareUpdater.nanorp2040connect.ino.elf differ diff --git a/modules/nina/main.go b/modules/nina/main.go index a8df917e..7659279d 100644 --- a/modules/nina/main.go +++ b/modules/nina/main.go @@ -41,16 +41,21 @@ func Run(ctx context.Context) { var err error - if strings.Contains(filepath.Base(ctx.ProgrammerPath), "bossac") { - programmer = &bossac.Bossac{} - } else if strings.Contains(filepath.Base(ctx.ProgrammerPath), "avrdude") { - programmer = &avrdude.Avrdude{} - } else { - log.Fatal("Programmer path not specified correctly, programmer path set to: " + ctx.ProgrammerPath) + if ctx.ProgrammerPath != "" { + if strings.Contains(filepath.Base(ctx.ProgrammerPath), "bossac") { + programmer = &bossac.Bossac{} + } else if strings.Contains(filepath.Base(ctx.ProgrammerPath), "avrdude") { + programmer = &avrdude.Avrdude{} + } else { + log.Fatal("Programmer path not specified correctly, programmer path set to: " + ctx.ProgrammerPath) + } } if ctx.FWUploaderBinary != "" { log.Println("Flashing firmware uploader nina") + if programmer == nil { + log.Fatal("ERROR: You must specify a programmer!") + } if ctx.BinaryToRestore == "" { ctx.BinaryToRestore, err = programmer.DumpAndFlash(&ctx, ctx.FWUploaderBinary) } else { @@ -107,9 +112,12 @@ func Run(ctx context.Context) { } if ctx.BinaryToRestore != "" { - log.Println("Restoring previous sketch") f.Close() + log.Println("Restoring previous sketch") + if programmer == nil { + log.Fatal("ERROR: You must specify a programmer!") + } if err := programmer.Flash(&ctx, ctx.BinaryToRestore); err != nil { log.Fatal(err) }