[DRIVING] Citroen Saxo Electrique

Tell us about the project you do with the open inverter
User avatar
manny
Posts: 164
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 38 times
Been thanked: 125 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.
[DRIVING] Citroen Saxo electrique
  • 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: 164
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 38 times
Been thanked: 125 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-)
[DRIVING] Citroen Saxo electrique
  • 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: 164
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 38 times
Been thanked: 125 times

Re: [DRIVING] Citroen Saxo Electrique

Post by manny »

Fixed the steering arm hitting the mount for the ibooster. Made a bushing on the lathe with the taper on the inside for the tie rod and a flange on the outside. Drilled out the steering arm on the strut and pressed in the bushing to mount the tie rod end upside down.
20250615_212743.jpg
20250615_220909.jpg
Took the motor apart to find the clonking sound. First looked at the clutch side. Had a hard time taken it apart, because I looked with my eyes closed 8-) You can just rotate it with the control screw to the end and take it out.
20250614_150952.jpg
here are the parts in the clutch.
20250616_211916.jpg
Because I destroyed the clutch mechanism when taken is apart wrong. I welded the clutch to eliminate the clutch system.
20250614_220547.jpg
This did not fix the sound. Maybe there is a problem with the differential because is whas locked when I got the motor, because the driveshaft was pushed in to the motor and this pushed the bearing in to the differential locking it up.

Found that the DCDC converter did not work when charging. First Zombie did not enable the DCDC because it is sharing 12V with the inverter. After changing that, it still did not work without the key on. After digging through the wiring diagram I found that the relay switches a permanent 12V. But the control side of the relay is powered by a switched 12V. The relay box was easy to modify after firing out how it works
20250622_153946.jpg
[DRIVING] Citroen Saxo electrique
  • 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: 164
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 38 times
Been thanked: 125 times

Re: [DRIVING] Citroen Saxo Electrique

Post by manny »

In total the saxo has done 1700km since the conversion. Have had some trouble with some parts.

Found that the 12V battery whas flat sometimes. This turned out to be the dcdc converter not working above 420V. Since the battery in the saxo is 108S @ 4,1V per cell the max voltage is 442.8V the converter was not happy. By lying to the converter it is working fine. viewtopic.php?p=84541#p84541

There whas a noise when changing from drive to regen or reverse. After checking the motor mounts and suspension multiple times if found the real problem the ring gear in the reduction box is loose.viewtopic.php?p=83975#p83975
Have not yet attempted to fix the motor.

I use the tacho out from the Zombie to run the speedometer withs works fine, But occasionally it drops and the comes right back up. Having had this same problem with the control of the soc meter I know what to look for. So I added the same fix to the Zombie code

Code: Select all

timer_set_period(TIM1, timerPeriod);
timer_set_oc_value(TIM1, TIM_OC1, timerPeriod / 2); //always stay at 50% duty cycle
if(timer_get_counter(TIM1) > timerPeriod){ // check if counter is past the period point
      timer_set_counter(TIM1, 0);
}
Worked like a charm. Nice and stable speedometer.

The top speed of the saxo is about 100 km/h at the moment. With field weakening disabled. I am hesitant to enable it.
So I did a lot of testing and tuning the controller. Also got the Pete9008's IPMmotorcalc software up and running to check the motor params.
motor_params.PNG
motor_params.PNG (4.28 KiB) Viewed 1262 times
Not the same but close enough.

After reading through the "IPM Motor Simulation and FOC Software" thead I went out to check the syncadv

