Gissio / radpro

Custom firmware for Geiger counters/radiation meters (FS2011, Bosean FS-600, FS-1000, FS-5000, FNIRSI GC-01)
MIT License
162 stars 20 forks source link

FNIRSI GC-01: Debugging #14

Closed NikoTumi closed 5 months ago

NikoTumi commented 8 months ago

I want to run a script on my PC that would email and SMS me data log of when the measurement goes +X%.

Is it possible to grab the readings or logs from the GC-01. This is the one I got. https://www.amazon.com/Geiger-Counter-Nuclear-Radiation-Detector/dp/B0BHH9X1WG/ref=sr_1_4?keywords=nuclear+radiation+detector&sr=8-4&ufe=app_do%3Aamzn1.fos.18ed3cb5-28d5-4975-8bc7-93deae8f9840

Also wanted to hook it up to my android phone to map rad levels while traveling on plane.

Thanks for the help.

Gissio commented 8 months ago

FNIRSI GC-01 support is not ready yet (but it won't take long).

Once it is, yes, you will be able to log data.

In the meantime, watch the project to get notified when a new release comes out.

NikoTumi commented 8 months ago

So quick research on the chip being used, CH32F103 R8T6, and found the following. Chip: CH32F103 R8T6 Existing Repo: https://github.com/IOsetting/StdPeriphLib_CH32F1 Detailed manual: https://crossic.com/product/ch32f103r8t6/ I'll look more into this.

Gissio commented 8 months ago

Don't worry, Rad Pro for GC-01 is really around the corner!

JantarX commented 6 months ago

hi. first of all, I want to thank you for the work on those devices. but there is a boot error on the fnirsi GC-01 device with firmware rad pro 2.0 beta. the device does not boot the firmware, but fortunately Windows can still open it and upload the old firmware to it. I had firmware 1.6 since new, now I have 1.6-2 which I downloaded from the net but it looks like it multiplies the dose. don't you have the original 1.6 uploaded/stored somewhere? thank you

Gissio commented 6 months ago

Unfortunately I only have firmware 0.3 and 1.5, which you can find here: https://github.com/Gissio/radpro/blob/main/docs/install-gc01.md.

Can you refer me to a link to firmware 1.6?

JantarX commented 6 months ago

Ofcourse. Here is it: https://drive.google.com/drive/folders/1XN-d1ZiFq0ur_ae392iQr-pbHZY32Ag5

But I don't have the clean version 1.6,I've had it since buying a new device, but it's nowhere. I have also tried writing an email to support but so far no response... So that's what I'm looking for. There is only 1.6-2 where there is an extended translation and then in 1.5 where fonts are missing after reboot unless I activate them in the settings by selecting the language. The problem is that in version 1.6-2, my background dose jumped double. I only have tungsten-thorium electrodes as a source for measurement, in any case, the computer assembly does not react to them. Even though I know that thorium is primarily an alpha emitter, but from some sources I saw measurements for beta particles from this element and specifically from this source, and they were evident.. I have nothing to compare it with. It would be ideal if someone who has two GM computers tested it, and even more ideally if they compared it to one that is professionally calibrated.

Gissio commented 6 months ago

Thanks for sharing!

That's odd, the GC-01 contains 64 kB flash, of which 16 kB are reserved for the bootloader. Thus the firmware should never be larger than 48 kB, yet the file you sent me is larger than that. Strange indeed.

I'm currently fixing a USB problem with the GC-01. Hopefully Rad Pro will work on the GC-01 after that.

Gissio commented 6 months ago

I have added a new release. Can you try now?

JantarX commented 6 months ago

Clearly. But there is the same problem as with the previous release. After uploading the firmware, the display just turns off and does not respond to anything, except invoking the transfer mode with a PC. I noticed otherwise that when prompted to invoke transfer mode, it says to hold down the power button. I have a difference on my device. I have to press power button + right/settings button for that process. They had to release several types of devices with different hardware but the same designation. If you want, I can take a picture of the board.

Gissio commented 6 months ago

Thanks for your patience!

I'm sending you a special test firmware:

radpro-beta17.test2.bin.zip

After flashing it, unplug from USB.

Keep the ok/power key pressed. The pulse LED should flash 13 times. If it flashes fewer times, please let me know how often it flashes. This will let me diagnose the problem.

Now you can release the ok/power key. You should see a screen similar to this one:

test

If you get to this point, please attach a photo of the screen in your message.

pd: One more test. If you release the power key after the pulse LED flashes for the fourth time, does the sequence continue?

mizsha commented 6 months ago

Hi, same trouble, my device flashes 13 times, then restarts ... with FW in zip file.

Gissio commented 6 months ago

That's actually great news: all the peripherals are initializing correctly!

I just found a very silly error with the LCD. Again, thanks for the patience:

radpro-beta17.test3.bin.zip

Even if the screen does not work, let me know whether:

mizsha commented 6 months ago

IMG_20240223_005329 LCD flashes with some artefacts and LED dont turn on or even pulse.

Gissio commented 6 months ago

It seems the LCD display is receiving commands now, but something is still off.

Let's do one more test: as before, the output should be the white screen with four lines of text. The LED and the buzzer should pulse periodically.

radpro-beta17.test4.bin.zip

Again, thanks for your patience.

JantarX commented 6 months ago

radpro-beta17.test4 - now there is only a white screen, LED and buzzer that blink irregularly. No characters, no image failure, just a lit panel. It looks like me and Mizsha have the same device because the previous test turned out the same.

That's okay. I guess we can fine-tune it together somehow :)

Gissio commented 6 months ago

Let's try one more time. This time I'm sending two tests. Let me know which one(s) work.

radpro-beta17.test5.and.test6.zip

JantarX commented 6 months ago

When I hold the power, it lights up the panel with no characters, the LED blinks, the buzzer beeps, and in a second it all goes out. After a long pause, it takes longer if it all starts at all (5-6 seconds). it is the same in both cases from test 5 and 6

Gissio commented 6 months ago

Can you make a short video?

JantarX commented 6 months ago

https://github.com/Gissio/radpro/assets/140242284/e3c66e64-85ea-4ccf-9b1d-3b4917b54347

After an even longer pause, it loads for 15 seconds.

JantarX commented 6 months ago

Obrázok WhatsApp 2024-02-23 o 21 34 14_d8e4cb2c Obrázok WhatsApp 2024-02-23 o 21 34 14_ed8b652c

I’m attaching photos of the board in case you need to compare it with yours.

Does everything work for you when you upload firmware 1.6-2?

Gissio commented 6 months ago

That was fast! Thanks for the video and photos.

It seems the device is resetting at the moment the screen turns off. I'll get in touch once I have news.

JantarX commented 6 months ago

I just put it together when you asked for a video so it went quickly. Great, I’m keeping my fingers crossed for you.

Gissio commented 6 months ago

I think I found the culprit! In case you are interested: the code that reads the ADC never exits, so the watchdog timer kept restarting the device before writing to the screen.

Let's try once again:

radpro-beta17.test7.bin.zip

If it works, please press the keys (one at a time) and see if GPIOA and GPIOC change.

mizsha commented 6 months ago

JantarX They look similar, I also have a version with J321 tube, later versions come with cheaper one, but it also looks like we have a different LCD module and I don't even have the option and pins on the board to connect a smaller and cheaper tube. I have one of the first versions sold by a local dealer, not the current one from ali. I am attaching a photo.

515b6d61-058d-4cad-8ab5-d856a3bd7c30

Does anyone know how to successfully upload new firmware in linux ? BOOT partition is visible, readme.txt is visible, fw can be uploaded, but initialization and restart is not done, after disconnection the old fw is still active. What is the difference between uploading in win and linux, does windows have any special device driver ?

I don't have a chance to reboot into win for another test today :(

mizsha commented 6 months ago

Photo of one of the latest versions from aliexpress. The same box, different hw, it seems like fun for debugging fw, wouldn't it be useful to use some debug port to get data ? Trial and error will take ages. 8854a78b-0e74-423b-8cf7-786aeeebe9ac

JantarX commented 6 months ago

I think I found the culprit! In case you are interested: the code that reads the ADC never exits, so the watchdog timer kept restarting the device before writing to the screen.

Let's try once again:

radpro-beta17.test7.bin.zip

If it works, please press the keys (one at a time) and see if GPIOA and GPIOC change.

It is restarting without any changes compared to tests 5 and 6.

JantarX commented 6 months ago

JantarX They look similar, I also have a version with J321 tube, later versions come with cheaper one, but it also looks like we have a different LCD module and I don't even have the option and pins on the board to connect a smaller and cheaper tube. I have one of the first versions sold by a local dealer, not the current one from ali. I am attaching a photo.

Does anyone know how to successfully upload new firmware in linux ? BOOT partition is visible, readme.txt is visible, fw can be uploaded, but initialization and restart is not done, after disconnection the old fw is still active. What is the difference between uploading in win and linux, does windows have any special device driver ?

I don't have a chance to reboot into win for another test today :(

Have you tried version 1.6-2 that I shared above? Does it work on both of your devices?

As for Linux, I personally can’t help you. The only thing I know is that you literally need Windows 10 and a USB 2.0 port to run the bootloader. I tried it on USB 3.0 but it didn’t launch. I tried it on Ubuntu and the whole bootloader crashed. I had to disconnect the battery and flash it according to the conditions above.

mizsha commented 6 months ago

I tried 1.6-2 and all subsequent test versions only on a device with J321 tube, with the same result as you have. I don't have the other device available, I only have a photo.

More info for linux ( I have no experience with STM32 devices, maybe it is trivial, it would help me in further testing. ):

$ lsusb Bus 001 Device 026: ID 0483:002a STMicroelectronics AIR01

$ fdisk Disk /dev/sdc: 100 MiB, 104857600 bytes, 51200 sectors Disk model: DETECTION 1.0 Units: sectors of 1 * 2048 = 2048 bytes Sector size (logical/physical): 2048 bytes / 2048 bytes I/O size (minimum/optimal): 2048 bytes / 2048 bytes

105 MB — 82 KB free FAT (12-bit version)

so 24. 2. 2024 v 8:59 odesílatel JantarX @.***> napsal:

JantarX https://github.com/JantarX They look similar, I also have a version with J321 tube, later versions come with cheaper one, but it also looks like we have a different LCD module and I don't even have the option and pins on the board to connect a smaller and cheaper tube. I have one of the first versions sold by a local dealer, not the current one from ali. I am attaching a photo.

Does anyone know how to successfully upload new firmware in linux ? BOOT partition is visible, readme.txt is visible, fw can be uploaded, but initialization and restart is not done, after disconnection the old fw is still active. What is the difference between uploading in win and linux, does windows have any special device driver ?

I don't have a chance to reboot into win for another test today :(

Have you tried version 1.6-2 that I shared above? Does it work on both of your devices?

As for Linux, I personally can’t help you. The only thing I know is that you literally need Windows 10 and a USB 2.0 port to run the bootloader. I tried it on USB 3.0 but it didn’t launch. I tried it on Ubuntu and the whole bootloader crashed. I had to disconnect the battery and flash it according to the conditions above.

— Reply to this email directly, view it on GitHub https://github.com/Gissio/radpro/issues/14#issuecomment-1962291393, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJPKQUZNSBNAQ3S2SFXPL3YVGMWLAVCNFSM6AAAAABBZQJGQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRSGI4TCMZZGM . You are receiving this because you are subscribed to this thread.Message ID: @.***>

stevemisel commented 6 months ago

Hey folks … have been watching this thread for a week or two .. am available to do some testing….

On Sat, Feb 24, 2024 at 3:36 AM Michal Matouš @.***> wrote:

I tried 1.6-2 and all subsequent test versions only on a device with J321 tube, with the same result as you have. I don't have the other device available, I only have a photo.

More info for linux ( I have no experience with STM32 devices, maybe it is trivial, it would help me in further testing. ):

$ lsusb Bus 001 Device 026: ID 0483:002a STMicroelectronics AIR01

$ fdisk Disk /dev/sdc: 100 MiB, 104857600 bytes, 51200 sectors Disk model: DETECTION 1.0 Units: sectors of 1 * 2048 = 2048 bytes Sector size (logical/physical): 2048 bytes / 2048 bytes I/O size (minimum/optimal): 2048 bytes / 2048 bytes

105 MB — 82 KB free FAT (12-bit version)

so 24. 2. 2024 v 8:59 odesílatel JantarX @.***> napsal:

JantarX https://github.com/JantarX They look similar, I also have a version with J321 tube, later versions come with cheaper one, but it also looks like we have a different LCD module and I don't even have the option and pins on the board to connect a smaller and cheaper tube. I have one of the first versions sold by a local dealer, not the current one from ali. I am attaching a photo.

Does anyone know how to successfully upload new firmware in linux ? BOOT partition is visible, readme.txt is visible, fw can be uploaded, but initialization and restart is not done, after disconnection the old fw is still active. What is the difference between uploading in win and linux, does windows have any special device driver ?

I don't have a chance to reboot into win for another test today :(

Have you tried version 1.6-2 that I shared above? Does it work on both of your devices?

As for Linux, I personally can’t help you. The only thing I know is that you literally need Windows 10 and a USB 2.0 port to run the bootloader. I tried it on USB 3.0 but it didn’t launch. I tried it on Ubuntu and the whole bootloader crashed. I had to disconnect the battery and flash it according to the conditions above.

— Reply to this email directly, view it on GitHub https://github.com/Gissio/radpro/issues/14#issuecomment-1962291393, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAJPKQUZNSBNAQ3S2SFXPL3YVGMWLAVCNFSM6AAAAABBZQJGQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRSGI4TCMZZGM>

. You are receiving this because you are subscribed to this thread.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/Gissio/radpro/issues/14#issuecomment-1962299250, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKN6MUVPKSTXM6XQDUBDJTYVGRCHAVCNFSM6AAAAABBZQJGQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRSGI4TSMRVGA . You are receiving this because you are subscribed to this thread.Message ID: @.***>

Gissio commented 6 months ago

I'm still unable to reproduce the problem locally.

One more test. Please make a video until you hear nothing (it should take over a minute to finish). The beeps encode the CPU's state at the fault.

radpro-beta17.test8.bin.zip

stevemisel commented 6 months ago

I know there was, at one time, some documentation on flashing the GC-01 ... but it appears to be gone. If you can point me to it, I'll give it a whirl...

On Sat, Feb 24, 2024 at 2:17 PM Gissio @.***> wrote:

I'm still unable to reproduce the problem locally.

One more test. Please make a video until you hear nothing (it should take over a minute to finish). The beeps encode the CPU's state at the fault.

radpro-beta17.test8.bin.zip https://github.com/Gissio/radpro/files/14394146/radpro-beta17.test8.bin.zip

— Reply to this email directly, view it on GitHub https://github.com/Gissio/radpro/issues/14#issuecomment-1962587116, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKN6MQQFG2JBEP67D6OCQ3YVI4DHAVCNFSM6AAAAABBZQJGQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRSGU4DOMJRGY . You are receiving this because you commented.Message ID: @.***>

Gissio commented 6 months ago

stevemisel: for now let's try fixing the problem with the bootloader.

I know there was, at one time, some documentation on flashing the GC-01 ... but it appears to be gone. If you can point me to it, I'll give it a whirl... On Sat, Feb 24, 2024 at 2:17 PM Gissio @.> wrote: I'm still unable to reproduce the problem locally. One more test. Please make a video until you hear nothing (it should take over a minute to finish). The beeps encode the CPU's state at the fault. radpro-beta17.test8.bin.zip https://github.com/Gissio/radpro/files/14394146/radpro-beta17.test8.bin.zip — Reply to this email directly, view it on GitHub <#14 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/ADKN6MQQFG2JBEP67D6OCQ3YVI4DHAVCNFSM6AAAAABBZQJGQKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRSGU4DOMJRGY . You are receiving this because you commented.Message ID: @.>

Splinter34 commented 6 months ago

Been following this project... Great work here! This is the latest test bin. Unit board marked V.03. It is recovered from error with V1.6-2 easily after pressing the reset button. The ticks indicate a led flash, beeps are beeps. Looking forward to the finished project. Thanks Gissio! If you need anything else just let me know. I can also jtag this board if needed to get the memory. This is the video of it booting up.

https://drive.google.com/file/d/1X46jFWtaB2KieWibZ7GwSeiXOtlxqoTg/view?usp=sharing

Gissio commented 6 months ago

Thanks for the kudos, always appreciated.

So it seems USB is causing the troubles. I turned it off now. Let's hope this is it.

radpro-beta17.test9.bin.zip

Gissio commented 6 months ago

I forgot to mention: in case it doesn't work, please make a video.

Splinter34 commented 6 months ago

Maybe closer ? Has a white screen now. Before no screen. Audio slightly muffled, If you need me to try to get better video let me know.

https://drive.google.com/file/d/1InQxWHiGRQz2QJMyTfZSuyTbtAIiYCFc/view?usp=sharing

Splinter34 commented 6 months ago

By the way that is flashing on u USB 3.0 port. Do I need to find something USB 2.0? Thought I read something somewhere about that?

Gissio commented 6 months ago

That worked! It's a buffer overflow. I'll keep you updated.

Gissio commented 6 months ago

In the meantime: with test9, could somebody make a video of the tones before the screen turns on? Please place your microphone as close as possible to the device so I can time things.

Splinter34 commented 6 months ago

There is no tones before the screen lights up. If you want I can unsolder a wire so there will be no clicks. Let me know. Test 9 ver2 video: https://drive.google.com/file/d/1CenxAx_cgtsKUn22eVM4kAB1HekQ0LoW/view?usp=sharing

Gissio commented 6 months ago

My bad! Can you try again?

radpro-beta17.test10.bin.zip

Splinter34 commented 6 months ago

https://drive.google.com/file/d/1fEcoXsikp3MEqo2Adp2z2rF-KL8VBbVe/view?usp=sharing

This had tones before the screen lit.....

Tig3rch3n commented 6 months ago

radpro-beta17.test10.bin Audio.zip

One Suggestion, because the small Tube only has 1\2 to 1\3 of the sensitivity of the j321 tube, my guess is they adjusted that with the 1.6-2 Firmware Version.

I have a Tile with Uraniumglasing Both devices in the same Orientation, on the same spot did differ A LOT. Small Tube max 1.51µS/h J321 Tube max 9.77µS/h

I have both, the small cheap Tube and the J321 Tube Both PCBs look the same and AFAIK they behave Identical with the Test files.

Gissio commented 6 months ago

I have news.

First, I found no buffer overflow in the code.

Second, things are working on GC-01s with a WCH processor (CH32F103R8T6) but, apparently, not with a Geehy one (APM32F103RBT6). Fortunately I happen to have a board with a very similar Geehy processor (APM32F103CBT6), so I repurposed it and, alas, Rad Pro worked there. So, being the environments so similar, the only thing that could make a difference is the bootloader. So I made this special firmware that should let you dump the bootloader:

radpro-2.0beta17-test12-bootloader-dump.bin.zip

After installing and re-starting your GC-01, a USB serial port device should appear on your computer (you might need to unplug/replug the device). Under Windows, open the Device Manager, go to the "Ports (COM & LPT) section and take note of the COM port. Next, download PuTTY (https://the.earth.li/~sgtatham/putty/latest/w64/putty.exe), start it, click on "Serial" and type the COM port in "Serial line". A terminal window should show up. Press ENTER and the memory dump should start. Next, go to the window menu (upper left), select "Copy All to Clipboard" and paste in a .txt file. Attach the file to a message in this thread.

Even if you have a GC-01 with a WCH processor, or somebody else already uploaded the dump, it would be interesting that you repeated the process, just in case there are different versions of the bootloader.

Gissio commented 6 months ago

BTW, I just learned that the V1.6-2 firmware only works on GC-01's with Geehy processors.

WCH processors have 64 kB flash; Geehy ones, 128 kB. So, quite simply, V1.6-2 doesn't fit in the flash of WCH processors.

Splinter34 commented 6 months ago

Here you are... GeehyDump.txt

Geehy Chip revision code *** NTRN6

Tig3rch3n commented 6 months ago

Jup... They differ... Memory Dump.txt

08003800: eb 09 07 00 01 01 01 00 00 00 00 00 00 00 00 00 08003810: 00 00 00 00 40 01 00 00 64 00 d0 07 e6 07 01 01 08003820: dd 0f 00 00 98 b7 f4 01 ff ff ff ff ff ff ff ff

versus

08003800: eb 04 07 00 01 01 01 00 00 00 00 00 00 00 00 00 08003810: 00 00 00 00 37 23 00 00 c8 00 d0 07 e8 07 02 04 08003820: 76 22 02 00 98 b7 f4 01 ff ff ff ff ff ff ff ff

[EDIT] Stupid question... How do I get back into Storage Mode do flash back the 1.6-2 Firmware?

Gissio commented 6 months ago

Try resetting the device with the reset button. Otherwise the firmware will drain your battery.El 28 feb 2024, a la(s) 04:39, Tig3rch3n @.***> escribió: Jup... They differ... Memory Dump.txt 08003800: eb 09 07 00 01 01 01 00 00 00 00 00 00 00 00 00 08003810: 00 00 00 00 40 01 00 00 64 00 d0 07 e6 07 01 01 08003820: dd 0f 00 00 98 b7 f4 01 ff ff ff ff ff ff ff ff versus 08003800: eb 04 07 00 01 01 01 00 00 00 00 00 00 00 00 00 08003810: 00 00 00 00 37 23 00 00 c8 00 d0 07 e8 07 02 04 08003820: 76 22 02 00 98 b7 f4 01 ff ff ff ff ff ff ff ff

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

JantarX commented 6 months ago

BTW, I just learned that the V1.6-2 firmware only works on GC-01's with Geehy processors.

WCH processors have 64 kB flash; Geehy ones, 128 kB. So, quite simply, V1.6-2 doesn't fit in the flash of WCH processors.

Mizsha tested in 1.6-2 and also on the version with the WCH processor, and it worked for him. He was only interested in the J321 tube.

By the way, I apologize for disappearing for a while. I was dealing with drivers that work with Windows 11.

JantarX commented 6 months ago

Jup... They differ... Memory Dump.txt

08003800: eb 09 07 00 01 01 01 00 00 00 00 00 00 00 00 00 08003810: 00 00 00 00 40 01 00 00 64 00 d0 07 e6 07 01 01 08003820: dd 0f 00 00 98 b7 f4 01 ff ff ff ff ff ff ff ff

versus

08003800: eb 04 07 00 01 01 01 00 00 00 00 00 00 00 00 00 08003810: 00 00 00 00 37 23 00 00 c8 00 d0 07 e8 07 02 04 08003820: 76 22 02 00 98 b7 f4 01 ff ff ff ff ff ff ff ff

[EDIT] Stupid question... How do I get back into Storage Mode do flash back the 1.6-2 Firmware?

I’m dealing with a bootloader failure by disconnecting the battery and starting the bootloader without the battery. So far, it has always worked.... Specifically, the battery for the main power supply, not the small one on the board.