# Dmoc645



## Jan (Oct 5, 2009)

Hello everyone,

I’m back again. After a period with some serious health issues, I’m back finalizing my landcruiser. Besides a few relatively minor issues I’m almost ready to roll. 

I’ve got one big issue, and that’s the DMOC 645. I’m stuck with critical fault 206. 

Luckily it’s documented fault:

Document: Balance Hybrid Service Manual -Diagnostics - Azdtec.pdf

(206)- DMOC_FAULT_CAUSE_UNKNOWN_CAN_FAULT

Description: 
This is a CAN fault, that is not specifically enumerated in the P1 extension module, refer to the ISR2CANComState for more information.

Possible Causes: 
Can Bus Errors or other problems (grounding)

Diagnostic Aids: 
1.	Verify that ISR2CANComState is not ONLINE.
2.	Use other CAN analyzer tool to look for CAN bus errors (CAN King for Service Manual Azure Dynamics Balance Hybrid-electric Vehicle – 2008/ 2009/ 2010 Ford E-450 128 example).
3.	Check grounding and CAN wiring.

1)
I don’t know how to check ISR2CANComState, and if it’s online, what should I do? Is it a DMOC parameter that has the wrong value, and should be corrected with use of the kvsar? Which I do not have.

2)
I find it hard to believe that it has something to do with errors in the CANBUS connection. On my (Arduino) side, the messages received from the DMOC are perfect. Every 2 a 3 microseconds there’s a message. 

And if I do not send the right messages back, I get fault 212 (No messages). If I don’t send 0x232, I get 201. And if I don’t send 0x233, I get 202. So it receives my commands fine as well.

If I send 0x232, 0x233 and 0x234, after a second or so fault 206 appears, the Status becomes 6 (Critical) and PowerstageDisabled becomes 1. The messages 0x235 and 0x236 do not matter.

I can hear a relay tick inside the DMOC at the same time. I hear a tick if I power the DMOC on, and after a second the same tick when the 206 comes up.

3)
Grounding is my main concern. Not so the CANBUS cable, but the fact that my DMOC has a ground leak. If the DMOC is connected to the battery pack, I measure full pack voltage over the plus of the pack and the chassis. I do not like that. I can’t touch the battery terminals when the DMOC is connected. It’s not a full power shock, more of an electric wire shock. There is no measurable current flow if I short circuit the plus of the pack to the chassis.

My Brusa NLG513 does not show this behaviour. Neither do the DC/DC converters. I’m pretty sure it’s the DMOC, and I wonder if that’s normal. I believe not.

Has anyone else experienced this fault? And should I focus on the ground leak of the DMOC? Or any other suggestions?


----------



## WolfTronix (Feb 8, 2016)

You need to connect using ccShell to read the ISR2CANComState...

But my guess is that you are sending mal-formed CAN packet to the DMOC, and it has a parsing error.


----------



## Jan (Oct 5, 2009)

WolfTronix said:


> You need to connect using ccShell to read the ISR2CANComState...
> 
> But my guess is that you are sending mal-formed CAN packet to the DMOC, and it has a parsing error.


I'm not yet completely convinced that it is absolutely NOT a mal-formed can mesagge or order or whatever. I'm still experimenting with some options I've still left. But my guess it's got nothing to do with canbus.

Before I'm going to dismantle the DMOC I will take a sht at ccShell. I must have somewhere a usb rs232 converter lying around. But where?


----------



## WolfTronix (Feb 8, 2016)

I am not sure why you think you need to take the DMOC apart...

The message "ISR2CANComState"

Literally means "Interrupt Service Routine 2, CAN Communications State"

The CAN receiver has an error.

You can narrow it down which packet is mal-formed by sending only one of your CAN packets at a regular rate, then a different one until you get the ISR2CANComState error.


----------



## Jan (Oct 5, 2009)

If I send only one of the two mandatory commands, I get the error it's missing the other one. So that's correct. If I send both, or all optional messages to, sooner or later I get the feared 206. 

I do not get a ISR2CANComState messages. The 206 referes to it as a possible cause. So I have to check it. 

But I'm afraid it has something to do with the grounding. I don't believe the DMOC should have a ground leak. maybe that also disturbes the can receiver. 

