Since the 4010DUO is not really “eye-candy” I wanted it to hidden. That raised a question how to control it and the only good practical solution was to use computer software. I quickly found out there was none. So that needed to be done.
Jun-Si chose to use modbus as the controlling protocol in the DUO-series, only Jun-Si knows why. Their documentation of the protocol is pretty “coder-oriented” so biggest challenge was to decode that. I got excellent help from a friend and we had the protocol opened in about a months or so. Also have to say that Jun-Si was helpful with some emails sent back and forth. After that it was pretty straight forward, basically get data from charger, do something with it and so on. Same way on the usage, take data, write it to charger and command it to do some operations.
The software-part is a controlled chaos with binary to take care of modbus via USB-HID, python, php, bash and so on. It’s also constantly evolving with functions added and tested so it may never be finished. You know how it is… Future plan is to make everything done in binary partly for easier export and also for better performance. Refresh-rate of screen is great as it is but under the hood it’s pretty hard for the small quad-core computer.
Interface in detail
Goal with main screen is easy readability and fast, simple access to all functions.
Main screen has options to open different information-screens. Also I have done some function-indication when different information is available or disabled. For example when doing a charge the GO-button is disabled, user have to press stop first.
Since we have very few fields with electricity here in Finland practically all of us have an generator to charge on the field. That is surely one thing I always forget to refuel before it shuts down. So. Something had to be done for that issue.
After some studying what could be done I ordered a fuel-sensor, some arduino-stuff and now I have an generator with WiFi.
Idea is pretty simple, since the F330 fuel sensor was ordered as 0-5V model arduino mini reads the value and outputs it as serial data to HLK RM04 serial-to-wifi card. Wifi card is connected to the wireless network TheSalkku3.0 already has. After that the software reads the value and makes a real-time gauge in to bottom of the interface:
Since the generator is not running all the time I wanted it to be seen that it is offline so I made the fuel-pump picture gray when generator is offline.
Now I just need an audio to shout “Fuel up you moron!” when fuel-level drops too low :)
Selecting what to do is so simple it can be. Select the desired function and current, press start. Couldn’t be more simple. During last season on the field I never had any usage to functions apart what’s shown here. Except one, the “Get IR”-function which is unfortunately not available through modbus. Verified this with Jun-Si. Too bad, I use it from time to time.
Electrical data and status is also available. I also use the channels temperature-sensor slots to measure incoming and outgoing air temperature on the case. The 4010 internal temperature is also monitored. I’m thinking of doing some kind of temperature alert, maybe added with sound-alert.
Operation status-screen’s have adaptive titles, showing what the operation is (here “charging”), what the cell-count is (here “6S”) and status (here “charging”). Graphic-screens are automatically updated in about 1 second intervals so they are basically real-time. They are available during operation and after operation before pressing stop.
First one is showing cell voltages and charge current.
Second graphic screen shows cells voltages difference, this is a balancing monitoring. Great to see if a cell is behaving poorly and how they are balancing.
Third graphic-screen is total voltage of battery and transferred capacity. There’s sometimes some oddities how old, poor batteries are receiving their capacity, this is a great tool for revealing those issues.
Since laziness is mother of all good inventions I made a mobile interface so I can sit in my field-chair and monitor what’s happening while sipping some coffee. All I need a someone to plug in the batteries…
Theme is the same as on the case’s touchscreen, since space is limited there’s only one channel visible at the time. Operations are pretty much the same:
Since mobile is quite handy to use with drop-down list’s (the case’s touchscreen is not) I re-did the operation starting to a bit better:
Can’t be more simple than this. Selecting what to do and with how much current is really easy and swift:
And the current selection:
And just like the case itself, environmental status-screen is available on mobile also.
The graphic screens are made in two sizes during runtime, one for the main display and one for the mobile-interface.
The screens are the same as on main display, example screenshot from iphone 6:
Videos of operation
New feature for 2015-season is the starting of operation and selecting current, this is re-done from bottom to up:
Some older videos:
Hardware-part is explained here.
- iCharger 4010Duo (stock, no modifications)
- 4 pcs DELL 700418 700W server-PSU in series, Output 48VDC total power 2,8 kW.
- Input voltage 230VAC, current when using 4010 on full power 11A.
- Computer for interface is Odroid XU + 10,1″ Lilliput touchscreen 1920×1020, running on linux
- Touchscreen is able to tilt up for safe and fast access to charger if need to
- Delay-circuit for computer, when disconnecting mains for case 2S backup-battery gives power to computer for 30 seconds allowing the forced shutdown of computer to be controlled. The backup battery is charged when connected to mains automatically (Intelligent charger). Delay circuit designed by another friend.
- Voice message from built-in speaker when charging is complete.
- Dimensions 40 x 40 x 60 cm
- Weight 28,3 kg
- Total cost “Please don’t ask”
Thanks for help goes especially to snr but also to HeikkiT and Xen. Thanks also for the “so called support” goes to #kopterit.net @IRCnet ;)
2 thoughts on “iCharger Touch – software”
Comments are closed.