Forum Replies Created
-
AuthorPosts
-
If you’re only running the sketches from Modular Sensors, you should delete all of your libraries and download the bundle from the ModularSensors release page: https://github.com/EnviroDIY/ModularSensors/releases/tag/v0.37.0 (Direct download link: https://github.com/EnviroDIY/ModularSensors/releases/download/v0.37.0/ModularSensors_Dependencies_0.37.0.zip) The zip from the ModularSensors repo will contain exactly the version of each library that works properly with the released version of ModularSensors. In some cases, it not the latest version. The libraries in the download from the carefully crafted link in the libraries are the very latest version of each library, **NOT** versions that actually work together.
As far as the clock keeping time: if you have a battery in the coin cell slot, the clock should keep time whether or not the board is turned on. That’s the normal functionality. If it is **not** keeping the correct time when the board is off, the coin battery is dead or something else is wrong.
How is the sensor connected? To disconnect a grove plug, squeeze the lock at the top of the white connector and pull it off. This is the headphone (stereo) jack: https://www.envirodiy.org/product/envirodiy-grove-to-3-5mm-stereo-jack-pack-of-2/. The stereo/headphone connector is just like the one on wired headphones.
If you’re getting a “could not wake modem” error it means there’s something wrong with the modem power or connection between the modem and your main board. Are your modem lights turning on? There should be a solid red light and a flashing blue light? Make sure your board is in the socket correctly with the cut corners at the top and all the pins securely in the socket.
What is your main board? What version? (ie Mayfly 1.1) What pin numbers do you have selected for modemVccPin, modemStatusPin, ModemSleepRqPin, and modemLEDPin? What baud rate (modemBaud) have you selected?
Which version of the ModularSensors library are you using?
The LTExBee sketches will not help you.
Does the red power light on the lower right of the modem turn on? If not, the modem isn’t getting power. Pin 18 should be the right pin number. I’m not sure why it wouldn’t be powering up. Have you ever messed with the solder jumpers?
If the modem is powering up, you might have a baud rate problem. Try setting the modemBaud to 57600 even 115200.
If neither of those work, then try dumping out debugging info. If you’re using PlatformIO, add this to your platformio.ini file within your default enviroment:
<div>
<div>INI123456build_flags =-D MS_SIMCOMSIM7080_DEBUG-D MS_SIMCOMSIM7080_DEBUG_DEEP-D MS_LOGGERMODEM_DEBUG-D MS_LOGGERMODEM_DEBUG_DEEP-D TINY_GSM_DEBUG=Serial</div>
</div>
If you’re using the Arduino IDE, add#define TINY_GSM_DEBUG Serialto the very top of your logging program. Then navigate to the ModularSensors folder within your libraries. In that folder, open up The ModularSensors folder, then the src folder. Open LoggerModem.h and remove the comment slashes from lines 27 and 28 (lines start with #define MS_LOGGERMODEM_DEBUG). The go into the modems subfolder, open SIMComSIM7080.h and remove the comment slashes from lines 47 and 48 ((lines start with#define MS_SIMCOMSIM7080_DEBUG). Save all of the files.Re-program your board with the debugging on and you should get lengthy print-outs about the modem communication. With that, I can better help find what’s wrong.
According to the product change notification you attached, there shouldn’t need to be any software changes for “transparent” mode, so most of the examples for ModularSensors should still work.
The underlying cellular chipset on the board *has* changed from the ublox SARA R410M to the Telit ME310G1-WW on the global version or the Telit ME310G1-W1 on the low power version. Because the chip changed, any examples you see for using *bypass* mode will no longer work.
I’ve been swamped lately, so I’m behind on sensor requests.
<div>
<div>@fionasouthwell Are you sure you’re measuring *specific conductance*? From what I know of the Atlas sensors, they don’t measure specific conductance, they measure conductivity. I just very quickly skimmed their latest manual and it doesn’t look like that’s changed. To get specific conductance, you must also use a temperature probe and then calculate the specific conductance from the conductivity. I can add specific conductance, but I’m going to flag it as a calculated value, since the sensor doesn’t measure it.</div>
</div>You need to either upgrade your ModularSensors library from 0.34.0 to 0.35.0 or downgrade your SD fat library from 2.2.3 to 2.1.2.
All the dependent libraries are updated all of the time and not all versions match with each other. It’s best to download the libraries as a package from the ModularSensors releases page on GitHub. That zip file should have *exactly* the version of each library you need for all the pieces to work together.
I know nothing about rosserial. Are you using Hardware Serial with it? Serial or Serial1? Are you using some type of software serial (SoftwareSerial, AltSoftSerial, NeoSWSerial)? Very quickly skimming the rosserial docs and code, it looks like it has some specific boards that are supported and the 1284p in the Mayfly may not be 100% compatible.
The power cycling done by modular sensors is based on the power pin you used to set up the Hydros21. If you have your other serial peripheral on the same pin, it’s possible that the power cycling could be throwing it off. Try putting them on different power pins, or re-running the Serial.begin() after the power cycle.
The Hydros21 is an SDI-12 sensor using the SDI-12 library under the hood. That library does make use of and changes the settings for Timer2. Any other library that would use Timer2 (Tone, NeoSWSerial, etc) will conflict with it without showing compiler errors. See this: SDI-12 ReadMe. ModularSensors runs a begin() and end() on the SDI-12 objects whenever it talks to them, which *should* set and unset the timers and prevent conflicts, but it’s possible there’s still a problem with them.
As a side note, instead of using getValueString() and then toFloat() and then converting back to a String, you should just use the string value in your hydros_data String. If you need the float for some reason, use getValue(). The getValueString() is designed to not only give the value as a string, but to also give it in with the appropriate number of significant figures based on the specifications of each sensor. Converting to a float and back to a String completely negates that.
This code still works for me. Are you sure you have your start and end dates set within the range that your sensor has data?
The list Shannon shared for ModularSensors should be up-to-date. But the Mayfly itself can interface with many, many more sensors that are supported by libraries other than ModularSensors. We couldn’t make a comprehensive list – almost any sensor that can work in an Arduino environment can be used with the Mayfly.
-
AuthorPosts
Welcome to EnviroDIY, a community for do-it-yourself environmental science and monitoring. EnviroDIY is part of