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.
e hibernate 0x07i 60 #finish each script with two new lines. Don't copy this comment.
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 the correct I2C address is set.
Set the correct I2C address using the following MethodSCRIPT command:
e set_gpio_cfg 0x0300 2
If an SD card is present and GPIO7 is Wake from Sleep, use the following MethodSCRIPT command
e 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:
e set_gpio_cfg 0x39E 2 file_open "/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 forever 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 #measure send_string "Measuring, enter Z while measuring to abort script" cell_on meas_loop_cv p c -500m -1 1 100m 2 nscans(3) #send measurement package pck_start pck_add p pck_add c pck_end endloop cell_off add_var i 1i endloop on_finished: cell_off
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.
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