[DRIVING] Citroen Saxo Electrique

Tell us about the project you do with the open inverter
User avatar
manny
Posts: 114
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 27 times
Been thanked: 81 times

Re: [FIRST DRIVE] Citroen Saxo Electrique

Post by manny »

After fixing the problem with my inverter tripping viewtopic.php?t=6234

I have been chipping away at the endless list of little things.

Zombie is running the speedometer, but the cluster also has a Energiemeter (SOC) and a Econometer(power).

The board that I made to be the BMS controller. That whas back in october 2023 :o
It has 3 outputs for contractors that I am not using. So I will use them to control the cluster.

the Econo meter is simply a PWM signal @122hz this matches well with the arduino. (16Mhz / 256 div / 256 pwm bits = 244 hz)
244 is double the frequency, When using centeralinged PWM the frequency halves.
Econo.png
During the testing and calibrating of the gauge it stopped working completely. Checked the BMS PCB, checked the wiring all seems fine.
As a last option took the dashboard appard to get the cluster out. And disassemble it to get the PCB out that controls the Econometer.
20250503_210946.jpg
The reverse polarity diode dropped 12V instead of 0,6V. So replaced it, put the hole lot back together it worked again. This stupid diode caused at least 4 hour of troubleshooting. You just assume that it is the stuff you are adding that is broken somehow.

The Energie meter is a bit more annoying. Because it is a rev counter in disguise that why it needs a variable frequency signal. Using the 16bit timer on the Arduino this is not that bad. Using the CTC mode (Clear Timer on Compare Match) and the pin to toggle on compare match. it's easy to generate the necessary frequencies.
Energie.png
There was a little bug in the code that caused the meter to fall and then jump back to the right value. Reading through the datasheet I found the problem.
timer1.PNG
changing the TOP to a value close to BOTTOM when the counter is running with none
or a low prescaler value must be done with care since the CTC mode does not have the double buffering feature. If the new
value written to OCR1A or ICR1 is lower than the current value of TCNT1, the counter will miss the compare match. The
counter will then have to count to its maximum value (0xFFFF) and wrap around starting at 0x0000 before the compare
match can occur
Added a if to check if the TCNT1 is greater than OCR1A, and if so set TCNT1 to 0x0000. This fixed the problem.
Citroen Saxo electrique [first drive]
  • Volvo ERAD motor, XC90 inverter/DCDC (custom OI board)
  • PSA battery (50kWh)
  • Foccci and MG ZS charger 6.6kW
  • Zombie VCU
User avatar
manny
Posts: 114
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 27 times
Been thanked: 81 times

Re: [DRIVING] Citroen Saxo Electrique

Post by manny »

After getting through the safety inspection. With one advisory, one of the rear wheels is almost at the minimum tread depth.

A have already driven 200 km. I love that my lite electric car is back on the road. I really missed it.

Had some issues with the code that I modified on the BMS.
The SOC meter was stuck at 41%.
I forgot to apply a scale factor to convert the 0 - 100% to the 5 - 270Hz.
after fixing tis the meter whas stuck at 100% better but not great.
made a mistake with the code that resets the SOC to 100% this was triggered constantly.

Enabled the regen braking by changing the code on Zombie.

Code: Select all

   uint32_t data[2];
   uint32_t pot = Param::GetInt(Param::pot) & 0xFFF;
   uint32_t pot2 = Param::GetInt(Param::pot2) & 0xFFF;
   uint32_t canio = tempIO & 0x3F;
   uint32_t ctr = Param::GetInt(Param::canctr) & 0x3;
   uint32_t cruise = Param::GetInt(Param::cruisespeed) & 0x3FFF;
   uint32_t regen = 0x00;//Param::GetInt(Param::potbrake) & 0x7F;
Changed regen to 100% (0x64) so I can set the regen settings in the IO board. I like the almost one pedal driving a lot

Have some things to fix and figure out:
  • the steering arm is hitting the mount for the ibooster
  • foccci does not go to sleep after a charge
  • there is clunking noise coming from the clutch in the motor
Also charged the battery up fully(full is 4.1V per cell for me) that is +/- 440V total. All components are rated for more. The VW heater is rated for 450V and the MG charger if rated for 480V, but the inverter max voltage is unknown. The capacitor in the inverter is rated for 600V and the IGBT are probably 650V.

But after fully charging the inverter worked fine 8-)
Citroen Saxo electrique [first drive]
  • Volvo ERAD motor, XC90 inverter/DCDC (custom OI board)
  • PSA battery (50kWh)
  • Foccci and MG ZS charger 6.6kW
  • Zombie VCU
Post Reply