Author Topic: Picoscope Hack  (Read 34344 times)

0 Members and 2 Guests are viewing this topic.

Offline jasonRF

  • Regular Contributor
  • *
  • Posts: 205
  • Country: us
Re: Picoscope Hack
« Reply #75 on: July 01, 2023, 03:59:43 pm »

We meet here as well! :D :D

I am still curious how this adventure ended up and if/how it works with the 2000 series? :)  8)
I was never able to get the unit upgraded, although there is at least one person here who did change a 2204a to a 2205a.  My 2204a isn’t used very much anymore so it really doesn’t matter to me.   It was just fun to poke at.   I would brute force it with a python script using an arduino and the pico api (and I even started to), but everytime you test to see if the api recognizes the scope you hear relays clicking.   After a  hundred unsuccessful attempts I killed my script since didn’t want to wear out the relays for no good reason. 

Jason
 

Offline MiDi

  • Frequent Contributor
  • **
  • Posts: 817
  • Country: de
Re: Picoscope Hack
« Reply #76 on: December 19, 2023, 07:07:50 pm »
I can verify that there is at least one Picoscope that doesn't follow this hacking recipe.    :-DD

I have a 2204a I purchased in 2016.  The hardware version is 17.  Anyway, increasing byte 0B by 1 and decreasing byte 1B by 1 did not do the trick.  I have tried a bunch of other options as well, but so far all of the trials have resulted in a device that the picoscope software does not recognize. 

Edit:forgot to say that i am trying to turn it into a 2205a, which has identical hardware. 

The eeprom on my 2204a is definitely different than the one discussed on the sigroc page.  For example, B7-D9 and F8-FD are all non-zero.  I have of course mucked with some of these bytes as well - especially F8-FD that look less like cal data than some of the other areas.

Had no problems to hack 2204A (HW Version 17, cal 2023-04-17) to 2205A using fx2tool as described in the Saleae thread.

Save to eeprom.hex:
Code: [Select]
fx2tool -B -d 0CE9:1007 read_eeprom -W 1 0 256 -f eeprom.hex
Changed byte 0B from 1A to 1B and reduced the serial by one (bytes 13-1B) and used HEX file checksum online calculator for correcting checksum at the line ends.

Upload from eeprom_hack.hex:
Code: [Select]
fx2tool -B -d 0CE9:1007 write_eeprom -W 1 -f eeprom_hack.hex
Replug the scope, otherwise it will not be recognized.


It's my friend from a while, to be more precise Cypress USB Console + EZ-USB Interface (but I guess you already know).

It happens that maaany years ago I developed a 14bits ADC streamer based on commercial PATA HDD external case (Cypress CY7C68013 inside) in conjunction with a Labview application, this joke was able to push flawlessly 16MS/s x 16bits (32MB/s) toward a medium windows PC of the time, with some real time computation and disk logging.

Now you can understand why I smell BS if I read that the 2204A streaming mode is limited to 1MS/s due to the fact that the board has a buffer on only 8Kpts (inside the FPGA).

I had no FPGA and no buffer, but the system worked like a charm, so I would say that the 2204A sounds like a cripple fest.

The limit with current SDK is 150ns/6.67MSPS for continuous fast streaming for one CH, but sometimes it drops a couple of samples.
« Last Edit: December 19, 2023, 07:27:46 pm by MiDi »
 
The following users thanked this post: b_force, egonotto, unseenninja

Offline b_force

  • Super Contributor
  • ***
  • Posts: 1381
  • Country: 00
    • One World Concepts
Re: Picoscope Hack
« Reply #77 on: January 17, 2024, 01:57:46 am »
I can verify that there is at least one Picoscope that doesn't follow this hacking recipe.    :-DD

I have a 2204a I purchased in 2016.  The hardware version is 17.  Anyway, increasing byte 0B by 1 and decreasing byte 1B by 1 did not do the trick.  I have tried a bunch of other options as well, but so far all of the trials have resulted in a device that the picoscope software does not recognize. 

