Closed overflo23 closed 1 year ago
Hmm this is odd; I have 2.20 on a PinecilV1 here that does work. The logo code should be backwards compatible to the old format so even flashing an older dfu wont matter.
Those steps should be correct.
Can you try using dfu-util to read the flash from the pinecil instead and attach the file here?
@overflo23
Can you try using dfu-util to read the flash from the pinecil instead and attach the file here?
i updated the dfu-util and did the same procedure for flashing again. did not work out.
sudo dfu-util -a 0 -i 0 -U pinecil1.0_2.20+bootlogo.dfu 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/
Opening DFU capable USB device... Device ID 28e9:0189 Device DFU version 011a Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 011a Device returned transfer size 2048 dfu-util: Unbound upload not supported on DfuSe devices Limiting default upload to 16384 bytes Upload [=========================] 100% 16384 bytes Upload done.
is a 16kB .dfu file reasonable? i never dumped a .dfu before.
@overflo23
@1+2 i bought an original pinecil v1directly from pine PCB inprint reads: Pinecil_V1_0_20201020 @3: as stated above i downloaded the content of the pinecil after flashing logo and firmware to it and saved it in the file. the terminology of upload and download is twisted in dfu-util as it is viewed from the target contrary to the host as usual. (- U/ -D) will do the opposite of the intuitive thing.
@1+2 i bought an original pinecil v1directly from pine
I see your message in Discord
This is concerning that your Pinecil is brand new and yet it says Pinecil_V1_0_20201020 on the PCB. if you just got it recently, then it might be a fake copy, only the fake copies would have that printed on PCB and be shipped recently. Aliexpress for example is selling fake copies or the original older V1 with V1_0-... printed on the PCB.
Could you post a photo of the outside of the Pinecil the handle? all Pinecils sold Aug 2, 2022 onwards will be all black color with a Green silicone thumb grip (and they have a MCU with BLE bluetooth BL706. Only very old original Pinecil V1 will have Pinecil_V1_0... printed on the PCB and they have not been sold since last year.
Good news is that we have been able to help many people in the discord chat with even fake copies of older V1 to get firmware updated on it.
no i got it some time back. maybe a year or so. its very likely genuine.
when i wrote i opened it yesterday i mean i opened the pinecil to peek inside ;)
no i got it some time back. maybe a year or so.
ok, that makes more sense. If you bought this V1 over a year ago then that is normal. The discord chat message was confusing because it says you opened it yesterday and it had Pinecil_V1... I thought you meant you just got it now. I understand now
Either something is happening with the dfu flashing method and that is why boot logo is not flashing or something is happening with the python image custom art.
This will eliminate some possibilities.
To confirm the files are all working. I just now personally downloaded Pinecil.zip with all the boot logo art. and tested updating 3 different ones.
I tested this on Windows 11 PC, using this flasher/updater, https://github.com/pine64/pine64_updater/releases/tag/1.0.3
Note that in windows11, have to "run as administrator" and "allow" the flasher to run as windows will pop up a message that it is unknown app.
This is on one of my older Pinecil V1 models. I used the file
arcade_pac_man.png.dfu
I tested 3 different ones in that pinecil.zip and all worked. but this is on windows 11, using gamiee's updater.
don't know if this will help, but when I made some custom logo art I made sure to update to newest Python on windows. I'm currently at 3.11 as of today. for these stock images inside the zip file it should not make a difference since they are all pre-made dfu and ready to use.
if read this right the pinecil flasher tool is a wrapper for dfu-util functionality
i was able to flash the .dfu for 2.20 and can confirm that worked. when i flash the precompiled bootlogo (arcade_pac_man) i get the following output: sudo dfu-util -a 0 -D arcade_pac_man.png.dfu dfu-util 0.11
Match vendor ID from file: 1209 Match product ID from file: db42 Multiple alternate interfaces for DfuSe file Opening DFU capable USB device... Device ID 28e9:0189 Device DFU version 011a Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 011a Device returned transfer size 2048 DfuSe interface name: "Internal Flash " Found GD32VF103, which reports a bad page size and count for its internal memory. Fixed layout based on part number: page size 1024, count 128. File contains 1 DFU images Parsing DFU image 1 Target name: IronOS-dfu Image for alternate setting 0, (1 elements, total size = 1032) Setting Alternate Interface #0 ... Parsing element 1, address = 0x0800f800, size = 1024 Erase [=========================] 100% 1024 bytes Erase done. Download [=========================] 100% 1024 bytes Download done. Done parsing DfuSe file
a broken cable or dfu problem is not here or i would not be able to flash the ironOS 2.20 with the same tools.
is there a way to dump the current memory complete into a .dfu or .bin or anything to check the contents?
the -U seems not work properly, it only returns 16K but the upload of pinecil_EN.dfu is 53k alone. i played with the -t und -Z options, but had no success getting any more data than the 16kb file already linked above. (pinecil1.0_2.20+bootlogo.dfu.tar.gz
is the highlighted part about the bad page_size and count normal behaviour?
i have second pinecil v1 here that i just flashed with the same procedure and the same results as the first pinecil v1 the dfu-util output with the bad page_size is also identical.
flash ok, on first boot "some settings changed" on display. enabled "show bootlogo" in menu. but no logo anywhere. ¯\(ツ)/¯
i found a way to dump memory regions via dfu-util sudo dfu-util -s 0x0800f800 -a 0 -i 0 -U 0x0800f800.bin 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/
Opening DFU capable USB device... Device ID 28e9:0189 Device DFU version 011a Claiming USB DFU Interface... Setting Alternate Interface #0 ... Determining device status... DFU state(2) = dfuIDLE, status(0) = No error condition is present DFU mode device DFU version 011a Device returned transfer size 2048 DfuSe interface name: "Internal Flash " Found GD32VF103, which reports a bad page size and count for its internal memory. Fixed layout based on part number: page size 1024, count 128. Limiting upload to end of memory segment, 67584 bytes Upload [=========================] 100% 67584 bytes Upload done.
DUMPS: contents.tar.gz
contains 0x8000000 = pinecil_EN.dfu and 0x800f800 contains the logo. not sure if the data matches. i uploaded the arcade_pac_man.png.dfu but the dump seems to be raw binary data not .dfu metadata
hexdump -C 0x0800f800.bin = flash read back that should contain the pacman arcade logo
00000000 aa 00 ff 00 00 00 00 00 00 00 80 80 00 00 00 00 |................| 00000010 00 80 80 00 00 00 00 00 00 b0 b0 00 00 00 00 00 |................| 00000020 00 f0 f0 00 00 00 00 c0 e0 30 10 f0 f0 00 00 f0 |.........0......| 00000030 f0 80 80 f0 f0 00 00 10 10 10 10 f0 f0 00 00 70 |...............p| 00000040 f0 80 00 f0 f0 00 00 00 00 80 80 00 00 00 00 00 |................| 00000050 80 80 00 00 30 38 78 7c 7c fc fc fc f8 f8 f0 c0 |....08x||.......| 00000060 00 00 00 00 00 00 00 00 00 03 07 07 03 00 00 00 |................| 00000070 03 07 07 03 00 00 00 00 0e 1f 1f 0e 00 00 00 1e |................| 00000080 1f 01 01 1f 1e 00 00 07 0f 18 10 1f 1f 00 00 07 |................| 00000090 0f 18 18 0f 07 00 00 10 11 11 11 1f 1f 00 00 0e |................| 000000a0 1f 11 11 1f 1f 00 00 00 03 07 07 03 00 00 00 03 |................| 000000b0 07 07 03 00 18 38 3c 7c 7c 7e 7e 7f 3f 3f 1f 07 |.....8<||~~.??..| 000000c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000400 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00010400 aa 55 ff ff 68 01 96 00 05 00 00 00 21 00 5a 00 |.U..h.......!.Z.| 00010410 02 00 07 00 01 00 01 00 00 00 0a 00 00 00 01 00 |................| 00010420 01 00 00 00 00 00 02 00 00 00 04 00 01 00 d3 01 |................| 00010430 ae 01 84 03 00 00 00 00 0a 00 02 00 07 00 00 00 |................| 00010440 00 00 ff ff 14 00 00 00 21 00 05 00 00 00 ff ff |........!.......| 00010450 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| * 00010800
does this look like reasonable content?
@overflo23 Have you tried:
sudo dfu-util -D arcade_pac_man.png.dfu
setting for boot logo timeout, try 5 seconds or infinity symbol. Also I noticed on Gamiee's Pine Updater, I could not do the boot logo in the same session as firmware update. In other words, if I do a firmware update, I have to exit from the DFU app completely first. then connect pinecil V1 again and then do Boot logo. and if I wanted to change the boot logo, I had to exit the app again and reconnect again a new session.
yes the Gui app in windows is just a wrapper for DFU. In Linux you should be able to just use the command line newest 0.11 dfu to load the logo. There is also a Linux Gui app for V1, give that a try, I have used Spagett's Linux app to install both firmware and also boot logo art and it works. https://github.com/Spagett1/PineFlash
If you are having issues on the command line dfu-util, it doesn't hurt to give Spagett's Linux/Mac app a try. or go to a different machine like windows if you have access and try Gamiee's Pine64 Updater.
I think this ticket can be closed?
I flashed the current firmware 2.20 with the dfu-util. That worked fine
I later installed a bootlogo fom this repo, it flashed from the .dfu file but it will not show during boot.
I tried to flash older version of the firmware down to 2.16 but it does not show the logo, regardless of the firmwareversion. I enabled the bootup logo in the user interface menu, but it will not display no matter if 1,2,3,4 seconds or ∞ are chosen.
What did i do wrong?
sudo dfu-util -a 0 -D arcade_pac_man.png.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: 1209 Match product ID from file: db42 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 = 1032) parsing element 1, address = 0x0800f800, size = 1024 Download [=========================] 100% 1024 bytes Download done. done parsing DfuSe file