Unfortunatelly the CA10 occurs heavy errors. 4 scopes just crashes and restarts the software.
And the CA10 is way more stupid than it appears. Have a look to the manual:
https://cdn.teledynelecroy.com/files/manuals/ca10-user-manual.pdf Everything is passive and the bandwidth is fixed by capacitors and inductors. First thought was, that this would be configurable through the menu - but you just tell the scope what you soldered.
But I have something to share:
We (me and two other guys) are working at the moment on a device for diy custom probes. My part is the EEPROM and software for configuration. The idea came from this thread and it was a very nice starting point to understand the code.
The whole project would be available at github (but at the moment, it is too messy to share and we want to have a usable release before publishing it).
I almost decoded nearly every register of the EEPROMs and would share the full investigations also in the GitHub project.
Important: Even if you know what every register does, it seems that you can't use the cool ones with a custom probe name. Very unfortunate.
But if you don't mind, use a known model, calculate the values and you are free to choose the coupling, attenuation, range, unit and some more.
I'm 99% sure to know how the coupling registers work (
36,
38,
39 and
40 - but
39 seems to be a fallback for very old scopes). It is not that easy to describe, the logic is a bit more complicated.
(0x15) -> this byte is "Ω", \n is LF.
36 and
40 is the real configuration,
38 names the coupling
If
36 or
40 is "01" or "03"
38 becomes very relevant: "DC 1M(0x15)\n" -> DC 1MΩ, "AC 1M(0x15)\n" -> AC 1MΩ - nothing else will work and ends in GND coupling, also DC 50Ω is not possible.
If
36 is not 01 or 03, then
40 does the coupling configuration. 00 = DC 50Ω, 02 = DC 1MΩ, 04 = AC 1MΩ and
38 is the naming (shown in the coupling menu).
I'm not really sure, what happens if
36 or
40 isn't present - not tested at the moment.
In my tests
39 never does anything.
If you want more than one coupling, you just write them behind each other.
Like this:
36 02 04
40 02 04
38 "DC 1M(0x15)\nAC 1M(0x15)\n"
Important: Every name in 38 has to end with an LF. It will end in GND coupling, if you don't have the same amount of configurations. Also it is NOT possible to mix up 50Ω with 1MΩ - it ends in GND coupling for the DC 50 section.
I tested this with 5 couplings, worked. But yeah, how the heck do you want 5 times the same coupling...
If the scope knows the name, it shows a correlating symbol. Sometimes I saw a black one, sometimes I saw a yellow one - not sure what it depends on.
Optical coupling is also possible, with a laser as symbol - but seems to come from the probe-model and not the coupling register (OE6250G f.e.). Coupling is DC1M then.
Other registers I decoded:
03 version (the probe wasn't detected correctly after writing something into it)
14 is a register for the IO expander adresses, I guess. Changing them changed the I2C communication, while switching attenuations.
15 is for limiting the V/div value. I didn't investigate exact how it works, but it is a single-precision float and seems to work as a factor for the whole range or something. If you put 0.5 in this register, would half the maximum V/div range.
18 is the unit in ASCII - only W or A seems to work.
22 seems to be the measurement range. Also float32, BUT more than one. Mostly I saw positive and negative measurement range. If you have more than one attenuation, the range doubles the float values. Something like "150 -150 1500 -1500"
79 is also stuff for the IO expander, same as
14 but different situations -> not really investigated at the moment
This are only the registers I am mostly sure what they do (did not mention
01,
03,
04,
11,
41,
62 because they are well described before).
I think
14 and
79 are not so hard to decode anymore, but I want to find out how some probes tells the scope a manual changeable attenuation, because this would be very useful for our project - but at the moment, I think this isn't part of the EEPROM content.
I tried to find the configuration inside the scope - I think there has to be a database for each model... But can't find anything at the moment. If we manage to manipulate the database, or add own probes - this would be the holy grail for this project.
05,
21,
2A,
80,
81 are a secret to me.
Aside from that, I'm totally lost what tells the scope the maximum bandwidth. Some probes don't allow 200MHz (it's greyed out), but wasn't able to erase this. Maybe it is the probe-name.
We have differential probes with a switch for 100:1 or 1000:1, with fixed attenuation in the scope, it could be pain in the arse to work with. The HVDxxxx switches the attenuation with an IO expander through I2C, we thought about a electro mechanic switch, lol.
But one probe has a manual attenuation field, but in dB.
My goal at the end is a python script where you can configure your fixed probe and write it to an EEPROM.
The goal of the whole project is to have an device you can plug in to the scope, plug in the probe through BNC and get power supply (5V, 9V or 12V).
I hope this is interesting for somebody.