Hello, EPICS mates,
just some status updates.
I use the streamDevice support for Jena NV40/1 CLE in the ip module
github.com/epics-modules/ip <https://urldefense.us/v3/__http://
github.com/epics-modules/ip__;!!G_uCfscf7eWS!
ZCoF0OIjNuaDS9D108Smv9Yr7AcPws7Re6yKD0RKWEY2qlEtyE7gA3Gyi3Nxz5ygcMt3MHPseEPljHEMKWpCfMM$>
and add a soft motor on it (Thanks Matthew Pearson).
The connections between the fields of soft motor and records created by
streamdevice:
OUT -> write (write desired position value to controller).
RDBL -> read (read the current position value from controller continuously)
STOO -> a dummy record (because there is no STOP command)
DINP -> a faked record to simulate DMOV value from 1 to 0 to 1. (because
there is no such information from controller)
Basically, it works.
Just one little details: (I knew this long time ago, discovered it again.)
If MRES is set to 1, any movement less than 1 will not cause the RBV
field of motor record to update.
I think the reason is that "RMP" field of motor record is of type long
integer, not float.
On Fri, May 22, 2026 at 7:45 AM LiangChih Chiang <yehnan174 at gmail.com
<mailto:yehnan174 at gmail.com>> wrote:
>There is streamDevice support for the Jena NV40 and NV40/3 CLE in
the ip module:
Thanks a lot.
Then I can build a soft motor on it.
On Fri, May 22, 2026 at 5:43 AM Peterson, Kevin M. <kmpeters at anl.gov
<mailto:kmpeters at anl.gov>> wrote:
There is streamDevice support for the Jena NV40 and NV40/3 CLE
in the ip module:
github.com/epics-modules/ip <https://urldefense.us/v3/__http://
github.com/epics-modules/ip__;!!G_uCfscf7eWS!
ZCoF0OIjNuaDS9D108Smv9Yr7AcPws7Re6yKD0RKWEY2qlEtyE7gA3Gyi3Nxz5ygcMt3MHPseEPljHEMKWpCfMM$>
Kevin
________________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov <mailto:tech-
talk-bounces at aps.anl.gov>> on behalf of Abdalla Ahmad via Tech-
talk <tech-talk at aps.anl.gov <mailto:tech-talk at aps.anl.gov>>
Sent: Monday, May 18, 2026 5:00 AM
To: LiangChih Chiang
Cc: tech-talk at aps.anl.gov <mailto:tech-talk at aps.anl.gov>
Subject: Re: EPICS modulle for Piezosystem Jena's piezo
controller NV 40/1 CLE
I am not saying it is not possible; it just does not make sense,
not to mention the effort you will spend in developing a motor
driver instead of relying on something simple like a stream
device. A model 3 motor driver consists of two C++ classes
inherting from asynMotorController and asynMotorAxis classes
which are part of the motor support module. You will need to
implement some methods like polling the controller, setting/
reading the position, etc. Next, you will create your dbd files
and call your driver into the st.cmd of your IOC, not to mention
the motor record GUI. The motor support module contains a lot of
motion controllers support module.
You can choose this or just create a stream device IOC with 6
PVs like you requested.
Best Regards,
Abdalla.
________________________________
From: LiangChih Chiang <yehnan174 at gmail.com
<mailto:yehnan174 at gmail.com>>
Sent: Monday, May 18, 2026 12:00 PM
To: Abdalla Ahmad <Abdalla.Ahmad at sesame.org.jo
<mailto:Abdalla.Ahmad at sesame.org.jo>>
Cc: tech-talk at aps.anl.gov <mailto:tech-talk at aps.anl.gov> <tech-
talk at aps.anl.gov <mailto:tech-talk at aps.anl.gov>>
Subject: Re: EPICS modulle for Piezosystem Jena's piezo
controller NV 40/1 CLE
Hi,
> I don't think developing a model 3 motor driver for this
piezo controller makes sense.
I agree.
But I would like to provide motor record for this piezo controller,
in order to treat it like a motor.
>Model 3 motor driver requires other parameters such as
velocity, motor resolution, homing, jogging, etc.
Can't I just provide dummy values for these parameters?
On Mon, May 18, 2026 at 4:49 PM Abdalla Ahmad
<Abdalla.Ahmad at sesame.org.jo
<mailto:Abdalla.Ahmad at sesame.org.jo><mailto:Abdalla.Ahmad at sesame.org.jo <mailto:Abdalla.Ahmad at sesame.org.jo>>> wrote:
Hi
I don't think developing a model 3 motor driver for this piezo
controller makes sense. Model 3 motor driver requires other
parameters such as velocity, motor resolution, homing, jogging,
etc. A stream device interface works the best for your case.
Best Regards,
Abdalla.
________________________________
From: Tech-talk <tech-talk-bounces at aps.anl.gov <mailto:tech-
talk-bounces at aps.anl.gov><mailto:tech-talk-bounces at aps.anl.gov
<mailto:tech-talk-bounces at aps.anl.gov>>> on behalf of LiangChih
Chiang via Tech-talk <tech-talk at aps.anl.gov <mailto:tech-
talk at aps.anl.gov><mailto:tech-talk at aps.anl.gov <mailto:tech-
talk at aps.anl.gov>>>
Sent: Monday, May 18, 2026 10:40 AM
To: tech-talk at aps.anl.gov <mailto:tech-
talk at aps.anl.gov><mailto:tech-talk at aps.anl.gov <mailto:tech-
talk at aps.anl.gov>> <tech-talk at aps.anl.gov <mailto:tech-
talk at aps.anl.gov><mailto:tech-talk at aps.anl.gov <mailto:tech-
talk at aps.anl.gov>>>
Subject: EPICS modulle for Piezosystem Jena's piezo controller
NV 40/1 CLE
Dear EPICS mates,
I need to control a piezo actuator via
Piezosystem Jena's piezo controller NV 40/1 CLE,
which is very old and discontinued.
Its commands are extremely simple:(please see attach files)
i1 activate remote control
i0 deactivate remote control
cl closed loop on
ol closed loop off
rd read a value (µm for closed loop, volt for open loop)
wr,<value> write a value (µm for closed loop, volt for open loop)
I'm wondering if it's possible to develop
a "Model 3" motor driver for it.
Do you guys have experience for similiar suuch simple devices?