Hi Chris,
I am looking to setup a Blackrock CereStim R96-based electrical microstimulation paradigm. I already have a Master-9/Iso-flex microstimulation setup that I use by sending TTL pulses via an Arduino from MWorks, but I am looking to switch as I need automated trial-by-trial control of amplitude & pulse width, which only CereStim allows. One challenge is that the CereStim API (StimMEX/C++ SDK) only runs on Windows, MWorks can’t talk to it directly.
I was thinking of a two-part solution like the following:
- Before each trial at setup, send the desired amplitude/duration parameters (in json/csv form) from MWorks → Windows via network to a “stim server” before each trial, and let Windows use CereStim API to load or update the waveform to Cerestim and put it in trigger mode.
- At microstimulation time, MWorks outputs a separate hardware TTL via an Arduino to the CereStim’s trigger BNC which will administer the pulse.
I think this way, I can update the parameters more slowly and still have <5ms low latency from MWorks to stimulation pulse.
I have a few questions regarding this:
- Does the plan look reasonable to you? Is there an option that bypasses Windows altogether, or by any chance does a direct MWorks interface with Cerestim already exist?
- How would I set up a network server to send something like a json/csv parameter from MWorks to Windows/Cerestim API? Is there an I/O device API for this kind of usage?
Thank you for your guidance!
Best,
Hokyung