I started programming PicoScope 2204 and went carefully through the documentation. My impression is that it is inaccurate and incomplete in nearly every aspect, even though I am reading the latest version. Is someone at Pico Technology responsible for updating that?
Here are just a few difficulties I stumbled into during the first two days of programming.
1. Calling ps2000_set_channel() function (and perhaps any other) right after ps2000_open_unit() will return an error. One must introduce a small delay (e.g., using Sleep(1)) before calling other functions. Same bug is present if the unit is opened using ps2000_open_unit_async() + ps2000_open_unit_progress().
2. Setting timebase above 23 (~80ms/div) returns an error, whereas specification
claims it can be up to 1000s/div.
3. There is no formula for conversion of raw data from drivers to voltage. Even worse, different source files (I used sources for C and Delphi) use different conversion formula. So what is the correct expression for that?
4. In block (and perhaps ETS, but I have not checked that) mode, function ps2000_get_times_and_values() returns an error if called before ps2000_stop(), whereas documentation (page 7) says it must be called in this order.
5. Does the overflow value returned by ps2000_get_times_and_values() represent voltage overflow or buffer overflow?
6. What are the units of time_interval returned by get_timebase()? Seems to be always ns? If it is not the same as time_units, then what is the purpose of that and how to use them?
P.S. A good product can be killed by buggy documentation. Sad to say, but until now PicoScope 2000 series makes an impression of low-quality product