Spagett1 / pineflash

A tool to flash ironos to the pinecil soldering iron and possibly other pine64 devices in the future
Other
213 stars 12 forks source link

v1 iron not detected #70

Closed mmiller7 closed 5 months ago

mmiller7 commented 7 months ago

The Pinecil v1 seems to not be properly detected and unable to update even though it is connected in DFU mode and recognized by the command line dfu-util (and I can flash successfully thru dfu-util)

I also own a Pinecil v2 which is recognized correctly by PineFlash, only the Pinecil v1 has this problem.

Installed using .deb package on Linux Mint 21 (Ubuntu 22.04-LTS based)

image

$ sudo dfu-util -l
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 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/

Found DFU: [28e9:0189] ver=0100, devnum=58, cfg=1, intf=0, path="3-2", alt=1, name="@Option Bytes  /0x1FFFF800/01*016Be", serial="??"
Found DFU: [28e9:0189] ver=0100, devnum=58, cfg=1, intf=0, path="3-2", alt=0, name="@Internal Flash  /0x08000000/128*001Kg", serial="??"

And by-hand flashing works

$ sudo dfu-util -D Pinecil_EN.dfu -a 0
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 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: 28e9
Match product ID from file: 0189
Opening DFU capable USB device...
ID 28e9:0189
Run-time device DFU version 011a
Claiming USB DFU Interface...
Setting Alternate Setting #0 ...
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  "
file contains 1 DFU images
parsing DFU image 1
image for alternate setting 0, (1 elements, total size = 54544)
parsing element 1, address = 0x08000000, size = 54536
Download    [=========================] 100%        54536 bytes
Download done.
done parsing DfuSe file
Spagett1 commented 7 months ago

Interesting, I'm currently away from my computer so I can't do any testing but i don't believe I have the -a 0 flag, that may need to be added.

Thanks for the report.

mmiller7 commented 7 months ago

Interesting, I'm currently away from my computer so I can't do any testing but i don't believe I have the -a 0 flag, that may need to be added.

Thanks for the report.

I don't know that its required, but I used it before. I was somewhat uncertain what the commands do but that's what worked the first try following this page:

https://ralim.github.io/IronOS/Flashing/Pinecil%20V1/

If you need me to do any tests (or collect logs from something) I'm happy to...just not totally sure what else to provide for feedback.

mmiller7 commented 7 months ago

Interesting, I'm currently away from my computer so I can't do any testing but i don't believe I have the -a 0 flag, that may need to be added.

Thanks for the report.

Quick update - I tested command line and that also fails in dfu-util without specifying -a 0 so the extra option must for some reason be required. I am not aware of any other DFU devices connected to my computer, but that seems to be an important option-flag in my case.

sudo dfu-util -D Pinecil_EN.dfu
dfu-util 0.9

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2016 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: 28e9
Match product ID from file: 0189
dfu-util: More than one DFU capable USB device found! Try `--list' and specify the serial number or disconnect all but one device

Hope that helps tracking down the fix!

pfeerick commented 6 months ago

For what it's worth, I just flashed two Pinecil V1s on a clean install of Windows 11 23H2 using Pineflash v0.5.3 and it flashed ok (after I installed the WinUSB drivers - prior to that nether pineflash or dfu-util -l could see the pinecils). Specifying which alternate phase (i.e. -a 0) to use is pretty standard though and certainly won't hurt!

mmiller7 commented 6 months ago

For what it's worth, I just flashed two Pinecil V1s on a clean install of Windows 11 23H2 using Pineflash v0.5.3 and it flashed ok (after I installed the WinUSB drivers - prior to that nether pineflash or dfu-util -l could see the pinecils). Specifying which alternate phase (i.e. -a 0) to use is pretty standard though and certainly won't hurt!

That's interesting...I don't have a Windows box to compare, but maybe this is a difference between Windows/Linux versions of the dfu-util tool or something.

Out of curiosity, does your Windows machine list 1 or 2 lines with the Pinecil v1 connected? Mine lists 2 of them (looks like 1 flash, and 1 options) and I posted the output of dfu-util -l in my original starting report.

pfeerick commented 6 months ago

Two lines, like with your dfu-util -l listing. This is consistent with the behaviour of STM32 devices, as they also expose the fuse/option bytes the same way. We need to specify which alternate interface to use as as the .dfu format isn't being used (which encodes the memory address and alternate interface in the file also).

dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 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/

Found DFU: [28e9:0189] ver=1000, devnum=11, cfg=1, intf=0, path="1-9.2.3", alt=1, name="@Option Bytes  /0x1FFFF800/01*016 g", serial="3TBJ"
Found DFU: [28e9:0189] ver=1000, devnum=11, cfg=1, intf=0, path="1-9.2.3", alt=0, name="@Internal Flash  /0x08000000/512*002Kg", serial="3TBJ"
Spagett1 commented 6 months ago

Interesting, I should be able to solve this in the next couple weeks now that I have my computer back. The answer will probably include parsing dfu-util -l for name="@Internal Flash and then specify the respective -a option. Thanks for the help in gathering info everyone.

pfeerick commented 6 months ago

On Linux, I get

pfeerick@B560M-DS3H-AC-kubuntu:~$ sudo dfu-util -l
dfu-util 0.11

Copyright 2005-2009 Weston Schmidt, Harald Welte and OpenMoko Inc.
Copyright 2010-2021 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/

Found DFU: [28e9:0189] ver=1000, devnum=13, cfg=1, intf=0, path="1-9.2.3", alt=1, name="@Option Bytes  /0x1FFFF800/01*016 g", serial="3TBJ"
Found DFU: [28e9:0189] ver=1000, devnum=13, cfg=1, intf=0, path="1-9.2.3", alt=0, name="@Internal Flash  /0x08000000/512*002Kg", serial="3TBJ"

for the Pinecil v1

[ 3123.713109] usb 1-9.2.3: new full-speed USB device number 13 using xhci_hcd
[ 3123.815645] usb 1-9.2.3: New USB device found, idVendor=28e9, idProduct=0189, bcdDevice=10.00
[ 3123.815647] usb 1-9.2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3123.815648] usb 1-9.2.3: Product: GD32 0x418 DFU Bootloade
[ 3123.815649] usb 1-9.2.3: Manufacturer: GDMicroelectronics
[ 3123.815650] usb 1-9.2.3: SerialNumber: 吳䩂

For the STM32 devices I've flashed over the years, -a 0 seems to always be the correct value... i.e. to the point it's hard-coded into the scripts most places I see it. It certainly won't hurt to look before assuming though :hand_over_mouth:

Spagett1 commented 6 months ago

Ive ended up just hardcoding -a 0 since it seems much similar and it doesnt seem to change, ive commited the changes and should publish a new release soon.

mmiller7 commented 5 months ago

Do you happen to have a guess what time-frame a new release would be published to the downloads?

Spagett1 commented 5 months ago

Hey, I've been very busy, I'll try to have it done in the next week.

Spagett1 commented 5 months ago

Alrighty, with release 0.5.4 this should be fixed.