Description
Bug description
I have encountered a bug in the newest version (3.0) of Rattlesnake Vibration Controller Package. The error occurs in all environments and it has to do something with the NI device terminals. For example, when I go to Time Signal Generation Environment everything works fine, until I press the Arm Data Acqusition button. That is when I get the following error:
The same error occurs when trying to do system identification in MIMO Transient Environment or MIMO Random Vibration Environment.
To Reproduce
Steps to reproduce the behavior:
- Two small linear motor shakers, each with accelerometer attached to it.
- NI hardware: cDAQ-9174 chassis with NI 9234 (for 2 accelerometer inputs and 2 voltage inputs) and NI 9263 (for 2 voltage outputs):

- Channel table:
channel_table.xlsx
Possible Fixes
I then downloaded source code for the previous version of Rattlesnake (2.0) and tried the same thing and it worked. Then I did some source code comparison between the versions, specifically the nidaqmx_hardware_multitask.py
file inside the components
folder. I noticed that the file in the newer (3.0) version is the same as th file in the older (2.0) version, with exception of 2 new lines added in the newer (3.0) version of Rattlesnake. Those two lines are:
- line 382:
task.triggers.start_trigger.dig_edge_edge = ni.constants.Edge.RISING
- line 383:
task.triggers.start_trigger.trig_type = ni.constants.TriggerType.DIGITAL_EDGE
After commenting out those two lines in the newer version, the error is gone and the program works as expected.
My question is, what does these two lines of code do and why were they added in the newer version?
Thanks,
Luka
Desktop:
- OS: Windows 11
- Python version: 3.11.5