Skip to content

Releases: PalmSens/palmsens-sdk

PyPalmSens 1.10.1

Choose a tag to compare

@stefsmeets stefsmeets released this 29 Jun 08:39
8e4373d

PyPalmSens 1.10.1 is now available on PyPi.

To upgrade: pip install pypalmsens -U.

This release fixes a crash in 1.10 when importing PyPalmSens.

What's changed

  • Add templates to MANIFEST.in (#403)

Full Changelog: python-1.10...python-1.10.1

PyPalmSens 1.10.0

Choose a tag to compare

@stefsmeets stefsmeets released this 04 Jun 13:22
b1abb05

Important

This version missed package data so that it fails to import. This has been fixed in 1.10.1.

PyPalmSens 1.10 is now available on PyPi.

To upgrade: pip install pypalmsens -U.

For more information, see the documentation

Support Python 3.14

This release of PyPalmSens supports Python 3.14, thanks to the release of pythonnet 3.1.0.

Add experimental energy submodule

We added 3 new methods for energy and battery research:

These classes are implemented in MethodSCRIPT. This is a new way of adding methods to PyPalmSens that we are experimenting with.
Therefore these classes are experimental (hence the experimental_ prefix). This means we're still working on them and trying to understand how to best incorporate them in the code.

That means these classes may change in the future. If you use these methods, we welcome any feedback and suggestions before making them a permanent part of PyPalmSens.

See the documentation for more information.

Add streaming data

With this release, PyPalmSens can auto-save all data directly to a file. This is helpful for:

  • Streaming data to other processes
  • Data recovery
  • Tracking Long-running measurements

To make use of this feature, pass a file name to the measure function:

import pypalmsens as ps

ps.measure(ps.CyclicVoltammetry(), stream='data.jsonl')

See the documentation for more information

This required a big refactor of the callback system. We intend to expand this feature in a future release.

Nexus support on Mac and Linux

PyPalmSens 1.8.0 added support for Nexus over TCP/IP using the from_ip method, but for Windows only. This release extends support for Mac and Linux.

What's changed

  • Add support for cell on (#371)
  • Raise Attribute error for module __getattr__ (#377)
  • Add method to serialize method parameters (#378)
  • Add literal scan/frequency types (#380)
  • Add support for Python 3.14 (#381)
  • Add experimental BatteryCycling technique (#379)
  • Update types and type checking (#383)
  • Add linux support for connecting over TCP\IP (#388)
  • Fix double newlines in serialize to .psmethod (#389)
  • Update Python version in test workfrow to 3.14 (#390)
  • Add streaming data for live measurements (#386)
  • Add missing fields for the GEIS technique (#393)
  • Add ConstantPower and ConstantResistance methods (#394)

Full Changelog: python-1.9.0...python-1.10

PyPalmSens 1.9.0

Choose a tag to compare

@stefsmeets stefsmeets released this 11 May 11:42

PyPalmSens python-1.9.0 is now available on PyPi.

To upgrade: pip install pypalmsens -U.

For more information, see the documentation.

Corrosion methods

This release adds support for corrosion methods to PyPalmSens. This is mostly a compatibilitey update, so that corrosion data can be read into PyPalmSens. Functionally these methods are exactly the same as the corresponding regular classes. See the documentation for more information.

  • pypalmsens.corrosion.CorrosionPotential
  • pypalmsens.corrosion.CyclicPolarization
  • pypalmsens.corrosion.Galvanostatic
  • pypalmsens.corrosion.LinearPolarization
  • pypalmsens.corrosion.Potentiostatic
  • pypalmsens.corrosion.ElectrochemicalImpedanceSpectroscopy

Capabilities

You can now retrieve instrument capabilities using InstrumentManager.capabilities.
This provides information on device features, firmware versions, supported current and potential ranges, and other information.

>>> import pypalmsens as ps

>>> with ps.connect() as manager:
...     capabilities = manager.capabilities

>>> capabilities
Capabilities(device_type='EmStat4LR', firmware_version=1.5, ...)

Estimated duration

Get the estimated measurement duration using InstrumentManager.get_estimated_duration():

>>> import pypalmsens as ps

>>> method = ps.CyclicVoltammetry()

>>> with ps.connect() as manager:
...     print(manager.get_estimated_duration(method))
2.099

Mixed Mode API changes

This release makes a few changes to the API for Mixed Mode.

  • pypalmsens.mixed_mode.MixedMode is available from the root level (pypalmsens.MixedMode) for consistency with other techniques. Stages are available from pypalmsens.stages.
import pypalmsens as ps
# old
ps.mixed_mode.MixedMode(stages=[ps.mixed_mode.ConstantE()])
# new
ps.MixedMode(stages=[ps.stages.ConstantE()])

See https://dev.palmsens.com/python/latest/_attachments/reference/methods/mixed_mode/

The old paths now emit DeprecationWarnings. They will be removed in a later version.

What's changed

  • Add wrappers for corrosion methods (#341)
  • Move get_estimated_duration to instrument manager (#342)
  • Add support for capabilities (#346)
  • Use EILevel for MSP methods (#351)
  • Min sampling time must be greater than 0 for Impedance (#354)
  • Add __getitem__ and __contains__ magic methods to pool (#355)
  • Move converters and types to root module (#356)
  • Update user API (types and mixed mode) (#357)
  • Update mixed mode method listing in documentation (#360)
  • Add status() method for IntrumentPool (#361)

Full Changelog: python-1.8.1...python-1.9.0

PyPalmSens 1.8.1

Choose a tag to compare

@stefsmeets stefsmeets released this 10 Apr 12:47
bfbbf81

PyPalmSens 1.8.1 is now available on PyPi.

To upgrade: pip install pypalmsens -U.

This is a small bugfix release.

What's Changed

PyPalmSens 1.8.0

Choose a tag to compare

@stefsmeets stefsmeets released this 26 Mar 13:01
30036c5

PyPalmSens 1.8.0 is now available on PyPi.

To upgrade: pip install pypalmsens -U.

This is a relatively small release that adds support for the PalmSens Nexus. This release also updates the PalmSens dotnet libraries to 5.13.011, which brings a bunch of small fixes and improvements.

Nexus support

If you are using a Nexus, you can now connect to it via TCP/IP:

>>> import pypalmsens as ps

>>> instrument = ps.Instrument.from_ip('192.168.1.123')
>>> instrument
Instrument(name='192.168.1.123', interface='tcp')
>>> with ps.connect(instrument) as manager:
...     print(manager.get_instrument_serial())
NEXUS24C0029

For more information, see the documentation.

What's Changed

Full Changelog: python-1.7.1...python-1.8.0

PyPalmSens 1.7.1

Choose a tag to compare

@stefsmeets stefsmeets released this 24 Feb 14:47
a7b4142

PyPalmSens 1.7.1 is now available on PyPi.

To upgrade: pip install pypalmsens -U.

This is a small release that adds a way to connect to a serial port directly, see the docs for more information.

import pypalmsens as ps

instrument = ps.Instrument.from_port('COM4')
ps.measure(ps.CyclicVoltammetry(), instrument=instrument)

What's Changed

Full Changelog: python-1.7.0...python-1.7.1

PyPalmSens 1.7.0

Choose a tag to compare

@stefsmeets stefsmeets released this 20 Feb 13:45
4dd3ac7

PyPalmSens 1.7.0 is now available on PyPi.

To upgrade: pip install pypalmsens -U.

Current and potential readings

This release revises how to access current reading and potential reading data (#279).

It exposes the data in the concrete values in the underlying DataArray by adding 2 new derived classes derived from ps.data.DataArray:

These arrays have methods to get the current / potential reading data directly, e.g. for current readings:

current = measurement.dataset['Current']
current.current()
current.current_range()
current.current_in_range()
current.timing_status()
current.reading_status()
current.current_readings()
current.to_dict()

And for potential readings:

potential = measurement.dataset['Potential']
potential.potential()
potential.potential_range()
potential.potential_in_range()
potential.timing_status()
potential.reading_status()
potential.potential_reading()
potential.to_dict()

See the documentation for more information.

Supported methods and current ranges

New methods on InstrumentManager(Async) to get the supported methods and current ranges (#279). See the docs for more information.

>>> import pypalmsens as ps
>>> manager = ps.connect()
>>> manager.supported_methods()
['lsv', 'dpv', 'swv', ..., 'mm', 'ms', 'pot']

>>> manager.supported_current_ranges()
['100nA', '1uA', '10uA', '100uA', '1mA', '10mA', '100mA']

>>> manager.supported_potential_ranges()
['50mV', '100mV', '200mV', '500mV', '1V']

>>> manager.supported_applied_current_ranges()
['1uA', '100uA', '10mA', '100mA']

>>> manager.supported_bipot_ranges()
[]

Multichannel improvements

If you have a multichannel instrument, this release has 2 important changes.

  1. We added support for hardware sync with MethodScript (#283). PyPalmSens will now recognize if you have set set_channel_sync 1 in your script, and set up the main/follower channels.
  2. More callbacks! InstrumentPool.measure() / InstrumentPoolAsync.measure() now supports passing a list of callbacks, so you can call a different function for every channel (#271). See this link for an example.

What's Changed

Full Changelog: python-1.6.1...python-1.7.0

PyPalmSens 1.6.1

Choose a tag to compare

@stefsmeets stefsmeets released this 23 Jan 11:10
7e61477

PyPalmSens 1.6.1 is now available on PyPi.

To upgrade: pip install pypalmsens -U.

This is a patch release that adds support for setting measurement triggers for Mixed Mode measurements.

The API for setting measurement triggers for stages is the same as for methods:

import pypalmsens as ps

method = ps.mixed_mode.MixedMode(
    stages = [{
         'stage_type': 'ConstantE',
         'measurement_triggers': {'d0': True, 'd1': True}
     }]
)

What's Changed

Full Changelog: python1.6.0...python-1.6.1

PalmSens LabView SDK 1.1.1

Choose a tag to compare

@stefsmeets stefsmeets released this 23 Jan 09:12
5799935

This release of the labview SDK fixes a regression in 1.1.0 that prevented PalmSens.Core.Simplified.LabVIEW assembly to work with 64 bit installations of LabView.

This release updates the DLL to version 5.12.1624 and supports both (32 bit and 64 bit) versions of LabView again.

What's Changed

Full Changelog: labview-1.1.0...labview-1.1.1

PalmSens LabView SDK 1.1.0

Choose a tag to compare

@stefsmeets stefsmeets released this 20 Jan 12:14

With this LabVIEW SDK you can control your PalmSens instrument directly from LabVIEW.

This release updates the PalmSens.Core DLL to 5.12.1624 (32 bit) and fixes issues with Mux and GEIS support.

For more information, see the documentation.

What's Changed

Full Changelog: labview-1.0.0...labview-1.1.0