Edit:forgot to say that i am trying to turn it into a 2205a, which has identical hardware. 

The eeprom on my 2204a is definitely different than the one discussed on the sigroc page.  For example, B7-D9 and F8-FD are all non-zero.  I have of course mucked with some of these bytes as well - especially F8-FD that look less like cal data than some of the other areas.

Had no problems to hack 2204A (HW Version 17, cal 2023-04-17) to 2205A using fx2tool as described in the Saleae thread.

Save to eeprom.hex:
Code: [Select]
fx2tool -B -d 0CE9:1007 read_eeprom -W 1 0 256 -f eeprom.hex
Changed byte 0B from 1A to 1B and reduced the serial by one (bytes 13-1B) and used HEX file checksum online calculator for correcting checksum at the line ends.

Upload from eeprom_hack.hex:
Code: [Select]
fx2tool -B -d 0CE9:1007 write_eeprom -W 1 -f eeprom_hack.hex
Replug the scope, otherwise it will not be recognized.


It's my friend from a while, to be more precise Cypress USB Console + EZ-USB Interface (but I guess you already know).

It happens that maaany years ago I developed a 14bits ADC streamer based on commercial PATA HDD external case (Cypress CY7C68013 inside) in conjunction with a Labview application, this joke was able to push flawlessly 16MS/s x 16bits (32MB/s) toward a medium windows PC of the time, with some real time computation and disk logging.

Now you can understand why I smell BS if I read that the 2204A streaming mode is limited to 1MS/s due to the fact that the board has a buffer on only 8Kpts (inside the FPGA).

I had no FPGA and no buffer, but the system worked like a charm, so I would say that the 2204A sounds like a cripple fest.

The limit with current SDK is 150ns/6.67MSPS for continuous fast streaming for one CH, but sometimes it drops a couple of samples.
So I assume the 2204A can only be "upgraded" to the 2205A ?

I still really like the picoscope software, so much better than my physical scope.
It's just that they are so pricey :(

Online coromonadalix

  • Super Contributor
  • ***
  • Posts: 8742
  • Country: ca
Re: Picoscope Hack
« Reply #78 on: January 17, 2024, 03:34:42 am »
at the price we paid a 3406d   i would have bought an huge siglent model  loll

lost  my arms and legs  loll

picoscope newest sw  need some improvements,  but getting there
« Last Edit: January 17, 2024, 03:36:20 am by coromonadalix »
 

Offline unseenninja

  • Regular Contributor
  • *
  • Posts: 128
  • Country: se
Re: Picoscope Hack
« Reply #79 on: June 12, 2024, 07:08:47 pm »
Had no problems to hack 2204A (HW Version 17, cal 2023-04-17) to 2205A
--snip--
Thanks for the clear instructions. Worked a treat for me too!
 

Online TomKatt

  • Frequent Contributor
  • **
  • Posts: 677
  • Country: us
  • Electro-BOOMER
Re: Picoscope Hack
« Reply #80 on: June 12, 2024, 08:29:54 pm »
I’d guess that Rigol and Siglent have a much larger market share and likely get better component pricing as a result.  Their manufacturing costs are probably also lower.  That said, they likely are able to manage lower profit margins on much of their product line as a result.

Another consideration is that Pico needs to sustain the software development that makes their products so valuable.  A hardware BOM cost comparison probably doesn’t provide the whole picture.

I think that Pico’s software environment would suit my scope needs better than stand alone desktop products - it seems very handy for observing and finding issues with longer acquisitions.  Too bad they are out of my financial budget.
« Last Edit: June 12, 2024, 08:34:25 pm by TomKatt »
Several Species of Small Furry Animals Gathered Together in a Cave and Grooving with a PICt
 

Offline MiroS

  • Regular Contributor
  • *
  • Posts: 182
  • Country: pl
Re: Picoscope Hack
« Reply #81 on: June 14, 2024, 07:16:23 am »
Had no problems to hack 2204A (HW Version 17, cal 2023-04-17) to 2205A
--snip--
Thanks for the clear instructions. Worked a treat for me too!
(Attachment Link)

My serial is ending with zero J****/**30 , if I change it to  J****/**29 - hack does not work, if I decrease  last digit in number J****/**30  by 1 so  it will be last digit hex 29 so not a  number anymore ( 0 is hex 30).
Is there any way for such case?
 
« Last Edit: June 14, 2024, 08:20:28 am by MiroS »
 

Offline XanderL73

  • Newbie
  • Posts: 2
  • Country: nl
Re: Picoscope Hack
« Reply #82 on: July 12, 2024, 07:27:59 pm »
Hi all,

I very new to this side of tech. I think I have libusb and fx2tool setup properly on my macbook. When I connect my picoscope 2405a, I see in my system information that it has pid 1016. Now when I sent the command:

fx2tool -B -d 0CE9:1016 read_eeprom -W 1 0 256 -f eeprom.hex

I get the response:

Command not acknowledged (wrong address width?)

fx2tool -B -d 0CE9:1016 read_eeprom -W 2 0 256 -f eeprom.hex

this works and writes the file.

After a bit of puzzeling and reading through all the posts again I figured out which numbers to change (I used a straight text editor) and uploaded the new file with:

fx2tool -B -d 0CE9:1016 write_eeprom -W 2 -f eeprom_hack32.hex

Did a readback and found the new numbers in place.

Next I started picoscope 7 and it finds a 2406B, with the serial 1 lower than before, but it also shows a red X and says failed.

So I hope that the great folks on this forum can nudge me in the right direction. I just want to see what is possible. Even upgrading it 1 step from 25 to 50 Mhz would be welcome.

At least loading the original backup back, did restore the scope to the factory settings and it works in picoscope 7.
« Last Edit: July 12, 2024, 09:38:35 pm by XanderL73 »
 

Offline hugo

  • Regular Contributor
  • *
  • Posts: 185
  • Country: ca
Re: Picoscope Hack
« Reply #83 on: July 13, 2024, 02:07:10 am »
We do know that some of the 2204A models can be upgraded to the 2205A, however I do believe that 2406B model is a totaly different species (different size and hardware) so no upgrade will be possible ... 
 

Offline narkeleptk

  • Contributor
  • Posts: 43
  • Country: us
    • Youtube
Re: Picoscope Hack
« Reply #84 on: July 13, 2024, 03:16:53 am »
We do know that some of the 2204A models can be upgraded to the 2205A, however I do believe that 2406B model is a totaly different species (different size and hardware) so no upgrade will be possible ...
Con confirm. I have a 2205 and 2206 and they are completely different despite the external case looking similar.
 

Offline XanderL73

  • Newbie
  • Posts: 2
  • Country: nl
Re: Picoscope Hack
« Reply #85 on: July 13, 2024, 06:56:10 am »
Glad to hear that it is hardware related. It at least means that I most likely understood how it should be done, it just isn’t possible. The upside is I learned a new skill ;)

I bought the cheapest 4 channel basically for myself and have at the moment no specific use for higher bandwidth. It is mainly to see if it works better than my old tiepie and labnation. That last one had some serious potential, but the company never continued development of the software other than bugfixes. The tiepie I got like 15 years ago at work, but I believe it is only 2 channels and 5 or 10Mhz and is now a bit outdated for the newer hardware we use. Since it still works it is a bit hard to convince the boss that we need something new. In the latest hardware we delivered we use encoders with 4 signals, hence the 4 channels. I had one encoder that turned out to be wonky, but to prove that I had to make many measurements by combining 2 channels at a time. With 4 channels I can check this in 1 go. If I can order a new one for work I’ll ask for a 50Mhz, 4 channel (that would be a B-version).
 

Offline MiDi

  • Frequent Contributor
  • **
  • Posts: 817
  • Country: de
Re: Picoscope Hack
« Reply #86 on: August 03, 2024, 11:18:47 am »
Had no problems to hack 2204A (HW Version 17, cal 2023-04-17) to 2205A
--snip--
Thanks for the clear instructions. Worked a treat for me too!
(Attachment Link)

My serial is ending with zero J****/**30 , if I change it to  J****/**29 - hack does not work, if I decrease  last digit in number J****/**30  by 1 so  it will be last digit hex 29 so not a  number anymore ( 0 is hex 30).
Is there any way for such case?