But first ccShell.


----------



## Jan (Oct 5, 2009)

Jan said:


> But first ccShell.


After letting it a few days uncharged, the error became 213. And I found out wit ccShell that the EEXCANIntegrityMonitorEnabled didn't have the wright value. Now all erors are gone, it's waiting for a power request.

All torque and/or speed requests are ignored. What I ask is visible in ccShell. Which s nice. But now I'm in the situation that I have no errors, but also no action.

I suspect my encoder cable. I'm going to check that now. The goundleak doesn't seem to be a problem for now.


----------



## CKidder (Dec 12, 2009)

Jan said:


> After letting it a few days uncharged, the error became 213. And I found out wit ccShell that the EEXCANIntegrityMonitorEnabled didn't have the wright value. Now all erors are gone, it's waiting for a power request.
> 
> All torque and/or speed requests are ignored. What I ask is visible in ccShell. Which s nice. But now I'm in the situation that I have no errors, but also no action.
> 
> I suspect my encoder cable. I'm going to check that now. The goundleak doesn't seem to be a problem for now.


You can easily check your encoder connection using CCShell as well. Look for the motor speed and see if it changes when you spin the motor shaft. If the encoder connection is proper you should get sane values for the RPM. 

But, you might also not be commanding the DMOC properly. There is a sequence of states you go through to get into drive. The sequence is DISABLED->STANDBY->ENABLED. Are you reading the current DMOC state and updating through the state machine properly? If you don't then it will ignore you. After you get to enabled then you can command forward torque and it should do it.


----------



## Jan (Oct 5, 2009)

CKidder said:


> If the encoder connection is proper you should get sane values for the RPM.


That, and no temperatures too. And that's why I suspected the encoder cable. The status seems to be ok.

I know what's wrong now, but not yet been able to correct the problem.


----------



## Jan (Oct 5, 2009)

Jan said:


> ]I know what's wrong now, but not yet been able to correct the problem.


So, I fixed the encoder cable. I'm prety sure the cable is ok now.

But still no response from the motor. No rpm and no temperatures. If I connect or disconnect the encoder cable there is no difference visible in ccShell.

I have to connect he dmoc side blind. I can't see if I plug it in the right way. I turn it around until it feels it fits and turn the outer ring around until I hear a loud click. That feels just right. 

But is it possible to Not plug it in and still get the loud click? Should I check it better with a mirror or so?


----------



## CKidder (Dec 12, 2009)

Jan said:


> So, I fixed the encoder cable. I'm prety sure the cable is ok now.
> 
> But still no response from the motor. No rpm and no temperatures. If I connect or disconnect the encoder cable there is no difference visible in ccShell.
> 
> ...


I've had what you are describing happen on an EnerDel battery pack BMS. The connector on that pack is plastic and it's possible to put it on wrong. I did that a lot at first and couldn't figure out why the BMS wasn't responding.

However, the DMOC and motor have metal connectors that I believe are mil-spec. I can't see any way that they'd click together and not truly be together. Chances are a connector that clicked is connected. Usually, like you said, you can feel that it's right even if you couldn't see it. But, if it is not working then take that cable back off and do a continuity check between the two ends. You should look to see that the wires that are supposed to be connected really do have continuity through to the other side. I don't have the specification at hand but you'd need at least two wires for the temperature sensor and something like four for the encoder.


----------



## Jan (Oct 5, 2009)

I'll check it again Collin.


----------



## Jan (Oct 5, 2009)

Jan said:


> I'll check it again Collin.


Checked it again, everything seems alright. Only error is 3M ohm leakage between C&D or 4&5. Can't believe that's a real issue.

Attached my connection diagram.

Also checked if I connect the DMOC side in the right way. 

Still no response from the motor. No RPM and no temperatures. Silence.

Next step is unplugging the motor side an place two resistors between 9&10 and 11&10. That should simulate some temperatures I guess. 

If that doesn't show up as a temperature it's the DMOC that's got issues, otherwise it must be a wire problem inside the motor.


----------



## Jan (Oct 5, 2009)

I'm confused. I don't have the exact data, just a quick impression. I have to check it better if I havve more time. Next week orso.

