Integrating Garnet SeeLevel sensors into DIY van monitoring

@Michael

Senior Member
Joined
Oct 26, 2018
Posts
531
Location
MN
My Coachmen Crossfit came with unreliable tank sensors. Garnet SeeLevel tank sensors integrated into my DIY camper monitoring system would be a big improvement.

My current monitoring system is centered around MQTT and Node-Red running on a Victron Cerbo GX and a Nextion touch screen, with ESP32's where needed for reading sensors and communicating between devices.

Options for integration include buying a SeeLevel control panel with any of Bluetooth, RV-C, or NMEA2000 interfaces, the latter two of which directly interface with Victron's Cerbo units and/or Raspberry Pi running Victron's OS.

Reading the sensors/sending units directly, without the Garnet control panel also seems to be possible - based on this post in a Raspberry Pi forum, where one of the participants (Jim G) figured out how to trigger and read the tank sensors/sending units directly.

I bought a couple of SeeLevel sending units and successfully dummied up a test using an ESP32 to trigger and read the sending units and a circuit similar to the one designed by Jim G. in the Raspberry Pi forum. It's working on the bench with two SeeLevel sensors attached to a water jug.

attachment.php


It's too cold to work out in the camper, so I'll not know if it's reliable in the real world until it gets quite a bit warmer. In the meantime, I've rearranged my display to accommodate tank gauges (lower left corner):

attachment.php


I figured I could either use (boring) green bars to show tank levels, or an appropriate set of emojis. :D

My code and a description of the circuit are uploaded to Github. To fully integrate the sensors, I'll need to modify my code to encapsulate the data into JSON formatted ESP-NOW packets, and come up with an algorithm to properly interpret the data (likely in Node-Red).

I'd also like to put a bit of protection on the 12v circuit feeding the sensors. I'm not sure how tolerant they are of voltage spikes and anomalies. I've no idea how to do that though.
 

Attachments

  • 4476094768187439970.jpg
    4476094768187439970.jpg
    161.7 KB · Views: 192
  • Screenshot 2024-01-04 110815.png
    Screenshot 2024-01-04 110815.png
    119.2 KB · Views: 182
I have no idea what I just read, but your display looks really cool. :LOL:

I have some old, but functional tablets that would be just great for such a setup (like a Galaxy Tab S2). Maybe a project for another year...

Not to derail your thread, but... Do you have any experience with/opinion of the Mopeka "Pro Check Universal Sensor" for such a purpose?
 
Do you have any experience with/opinion of the Mopeka "Pro Check Universal Sensor" for such a purpose?

No experience, but that Victron supports them with their Cerbo product line suggests to me that they're OK.
 
Updates on this project:

I'm now using a circuit based on the one in the original post in the Raspberry Pi forum. It's reliable with three sensors in parallel at the far end of 20ft. of 20ga, wire, so it should work OK in the camper.

I'd also like to put a bit of protection on the 12v circuit feeding the sensors. I'm not sure how tolerant they are of voltage spikes and anomalies. I've no idea how to do that though.

I decided to inline a 12V-12V buck-boost converter to help ensure that the sending units see a clean, stable voltage source.

My code and a description of the circuit are uploaded to GitHub. To fully integrate the sensors, I'll need to modify my code to encapsulate the data into JSON formatted ESP-NOW packets, and come up with an algorithm to properly interpret the data (likely in Node-Red).

The data returned by the SeeLevel sending units is a series of bytes:

Code:
Byte 1: Unknown, perhaps a sensor ID
Byte 2: Checksum
Byte 3 - 11: Number from 0 -> 254 
                   indicating the 'fullness' of each segment of the sensor
                   starting from the topmost segment
Byte 12: Always '255'

Turning that series of bytes into a somewhat accurate percent-full number in NodeRed is still TBD.
 
I use the Mark 1 Eyeball Tank Measurement System (METMS 1.0). 100% accurate and works perfectly every time.
 
Last edited:
I use the Mark 1 Eyeball Tank Measurement System (METMS 1.0). 100% accurate and works perfectly every time.

Unfortunately 2 of 3 thanks are not translucent, and the one that is, is not readily accessible.
 
Unfortunately 2 of 3 thanks are not translucent, and the one that is, is not readily accessible.

Right - that makes sense. Your system looks very nice. I'm still using an old JRV "dummy light" system, but I don't like to rely on it alone.
 
I turn the water off, push down the pedal shine a flashlight in the hole and See Level. 100% accurate. Does not work with fresh or grey tank. I put a See Level system in a bus conversion 20 years ago, the external sensors do work well.
 
I've got the custom Garnet SeeLevel tank level reader installed and working.

I decided to consolidate my microcontrollers onto a 'motherboard' with 12v and 5v rails, so that I don't have individual voltage regulators on each board. The 'motherboard' is powered by a 12V buck-boost power supply set to a constant 12.7V. A 5V buck converter powers the 5V rail from the 12V rail. Each 'daughterboard' has access to regulated 12V and 5V supplies by virtue of the header pins. It's all stuffed into a plastic box with a screw-on lid.

attachment.php


The tank reading microcontroller and digital electronics (high-side MOSFET, NPN transistor and a handful of resistors) fits on a small proto board. It picks up 12V and 5V from the 'motherboard' via the header pins and connects to the sensors via the JST connectors on the left of the board.

attachment.php


So far two of my four microcontrollers are reworked onto the 'motherboard'.

I'm feeding the tank data into Node-Red running on a Cerbo GX, where it's forwarded to my camper monitoring screen and to my cloud dashboard/phone app. Node-Red requests a tank read and updates the displays every 15 minutes. The phone app has buttons that request an immediate tank read for cases where I want real-time tank levels (when filling the tank, for example).

attachment.php


For more accurate readings, each sensor could be calibrated by filling each tank to a known number of gallons and adjusting the % reading. The Garnet control panel does this automatically. I'll do this via fixed offsets in Node-Red - maybe. Even without calibration it's more accurate and reliable than the OEM gauges.

If I bought a new $150k van I would have all this from the factory. That wouldn't be any fun though. :)

More details are here:

https://janke.photography/2024/02/25/the-not-normal-way-to-read-tank-gauges/
 

Attachments

  • PXL_20240225_183139072~2.jpg
    PXL_20240225_183139072~2.jpg
    119.2 KB · Views: 76
  • PXL_20240312_170101702.jpg
    PXL_20240312_170101702.jpg
    218.1 KB · Views: 74
  • Screenshot_20240216-213725 - Copy.png
    Screenshot_20240216-213725 - Copy.png
    61.4 KB · Views: 71
Last edited:
I think I am glad we used the Seelevel display. The good was no wires to run as you can use the original wiring from OEM in tank sensors. 3 tanks, propane, pump, water heater. Probably over 10 years and no issues at all with it.
 
I think I am glad we used the Seelevel display

Yep. That would be the best choice for nearly everyone, and if integration with a Cerbo GX or other monitoring system is desired, the displays with NMEA-2000, RV-C, or Bluetooth would be easier to integrate.
 

Try RV LIFE Pro Free for 7 Days

  • New Ad-Free experience on this RV LIFE Community.
  • Plan the best RV Safe travel with RV LIFE Trip Wizard.
  • Navigate with our RV Safe GPS mobile app.
  • and much more...
Try RV LIFE Pro Today
Back
Top