QCA7000 Foccci+Clara User thread
- dimonlipko
- Posts: 45
- Joined: Thu Apr 02, 2020 9:28 pm
- Location: Ukraine, Kiev
- Has thanked: 5 times
- Been thanked: 9 times
- Contact:
Re: QCA7000 Foccci+Clara User thread
Hi! After long delay I am back to my Foccci.
Today I have first successful charging session!))) It is first Foccci in Ukraine!!)
I have project to implement ccs in Fluence ZE with custom battery (bms custom too). Now install Foccci without CAN connection with car, but next step implement it fully like OEM.
I delete one original charging port type 1, and install there type 2 combo. But think about best solution, for control OBC. I can emulate it by CAN, and make for car fake charging session, car close battery contactor. But I need to off OBC, one way is break 12v, or using relay for disconnect OBC from CAN.
I think about add new module CAN relay for realize it.
Today I have first successful charging session!))) It is first Foccci in Ukraine!!)
I have project to implement ccs in Fluence ZE with custom battery (bms custom too). Now install Foccci without CAN connection with car, but next step implement it fully like OEM.
I delete one original charging port type 1, and install there type 2 combo. But think about best solution, for control OBC. I can emulate it by CAN, and make for car fake charging session, car close battery contactor. But I need to off OBC, one way is break 12v, or using relay for disconnect OBC from CAN.
I think about add new module CAN relay for realize it.
- uhi22
- Posts: 1084
- Joined: Mon Mar 14, 2022 3:20 pm
- Location: Ingolstadt/Germany
- Has thanked: 187 times
- Been thanked: 604 times
Re: QCA7000 Foccci+Clara User thread
Great, congratulations. Surprisingly you found well matching connectors, seems to be a good alternative to the expensive Deutsch connectors. Where to obtain these, which partnumber do they have?
Github: http://github.com/uhi22 --- Patreon: https://www.patreon.com/uhi22
- celeron55
- Posts: 803
- Joined: Thu Jul 04, 2019 3:04 pm
- Location: Finland
- Has thanked: 38 times
- Been thanked: 135 times
- Contact:
Re: QCA7000 Foccci+Clara User thread
Those connectors are definitely Molex Mini-Fit (or one of the Chinese clones).
I have some, and an old spare Foccci. Here are some photos
EDIT: Part number is 35318-1220. And the female wire side header is 39-01-2120, and you need contacts also of course (I don't have those listed on my notes).
EDIT: The holes are very tight for these particular Chinese clones, I'm not sure I can push these fully in without damaging the board. It might make sense to enlarge the holes a bit.
I have some, and an old spare Foccci. Here are some photos
EDIT: Part number is 35318-1220. And the female wire side header is 39-01-2120, and you need contacts also of course (I don't have those listed on my notes).
EDIT: The holes are very tight for these particular Chinese clones, I'm not sure I can push these fully in without damaging the board. It might make sense to enlarge the holes a bit.
-
- Posts: 567
- Joined: Mon Jul 03, 2023 3:17 pm
- Location: CT, central shoreline, USA
- Has thanked: 199 times
- Been thanked: 165 times
Re: QCA7000 Foccci+Clara User thread
^ that ^ looks more like the row spacing is off connector to footprint from the last 2 images.
If that is a common issue between 2 brands you could make one row or the other slotted holes so it's compatible with either.
If that is a common issue between 2 brands you could make one row or the other slotted holes so it's compatible with either.
- dimonlipko
- Posts: 45
- Joined: Thu Apr 02, 2020 9:28 pm
- Location: Ukraine, Kiev
- Has thanked: 5 times
- Been thanked: 9 times
- Contact:
Re: QCA7000 Foccci+Clara User thread
I am using molex minifit, but hole in pcb is small and connector not fully insert. I think about make next pcb for china cheap ECU box. What I don't like in this minifit, that 2 connector is the same and possible to confuse. Need use connector that have key.
I portable Johu Web interface to ESP32-C3, and delate native SD card support because this esp is not supported it. And also I make small board only for web ui
Is it possible to make Foccci send fixed CAN message, like example, id 423 data: 10 20 30 40 50 60 70 80, with delay 100 Ms?
I want to add one more digital output for off OBC.
I portable Johu Web interface to ESP32-C3, and delate native SD card support because this esp is not supported it. And also I make small board only for web ui
Is it possible to make Foccci send fixed CAN message, like example, id 423 data: 10 20 30 40 50 60 70 80, with delay 100 Ms?
I want to add one more digital output for off OBC.
-
- Posts: 567
- Joined: Mon Jul 03, 2023 3:17 pm
- Location: CT, central shoreline, USA
- Has thanked: 199 times
- Been thanked: 165 times
Re: QCA7000 Foccci+Clara User thread
Molex minifit connectors are something I'd never use based on my history of the female terminals going bad in a short amount of time in a medium vibration product.
These seem to be extremely sensitive to crimping technique and even perfect looking machine made crimps are susceptible. Molex crimped cables seem better but still might be susceptible, i never got to test them fully.
I believe a large part of the issue i saw was less than ideal strain relief on the wires close to the connectors, so it put the load on the crimps and weakened / stretched them over time which led to bad connections.
So at the very least i'd recommend good strain reliefs close to the connector. Might be worth swapping out the connector if you guys start seeing issues or consider a dual footprint soon so it's an easier swap.
These seem to be extremely sensitive to crimping technique and even perfect looking machine made crimps are susceptible. Molex crimped cables seem better but still might be susceptible, i never got to test them fully.
I believe a large part of the issue i saw was less than ideal strain relief on the wires close to the connectors, so it put the load on the crimps and weakened / stretched them over time which led to bad connections.
So at the very least i'd recommend good strain reliefs close to the connector. Might be worth swapping out the connector if you guys start seeing issues or consider a dual footprint soon so it's an easier swap.
Re: QCA7000 Foccci+Clara User thread
Quick question, what actually happens when you have a canbus conflict? I had my ESP32 web interface communicating with Foccci on the bench last year, but now that it's in the car the web interface just sits loading forever without getting parameters. There are other things on the network though, like my inverter, BMS, DCDC and gauges. Web interface connects to the inverter without issue and other devices all appear to be functioning. Just thought I'd ask if there's an easy way to tell if those could be interfering before I start cutting wires.
EDIT: Tried disconnecting other stuff and yeah, something else on the network probably has a conflicting ID because as soon as they were off the network it worked fine. I don't know which device is the culprit but it's either the Dilithium MCU, the Dilithium display gauge or the Gen 1 Chevy Volt DCDC. Interesting. Changing the node id seems to have solved it!
EDIT: Tried disconnecting other stuff and yeah, something else on the network probably has a conflicting ID because as soon as they were off the network it worked fine. I don't know which device is the culprit but it's either the Dilithium MCU, the Dilithium display gauge or the Gen 1 Chevy Volt DCDC. Interesting. Changing the node id seems to have solved it!
Re: QCA7000 Foccci+Clara User thread
Working on my CAN mapping and I think I need some help, please. My BMS (Thunderstruck MCU) supports the ZEV/Fellten CCS controller so that's what I'm trying to emulate. I have most of it mapped but there are some messages in each direction that have me stumped.
Here's a snip of the BMS CAN data (And I did compare against what's in the Orion BMS software to grab scaling values etc). The first table shows everything the BMS broadcasts. Does anyone see something in here that I could map as the 'enable' message? Is there a way to link that to the BMS_ERRORS message so if the errors are false, that will serve as the 'enable' message?
The second table shows the messages the BMS is expecting back from Foccci.
For 0x357 / CCS_COMMAND I don't know if I need to send anything in byte 0 for ISODis. I DO have an isolation monitor but it's not part of the BMS (And for that matter, do I NEED to disable it during charging or can it keep running?).
For 0x36a / CCS_DIAGNOSTIC, this doesn't appear at all in the Orion software so I can't begin to guess at D0 and D1. Battery Voltage Sense seems to be taken downstream of the CCS contactors so if I just send back its own BatteryVoltage value it might think they are welded. What if I send EVSEVoltage for both Battery Voltage Sense and CCS Voltage Sense? Can I even do that?
If anyone else is using Foccci with the Thunderstruck MCU I would appreciate seeing your can mapping. If not, I will of course be happy to put my map on the wiki once it's verified working.
Here's a snip of the BMS CAN data (And I did compare against what's in the Orion BMS software to grab scaling values etc). The first table shows everything the BMS broadcasts. Does anyone see something in here that I could map as the 'enable' message? Is there a way to link that to the BMS_ERRORS message so if the errors are false, that will serve as the 'enable' message?
The second table shows the messages the BMS is expecting back from Foccci.
For 0x357 / CCS_COMMAND I don't know if I need to send anything in byte 0 for ISODis. I DO have an isolation monitor but it's not part of the BMS (And for that matter, do I NEED to disable it during charging or can it keep running?).
For 0x36a / CCS_DIAGNOSTIC, this doesn't appear at all in the Orion software so I can't begin to guess at D0 and D1. Battery Voltage Sense seems to be taken downstream of the CCS contactors so if I just send back its own BatteryVoltage value it might think they are welded. What if I send EVSEVoltage for both Battery Voltage Sense and CCS Voltage Sense? Can I even do that?
If anyone else is using Foccci with the Thunderstruck MCU I would appreciate seeing your can mapping. If not, I will of course be happy to put my map on the wiki once it's verified working.
- tom91
- Posts: 2293
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 199 times
- Been thanked: 524 times
Re: QCA7000 Foccci+Clara User thread
Nope there is none. You also need to keep in mind how you layout your contactors and such. (The Zero EV CCS/Fellten CCS system is designed to control all contactors) You could just have an external logic that does the contactors and checks there are no errors on the BMS or if a physical output of the MCU for charging is enabled.
Yes
Are you also looking to have the Thunderstruck MCU control the Onboard AC Charger? The Fellten CCS system auto starts AC charging sessions and lets the BMS handle the current limiting and voltage limiting of the Onboard AC Charger. The sent current limit over CAN form the ccs controller is the cable current limit.
Re: QCA7000 Foccci+Clara User thread
Okay, thanks for confirming those things. Yes I'm planning to have the MCU control the OBC. From what I understand, I need to configure Foccci to pull the wakeup line high when plugged in, which connects to an input on the MCU. Foccci sends the AC current limit via CAN and the MCU takes it from there.
So it sounds like the things I'm missing are:
-An isolation monitor disable message while charging
-An enable message to Foccci (that sets true as long as the errors are all false)
-Unknown diagnostic information back to the MCU
I suppose there's no way to do that with the hardware I've got, but a simple Arduino sketch should do the trick.
So it sounds like the things I'm missing are:
-An isolation monitor disable message while charging
-An enable message to Foccci (that sets true as long as the errors are all false)
-Unknown diagnostic information back to the MCU
I suppose there's no way to do that with the hardware I've got, but a simple Arduino sketch should do the trick.
- tom91
- Posts: 2293
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 199 times
- Been thanked: 524 times
Re: QCA7000 Foccci+Clara User thread
That might not even be used by the MCU, I believe its for the Orion 2 tool debug info.
Only while CCS charging
- uhi22
- Posts: 1084
- Joined: Mon Mar 14, 2022 3:20 pm
- Location: Ingolstadt/Germany
- Has thanked: 187 times
- Been thanked: 604 times
Re: QCA7000 Foccci+Clara User thread
Proposal:
- Foccci shall provide a signal "DisableVehicleSideIsolationMonitoring".
- The purpose of this signal is, to turn off the vehicle side isolation monitoring while the CCS charging station is connected to the battery. Because the charging station contains also an isolation monitoring, and having both isolation monitorings active at the same time will lead to unexpected isolation fault reports.
- Foccci shall set this signal to 1 during the PreCharge state. Because, after the precharge Foccci will close the contactors, and we want to give some time to distribute the signal to the receiver, BEFORE closing the contactors.
- Foccci shall keep this signal at 1 during CurrentDemand.
- Foccci shall set the signal to 0 as soon as it opens the contactors.
Does this make sense? Any other ideas?
- Foccci shall provide a signal "DisableVehicleSideIsolationMonitoring".
- The purpose of this signal is, to turn off the vehicle side isolation monitoring while the CCS charging station is connected to the battery. Because the charging station contains also an isolation monitoring, and having both isolation monitorings active at the same time will lead to unexpected isolation fault reports.
- Foccci shall set this signal to 1 during the PreCharge state. Because, after the precharge Foccci will close the contactors, and we want to give some time to distribute the signal to the receiver, BEFORE closing the contactors.
- Foccci shall keep this signal at 1 during CurrentDemand.
- Foccci shall set the signal to 0 as soon as it opens the contactors.
Does this make sense? Any other ideas?
Github: http://github.com/uhi22 --- Patreon: https://www.patreon.com/uhi22
Re: QCA7000 Foccci+Clara User thread
Yeah, that would be awesome! Is it possible to invert that as well? I think my monitor (Bender ISO165c-1) needs a 1 when it's supposed to be active and 0 for inactive.
- uhi22
- Posts: 1084
- Joined: Mon Mar 14, 2022 3:20 pm
- Location: Ingolstadt/Germany
- Has thanked: 187 times
- Been thanked: 604 times
Re: QCA7000 Foccci+Clara User thread
In this case we name it EnableVehicleSideIsolationMonitoring. Or stick to the first proposal and use the CAN mapping with gain -1? Would this work?
Github: http://github.com/uhi22 --- Patreon: https://www.patreon.com/uhi22
-
- Posts: 567
- Joined: Mon Jul 03, 2023 3:17 pm
- Location: CT, central shoreline, USA
- Has thanked: 199 times
- Been thanked: 165 times
Re: QCA7000 Foccci+Clara User thread
Could send both signals with 1 having inverted output logic and give people the ability to choose. That makes it a bit more confusing though. Something like
DisableVehicleSideIsolationMonitoring
and
DisableVehicleSideIsolationMonitoringInverted
The inverted makes it a bit clearer not to use it except special cases.
Gain -1 also need abs to work?
DisableVehicleSideIsolationMonitoring
and
DisableVehicleSideIsolationMonitoringInverted
The inverted makes it a bit clearer not to use it except special cases.
Gain -1 also need abs to work?
- johu
- Site Admin
- Posts: 6618
- Joined: Thu Nov 08, 2018 10:52 pm
- Location: Kassel/Germany
- Has thanked: 341 times
- Been thanked: 1484 times
- Contact:
Re: QCA7000 Foccci+Clara User thread
In my opinion Foccci shouldn't target specific peripherals but rather output it's own state and other devices can choose to act on that. With opmode this already happens.
In addition a ContactorState variable could be added
So offset 1, gain -1 would invert
In addition a ContactorState variable could be added
y=1-x
So offset 1, gain -1 would invert
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Re: QCA7000 Foccci+Clara User thread
Hmm, if it works with an existing spot value then so much the better.
I'm still at the early stages of learning CAN stuff. So hopefully I understand this correctly.. opmode has two possible states, 0 and 1 (?), and the gain is applied as a multiplier, then offset adds to that?
So if it's 0.. 0 x -1[the gain]= 0, then 0 + 1[the offset] = 1
And if it's 1... 1 x -1 = -1, then -1 + 1 = 0?
I'm still at the early stages of learning CAN stuff. So hopefully I understand this correctly.. opmode has two possible states, 0 and 1 (?), and the gain is applied as a multiplier, then offset adds to that?
So if it's 0.. 0 x -1[the gain]= 0, then 0 + 1[the offset] = 1
And if it's 1... 1 x -1 = -1, then -1 + 1 = 0?
- johu
- Site Admin
- Posts: 6618
- Joined: Thu Nov 08, 2018 10:52 pm
- Location: Kassel/Germany
- Has thanked: 341 times
- Been thanked: 1484 times
- Contact:
Re: QCA7000 Foccci+Clara User thread
Mathematically it's canVal = trunc(gain * spotVal) + offset
So if you want to use opmode you can choose where to make the cut. E.g. state CableCheck has numerical value 10. If you want your bit to become 1 when CableCheck (and the states thereafter) are reached you go
canVal=trunc(0.1 * opmode). At state 10 (CableCheck) this will evaluate to 1, before CableCheck to 0.
If you'd rather invert it you can pull the same trick as above
canVal=trunc(-0.1 * opmode) + 1
non-inverted
inverted
So if you want to use opmode you can choose where to make the cut. E.g. state CableCheck has numerical value 10. If you want your bit to become 1 when CableCheck (and the states thereafter) are reached you go
canVal=trunc(0.1 * opmode). At state 10 (CableCheck) this will evaluate to 1, before CableCheck to 0.
If you'd rather invert it you can pull the same trick as above
canVal=trunc(-0.1 * opmode) + 1
non-inverted
Code: Select all
can tx opmode <id> 0 1 0.1
Code: Select all
can tx opmode <id> 0 1 -0.1 1
Support R/D and forum on Patreon: https://patreon.com/openinverter - Subscribe on odysee: https://odysee.com/@openinverter:9
Re: QCA7000 Foccci+Clara User thread
Oh, very cool! Thanks for that, I never realized you could do it with a spot value with had more than two states!
- uhi22
- Posts: 1084
- Joined: Mon Mar 14, 2022 3:20 pm
- Location: Ingolstadt/Germany
- Has thanked: 187 times
- Been thanked: 604 times
Re: QCA7000 Foccci+Clara User thread
To avoid confusion of the integrator by such kind of calculations, just added a new spot value which can be mapped to CAN directly (or inverted). With a name which hopefully helps to understand the purpose: VehicleSideIsoMonAllowed. This is normally 1, to allow the isolation monitoring, and is turned to 0 during PreCharge and back to 1 at the end of the session.
Commit: https://github.com/uhi22/ccs32clara/com ... 4e3928e30d
Binaries (CI#92): https://github.com/uhi22/ccs32clara/act ... 3561848940
Wiki updated: https://openinverter.org/wiki/Foccci#Spot_values
Commit: https://github.com/uhi22/ccs32clara/com ... 4e3928e30d
Binaries (CI#92): https://github.com/uhi22/ccs32clara/act ... 3561848940
Wiki updated: https://openinverter.org/wiki/Foccci#Spot_values
Github: http://github.com/uhi22 --- Patreon: https://www.patreon.com/uhi22
Re: QCA7000 Foccci+Clara User thread
Thank you! I guess the added benefit there is that any future changes to opmode wouldn't risk breaking the math.
It's warming up here, temps are above freezing and snow is melting off the roads. Hoping to be able to get to some chargers for testing soon!
It's warming up here, temps are above freezing and snow is melting off the roads. Hoping to be able to get to some chargers for testing soon!
- tom91
- Posts: 2293
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 199 times
- Been thanked: 524 times
Re: QCA7000 Foccci+Clara User thread
I realised through someone else debugging I did not push the code change I done for BigPie (Jamie) of settings the portstate to 4 - CCS charging.
https://github.com/uhi22/ccs32clara/pull/49
Also on a Zombie integration note; I cleaned up Zombie CAN handling to sort the sleeping of the Foccci. Following the wiki info, advised not to use PP wake up. It will however not hamper the Zombie interaction only the Foccci wont sleep.
Zombie in Off opmode checks Foccci is sending plug present then waits for 1 minute to see if we can start charge, if not it times out and stops sending CAN frames. So with a Foccci waking due to something other then a valid Control Pilot we stay here and Foccci will sleep if other wake sources are not present.
If the Foccci confirms the Control Pilot and is okay to charge Zombie goes to Charge mode. When ending charge we go to off state and CAN also stops 1 minute after removing the plug. This will then also put the Foccci to sleep.
Zombie Code update: https://github.com/damienmaguire/Stm32- ... cea55b64d3
https://github.com/uhi22/ccs32clara/pull/49
Also on a Zombie integration note; I cleaned up Zombie CAN handling to sort the sleeping of the Foccci. Following the wiki info, advised not to use PP wake up. It will however not hamper the Zombie interaction only the Foccci wont sleep.
Zombie in Off opmode checks Foccci is sending plug present then waits for 1 minute to see if we can start charge, if not it times out and stops sending CAN frames. So with a Foccci waking due to something other then a valid Control Pilot we stay here and Foccci will sleep if other wake sources are not present.
If the Foccci confirms the Control Pilot and is okay to charge Zombie goes to Charge mode. When ending charge we go to off state and CAN also stops 1 minute after removing the plug. This will then also put the Foccci to sleep.
Zombie Code update: https://github.com/damienmaguire/Stm32- ... cea55b64d3
- uhi22
- Posts: 1084
- Joined: Mon Mar 14, 2022 3:20 pm
- Location: Ingolstadt/Germany
- Has thanked: 187 times
- Been thanked: 604 times
Re: QCA7000 Foccci+Clara User thread
Okay, merged the pull request. The binaries are available (CI #94) https://github.com/uhi22/ccs32clara/act ... 3594262929
Github: http://github.com/uhi22 --- Patreon: https://www.patreon.com/uhi22
- tom91
- Posts: 2293
- Joined: Fri Mar 01, 2019 9:15 pm
- Location: Bristol
- Has thanked: 199 times
- Been thanked: 524 times
Re: QCA7000 Foccci+Clara User thread
AC charging is working! I'm hoping to try a CCS session soon, but right now I am having trouble with the output testing. Is there something special I need to do before ActuatorTest will work? Seems like no matter what I set it to, nothing happens. No voltage on the contactor or motor outputs. The LED is working but trying to change its color via ActuatorTest doesn't work.
One time I got it to energize the lock motor, but it stayed on for quite some time before I killed the power, even though I'm on a version that should have that fix implemented.
Once I get this all sorted I would like to make an entry to the wiki, but in case anyone else is currently working on the same integration, here is the CAN mapping that I have set up with my Thunderstruck MCU. This hasn't been tested beyond verifying the values are showing up correctly in my parameters/spot values, and verifying that the EvseAcCurrentLimit is being received correctly by the MCU. I also have a Teensy 4.1 which is checking the flags being broadcast by the MCU, if they are all 0 it sends a 1 for Foccci enable (not shown below because I just picked an arbitrary mapping for it).
One time I got it to energize the lock motor, but it stayed on for quite some time before I killed the power, even though I'm on a version that should have that fix implemented.
Once I get this all sorted I would like to make an entry to the wiki, but in case anyone else is currently working on the same integration, here is the CAN mapping that I have set up with my Thunderstruck MCU. This hasn't been tested beyond verifying the values are showing up correctly in my parameters/spot values, and verifying that the EvseAcCurrentLimit is being received correctly by the MCU. I also have a Teensy 4.1 which is checking the flags being broadcast by the MCU, if they are all 0 it sends a 1 for Foccci enable (not shown below because I just picked an arbitrary mapping for it).