Solar Controller External LCD w/logger

UPDATE: 7/25/23 – I’m retiring the Renogy Solar Controller since it was finicky and didn’t properly read battery voltage resulting in not charging the batteries correctly. I’m replacing it with a Victron Energy SmartSolar MPPT 100V 30 amp 12/24-Volt Solar Charge Controller (Bluetooth) https://www.amazon.com/dp/B073ZJ3L13

I wanted a simple external display/screen for my Renogy Rover 30A MPPT Solar controller. The controller itself has a built in LCD but its under my bench and plus its an old school character LCD type (tough to see with no backlight). So I thought I’d conjure up something with some spare parts I had laying around. Now the controller has a communication port that allows for serial connection or usage of one of their bluetooth dongle/devices to wirelessly connect to the controller. I am using their BT-1 bluetooth unit as pictured below:

For the brains of the project, I decided I wanted something lightweight but not as dumbed down as an arduino since I wanted to log data into a database and server a simple webpage for charting the solar data as well. I went with a C.H.I.P. computer from the now defunct Next Thing Co.. It was dubbed as the “$9″ computer and its pretty much worth that!  Runs Debian…just barely with 512mb ram but has a bunch of GPIOs, Wifi, bluetooth and other features. Its on par with a Pi Zero W. Again I chose this just because it was literally collecting dust on my shelf. For the screen I’m using a SPI-based IL9341 2.4” display…nothing special. I’m using the 12v “load” output of the controller to a 12v-5v step-down converter to power the C.H.I.P. and LCD. Here’s some info on these components:
Next Thing Co Documentation (jfpossibilities.com)

Some smart people have reverse-engineered the bluetooth protocol for the BT-1 and have offered it on Github. GitHub – snichol67/solar-bt-monitor I used this as a basis for this project but heavily modified to fit my needs. Using Python and linux bash scripts I was able to make it work.

Yeah so as you can see its still in testing/alpha stage but it is working. It works by connecting to the BT-1 bluetooth module every 5 minutes, reads data, logs it into an SQLITE database while serving up a webpage to view the data as well. I’m refining the 3D printed panel/mount/shroud as well to fit but I’m happy with how it looks. Obviously, it has to be finished post-printing (sanding, bondo, paint, etc).