with syncadv at the default 10 this is the plot
Screenshot_20250712_162101_Chrome.jpg
After a couple of runs I got ud to zero at syncadv 17 (Seems high compared to what I have seen on the forum)
Screenshot_20250712_162840_Chrome.jpg
I am not sure if this is correct. Put syncadv to 12 and drove with that for a week. Seems better.
Got the car up to 100km/h seemed fine. On the return trip I added -100A field weakening. The acceleration to 100km/h seems better. But when going above 100km/h a bit and letting off the throttle the motor controller lost it's shit. First oscillations between acceleration and regen. After that hard regen until overcurrent error cut the pwm. This was scary.
20250726_173800.jpg
(Sorry for the bad quality but this whas on the android head unit. I am not doing this again jus for a better picture.

I would like to get the car up to 130km/h if possible. Think this motor is a bit odd. Its a 5 pole with a 9.17 reduction so to go 130km/h it needs to spin at 12000rpm that 1000hz. Motor is spec'd to go 13000rpm.

I'd love some advise on how to proceed. Do i run with syncadv set at 17? Are there other thing to check/try
[DRIVING] Citroen Saxo electrique
  • Volvo ERAD motor, XC90 inverter/DCDC (custom OI board)
  • PSA battery (50kWh)
  • Foccci and MG ZS charger 6.6kW
  • Zombie VCU
User avatar
johu
Site Admin
Posts: 6968
Joined: Thu Nov 08, 2018 10:52 pm
Location: Kassel/Germany
Has thanked: 454 times
Been thanked: 1771 times
Contact:

Re: [DRIVING] Citroen Saxo Electrique

Post by johu »

You will want to install the latest git version for more stable fw.
On the other hand Pete predicted that the controller will loose it at very high frequencies. 1000 Hz hasn't been tried before :?

viewtopic.php?p=81555&hilit=Syncadv#p81555
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
User avatar
manny
Posts: 164
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 38 times
Been thanked: 125 times

Re: [DRIVING] Citroen Saxo Electrique

Post by manny »

I have a electric power steering unit from a Renault Clio II in my Saxo. And using a control box from servtronic.
https://www.servtronic.com/products/ren ... epas-rally
It has a knob to set the amount of assist. It works well, nice light steering but at higher speed it hard to make small corrections.
First I assumed I did something wrong causing the stick slip effect feel.

For a test drive I turned the assist down, at low speed hard to turn, but at higher speed it was better.

It feels like this (Low and high speed setting on the control box):
EPS.png
EPS.png (10.88 KiB) Viewed 1179 times
Took the scope to the car to see the signals between the "magic box" and the EPS controller. There are 3 wires between them red, blue and black.
EPS connector.PNG
EPS connector.PNG (70.04 KiB) Viewed 1179 times
Wiring diagram that I found online:
EPS_wiring_dia.PNG
Pin
9: Red (from ABS so probably speed)
10: Black (12V switched)
19: Blue (from ECU so probably RPM)
20250817_150124 (1).jpg
I think the "magic box" is just a 555 timer in a box. The knob varies the frequency between 22 Hz and 609 Hz. The frequentie was 206 Hz with the test drive.

So maybe I can connect the signal from Zombie that drives the speedometer to also drive the speed signal on the EPS controller and use the "magic box" to supply the engine RPM signal.

Image

And YES speedo signal works fine. Light steering at low speed and easy fine control at high speed :D
Only thing needed was a short piece of wire and two solder connections.

really happy with this, feels much better.
[DRIVING] Citroen Saxo electrique
  • 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: 164
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 38 times
Been thanked: 125 times

Re: [DRIVING] Citroen Saxo Electrique

Post by manny »

Small update to the electric power steering.

After the last post. I noticed that when being stopped for a while the steering got hard to turn.

I think the following is happening. I picked a random resistor to replace the pot on the "magic box". When stopped there is no speed signal. If the rpm is not idle the controller may assume that de speed signal is broken. So it assumes the car is at speed and changes the power steering accordingly.

The resistor I picked generated ~400Hz. The range on the "magic box" is from 22 Hz to 609 Hz. So I now fitted a 100k resistor to generate 22Hz.

Seems better on a test drive, but time will tell.
[DRIVING] Citroen Saxo electrique
  • 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: 164
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 38 times
Been thanked: 125 times

Re: [DRIVING] Citroen Saxo Electrique

Post by manny »

Had so weird pulsing feeling at low power and constant speed. A part of the problem has this viewtopic.php?t=6568

After some more troubleshooting I suspect the cheap TPS pot I used was faulty. I wanted to go to a Hall-effect throttle pedal anyway.
So it was time to replace the throttle, during the main part of the build I was looking at some different pedals.

The throttle pedal from a Citroen C1 seemed to be a good candidate (781100H050). It's a toyota part.
C1 APS.jpg
After some time googling I found a picture with the connector on so I could check the wire colors.
It the same as in this wiring diagram.
Toyota_TPS.jpg
And the pin numbers of the connector.
Toyota_APS.jpg
  1. VCP2 (5V)
  2. EPA2 (GND)
  3. VPA2 (SIG2)
  4. VCP (5V)
  5. EPA (GND)
  6. VPA (SIG)
VPA goes from 0.799 to 3.739V
VPA2 goes from 1.594 to 4.545V

And of course it needs a bracket to mount it.
20250914_103956.jpg
Mounted.
20250914_114754.jpg
After this a quick update to the parameters on zombie and the OI inverter. And it works and fixed the problem.
After driving a couple of days I might remake the bracket to put the throttle a bit higher. For my big feet :)
[DRIVING] Citroen Saxo electrique
  • 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: 164
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 38 times
Been thanked: 125 times

Re: [DRIVING] Citroen Saxo Electrique

Post by manny »

The Saxo got to a milestone: 100000Km :)
20251104_072010.jpg
Since winter has begun, I wanted a bit more heat in the Saxo.
Until now I had the heater set to 50% via the web interface. And the only control I had was on/off.
20250924_201001.jpg
The Saxo has a slider to adjust the heat in the car. This mixes heated and cold air. I could use this but the wastes power.
So I modified the control mechanism by locking the mix valve to full hot using a Tyrap.
20251108_115406.jpg
20251108_115719.jpg
Added a potentiometer to sense the heater slider position. An arduino reads the value converts it to 0 to 100% and sends it via CAN to the Zombie. Luckily there are some mounting screws for the heater matrix. With a couple of 3D printed parts it was easy to mount the electronics.

In the Zombie I added a CAN mapping to read the value and put it in to the HeatPercnt. Found out that the VW heater did not like a 100%
Changed the arduino code to limit it 97% after that it worked fine.
[DRIVING] Citroen Saxo electrique
  • Volvo ERAD motor, XC90 inverter/DCDC (custom OI board)
  • PSA battery (50kWh)
  • Foccci and MG ZS charger 6.6kW
  • Zombie VCU
cajamatt
Posts: 46
Joined: Tue Apr 08, 2025 4:35 pm
Has thanked: 33 times
Been thanked: 17 times

Re: [DRIVING] Citroen Saxo Electrique

Post by cajamatt »

manny wrote: Mon Nov 10, 2025 8:37 pm Added a potentiometer to sense the heater slider position. An arduino reads the value converts it to 0 to 100% and sends it via CAN to the Zombie.
Very cool! I might reach out for some advice on implementing something similar later on since i've only got limited arduino experience
User avatar
manny
Posts: 164
Joined: Sun Jan 23, 2022 4:15 pm
Location: Netherlands
Has thanked: 38 times
Been thanked: 125 times

Re: [DRIVING] Citroen Saxo Electrique

Post by manny »

cajamatt wrote: Wed Nov 12, 2025 1:37 pm Very cool! I might reach out for some advice on implementing something similar later on since i've only got limited arduino experience
Thank you. Start a topic on your project so more people can play along. Or for specific questions you can send me a DM.
[DRIVING] Citroen Saxo electrique
  • Volvo ERAD motor, XC90 inverter/DCDC (custom OI board)
  • PSA battery (50kWh)
  • Foccci and MG ZS charger 6.6kW
  • Zombie VCU
User avatar
tom91
Posts: 2753
Joined: Fri Mar 01, 2019 9:15 pm
Location: Bristol
Has thanked: 264 times
Been thanked: 717 times

Re: [DRIVING] Citroen Saxo Electrique

Post by tom91 »

cajamatt wrote: Wed Nov 12, 2025 1:37 pm Added a potentiometer to sense the heater slider position
This has recently been added to Zombie in a few variants. Slider to ON/OFF, Slider to ON/OFF + Set believe even now a Button ON/OFF + Silder to Set

So this is an arduino you can remove.
Creator of SimpBMS
Founder Volt Influx https://www.voltinflux.com/
Webstore: https://citini.com/
Post Reply