I did plug at the motor side a connecter in the encoder cable to simulate the motor. I measured 4.9V over 4 and 5. A little bit lower than what's documented as lowest value.

In ccShell there was a value visible for a parameter MotorTemperature_Q16 close to 1, and not for MotorTemperature2_Q16. After placing a resistor between 9-10 and 11-10. The value of MotorTemperature_Q16 dropped below .01, and MotorTemperature2_Q16 did not change.

I'm not really sure about anything of this, this is what I remember after a quick look.

I think that this tells me nothing about the motor side. That side could be right or wrong. 

But at the DMOC side there's something fishy's going on for sure. Could be the connector still, but my guess is that there's something wrong inside. Which might also explain the ground leak.


----------



## Jan (Oct 5, 2009)

Update, for anyone who wants to know how stupid I can be. 

My first mistake with the cable was that I didn't place the pins holder in a tilted position on the motor side. After I found that out and fixed the problem I thought that it was ok. But what happend the first time I screw the connector on, that the pins on the motor side where pushed backward. So far they never could be reached again. So after fixing the tilted position, there was still no contact. I pushed the pins back, and now I've got 4 wheels slowly spinning.

Still nothing wrong with the dmoc. It was just me. I should have build the encoder cable long ago when it was still easy to test the drive train. Now it's nearly impossible to see and repair this kind of stuff without tearing the car apart.

But my next problem is that with a little rpm (120) and a little torque (10Nm) and a little max power (1kW), it sounds if it's all falling apart. And it doesn't spin smooth either. it seems as if there are gears loose or bearings broken or something like that. But if I shut the motor down, and spin one wheel by hand (and blocking the others) I see rpm's in ccShell, so that's all ok. And that way around it turns all as smooth as it's theoretical possible. And in free position the sound and the rpm's going up and down is not different. It seems to be the motor that is moaning like an old wreck..


----------



## kennybobby (Aug 10, 2012)

Weird noises from the motor may be from incorrect phasing or current waveforms--can you put a current probe(s) on the motor phase wires and examine them on the oscope?


----------



## Jan (Oct 5, 2009)

Jan said:


> ...and a little max power (1kW)



That was a lie. It haunted me last night and this morning I went for a test and the wheels are spinning in complete silence. After these last few troubling weeks, that's a really big relief. Christmas started well.


----------



## electricmini (Oct 21, 2008)

Jan said:


> That was a lie. It haunted me last night and this morning I went for a test and the wheels are spinning in complete silence. After these last few troubling weeks, that's a really big relief. Christmas started well.


Glad to hear it's working ok - I've only just seen this thread!

The encoder pins being pushed back into the connector got me as well when I was connecting up my Ford Ranger motor - luckily I noticed it before powering up. What a stupid connector design...

I've also found the DMOC isn't great at speed control when there's no load on it - it sounds rough but this is just because there's so little load. Once any real load is on it, it should be butter-smooth


----------



## Jan (Oct 5, 2009)

Thanks Electricmini,

I'm soo glad everything is working fine now.

But do you also experience this ground leak in the dmoc? If it's connected there is full pack voltage over the battery pack + and the cars chassis. I hink that's odd.


----------



## electricmini (Oct 21, 2008)

Jan said:


> Thanks Electricmini,
> 
> I'm soo glad everything is working fine now.
> 
> But do you also experience this ground leak in the dmoc? If it's connected there is full pack voltage over the battery pack + and the cars chassis. I hink that's odd.


It could be the meter - if it's a high-impedance meter (most modern multimeters are) then it will show voltage even with a **tiny** leakage current, even though the current is so small it wouldn't be a hazard

Maybe try repeating the test, but with a small 230V light bulb wired in parallel with the meter - the bulb's resistance will be low enough to prevent very small leakage currents giving you a misleading reading, but if there is a real leak it will still show up on the meter.


----------



## CKidder (Dec 12, 2009)

electricmini said:


> It could be the meter - if it's a high-impedance meter (most modern multimeters are) then it will show voltage even with a **tiny** leakage current, even though the current is so small it wouldn't be a hazard
> 
> Maybe try repeating the test, but with a small 230V light bulb wired in parallel with the meter - the bulb's resistance will be low enough to prevent very small leakage currents giving you a misleading reading, but if there is a real leak it will still show up on the meter.


Yeah, it's probably nothing but the light bulb test wouldn't be a bad idea. Motor controllers tend to have EMI capacitors between the input power and the chassis. They might be 0.01uF but they still could be charged up to full pack voltage. That little capacitance does nothing but give you a quick zap like static from rubbing your feet over carpet but it's enough that a multimeter with 10M ohm input resistance will think that it's a lot of steady voltage. Some multimeters have a Lo-Z mode to compensate for this.


----------



## kennybobby (Aug 10, 2012)

Using the Ohms scale on your meter, measure the resistance between the pack negative and chassis.


----------



## CKidder (Dec 12, 2009)

kennybobby said:


> Using the Ohms scale on your meter, measure the resistance between the pack negative and chassis.


I wouldn't do that with the pack positive hooked up though. I'm not sure what the multimeter would think of 300V or something on the probes when it is doing an ohms check.


----------



## Jan (Oct 5, 2009)

I checked it yesterday, and could not measure any voltage above 40V for less than a second, and mostly nothing. I didn't do it with a low resistance in parallel yet. That's for next week. But it seems the problem is eliminating itself.

Next problem. If I apply a more power the moaning is back, and the wheel spin won't increase. It seems I'm hitting some other power limiting fence. I've saved the ccShell parameters and going to check them all as soon I've the time.


----------



## Jan (Oct 5, 2009)

That 'next problem' was still the encoder cable. It showed as an irregular or erratic rpm. It could jump from positive to negative. So I took the cable apart again and solved that small leakage problem. And now I can go full speed. 

Still not checked the ground leak with a parallel resistor. It was a bit low in the priority list.

Next: putting the car back together.


----------



## Jan (Oct 5, 2009)

Back again. 

It all went very well until a week ago. The Cruiser is/was very responsive and handled very well. Grinning all the time behind the wheel, testing it all.

But that week ago the DMOC stopped communicating on CANBUS. Just after a testdrive, while it was parked for an overall checkup. I found the exact point in my log file. But no extraordinary values. It juist stopped talking over CAN.

The Serialport however is still responding. But give me no clue over what's wrong. My guess is a fault on the mother board. 

Is there anyone in or around the Netherlands that can help me with determining it is the mother board. For example by replacing it in theirs? 

And how to replace it? I've found on ebay a seller of DMOC boards, but the id ends with 00K and mine with -00N. What is that last letter?


----------



## oudevolvo (Mar 10, 2015)

Perhaps New Electric in Amsterdam can help you out. 
http://www.newelectric.nl
That's where I bought my Siemens + DMOC combo.


----------



## Jan (Oct 5, 2009)

Hi Oldvolvo,

I already did. I've ordered the board in the us, and newelectric can flash it. If that doesn't work, they have a last dmoc available. Hope really hard it's jus the board.


----------



## Jan (Oct 5, 2009)

The board I ordered from the US didn't work. NewEletric could not flash it. 
My alternative, and saviour was Boekel. He had a spare DMOC.
I'm back on track testing.

My longest range so far was 20km with an A123 pack of 70 Cells. That's hardly 4.5kWh.

I admit, that was not driving very fast, but with a hell of a lot of stop and go's.

I'm bottom balancing at the moment, and hopefully this coming weekend a serious range test. I really want to know what to expect. That 20km sounds to good to be true.


----------



## FROGSA (Sep 8, 2020)

Jan said:


> Update, for anyone who wants to know how stupid I can be.
> 
> My first mistake with the cable was that I didn't place the pins holder in a tilted position on the motor side. After I found that out and fixed the problem I thought that it was ok. But what happend the first time I screw the connector on, that the pins on the motor side where pushed backward. So far they never could be reached again. So after fixing the tilted position, there was still no contact. I pushed the pins back, and now I've got 4 wheels slowly spinning.
> 
> ...


Greetings Jan, I too experienced all the hiccup's as you have. Resolving the DMOC connector problem also left me with low RPM and torque. I have played around with different parameters in Arduino but to no avail. Please enlighten me what you did to get the wheels turning smoothly. Any help will be deeply appreciated. Rgs, Fred. [email protected]


----------

