Here's something to get you started with a charger controller:
BOMArduino MKR WiFi 1010 SKU: 7630049200258
https://store-usa.arduino.cc/products/arduino-mkr-wifi-1010Arduino MKR Can Shield SKU: 7630049200302
https://store-usa.arduino.cc/products/arduino-mkr-can-shield?selectedStore=usConnectors
https://www.amazon.com/MCIGICM-Waterproof-Electrical-Automotive-Connectors/dp/B0829Y7TGSArduino IDE
https://www.arduino.cc/en/softwareCANbus library
https://github.com/coryjfowler/MCP_CAN_libOne or more chargers. I've never bought these as I bought a used Diginow kit. Can anyone add to this thread how to option out one of these?
Elcon TC HK-J 3300W Charger
https://www.evcomponents.com/elcon-tc-hk-j-3300w-charger.htmlThe connector wires connect to the CANbus shield as follows:
----------------
| CAN Shield |
| |
| |
| |
| |
| |
| |
| |
| |
| 1 2 3 4 |
----------------
1 Red
2 Blue
3 Brown
4 Black
The Arduino code:
// This does the bare minimum to turn on Diginow chargers. Voltage and current are set in the program below.
// Requires the mcp_can library, from here:
https://github.com/coryjfowler/MCP_CAN_lib#include <mcp_can.h>
#include <SPI.h>
// User adjustments here
word outputvoltage = 1126; //Set starting output voltage *10. For example, 1120 = 112.0v. 112.6 = 90% charge. **Do not set more than 1164!!**
word outputcurrent = 60; //Set starting output amps *10. 320 = 32A. Here, 60 means 6 amps DC output.
unsigned long int sendId = 0x1806E5F4; //CAN Id of Charge controllers - Works on Diginow chargers.
// Nothing to adjust below here
unsigned char voltamp[8] = {highByte(outputvoltage), lowByte(outputvoltage), highByte(outputcurrent), lowByte(outputcurrent),0x00,0x00,0x00,0x00}; //5th byte is charge enable. 0x01 puts it in standby.
MCP_CAN CAN(3); //CS pin for CAN Controller.
void setup() {
Serial.begin(9600);
while(CAN_OK != CAN.begin(MCP_ANY, CAN_250KBPS, MCP_16MHZ)){ //initialize canbus.
delay(200);}
CAN.setMode(MCP_NORMAL); //Change to normal mode to allow messages to be transmitted.
}
void loop() {
CAN.sendMsgBuf(sendId, 1, 8, voltamp); //Turn on the chargers and set volts and amps, once per second.
delay(1000);
}
Use at your own risk, of course. Hope this helps.