No need to change the last digit, just change one digit of the SN.
 

Online tv84

  • Super Contributor
  • ***
  • Posts: 3582
  • Country: pt
Re: Picoscope Hack
« Reply #87 on: May 02, 2026, 05:43:54 pm »
Here is a correct table with PicoScope model numbers (visible in the EEPROM byte at offset 0x0B).
 
The following users thanked this post: thm_w, _Wim_, coromonadalix

Offline _Wim_Topic starter

  • Super Contributor
  • ***
  • Posts: 1647
  • Country: be
Re: Picoscope Hack
« Reply #88 on: May 03, 2026, 06:18:30 am »
Here is a correct table with PicoScope model numbers (visible in the EEPROM byte at offset 0x0B).

Fantastic! I will update the first post and reference to this one.
 
The following users thanked this post: tv84

Online tv84

  • Super Contributor
  • ***
  • Posts: 3582
  • Country: pt
Re: Picoscope Hack
« Reply #89 on: May 04, 2026, 08:28:44 pm »
Types of EEPROM checksums used (decided by byte at offset 0x12).
 
The following users thanked this post: hugo, _Wim_

Offline hugo

  • Regular Contributor
  • *
  • Posts: 185
  • Country: ca
Re: Picoscope Hack
« Reply #90 on: May 07, 2026, 01:45:58 am »
@_Wim_

What kind of checksum type did your scope 5442B had at offset 0x12, was it 0x00 or 0x01?

Thanks
 

Offline zzyxy

  • Newbie
  • Posts: 3
  • Country: us
Re: Picoscope Hack
« Reply #91 on: May 08, 2026, 04:26:50 am »
Extended checksum is seeded by the unique ID in the FX2 microcontroller on the picoscope.

However, it's relatively easy to recover the seed if you have the original eeprom for your device.
I've attached a python script that can do that.

First recover the seed from the original eeprom:

Code: [Select]
$ python3 eeprom_checksum.py 2204a.hex --recover-seed

 recovered seed:
   0x98511234
 mode: extended
 seed:       0x98511234
 stored:     0x2BAD4AFCA3B4ABCD
 calculated: 0x2BAD4AFCA3B4ABCD

