Welcome to EnviroDIY, a community for do-it-yourself environmental science and monitoring. EnviroDIY is part of WikiWatershed, an initiative of Stroud Water Research Center designed to help people advance knowledge and stewardship of fresh water.
New to EnviroDIY? Start here

Sara Damiano

Forum Replies Created

Viewing 10 posts - 141 through 150 (of 465 total)
  • Author
    Posts
  • in reply to: MayFly Capability with Northern Widget Walrus Sensor #14739
    Sara Damiano
    Moderator

      Alright, here’s something.  I can’t promise it *works*, but I’d like to see the results.

       

      in reply to: MayFly Capability with Northern Widget Walrus Sensor #14735
      Sara Damiano
      Moderator

        post deleted

        in reply to: MayFly Capability with Northern Widget Walrus Sensor #14734
        Sara Damiano
        Moderator

          I’m sorry, I’m looking through their firmware and trying to figure something out for you.  I hate half-answering a question.

          in reply to: MayFly Capability with Northern Widget Walrus Sensor #14733
          Sara Damiano
          Moderator

            WRT to the wire distance, yes and no.

            RS485 is a two-wire protocol where 0’s and 1’s are differentiated by the difference in voltage between the two wires.  Electrically, this means it can be used over long distances (ie, up to 4,000 feet).  To use RS485 the processors that are talking each need to have their own internal clocks and each separately need to be told the speed at which they will send the bits and how many bits make up one letter.  The processors also need to agree on a way to determine whose turn it is to talk and whose turn it is to listen.  Modbus is a common choice, but there are many others.

            I2C is also a two-wire protocol, but the 0’s and 1’s are based on the voltage of a single wire and the second wire works as the clock.  This configuration does not lend itself to long wires; I2C is usually used between chips on the same circuit board.  It’s theoretical limit is only about 1m, but, as you’ve seen when using the MPL directly, 3m can sometimes be managed.

            Sara Damiano
            Moderator

              I2C and RS485 are two different communication protocols.  They specify what change marks a 1 or a 0 when transferring information.  I2C also (mostly) specifies the question-and-answer format.  So knowing you have I2C firmware gets you some of the way there, but not very far.  You need to know what question to ask the board and what it’s response will be.

              I’m guessing this is the firmware they gave you:  https://github.com/NorthernWidget-Skunkworks/Project-Walrus/blob/master/Firmware/Walrus_I2C_5BA/Walrus_I2C_5BA.ino.  That would be the program the microcontroller on the Walrus itself is running, not what the Mayfly needs to run to talk to it.

              Sara Damiano
              Moderator

                Someone has to dig through their firmware file and reverse engineer the communication protocol.

                Sara Damiano
                Moderator

                  Bobby Shultz or Northern Widget did some of the work to incorporate the MPL115A into ModularSensors, but I haven’t followed what they’ve been doing.

                  It looks like this Walrus thing has an on-board processor that in between the Mayfly and the MPL115A.   So you need to use whatever protocol they’ve developed for themselves not the MPL’s I2C protocol.  It looks like they have both I2C and RS485 firmware available and some instructions on how to upload the firmware to said on-board processor.  Do you know which you have?  Their demo code, true to it’s warning, is based on a library that doesn’t yet exist.  Have you tried contacting Northern Widget directly to ask for help?

                   

                  in reply to: Adding New Sensors to Modular Sensors #14706
                  Sara Damiano
                  Moderator

                    The “best” way to work with ModularSensors would be to write the c/h files and submit them as a pull request. 🙂  But if the calculated variable is working, then feel free to keep using it that way for yourself.

                    If you define your variable for the DS18 temperature as something like Variable* ds18Temp = new MaximDS18_Temp(&ds18, "12345678-abcd-1234-ef00-1234567890ab); then in your calculation equation you would use something like float ds18TempVal = ds18Temp ->getValue();  The “baro_rho_correction” example is probably the best one to look at to see something similar in action: https://github.com/EnviroDIY/ModularSensors/blob/master/examples/baro_rho_correction/baro_rho_correction.ino

                     

                     

                    in reply to: Wiring Ultrasonic sensor w/ temp compensator #14470
                    Sara Damiano
                    Moderator

                      Oops, sorry that I missed this.

                      Are you using slashDevin’s original NeoSWSerial or are you using my fork? (It’s in SRGDamia1, not EnviroDIY.)  The original didn’t implement the peek function which would cause it to fail.

                      in reply to: Changing I2C address of RTC #14457
                      Sara Damiano
                      Moderator

                        The address of the DS3231 isn’t changeable – it’s permanently set when the chip is manufactured.  Is there any other way your sensor can communicate?  Does it have a physical addressing method?  Many I2C sensors have an “addr” pin that you can set to be high or low to change the address.  Can it communicate via SPI or UART so you can use one of those to change the address?

                      Viewing 10 posts - 141 through 150 (of 465 total)