Tank monitoring with Victron GX Tank 140, accuracy matters

My GX 140 installed in the bay that holds the electrical equipment and my Raspberry Pi running Venus OS.

Harvey, as I (mostly) affectionately call my RV, like all other RVs, contains waste and gray water. If you’re a boater in the U.S., gray water containment is a largely foreign concept. Let me tell you, it’s also kind of a pain. On Harvey, until now, it’s been a pain. But, it turns out that’s because we were only using a small percentage of the advertised capacity of the gray water tank. Victron’s Venus OS, GX Tank 140, and an inexpensive tank transducer tell the real story of our tank usage.

Most U.S.-based boats contain only their black water. Black water is the water coming from the onboard toilets. All gray water from the boat (sinks, showers, etc) goes directly overboard. Other parts of the world, and a few inland, fresh-water lakes in the U.S., also require gray water containment for later pump-out.

The current setup

Harvey was originally equipped with field-effect sensors stuck to the outside of the fresh, gray, and black water tanks. The gray tank fills confoundingly quickly, at least according to the gauge. In fact, I noticed that the 60 gallon gray tank (according to the spec-sheet) would be full before the 77 gallon water tank was even down one-third of a tank. I’ve long suspected the gauges were wildly innaccurate.

The sensors are applied approximately one-third, two-thirds, and all the way up the tank. When the water reaches each of these heights, the corresponding light illuminates on the panel. This is a pretty approximate way to measure a tank. The sensors provide no indication if the water is just above a sensor or nearly to the next sensor. Plus, the accuracy of the system is dependent on the placement of the sensors. As you will read, it appears Holiday Rambler, the maker of my RV, wasn’t very careful when they placed my sensors.

The new setup

I’ve previously sung the praises of submersible pressure transducers as tank level gauges. So, especially in a gray or black water tank, a submersible transducer was my first thought. Fortunately, I can access the top of the tanks by removing a couple of drawers. Although I can see the top of the tanks, the rest of the tanks are a little difficult to see, so I’m not certain of their total height, but I estimated it’s between 1 and 2 meters. I ordered two 0-2 meter 4-20 milliamp transducers from Amazon for about $40. Lastly, I knew I wanted the ability to remove the sensors if needed. So, rather than drill the smallest possible hole in the tank, I installed a 4-inch, waterproof Beckson deck plate.

The setup ready to be installed

I then drilled a hole in the deck plate for a water-tight cable grommet and ran the transducer’s wire through the grommet. To remove the sensor, all I have to do is unscrew the deck plate. I debated using a pry-out deck plate so I didn’t have to twist the wire as I removed the sensor, but felt the screw-in might be form a better seal.

The sensor installed in the gray water tank

The hardest part of the entire install was cutting the hole in the top of the tank. Between limited access and a limited toolset — we’re on the road travelling without my normal complement of tools — it was tough to get tools in and cut a neat hole. With the hole cut, I lined the flange of the mounting ring with butyl tape and screwed it in place. Fortunately, running wires on the RV is pretty easy. The frame rails under the house provide good protection and routing for wiring.

Connecting to Venus OS

Tank senders use one of three ways to indicate the level of a tank: resistance, voltage, or current. In each case there’s a range of values the sender will send, these values proportionally indicate the reading of the sensor. Pressure based transducers use current to indicate their readings. Victron Cerbo GXs include four inputs for resistive tank senders. But, I’m using current based senders, not resistive, and I’m not using a Cerbo. I’m using a Raspberry Pi running Victron’s Venus OS. Fortunately, Victron offers the roughly $100 GX Tank 140 which supports up to four current or voltage based tank senders.

The transducer I’m using sends 4 milliamps of current if the tank is empty and 20 milliamps of current if the sensor is reading its maximum depth. For this transducer maximum depth is 2 meters. But, my tank isn’t 2 meters deep. After drilling into I determined it’s a little under 1 meter deep. That means my transducer will never send 20 ma since the liquid height will never reach 2 meters.

Once the tank is connected to the GX Tank 140 and it is connected to the Venus OS device, via USB, the tank needs to be setup. For this installation I’ve decided to only worry about my gray water tank so I’ve disabled the other three tank channels on the GX 140.


First steps in setting up a tank include selecting the fluid type, tank capacity, and values when full and empty. To determine the full value I had to fill the tank to its capacity. When I cut the hole in the tank, I noticed that the tank gets dramatically wider at the top, so I knew the capacity readings would be non-linear.

Careful filling of the gray water tank reveals it only holds 50 gallons

The spec sheet for Harvey shows a gray water capacity of 60 gallons. During the course of my calibrations I had to fill the tank to full multiple times. Each time I did this, the tank proved to be entirely full at 50 gallons. So, right off the bat, I learned the tank holds 83-percent of its claimed capacity.

My scrawl as I determined the actual capacity of the tank and the calibration points needed to accurately reflect tank level

As I mentioned, when I cut into the tank, I noticed that the bottom three quarters of the tank was significantly smaller than the top of the tank. That non-linear shape means that the liquid level will shoot up quickly until it reaches the wide portion of the tank. As a result, I needed to do a calibrated fill of the tank. I did this by pouring in water, one gallon at a time, and noting how full the tank read. For example, with 10 gallons of water in the tank, the sensor was reading the tank as 33% full.

Another interesting thing I learned from this excericse is the extent to which the existing 1/3, 2/3, full tank gauge is innacurate. With 14 gallons of water — or 23 percent of the rated and 28 percent of the actual capacity of the tank — the factory equipped gauge read two thirds full. With 23 gallons of water in the tank, which equates to 38 percent of rated and 46 percent of actual capcity, the stock gauge showed the tank as full. This explains a lot about why we felt gray containment is such a pain. We thought we had 60 gallons of capacity, but the gauge was showing full at 23.

Armed with my scrawling calibration notes, I was able to put in a number of points inform Venus OS of the shape of the tank. You can enter up to 10 calibration point pairs. The pairs consist of the sensor’s reading and the actual level of fill of the tank at that point. Because my tank is smaller at the bottom and larger at the top the level read by the sensor increases rapidly towards the bottom and then slows precipitously as the tank gets fuller. For example, between 10 and 20 percent actual fill, the sensor reads an increase of 27 percent. Between 70 and 80 percent, the sensor reads an increase of 6 percent.

Using the system

VRM widgets displaying current tank information and historic tank levels

With everything installed and calibrated, I can enjoy the fruit of my (okay mostly Victron’s) labors. Victron’s remote management portal (VRM) allows easy review of both current and historic tank levels. As I experienced with the same transducer technology with Maretron’s TLM-100, the precision of these sensors is quite impressive. After completing calibration, I filled the tank with 10 gallons of water. I added one gallon at a time and found the sensor was reporting within 0.05 gallons of what I’d added.

The chart above shows the results of a shower, load of laundry, some dishes, and hand-washing. There’s currently about 17 gallons of water onboard. The chart above shows 9 gallons of water used to do a load of laundry. The specs for the Splendide washer and dryver combo show 9-16 gallons for a load. Knowing that gives confidence in continuing to use the RV and fill the tank. In contrast, the stock monitor currently shows the tank is 2/3 full.

If you use the GX console, whether via a display built into a Color Control GX, a GX Touch 50 or 70 attached to a Cerbo GX, or a remote console via VRM, you can enable a tank level page that will display the level of any connected tanks. As you attach more tanks, the interface allows displaying all tanks or filtering by type. It’s a nice, at a glance view of the status of your tanks.

Building a GX system

I haven’t concentrated on the rest of the GX system necessary to use the GX Tank 140, but you will need a device running Venus OS to get all this goodness. On Harvey, Venus OS runs on a Raspberry Pi. The total cost of that system is about $190. At first, I thought that if I had installed a $300 Cerbo GX, I wouldn’t need a GX Tank 140 because the Cerbo has tank channels built-in. It turns out that’s not right. The Cerbo tank channels only support ressistance senders so you would need the GX 140 with either option. To add tank monitoring you will need the $100 GX Tank 140 and at least one $40 tank transducer.

I haven’t yet, but plan to add the VE.CAN to NMEA 2000 adapter. That will make tank, and lots of other, data available on the NMEA 2000 network.

Final thoughts

In my opinion, the GX Tank 140 and a pressure transducer represent a great bargain. Being able to get the accuracy they deliver for under $150 is pretty impressive. If I were less obsessive about accurate information, I probably could have lived with the inaccurate gauge and just told myself it was wrong. But, even when I tried that, after a few days of staring at thtat red light, I felt like I needed to empty the tank. Victron’s GX/Venus ecosystem continues to impress with access to detailed information and tremendous value.

Ben Stein

Ben Stein

Publisher of Panbo.com, passionate marine electronics enthusiast, 100-ton USCG master.

3 Responses

  1. Ben Ellison Ben Ellison says:

    My boat already has (Wema) resistive tank senders and last winter I wired them to the Victron Cerbo with mainly good results. Setting up the tanks and custom calibrating them (if necessary) look very similar to your Venus screens. You can also custom name tanks — so there’s no confusion about Port and Starboard fuel tanks on Gizmo — and all four of my tanks show up properly on NMEA 2000 displays.

    Overall, I think that this bonus Cerbo feature is as configurable as the CZone module I used with the same senders almost 10 years ago, except that no PC or gateway is needed. https://panbo.com/bep-czone-signal-interface-a-nmea-2000-winner/

    But note the qualified “mainly good results.” Last week I put 50 gallons of diesel into the nearly empty 140 gallon starboard tank and Cerbo deemed it 66% full! I’m guessing that this is a sender problem, as the port fuel and water tank levels have made sense so far (and sometimes the black water tank too, especially if Gizmo slams hard enough on someone’s wake).

    At any rate, while it’s neat that Victron is even putting the tank levels on my sharable VRM site — https://vrm.victronenergy.com/installation/105905/share/ea38a0bd — at least two are quite inaccurate, though not their fault. So I’m back to sticking tanks and maybe custom calibration.

  2. Anonymous says:

    my boat has ultrasonic transducers on fuel tanks (2), and water tank, that read 0-5V ,
    (likewise the cerbo doesnt support voltage sensors,) hence fitted a tank 140,
    in parallel with the BEP display – very happy with tank 140 capabilities to extend the cerbo inputs.
    now planning a submersible pressure transducer for black tank.. on the fourth input.

    ..i recall i had some nmea2000 confusion … watch out for the N2K instances produced by cerbo , i recall they are counter intuitive to the tank140 input numbering

  3. Butch Davi says:

    Very interesting, Ben.

    When we were RVing we mostly stayed in campgrounds with full hookups or at least water and sewer hookups. We simply left the gray water drain open until our last night on the site, when we closed the valve. This was to allow a few gallons of gray water to accumulate for the following day. Just before leaving we opened the black water tank and drained the sewage. When the black water had fully drained we closed the valve and opened the gray water tank drain valve to allow the gray water to rinse the drain valves and sewer hook up. Many (most) RVs were equipped with a black tank water hose attachment which was used to rinse the black water before closing the valve and opening the gray water valve.

    Some RVers made the mistake of leaving the black water drain open full time whenever they had sewer hookups. That very serious mistake often led to the dreaded brown mountain in the tank. Although we never had the problem we were paranoid and poured a bag of ice through the commode immediately before driving off to provide some scrubbing action if the black tank bottom.

Join the conversation

Your email address will not be published. Required fields are marked *