pyecsca.sca.scope.picoscope_sdk module¶
Provides an oscilloscope class for PicoScope branded oscilloscopes using the official picosdk-python-wrappers.
- class PicoScopeSdk(variant=None)[source]¶
Bases:
Scope
PicoScope based scope.
- setup_frequency(frequency, pretrig, posttrig)[source]¶
Setup the frequency and sample count for the measurement.
The scope might not support the requested values and will adjust them to get the next best frequency and the largest supported number of samples (or the number of samples requested).
- Parameters:
- Return type:
Tuple
[int
,int
]- Returns:
A tuple of the actual set frequency and the actual number of samples.
- setup_channel(channel, coupling, range, offset, enable)[source]¶
Setup a channel to use the coupling method and measure the given voltage range.
- Parameters:
- setup_trigger(channel, threshold, direction, delay, timeout, enable)[source]¶
Setup a trigger on a particular channel, the channel has to be set up and enabled.
The trigger will fire based on the threshold and direction, if enabled, the trigger will capture after delay ticks pass. If trigger conditions do not hold it will fire automatically after timeout milliseconds.
- Parameters:
channel¶ (
str
) – The channel to trigger on.threshold¶ (
float
) – The value to trigger on.direction¶ (
str
) – The direction to trigger on (“above”, “below”, “rising”, “falling”).delay¶ (
int
) – The delay for capture after trigger (clock ticks).timeout¶ (
int
) – The timeout in milliseconds.enable¶ (
bool
) – Whether to enable or disable this trigger.
- capture(timeout=None)[source]¶
Wait for the trace to capture, this will block until the scope has a trace.
- Parameters:
timeout¶ (
Optional
[int
]) – A time in milliseconds to wait for the trace, returns None if it runs out.- Return type:
bool
- Returns:
Whether capture was successful (or it timed out).
- retrieve(channel, type, dtype=<class 'numpy.float32'>)[source]¶
Retrieve a captured trace of a channel.
- Parameters:
channel¶ (
str
) – The channel to retrieve the trace from.type¶ (
SampleType
) – The type of returned samples.dtype¶ – The data type of the returned samples, should be numpy dtype-like.
- Return type:
Optional
[Trace
]- Returns:
The captured trace (if any).
- class PS3000Scope(variant=None)[source]¶
Bases:
PicoScopeSdk
PicoScope 3000 series oscilloscope is not available (Install libps3000).
- capture(timeout=None)[source]¶
Wait for the trace to capture, this will block until the scope has a trace.
- Parameters:
timeout¶ (
Optional
[int
]) – A time in milliseconds to wait for the trace, returns None if it runs out.- Return type:
bool
- Returns:
Whether capture was successful (or it timed out).
- retrieve(channel, type, dtype=<class 'numpy.float32'>)[source]¶
Retrieve a captured trace of a channel.
- Parameters:
channel¶ (
str
) – The channel to retrieve the trace from.type¶ (
SampleType
) – The type of returned samples.dtype¶ – The data type of the returned samples, should be numpy dtype-like.
- Return type:
Optional
[Trace
]- Returns:
The captured trace (if any).
- setup_channel(channel, coupling, range, offset, enable)[source]¶
Setup a channel to use the coupling method and measure the given voltage range.
- Parameters:
- setup_frequency(frequency, pretrig, posttrig)[source]¶
Setup the frequency and sample count for the measurement.
The scope might not support the requested values and will adjust them to get the next best frequency and the largest supported number of samples (or the number of samples requested).
- Parameters:
- Return type:
Tuple
[int
,int
]- Returns:
A tuple of the actual set frequency and the actual number of samples.
- setup_trigger(channel, threshold, direction, delay, timeout, enable)[source]¶
Setup a trigger on a particular channel, the channel has to be set up and enabled.
The trigger will fire based on the threshold and direction, if enabled, the trigger will capture after delay ticks pass. If trigger conditions do not hold it will fire automatically after timeout milliseconds.
- Parameters:
channel¶ (
str
) – The channel to trigger on.threshold¶ (
float
) – The value to trigger on.direction¶ (
str
) – The direction to trigger on (“above”, “below”, “rising”, “falling”).delay¶ (
int
) – The delay for capture after trigger (clock ticks).timeout¶ (
int
) – The timeout in milliseconds.enable¶ (
bool
) – Whether to enable or disable this trigger.
- class PS3000aScope(variant=None)[source]¶
Bases:
PicoScopeSdk
PicoScope 3000 series (A API) oscilloscope is not available (Install libps3000a).
- capture(timeout=None)[source]¶
Wait for the trace to capture, this will block until the scope has a trace.
- Parameters:
timeout¶ (
Optional
[int
]) – A time in milliseconds to wait for the trace, returns None if it runs out.- Return type:
bool
- Returns:
Whether capture was successful (or it timed out).
- retrieve(channel, type, dtype=<class 'numpy.float32'>)[source]¶
Retrieve a captured trace of a channel.
- Parameters:
channel¶ (
str
) – The channel to retrieve the trace from.type¶ (
SampleType
) – The type of returned samples.dtype¶ – The data type of the returned samples, should be numpy dtype-like.
- Return type:
Optional
[Trace
]- Returns:
The captured trace (if any).
- setup_channel(channel, coupling, range, offset, enable)[source]¶
Setup a channel to use the coupling method and measure the given voltage range.
- Parameters:
- setup_frequency(frequency, pretrig, posttrig)[source]¶
Setup the frequency and sample count for the measurement.
The scope might not support the requested values and will adjust them to get the next best frequency and the largest supported number of samples (or the number of samples requested).
- Parameters:
- Return type:
Tuple
[int
,int
]- Returns:
A tuple of the actual set frequency and the actual number of samples.
- setup_trigger(channel, threshold, direction, delay, timeout, enable)[source]¶
Setup a trigger on a particular channel, the channel has to be set up and enabled.
The trigger will fire based on the threshold and direction, if enabled, the trigger will capture after delay ticks pass. If trigger conditions do not hold it will fire automatically after timeout milliseconds.
- Parameters:
channel¶ (
str
) – The channel to trigger on.threshold¶ (
float
) – The value to trigger on.direction¶ (
str
) – The direction to trigger on (“above”, “below”, “rising”, “falling”).delay¶ (
int
) – The delay for capture after trigger (clock ticks).timeout¶ (
int
) – The timeout in milliseconds.enable¶ (
bool
) – Whether to enable or disable this trigger.
- class PS4000Scope(variant=None)[source]¶
Bases:
PicoScopeSdk
PicoScope 4000 series oscilloscope.
-
RANGES:
Mapping
= {0.01: 0, 0.02: 1, 0.05: 2, 0.1: 3, 0.2: 4, 0.5: 5, 1.0: 6, 2.0: 7, 5.0: 8, 10.0: 9, 20.0: 10, 50.0: 11, 100.0: 12}[source]¶
- capture(timeout=None)[source]¶
Wait for the trace to capture, this will block until the scope has a trace.
- Parameters:
timeout¶ (
Optional
[int
]) – A time in milliseconds to wait for the trace, returns None if it runs out.- Return type:
bool
- Returns:
Whether capture was successful (or it timed out).
- retrieve(channel, type, dtype=<class 'numpy.float32'>)[source]¶
Retrieve a captured trace of a channel.
- Parameters:
channel¶ (
str
) – The channel to retrieve the trace from.type¶ (
SampleType
) – The type of returned samples.dtype¶ – The data type of the returned samples, should be numpy dtype-like.
- Return type:
Optional
[Trace
]- Returns:
The captured trace (if any).
- setup_channel(channel, coupling, range, offset, enable)[source]¶
Setup a channel to use the coupling method and measure the given voltage range.
- Parameters:
- setup_frequency(frequency, pretrig, posttrig)[source]¶
Setup the frequency and sample count for the measurement.
The scope might not support the requested values and will adjust them to get the next best frequency and the largest supported number of samples (or the number of samples requested).
- Parameters:
- Return type:
Tuple
[int
,int
]- Returns:
A tuple of the actual set frequency and the actual number of samples.
- setup_trigger(channel, threshold, direction, delay, timeout, enable)[source]¶
Setup a trigger on a particular channel, the channel has to be set up and enabled.
The trigger will fire based on the threshold and direction, if enabled, the trigger will capture after delay ticks pass. If trigger conditions do not hold it will fire automatically after timeout milliseconds.
- Parameters:
channel¶ (
str
) – The channel to trigger on.threshold¶ (
float
) – The value to trigger on.direction¶ (
str
) – The direction to trigger on (“above”, “below”, “rising”, “falling”).delay¶ (
int
) – The delay for capture after trigger (clock ticks).timeout¶ (
int
) – The timeout in milliseconds.enable¶ (
bool
) – Whether to enable or disable this trigger.
-
RANGES:
- class PS5000Scope(variant=None)[source]¶
Bases:
PicoScopeSdk
PicoScope 5000 series oscilloscope.
-
RANGES:
Mapping
= {0.01: 0, 0.02: 1, 0.05: 2, 0.1: 3, 0.2: 4, 0.5: 5, 1.0: 6, 2.0: 7, 5.0: 8, 10.0: 9, 20.0: 10, 50.0: 11}[source]¶
- capture(timeout=None)[source]¶
Wait for the trace to capture, this will block until the scope has a trace.
- Parameters:
timeout¶ (
Optional
[int
]) – A time in milliseconds to wait for the trace, returns None if it runs out.- Return type:
bool
- Returns:
Whether capture was successful (or it timed out).
- retrieve(channel, type, dtype=<class 'numpy.float32'>)[source]¶
Retrieve a captured trace of a channel.
- Parameters:
channel¶ (
str
) – The channel to retrieve the trace from.type¶ (
SampleType
) – The type of returned samples.dtype¶ – The data type of the returned samples, should be numpy dtype-like.
- Return type:
Optional
[Trace
]- Returns:
The captured trace (if any).
- setup_channel(channel, coupling, range, offset, enable)[source]¶
Setup a channel to use the coupling method and measure the given voltage range.
- Parameters:
- setup_frequency(frequency, pretrig, posttrig)[source]¶
Setup the frequency and sample count for the measurement.
The scope might not support the requested values and will adjust them to get the next best frequency and the largest supported number of samples (or the number of samples requested).
- Parameters:
- Return type:
Tuple
[int
,int
]- Returns:
A tuple of the actual set frequency and the actual number of samples.
- setup_trigger(channel, threshold, direction, delay, timeout, enable)[source]¶
Setup a trigger on a particular channel, the channel has to be set up and enabled.
The trigger will fire based on the threshold and direction, if enabled, the trigger will capture after delay ticks pass. If trigger conditions do not hold it will fire automatically after timeout milliseconds.
- Parameters:
channel¶ (
str
) – The channel to trigger on.threshold¶ (
float
) – The value to trigger on.direction¶ (
str
) – The direction to trigger on (“above”, “below”, “rising”, “falling”).delay¶ (
int
) – The delay for capture after trigger (clock ticks).timeout¶ (
int
) – The timeout in milliseconds.enable¶ (
bool
) – Whether to enable or disable this trigger.
-
RANGES:
- class PS6000Scope(variant=None)[source]¶
Bases:
PicoScopeSdk
PicoScope 6000 series oscilloscope.
-
RANGES:
Mapping
= {0.01: 0, 0.02: 1, 0.05: 2, 0.1: 3, 0.2: 4, 0.5: 5, 1.0: 6, 2.0: 7, 5.0: 8, 10.0: 9, 20.0: 10, 50.0: 11}[source]¶
- capture(timeout=None)[source]¶
Wait for the trace to capture, this will block until the scope has a trace.
- Parameters:
timeout¶ (
Optional
[int
]) – A time in milliseconds to wait for the trace, returns None if it runs out.- Return type:
bool
- Returns:
Whether capture was successful (or it timed out).
- retrieve(channel, type, dtype=<class 'numpy.float32'>)[source]¶
Retrieve a captured trace of a channel.
- Parameters:
channel¶ (
str
) – The channel to retrieve the trace from.type¶ (
SampleType
) – The type of returned samples.dtype¶ – The data type of the returned samples, should be numpy dtype-like.
- Return type:
Optional
[Trace
]- Returns:
The captured trace (if any).
- setup_channel(channel, coupling, range, offset, enable)[source]¶
Setup a channel to use the coupling method and measure the given voltage range.
- Parameters:
- setup_frequency(frequency, pretrig, posttrig)[source]¶
Setup the frequency and sample count for the measurement.
The scope might not support the requested values and will adjust them to get the next best frequency and the largest supported number of samples (or the number of samples requested).
- Parameters:
- Return type:
Tuple
[int
,int
]- Returns:
A tuple of the actual set frequency and the actual number of samples.
- setup_trigger(channel, threshold, direction, delay, timeout, enable)[source]¶
Setup a trigger on a particular channel, the channel has to be set up and enabled.
The trigger will fire based on the threshold and direction, if enabled, the trigger will capture after delay ticks pass. If trigger conditions do not hold it will fire automatically after timeout milliseconds.
- Parameters:
channel¶ (
str
) – The channel to trigger on.threshold¶ (
float
) – The value to trigger on.direction¶ (
str
) – The direction to trigger on (“above”, “below”, “rising”, “falling”).delay¶ (
int
) – The delay for capture after trigger (clock ticks).timeout¶ (
int
) – The timeout in milliseconds.enable¶ (
bool
) – Whether to enable or disable this trigger.
-
RANGES: