I'm actually riding my FXS daily, but right now there's no time for further testing of my supercharger :-)
Wijnand I can offer you my very simplified code for testing just to make sure its not the code. I started charging at 45% SOC during my last and only test, and if remember correctly everything worked fine. I was connected to the Leonardo board with my laptop and uploaded the updated code to it when I wanted to change the current. Just changed variable names.
#include <mcp_can.h>
#include <mcp_can_dfs.h>
#include <SPI.h>
const int SPI_CS_PIN = 17;//Set CS pin to pin 17 (Leonardo)
MCP_CAN CAN(SPI_CS_PIN);// Set CS pin for CANBUS shield
void setup()
{
pinMode(23, OUTPUT);
START_INIT:
if(CAN_OK == CAN.begin(CAN_125KBPS))
{
}
else
{
goto START_INIT;
}
}
void loop()
{
digitalWrite(23, HIGH); //trigger LED to be able to see if CAN-board is active
delay(1000);
digitalWrite(23, LOW);
unsigned char loginRect1[8] = {0x12, 0x35, 0x71, 0x10, 0x05, 0x08, 0x00, 0x00}; //SerialNr. of rectifier 1
unsigned char loginRect2[8] = {0x12, 0x35, 0x71, 0x10, 0x16, 0x79, 0x00, 0x00}; //SerialNr. of rectifier 2
unsigned char loginRect3[8] = {0x14, 0x03, 0x72, 0x10, 0x98, 0x88, 0x00, 0x00}; //SerialNr. of rectifier 3
CAN.sendMsgBuf(0x05004805, 1, 8, loginRect2); //send message to rectifierX
unsigned char setV10i[8] = {0x64, 0x00, 0x44, 0x16, 0x44, 0x16, 0x3E, 0x17}; //10A charge current, 57V voltage
unsigned char setV20i[8] = {0xC8, 0x00, 0x44, 0x16, 0x44, 0x16, 0x3E, 0x17}; //20A charge current, 57V voltage
unsigned char setV30i[8] = {0x2C, 0x01, 0x44, 0x16, 0x44, 0x16, 0x3E, 0x17}; //30A charge current, 57V voltage
unsigned char setV40i[8] = {0xF4, 0x01, 0x44, 0x16, 0x44, 0x16, 0x3E, 0x17}; //40A charge current, 57V voltage
unsigned char setVpermanent[5] = {0x29, 0x15, 0x00, 0x44, 0x16}; //command for permanent voltage reprogramming
CAN.sendMsgBuf(0x05FF4005, 1, 8, setV40i); //set current, voltage, voltage protection and walk in period
//CAN.sendMsgBuf(0x05019C00, 1, 5, setVpermanent); //set permanent voltage
delay(2000);
}