Flash succeeded, but then fails to connect

So, apparently I was able to flash the Meadow board (with the exception of the Warning: Invalid DFU suffix signature). But then, I can’t connect to the board. Anybody have any ideas what to do? Log follows.
Thanks for any advice.

C:\WINDOWS\system32>meadow flash os
Device in DFU Mode, flashing OS
Flashing OS with C:\Users\xxx\AppData\Local\WildernessLabs\Firmware\0.6.0.0\Meadow.OS.bin
dfu-util 0.10

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2020 Tormod Volden and Stefan Schmidt
This program is Free Software and has ABSOLUTELY NO WARRANTY
Please report bugs to http://sourceforge.net/p/dfu-util/tickets/

Match vendor ID from file: 0000
Match product ID from file: 0000
Opening DFU capable USB device…
ID 0483:df11
Run-time device DFU version 011a
Claiming USB DFU Interface…
Setting Alternate Setting #0
Determining device status: state = dfuERROR, status = 10
dfuERROR, clearing status
Determining device status: state = dfuIDLE, status = 0
dfuIDLE, continuing
DFU mode device DFU version 011a
Device returned transfer size 2048
DfuSe interface name: "Internal Flash "
Downloading element to address = 0x08000000, size = 2097152

Erase done.

Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
Warning: Invalid DFU suffix signature
Device Flashed.
Connecting to Meadow on COM1
Failed to connect to Meadow on COM1
System.Exception: Device not ready after 00:01:00s
at Meadow.CLI.Core.Devices.MeadowSerialDevice.InitializeAsync(CancellationToken cancellationToken) in D:\a\1\s\Meadow.CLI.Core\Devices\MeadowSerialDevice.cs:line 97
at Meadow.CLI.Core.DeviceManagement.MeadowDeviceManager.GetMeadowForSerialPort(String serialPort, Boolean verbose, ILogger logger) in D:\a\1\s\Meadow.CLI.Core\DeviceManagement\MeadowDeviceManager.cs:line 56
ERROR
System.Exception: Device not ready after 00:01:00s
at Meadow.CLI.Core.Devices.MeadowSerialDevice.InitializeAsync(CancellationToken cancellationToken) in D:\a\1\s\Meadow.CLI.Core\Devices\MeadowSerialDevice.cs:97
at Meadow.CLI.Core.DeviceManagement.MeadowDeviceManager.GetMeadowForSerialPort(String serialPort, Boolean verbose, ILogger logger) in D:\a\1\s\Meadow.CLI.Core\DeviceManagement\MeadowDeviceManager.cs:56
at Meadow.CLI.Commands.DeviceManagement.FlashOsCommand.ExecuteAsync(IConsole console) in D:\a\1\s\Meadow.CLI\Commands\DeviceManagement\FlashOsCommand.cs:69
at CliFx.CliApplication.RunAsync(ApplicationSchema applicationSchema, CommandInput commandInput) in \home\runner\work\CliFx\CliFx\CliFx\CliApplication.cs:147
at CliFx.CliApplication.RunAsync(IReadOnlyList1 commandLineArguments, IReadOnlyDictionary2 environmentVariables) in \home\runner\work\CliFx\CliFx\CliFx\CliApplication.cs:191
Done!

Update: I had an old COM1 port hanging around on my system for a printer that I no longer used. So I uninstalled it and tried again. Now the error is slightly different:


Download done.
File downloaded successfully
Transitioning to dfuMANIFEST state
Warning: Invalid DFU suffix signature
Device Flashed.
Connecting to Meadow on COM1
ERROR
Meadow.CLI.Core.Exceptions.DeviceNotFoundException: Could not find a connected Meadow with the serial number 3359315C3438
at Meadow.CLI.Core.DeviceManagement.MeadowDeviceManager.FindMeadowBySerialNumber(String serialNumber, ILogger logger, Int32 maxAttempts, CancellationToken cancellationToken) in D:\a\1\s\Meadow.CLI.Core\DeviceManagement\MeadowDeviceManager.cs:193
at Meadow.CLI.Commands.DeviceManagement.FlashOsCommand.ExecuteAsync(IConsole console) in D:\a\1\s\Meadow.CLI\Commands\DeviceManagement\FlashOsCommand.cs:77
at CliFx.CliApplication.RunAsync(ApplicationSchema applicationSchema, CommandInput commandInput) in \home\runner\work\CliFx\CliFx\CliFx\CliApplication.cs:147
at CliFx.CliApplication.RunAsync(IReadOnlyList1 commandLineArguments, IReadOnlyDictionary2 environmentVariables) in \home\runner\work\CliFx\CliFx\CliFx\CliApplication.cs:191
Done!

Update: The problem appears to be with my computer. I switched to a different computer and it is able to communicate with the board.

Hi @jewilson ,

are you in Windows or Mac?

If you’re in Windows, seems to me you need to run the Zadig tool on your machine so you can flash boards. If you connect Meadow in bootloader mode (holding BOOT button while connecting), will it show up as “STM32 BOOTLOADER” in the device manager? or connecting it normally, does it show up as “USB Serial Device (COM#)”? If it either modes says something different, follow this blog post to updated your USB drivers on your machine: How to fix dfu-util, STM, WinUSB, Zadig, Bootloaders and other Firmware Flashing issues on Windows - Scott Hanselman’s Blog.

I’ve had to run this tool a few times after some Windows Updates that keeps reverting my USB drivers. Also fyi, we’ve beta 6.2 is out, which is a full stack release, meaning you should update the Meadow.CLI, download new binaries, and update NuGet packages on your existing projects. You can check the Release Notes to see more.

Thanks for your reply.

I’ve switched to a different computer (I’ll call it laptop). It works fine except for one issue that I’ll open up another thread on. Both are Windows 10.

On desktop computer, the Zadig tool sees it as “Meadow F7 Micro”. I updated the driver for it with Zadig and went through all the flashing of the board with new OS. It still doesn’t show up as a COM port when I plug it in.

BTW - I updated to 0.6.2.0 and now it doesn’t work on my laptop. I can see it from the command prompt using “meadow device info” and everything looks fine on COM3. However, in Visual Studio, there is nothing listed in the Meadows Widget, everything is blank. Trying to deploy and app crashes Visual Studio. Running VS2019 community on Windows 10. Any suggestions?

Hi,

Happend to me also after updating to 0.6.2.0, I solved it by right click on the VS toolbar and enabling Meadow Device List, selected COM3 and it was successfully communicated with Meadow board,
Hope it helps.
GL.

The only thing that helped was to upgrade to Visual Studio 2022. Everything is happy now - until they have a new release.