Make a copy (let's call it 2205a), and change 2204a -> 2205a by changing the byte at offset 0xb 0x1a -> 0x1b .
Then update the checksum using the seed reported for the original eeprom.

Code: [Select]

 $ python3 eeprom_checksum.py 2205a.hex --input-format hex --seed 0x98511234 --output 2205a.hex --output-format hex && python3 eeprom_checksum.py 2205a.hex --input-format hex --seed 0x98511234 --verify

 mode: extended
 seed:       0x98511234
 stored:     0x2BAD4AFCA3B4ABCD
 calculated: 0x56338CE9A66B170B
 wrote: 2205a.hex (hex)
 mode: extended
 seed:       0x98511234
 stored:     0x56338CE9A66B170B
 calculated: 0x56338CE9A66B170B
 verify: OK

Then you can program the 2205a back into the picoscope and it will recognize the device as 2205a.
 
The following users thanked this post: hugo, tv84, _Wim_, garyr

Online tv84

  • Super Contributor
  • ***
  • Posts: 3582
  • Country: pt
Re: Picoscope Hack
« Reply #92 on: May 08, 2026, 09:36:50 pm »
it's relatively easy to recover the seed if you have the original eeprom for your device.

Well done, @zzyxy!!  :clap: :clap: That RecoverExtendedSeeds is pure poetry.
 

Offline zzyxy

  • Newbie
  • Posts: 3
  • Country: us
Re: Picoscope Hack
« Reply #93 on: May 09, 2026, 04:47:11 am »
Quote
That RecoverExtendedSeeds is pure poetry.

Credit goes to gpt-5.5. I'm just a messenger. :-)

On a side note, I've been amused and amazed at how much AI was able to do when I gave it access to ghidra, general description of how host and firmware interact with each other, and then told it to "go figure out how it verifies the checksum".

We live in interesting times.
 

Offline _Wim_Topic starter

  • Super Contributor
  • ***
  • Posts: 1647
  • Country: be
Re: Picoscope Hack
« Reply #94 on: May 09, 2026, 06:33:26 am »
@_Wim_

What kind of checksum type did your scope 5442B had at offset 0x12, was it 0x00 or 0x01?

Thanks

My one had 0x00...
 

Online tv84

  • Super Contributor
  • ***
  • Posts: 3582
  • Country: pt
Re: Picoscope Hack
« Reply #95 on: May 09, 2026, 11:56:38 am »
My one had 0x00...

To wrap things up with @_Wim_ 5442B's EEPROM:

- the device has a 8kB EEPROM.
- in this device, checksum doesn't use the LFSR14 method. It's pure sum of unsigned bytes.
- the stored checksum is at offset [EEPROM_size - 258] and it's the unsigned sum of all the bytes up to that offset. In his case, current checksum = 0x800.

OTOH, my old 3205 uses the already mentioned LFSR14 method with signed bytes sum.
« Last Edit: May 09, 2026, 11:59:42 am by tv84 »
 
The following users thanked this post: _Wim_

Offline _Wim_Topic starter

  • Super Contributor
  • ***
  • Posts: 1647
  • Country: be
Re: Picoscope Hack
« Reply #96 on: May 09, 2026, 03:48:06 pm »
My one had 0x00...

To wrap things up with @_Wim_ 5442B's EEPROM:

- the device has a 8kB EEPROM.
- in this device, checksum doesn't use the LFSR14 method. It's pure sum of unsigned bytes.
- the stored checksum is at offset [EEPROM_size - 258] and it's the unsigned sum of all the bytes up to that offset. In his case, current checksum = 0x800.

OTOH, my old 3205 uses the already mentioned LFSR14 method with signed bytes sum.

I guess I was lucky then with my basic approach of +1 and -1. Did not expect Pico would have implemented so many different ways...
 

Online tv84

  • Super Contributor
  • ***
  • Posts: 3582
  • Country: pt
Re: Picoscope Hack
« Reply #97 on: May 09, 2026, 06:31:20 pm »
I guess I was lucky then with my basic approach of +1 and -1. Did not expect Pico would have implemented so many different ways...

"Audentes Fortuna Iuvat"
 

Offline NinetySix

  • Contributor
  • Posts: 27
  • Country: au
Re: Picoscope Hack
« Reply #98 on: May 11, 2026, 02:39:05 pm »
I had a brand spanking new 2204a delivered from element14 / Farnell today, not sure of the build date, but it's a 2205a now 🥰
 

Offline garyr

  • Newbie
  • Posts: 4
  • Country: tt
Re: Picoscope Hack
« Reply #99 on: May 11, 2026, 11:27:28 pm »
i Could not get the python script to run in CMD . my cmd keeps flashing and cutting out after a hour or soo trying to fix this i got fedup and just generated a GUI which seems to work well . just place in same directory with eeprom scrypt .

i was able to get my 2204A upgraded to 2205A
 
The following users thanked this post: hugo


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf