Revel Monitor Project - VanNerd
The 2021 Winnebago Revel comes with a new Lithium Ion battery pack and Xantrex related charging hardware. There seems to be some warts in the design that cause issues. Most of them relate to temperature and charging - Li battery chemistry is sensitive to charging at low temps so Winnebago attempted to protect against this. As has been discovered by the user community, the fact that Revel alternator is INTERNALLY controlled forces the system to jump through hoops to not damage the batteries. Basically it narrows the acceptable window for charging. An alternate method of EXTERNAL control can be implemented to correct this, but Winnebago chose not to go this way (more $$).
Here was my summary of the temperature issue :
So in effect the batteries won’t charge from the alternator until the thermo switch sees 50F and since it’s attached to the metal structure of the van, it’s challenged to reach this temp on cold days.
There are other potential failure modes related to the ACR:
An additional point of confusion relates to the way the battery reports how charged it is. It's not a Winnebago or Xantrex issue really, it's about the way the state of charge is calculated. The built in battery management system watches charge going in and out and keeps track. Unfortunately it's not a terrible accurate way of doing things and you need to reset the counter by fully charging the battery. This can only be accomplished (in the Revel) with plugging in to shore power and letting it charge until the batteries won't take any more current. Neither the secondary alternator nor the solar panels can get you to 100%. So many folks think they have a full charge, but you don't because of SOC drift.
All this got me to wonder what's REALLY going on. I realized that since the BMS in the batteries have a Bluetooth LE server, I could write a little Arduino program to get at it. Well as long as you're collecting data from the house batteries, why not also get the chassis battery? And since this whole thing seems to be temperature related, why not capture a few temps?
So in the end I ended up with a little system that I've named "VanNerd" that consists of:
In order to capture and store the data, I implemented a Google Firebase backend, so the Arduino will take readings every 5 mins, then upload to Google every hour or so. You might ask, "Upload to Google, How?" Well I took two approaches - WiFI in the van and WiFi at my house. (I have the van hotspot set up, so when you're driving the Arduino could connect.) Basically the Arduino tries to connect with one, then the other. If both fail, it just tries in another hour. In the interim, it stores the data on a SD card.
Of course you can't stop here - in order to SEE the data you need a way to get it out of Firebase, so I had to write a little iPhone app to visualize the data. I had always wanted to try to write an app, so I learned enough about Flutter to do so.
Here's the prototype. At this point, all 5 temp sensors where mounted on the breadboard and I hadn't hooked up the chassis battery. I taped it down in the galley so I could drive around with it running.
The following are some pictures from the install. I've used the DS18B20 in other projects and really like it's digital and you can string a bunch of them together to quickly build a network. I found a version of them in a waterproof construction - which looked perfect.
1. Water Pump - I just zip tied it to the top. I thought about placing it on the tank output - which is close.
2. Macerator - Again I just zip tied it to the top fitting
3. Fridge - After extracting the fridge - I found there was a plastic cover over a hole used to run the refrigeration and power. I just force the sensor through and managed to tuck it behind the plastic cover on the inside. You can't really see it.
4. Outside - I just placed the sensor in the gap between the galley and sliding door. It's probably not the best placement, but it's protected and I can move it pretty easily if it turns out it's a bad idea.
5. Inside - originally I was going to mount one somewhere - but realized I could just solder it onto my pcb directly. Again - I may need to move this if it turns out the temp is too influenced by the Arduino.
I used an Arduino Nano 33 IoT as it can do Bluetooth LE and WiFi (although not at the same time). It took a long while to get this to talk to the batteries reliably. I found a cool eInk display at Adafruit that also incorporated an SD card. I was hoping to make this fairly low power.
I got my pcbs manufactured by OSHPark. I've used them before and it's works great. They will take native EagleCAD files so you don't have to mess with gerbers. For 3 boards it was about $30 and took around 2.5 weeks. I only found 2 layout errors on the finished boards - which were recoverable.
I realized the OnePlace already had connections to the house and chassis battery. I wanted to power the project from the house batteries, but wanted to monitor the chassis battery. So I fashioned an adapter pigtail to tap into these. It's a standard Molex 8 position connector.
One design idea I incorporated was to only sample the chassis battery for a few milliseconds so that I wouldn't inadvertently drain it by leaving it hooked up to the voltage divider (always a small amount of drain). The project being hooked to the house batteries is supplied by a huge battery and it's recharged via solar - so shouldn't be a problem.
Since there was an SD card, I set up a small preferences file so I can change a few parameters by changing the file - things like upload frequency, sample frequency, WiFi password, etc.
I used Google's Firebase backend for 4 main reasons.
At the moment, with 5 minute samples being uploaded every hour is running me about $1.25/day. I might be able to lower that as I'm not exactly sure which piece of the backend incurs the most costs.
Here's the final product. eInk screen, Arduino on the pcb. It's just double stick taped up above the one place. Right now there is no user interface - just a screen. There's no way to get at realtime info - it's delayed by the upload period - currently one hour.
Here's some of my first data with the van sitting in my driveway. Nothing is going on, but the fridge is turned to 4. (Yes it's hot outside -Northern California). You can see that the fridge is pulling a couple of amps very periodically. When the sun comes up around 7:30, you can see the outside temp increases and the solar panels start charging. They peak at 4 amps. Looks like around 11am the batteries get full. Also the reefer swings between 30 to 40 or so. It was empty, so I imagine this would be stable with a bunch of cold food in it.
I have some future Ideas, but right now I just want to see what I get out of it.
2/24/2023 01:10:57 pm
This is a great project.
2/24/2023 01:52:54 pm
It wasn’t too hard, although my code sucks, I need to rewrite it. I don’t really know much about Bluetooth inner workings. I basically got several of the BLE sniffer apps and started looking at what is available. The Lithionics batteries broadcast every second, so not too complex. I think the lithionics web site had a few breadcrumbs.
Leave a Reply.