Test and Measurement Forum

PicoScope 5444B: setting resolution to 15 bits?

Post your MATLAB discussions here

PicoScope 5444B: setting resolution to 15 bits?

Postby EF_FAU » Tue Jan 27, 2015 2:16 pm


I'm using a PicoScope 5444B with MATLAB 2014b 64bit (Windows 8.1, Microsoft Windows SDK 7.1 as compiler).
I have a problem by setting the resolution to e.g. 15 bits (16 bits and 8 bits are working).
By trying to set the resolution I get the following error messages in matlab command window:

Copyright (C) Pico Technology Ltd. 2013

PicoScope 5000 Series MATLAB Instrument Driver

Number of units found: 1

Serial number(s): CT276/037
Opening PicoScope 5000 Series device...

Instrument Device Object Using Driver : picotech_ps5000a_generic.mdd

Instrument Information
Type: Oscilloscope
Manufacturer: Pico Technology Ltd.
Model: PicoScope 5000 Series

Driver Information
DriverType: MATLAB generic
DriverName: picotech_ps5000a_generic.mdd
DriverVersion: 1.1.9

Communication State
Status: open

Setting Device Parameters...

Default Channel Setup:-

Channel A:-
Enabled: True
Coupling: DC
Range: 5V
Analogue Offset: 0.0V

Channel B:-
Enabled: True
Coupling: DC
Range: 5V
Analogue Offset: 0.0V

Channel C:-
Enabled: True
Coupling: DC
Range: 5V
Analogue Offset: 0.0V

Channel D:-
Enabled: True
Coupling: DC
Range: 5V
Analogue Offset: 0.0V

Turning off Equivalent Time Sampling...
Turning off trigger...

Default Block mode parameters:-

Timebase index : 65
Time Interval: 0 ns
Number of pre-trigger samples: 0
Number of post-trigger samples: 1024
Total number of samples: 1024

Default Streaming mode parameters:-

Streaming interval: 1.000000e-06 s
Streaming auto stop: 1

Default Signal generator parameters:-

Start frequency: 1000 Hz
Stop frequency: 1000 Hz

Initialisation complete.

Connected to PicoScope 5000 Series device:-

Instrument Model: 5444B
Batch/Serial Number: CT276/037
Analogue Channels: 4
Resolution: 8 bits
Bandwidth: 200 MHz
Buffer memory: 512 MS
Maximum sampling rate: 1 GS/s
Signal Generator Type: Arbitrary Waveform Generator

Power Supply connected: True
ps5000aSetDeviceResolution: Device resolution set to 15 bits.

Error using privateExecuteMCode (line 44)
Operands to the || and && operators must be convertible to logical scalar values.

Error in instrgate (line 20)
[varargout{1:nout}] = feval(varargin{:});

Error in icdevice/invoke (line 70)
output = instrgate('privateExecuteMCode', code, obj, varargin, nargout);

Error in ps5444B_AWG_BlockMode_ChA15bit (line 108)
status.resolution = invoke(ps5000aDeviceObj, 'ps5000aSetDeviceResolution', 15);

Error in PicoScopeTDR_15bit125MS (line 20)
[out_signal_pos] = ps5444B_AWG_BlockMode_ChA15bit(width,0,A,0);

Error in PicoScopeLabor_TDR (line 23)
[u_TDR_p, u_TDR_n, v,step_size,sim_length,x,step,TDR_Plot]= PicoScopeTDR_15bit125MS(A,width,cable_length,steps);

The relating code reads as follows:
Code: Select all

ps5000aDeviceObj = icdevice('picotech_ps5000a_generic','');

% Connect device

invoke(ps5000aDeviceObj, 'getUnitInfo');

% Channel A
channelSettings(1).enabled = PicoConstants.TRUE;
channelSettings(1).coupling = ps5000aEnuminfo.enPS5000ACoupling.PS5000A_DC;
channelSettings(1).range = ps5000aEnuminfo.enPS5000ARange.PS5000A_2V;
channelSettings(1).analogueOffset = 0.0;
channelARangeMV = PicoConstants.SCOPE_INPUT_RANGES(channelSettings(1).range + 1);
% Channel B
channelSettings(2).enabled = PicoConstants.TRUE;
channelSettings(2).coupling = ps5000aEnuminfo.enPS5000ACoupling.PS5000A_DC;
channelSettings(2).range = ps5000aEnuminfo.enPS5000ARange.PS5000A_2V;
channelSettings(2).analogueOffset = 0.0;
% Variables that will be required later
channelBRangeMV = PicoConstants.SCOPE_INPUT_RANGES(channelSettings(2).range + 1);
if(ps5000aDeviceObj.channelCount == PicoConstants.QUAD_SCOPE)
    % Channel C
    channelSettings(3).enabled = PicoConstants.FALSE;
    channelSettings(3).coupling = ps5000aEnuminfo.enPS5000ACoupling.PS5000A_DC;
    channelSettings(3).range = ps5000aEnuminfo.enPS5000ARange.PS5000A_2V;
    channelSettings(3).analogueOffset = 0.0;
    % Channel D
    channelSettings(4).enabled = PicoConstants.FALSE;
    channelSettings(4).coupling = ps5000aEnuminfo.enPS5000ACoupling.PS5000A_DC;
    channelSettings(4).range = ps5000aEnuminfo.enPS5000ARange.PS5000A_2V;
    channelSettings(4).analogueOffset = 0.0;

% Keep the status values returned from the driver.
numChannels = get(ps5000aDeviceObj, 'channelCount');
setChannelStatus = zeros(numChannels, 1);
for ch = 1:numChannels
    status.setChannelStatus(ch) = invoke(ps5000aDeviceObj, 'ps5000aSetChannel', ...
        (ch - 1), channelSettings(ch).enabled, ...
        channelSettings(ch).coupling, channelSettings(ch).range, ...


status.resolution = invoke(ps5000aDeviceObj, 'ps5000aSetDeviceResolution', 15); 
set(ps5000aDeviceObj, 'resolution', 15);

How can that problem be solved?
Thanks for support.

Posts: 0
Joined: Tue Jan 27, 2015 1:47 pm

Re: PicoScope 5444B: setting resolution to 15 bits?

Postby Hitesh » Wed Jan 28, 2015 10:15 am


You appear to be using an old version of the Instrument Driver which had a bug in the ps5000aSetDeviceResolution function.

Please download the latest SDK for your device from:



Technical Specialist
Pico Technology
Site Admin
Site Admin
Posts: 2023
Joined: Tue May 31, 2011 3:43 pm
Location: St. Neots, Cambridgeshire

Re: PicoScope 5444B: setting resolution to 15 bits?

Postby EF_FAU » Thu Jan 29, 2015 9:19 am

I downloaded the latest SDK.
Now it works.
Posts: 0
Joined: Tue Jan 27, 2015 1:47 pm

Return to MATLAB

Who is online

Users browsing this forum: No registered users and 0 guests