Today my touch screen from 4D system arrived, finally. This was the second attempt via Australia Post. The order was placed over 3 weeks ago and they claimed to have it sent by express the next day. After 2 weeks I complained and they sent it again, by Express post. Neither the first, nor the second shipment was scanned by Australia Post and no tracking event was available. Today the second express satchel arrived after 5 days, Metro to Metro service, how pathetic.

I programmed it quickly with a test program to see if it works and discovered a problem. Every 2-03 minutes it reboots, goes black and initialises again. I guess I have not much luck with some of my purchased electronic components. The basic stuff like the Arduinos and the shields are working as required, but everything else turn out to be a challenge or an annoyance. We will see how this can be solved. It might be just a power problem via USB but I tried different cables and also a local power source. Anyway, I will see what 4D has to say about that tomorrow.

The picture shows the display with the program running, showing 4 gauges with cell voltage from 2.6 to 3.9 x 10. Their design software does not handle float values for labels, another shortcoming. I have to write my own widget in 4GL to do that as it looks but for now I settled for labels as integers  and just used the value multiplied with 10.

I have an on off button and two reset buttons when the BMS has switched off the load or the charge or both. It will display if the load is drawing current and will also show charge as well as cell balancing, when one or more of the cells run out of sync above a certain threshold.

Now I have to figure out how to connect the Arduino via serial interface and access the software components in the display processor to show cell voltages and use the button events as well as the led lights as status signal. This is something I will do tonight.

If this works well and is easy enough I will put a few more of these displays at a few places in the van with local info and switching capabilities, but first I have to figure out how to load different display pages and how to switch between them.

Part 2:

After some reading I figured out how to create more than one page for the display and switch between the pages. Now I can do the monitor page and a settings page and possibly a log page, and anything else which might come to mind down the track.

I also have figured out how to connect to the Arduino and will now adapt the BMS program to read and write to the touch screen rather than the 2 line segment display.

The image below shows an additional button at the lower center of the screen which is used to call the “Set” page.


bms_screen_page2Above image shows the second page of the screen which is used to set the BMS parameters using a software keypad. After a while running the display stops initialising, but it takes a while. After reprogramming it, the same problem started again and it goes black every 2-3 minutes and starts up with page 1 again. Pretty annoying.