Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Questions regarding multiplexer #25

Open
chris369852147 opened this issue Jul 25, 2023 · 3 comments
Open

Questions regarding multiplexer #25

chris369852147 opened this issue Jul 25, 2023 · 3 comments

Comments

@chris369852147
Copy link

chris369852147 commented Jul 25, 2023

Hello again, I have some questions to ask regarding multiplexer.

For connecting multiplexer, do we have to change any code in firmware part? Also, is there any examples that how the potentialstat displays the data when multiple electrodes are functioning? Now currently using teensy_shield_v0p1 and multiplexer_v0p3.

@willdickson
Copy link
Contributor

willdickson commented Jul 25, 2023

No you don't need to change the firmware you use the multiplexer.

In order to access the multichannel capability of the multiplexer you will need to use the Python API (https://iorodeo.github.io/iorodeo-potentiostat-docs-build/) to control the device as our web app does not support the multiplexer. Documentation regarding the use of the multiplexer can be found here https://iorodeo.github.io/iorodeo-potentiostat-docs-build/multiplexer.html

You can also find an example scripts demonstrating how to use the multiplexer using the Python API in the example directory of the Rodeostat's online repository here https://github.com/iorodeo/potentiostat/tree/master/software/python/potentiostat/examples

enable_mux.py shows how the multiplexer can be enabled and disabled.

set_mux_channels.py shows how to enable specific channels on the multiplexer as well as how to query which channels are enabled.

run_mux_cyclic_w_plot.py demonstrates how to run a cyclic voltammetry test with the multiplexer.

Note, the default USB/Serial port associated with the devices is set to /dev/ttyACM0 in the examples. This is specific to linux. If you are on windows, macos or on linux with more than one USB/Serial device attached you may need to change this. For example, on windows your device will show up as COM1 or COM2 etc. so you would want to change the port in the example to the correct port, e.g., port = 'COM1'

For the most part the difference between using Rodeostat with the multiplexer and normal operation comes down first enabling the multiplexer with the with set_mux_enabled method and then setting the specific list of channels you wish to acquire from with the set_enabled_mux_channels method, e.g.,

Enable the multiplexer
dev.set_mux_enabled(True)

Specify channels from which to acquire data
channel_list = [1,2,5]
dev.set_enabled_mux_channels(channel_list)

The source code for the Rodeostat's Python library can be found here https://github.com/iorodeo/potentiostat see the software/python/potentiostat subdirectory.

Documentation on the Python API can be found here http://stuff.iorodeo.com/docs/potentiostat/

The Rodeostat Python library can be installed from PyPI using pip, e.g. pip install iorodeo-potentiostat

In addition for the plotting to work in the run_mux_cyclic_w_plot.py example you will want to have the Matplotlib Python plotting library installed https://matplotlib.org/ This can again be installed with pip.

Finally, if you are doing your data analysis in Python I would suggest also installing the Numpy (https://numpy.org/) and Scipy (https://scipy.org/) libraries. This way you can convert the acquired data to numpy arrays and take advantage of the many useful algorithms in numpy and scipy during your analysis. However, these two libraries are not required for using the Rodeostat.

@sayansarkarnitdgp
Copy link

Is it possible to give some sample pictures of the multiplexed measurement result? As of now, we figured out how to generate normal cv results using Rodeostat. But can't figure out the multiplexed arrangement. We have done up to this line.
Specify channels from which to acquire data
channel_list = [1,2,5]
dev.set_enabled_mux_channels(channel_list)

@willdickson
Copy link
Contributor

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants