Enable low-power features on the EmStat Pico module

The EmStat Pico module is a versatile potentiostat module. With its low-power features enabled, it uses only 10 uA while not measuring, for use in battery operated systems. This guide will explain how to optimize your MethodSCRIPT for low-power applications.


Hibernate to save power

MethodSCRIPT supports a special mode called Hibernate. If the potentiostat module is not measuring or applying a voltage, the internal clocks, OpAmps and LEDs are not needed. Turning these features off, reduces the power of the module with a factor 1000, by lowering the current from around 10 mA to 10 μA. Data arrays will also lose its contents, so store measurement data into an external file, or send it to another device. 

To resume a measurement, the module needs to wake up from its low power mode. The module can wake up on UART, WAKE pin and or a wakeup timer. To wake up on all three events, pass the argument 0x07i on to the module. The example below wakes up after 60 seconds.

hibernate 0x07i 60

#finish each script with two new lines. Don't copy this comment.

Note: if you have an EmStat Pico Development Board, please also remove the jumper on INT_Enable, so the RTC doesn’t wake up the EmStat Pico module every second.

Configure I2C to save power during hibernate

Each EmStat Pico module has an external temperature sensor. During hibernate, you don’t need the temperature sensor. The hibernate function toggles the temperature sensor off, if I2C is correctly configured. 

To configure I2C correctly, use the following MethodSCRIPT command:

set_gpio_cfg 0x0300 2

If an SD card is present and GPIO7 is Wake from Sleep, use the following MethodSCRIPT command

set_gpio_cfg 0x039E 2

More information on the device GPIO pin configuration can be found here.

Measure and hibernate in one loop

By measuring and hibernating in a loop, power is saved while in hibernation. In this example three Cyclic Voltammetry measurements are performed of two second each, after which the module hibernates. The modules wakes up if a trigger command is given via a WAKE pin, or a UART command.

The MethodSCRIPT looks like this:

set_gpio_cfg 0x39E 2
file_open "https://assets.palmsens.com/Measurements/measurements.dmeas" 1
set_script_output 3
var c
var p
#i is current iteration in a loop
var i
store_var i 0i ja
#loop three times
loop i < 3
	#hibernate until triggered, to save power
	hibernate 0x03i 0
	#prepare channels
	set_pgstat_chan 1
	set_pgstat_mode 0
	set_pgstat_chan 0
	set_pgstat_mode 2
	#set ranges
	set_max_bandwidth 400
	set_range_minmax da -1 1
	set_range ba 590u	
	set_autoranging ba 59n 590u	
	#set voltage
	set_e -500m	
	send_string "Measuring, enter Z while measuring to abort script"
	meas_loop_cv p c -500m -1 1 100m 2 nscans(3)
		#send measurement package
		pck_add p
		pck_add c
	add_var i 1i

The measurement file can be read using the command fs_get “/Measurement/measurements.dmeas” via for example TeraTerm.

Note that the hibernate command is on top. This makes it possible to abort the script during a measurement.

Future improvements

The firmware of the EmStat Pico module is being improved. A next firmware update will include:

  • Applying a bias voltage while in hibernate, to save power during Chronoamperometry
  • Enable hibernate for over 2 minutes
  • Remove the need to reinitialise your potentiostat mode after waking up from hibernate

If you need any other feature, let us know. For more information about the current features, please read the MethodSCRIPT documentation.

MethodSCRIPT documentation