LORD-MicroStrain / MSCL

MicroStrain Communication Library
https://www.microstrain.com/software/mscl
MIT License
76 stars 57 forks source link

Failed to read the Model Number (EEPROM 46) from Node #371

Open sgacond opened 9 months ago

sgacond commented 9 months ago

Hello!

I have a problem communicating with an SG-LINK-200 via MSCL (Python). I use the initialization sequence like shown in this sample: Configure Node (Python).

.. and then configuring the nodes like:

        config.defaultMode(mscl.WirelessTypes.defaultMode_idle)
        config.inactivityTimeout(7200)
        config.samplingMode(mscl.WirelessTypes.samplingMode_sync)
        config.dataCollectionMethod(3)
        config.sampleRate(118)
        config.unlimitedDuration(True)

Unfortunately, applying the configuration always fails with: Failed to read the Model Number (EEPROM 46) from Node 36170 .

The node was in transmission mode before and transmitted data sucessfully. The error appeared doing a restart of the software using the MSCL lib. Therefore, I think, wireless issues shouldn't be the cause here.

The error persists. I can do multiple restarts, always the same. Am i doing something wrong during the initialization sequence? Is there another place where more delays or waiting should be done?

I'm using the debian package of MSCL v.65. And python 3.9.2.

msclissa commented 9 months ago

It sounds like your initialization sequence is correct. Just to clarify - the SetToIdleStatus does transition to setToIdleResult_success and the LED on the node goes to a pulse pattern to signify it is in idle mode?

Based on the fact it was transmitting data and the base station was receiving that data successfully before I agree it doesn't seem like an issue with the frequency configuration or interference in wireless communication.

Do you have other nodes to test with - is this initialization sequence successful on another node?

Also, if you have access to a Windows machine that can run SensorConnect that may be helpful in seeing the state of the node and troubleshooting if there is something going wrong with the node itself. If possible, can you try to connect to the node through SensorConnect to confirm the node is idle and try to change a couple settings to verify communication is successful?

If these troubleshooting steps don't shed any light on to what's going wrong it may be helpful if you sent your exact initialization code so I can try to recreate the issue here.

Thanks!

sgacond commented 9 months ago

Hi @msclissa

Thanks for your response!

Yes, setToIdleResult_success was returned (also within a normal time span).

We did some tests with another node, another USB dongle and also with SensorConnect.

Unfortunately, the results were not very consistent:

I was not sure about the correctness of my initialization sequence. Is there more documentation about it, then these examples here?