EcoModder.com

EcoModder.com (https://ecomodder.com/forum/)
-   Open ReVolt: open source DC motor controller (https://ecomodder.com/forum/open-revolt-open-source-dc-motor-controller.html)
-   -   500A controller troubleshooting II (https://ecomodder.com/forum/showthread.php/500a-controller-troubleshooting-ii-32128.html)

thingstodo 06-10-2015 12:36 AM

500A controller troubleshooting II
 
I'm looking for some basic stuff .. I have already posted that I purchased another guy's project, re-soldered a fair chunk of the control board, and have powered it up.

I have a solid green LED and a solid Amber LED. On power up, with a serial connection to hyperterminal running I see this
Cougar OS controller firmware v1.11b
But when I type - no echo of the characters. From the code here
Open ReVolt/Software - EcoModder

it looks like there should be local echo if the controller is receiving characters ...

So I guess that's question 1. Why don't I see echo of characters?
hyperterm running on XP SP2, using a real serial port (not USB converter). This is the same port that I've used to communicate (with the same serial cable) to Paul's new Open source AC controller
19200 baud, 8 data bits, 1 stop bit, no flow control


I could live without the serial working .. so when I ramp up the throttle, there is no output (connected to a small blower). The blower works fine. I keep checking it to make sure. At about 25% throttle, the amber LED starts to flash. That's question 2. Can I figure out why the Amber is flashing without the serial working?


So I tried

rt-period 1000

No response, no data. So I don't think the controller is receiving.


So I read the 500A controller troubleshooting thread, and tried this http://ecomodder.com/forum/showthrea...tml#post482317 and got 0.0 mV at 0 throttle and 2.5 mV at full throttle. So I guess the PWM output is not responding.


I'm not sure where to go from there. But I expect that it's to a poor solder joint somewhere. :eek:

Lectrik 06-13-2015 10:26 AM

I hope you find it.

I just received my parts yesterday and replaced U6 and U7 because I wasn't getting any PWM output either.

Just finished it up and put it back together this morning and I still have no responce in RTD Explorer. I'm about to start measuring voltages again.

I'll let you know if I find anything.

thingstodo 06-13-2015 12:55 PM

Quote:

Originally Posted by Lectrik (Post 483255)
I hope you find it.

Me too!:D

Quote:

I'll let you know if I find anything.
Much appreciated!

Piotrsko 06-13-2015 03:38 PM

Long time ago in a galaxy far far away, we had a command for terminal programs run on command prompt : Echo on. Default is "off"

Lectrik 06-13-2015 07:31 PM

Check for continuity between J2 Pin 2 and U4 Pin 13. Apparently I must have blown the trace off because I had an open.

It still didn't fix my communication problem but gives you something to check..

thingstodo 06-14-2015 05:36 PM

Quote:

Originally Posted by Piotrsko (Post 483294)
Long time ago in a galaxy far far away, we had a command for terminal programs run on command prompt : Echo on. Default is "off"

I guess I'm old enough to have thought of that. But I didn't.

So I tried it, or I TRIED to try it.

I booted the controller with just 12V, no pack. There was no display of the cougar firmware version at 19200,n,8,1. Odd. So I checked the 12V battery - 12.8V seems OK. I cleaned the battery terminals - they are a bit corroded. Nope, that does not help. Pull out and reseat the serial cable connector on the board and to the computer. There is a bit of a squiggle, like I'd expect if I was at the wrong baud rate, on that one. But it's not reproducible so it may be just some noise. Most times there is nothing.

So I appear to be going backward. The controller LEDs are still the same - solid Green and solid Yellow. Increase the throttle (with the pack connected) and the Yellow blinks at about 25% throttle. Come to think of it, it does that with or without the pack.

It would be nice to use the terminal interface for troubleshooting .. but that has not worked well so far.

This code leads me to believe that there is no 'echo on'

Code:

if (cmdok) {
                                        // cmd is string, x is numeric value
                                        if (!strcmp_P(cmd, PSTR("save"))) {
                                                write_config();
                                                sprintf_P(str, PSTR("configuration written to EE\r\n"));
                                                uart_putstr(str);
                                        }
                                        else if (!strcmp_P(cmd, PSTR("idle"))) {
                                                sprintf_P(str, PSTR("AVR %lu%% idle\r\n"),
                                                        wait_time(100) * (long)100 / idle_loopcount);
                                                uart_putstr(str);
                                        }
                                        else if (!strcmp_P(cmd, PSTR("kp"))) {
                                                if ((unsigned)x <= 500) {
                                                        config.Kp = x; config_pi();
                                                        show_config(str);
                                                }
                                        }
                                        else if (!strcmp_P(cmd, PSTR("ki"))) {
                                                if ((unsigned)x <= 500) {
                                                        config.Ki = x; config_pi();
                                                        show_config(str);
                                                }
                                        }
                                        else if (!strcmp_P(cmd, PSTR("t-min-rc"))) {
                                                if ((unsigned)x <= 1023) {
                                                        cli(); config.throttle_min_raw_counts = x; sei();
                                                        show_config(str);
                                                }
                                        }
                                        else if (!strcmp_P(cmd, PSTR("t-max-rc"))) {
                                                if ((unsigned)x <= 1023) {
                                                        cli(); config.throttle_max_raw_counts = x; sei();
                                                        show_config(str);
                                                }
                                        }
                                        else if (!strcmp_P(cmd, PSTR("t-pos-gain"))) {
                                                if ((unsigned)x <= 128) {
                                                        cli(); config.throttle_pos_gain = x; sei();
                                                        show_config(str);
                                                }
                                        }
                                        else if (!strcmp_P(cmd, PSTR("t-pwm-gain"))) {
                                                if ((unsigned)x <= 128) {
                                                        cli(); config.throttle_pwm_gain = x; sei();
                                                        show_config(str);
                                                }
                                        }
                                        else if (!strcmp_P(cmd, PSTR("c-rr"))) {
                                                if ((unsigned)x <= 100) {
                                                        cli(); config.current_ramp_rate = x; sei();
                                                        show_config(str);
                                                }
                                        }
                                }
                                else show_menu(str);
                                // reset command string
                                cmdpos = 0; cmd[0] = 0;
                        }

Just 'save', 'idle', 'kp', 'ki', 't-min-rc', 't-max-rc', 't-pos-gain', 't-pwm-gain' and 'c-rr'.

As I read it, any command that is not found should show_config .. but it does not do that for me.

thingstodo 06-14-2015 05:42 PM

Quote:

Originally Posted by Lectrik (Post 483324)
Check for continuity between J2 Pin 2 and U4 Pin 13. Apparently I must have blown the trace off because I had an open.

It still didn't fix my communication problem but gives you something to check..

I have 0.00 ohms on that link. So that should not be the problem.

Looking at the board under the magnifier ... I am pretty embarrassed by the re-soldering that I did. It looks like pin 1 on U4 is a cold solder. Perhaps I should go over the board again with a soldering iron and try to make it a bit more of an example of what you SHOULD do instead of the present state - an example to AVOID.

It's been years since I soldered anything ... but it should come back with practice!

Lectrik 06-19-2015 07:11 PM

Quote:

Originally Posted by thingstodo (Post 483430)
I have 0.00 ohms on that link. So that should not be the problem.

Looking at the board under the magnifier ... I am pretty embarrassed by the re-soldering that I did. It looks like pin 1 on U4 is a cold solder. Perhaps I should go over the board again with a soldering iron and try to make it a bit more of an example of what you SHOULD do instead of the present state - an example to AVOID.

It's been years since I soldered anything ... but it should come back with practice!

Follow the schematic and check continuity between a questionable connection and where it goes to. I found two open circuits where a pad should have been on the board.

z_power 06-19-2015 08:51 PM

I was once getting crap on serial output, I even changed MAX serial interface IC but then I found poor solder job (mine...) at its RX line. Check if you have +5V and GND (pins 15 & 16) and resistance between processor's 2,3 and 12,11 of max202 (or HIN202) - should be ~1k. Pins 13 and 14 of max/hin should be connected to port RxD/TxD.
If you have processor mounted in a socket then there's old trick - take it out and bridge pins 2 with 3 in socket - you should then see echo of every sign sent with terminal to the board.

MPaulHolmes 08-06-2015 03:40 PM

The amber LED blinks when you get to some nonzero throttle because it ramps the PWM duty up to 100%, but is still receiving 0 amps of feedback current, which is bad. So, the PWM isn't making it all the way to the output of U7. I would theck the voltage at R11 (either side of the resistor) relative to the back of U1 (ground) when you give it throttle. It should climb from 0v to 5v. Then, if that's happening, the PWM from the microcontroller is working, and we can move to the voltage at the left side of R15 relative to the back of U1 (ground). If that is inverted (it should go DOWN as throttle goes UP, then check the bottom of R16 relative to PH1 or PH2 while you give it some throttle.

adamj12b 08-24-2015 08:34 AM

Here is a link to the PDF with all the serial commands.

http://adambrunette.com/firmware/cou...11b/README.pdf

rtd_period 100 will get you a real time data stream from the controller every 100mS.

If you running at least firmware 1.10, you can type config and get a list of all parameters. Once one is changed, you have to type save to write them to eeprom.

-Adam

thingstodo 08-27-2015 11:55 AM

Quote:

Originally Posted by adamj12b (Post 490968)
Here is a link to the PDF with all the serial commands.

http://adambrunette.com/firmware/cou...11b/README.pdf

Thanks for the link. I may have an older copy.

Quote:

rtd_period 100 will get you a real time data stream from the controller every 100mS.
That does not work for me - no output.

Quote:

If you running at least firmware 1.10, you can type config and get a list of all parameters. Once one is changed, you have to type save to write them to eeprom.
I will be working on the DC controller again this weekend, when I run out of things to do/that I can do with testing Paul's AC controller.

I'm sure I'll be posting more information

thingstodo 08-28-2015 10:29 PM

Serial debug
 
Start with U4, the serial output buffer. This is connected to the 3 pin connector, that then connects to the DB9 connector, and on to your laptop.

Not sure how one formats text to line up in columns in this forum ...

IC U4 - serial in then serial out then connector
11 tx tx 14 tx 1 OK
12 rx rx 13 rx 2 or middle OK
gnd 12 gnd 3 OK

The signals are OK, now for power and ground

Vcc 16 = 5v, 15 = gnd - voltage between is ... -0.233V? This is wrong. First thing that is wrong ...

Check that we have 5V being generated.
Start at the regulator, LM7805 pin 1 is 12V from battery, pin 2 is gnd, pin 3 is 5V
OK - 10.97 for Vbat, 0V = gnd, 4.97V out

Turn the power off to the control board (the power board was already off)
Continuity for 5V, U1 LM7805 pin 3 = 5V to
U3 Atmega pin 7,20 OK
U4 HIN202 pin 16 OK

Continuity for ground U1 LM7805 pin 2 = 0V to
U3 Atmega 8, 22 OK
U4 HIN202 pin 15 Nope. This is a problem.

Resolder pin 15. Pin 16 actually does not have a nice solder cup either .. and the tip on my soldering iron is wide enough that when I touch 15 I also touch 16 .. so I resoldered both pins.

And there is success! I can now see the Cougar 1.11B message and the config command works. Troubleshooting the rest of it should be a bit easier now!

thingstodo 08-28-2015 11:45 PM

First spin - 12V inflator as a motor
 
1 Attachment(s)
config works

rtd-period 100 works
rtd_period 100 does not work :(

Here is a capture where I slowly ramp up the throttle. Sometimes ramping slowly works, sometimes it does not. When my little motor (inflator) turns on the throttle signal seems to go pretty unstable - I'm not changing the throttle position. Perhaps it's just a crappy little potentiometer/throttle that is the problem?

TR is throttle, mine appears to go from 0 - 166
CR is current reference, mine appears to match TR
CF is unknwon, values appear to be 2, 9 and 7
PW is PWM output appears to be 0 - 510
HS is unknown, appears to be 270 constant
RT is unknown, range is 408 to 717
FB is unknown, always seems to be 0
BA is battery amps, my little battery pack seems to top out at about 9 amps. This is reasonable to me - 3 panasonic 7a-h gel cells in series, the batteries were surplus and are about 10 years old.
AH is amp-hours (assume amp-hours consumed from battery). Never gets above 0 since I don't run for very long and at 9 amps, I'd need to run for maybe 40 or 45 seconds to register 0.1

Some capture data was removed to fit into the upload limit

thingstodo 08-28-2015 11:53 PM

Second spin, side grinder and inflator
 
1 Attachment(s)
Here is another capture using a side grinder as the motor load.

This did not work the first time. I had to:
- sand off the contacts on the grinder to get good contact - the resistance is about 3.2 ohms
- put the little inflator in parallel with it to see if that helped
- put a battery charger on the crappy little 12V gel-cell that I am using for 12V to the controller

It appears that the controller works OK above maybe 11.5V? or perhaps the battery just can't put out the current that the controller needs and it sags? Not sure, but next up I'll try to get off my arse and drag better test batteries out of my garage to see if that helps.

Again, some data removed to fit into the upload file size limit.

This is some *GREAT* progress for me.

When I drag in the larger batteries .. wait - maybe I should drag the controller OUT to the garage! Then I will be able to connect to the netgain Warp 9 and do a test spin.

MPaulHolmes 08-29-2015 12:33 AM

HS is heat spreader temperature. 270 is pretty cold. around 650 I think is pretty hot, like 75degC.

RT is raw throttle. 408 to 717 sounds fine. zero throttle is 717 and full throttle is 408.

FB is fault bits. zero is good. That means none of the bits are set. I forgot which bits mean what, but 0 is good. haha

CF is current feedback of the motor amps. On a scale of 0 to 510, where 510 is about 506amps. so it's almost 1-1.

Sounds like some awesome progress!!

thingstodo 08-29-2015 03:14 PM

Quote:

Originally Posted by Piotrsko (Post 483294)
Long time ago in a galaxy far far away, we had a command for terminal programs run on command prompt : Echo on. Default is "off"

After getting a pin soldered on the serial buffer, I can confirm that echo defaults to ON, like this code shows.

Code:

while (1) {
                wdt_reset();
                x = uart_getch();
                if (x >= 0) {
                        if (x != 0x0d) {
                                // not a CR
                                uart_putch(x);                                                        // echo the character back
                                if (cmdpos < (sizeof(cmd) - 1)) {
                                        cmd[cmdpos++] = x;                                        // add character to command string
                                        cmd[cmdpos] = 0;                                        // and terminate command string
                                }
                        }


thingstodo 08-30-2015 12:22 AM

First spin of the Warp9 powered by the P&S 500 amp, or cougar controller, was successful!

I'll edit this post to include links to the youtube videos when I get them done and posted, and will post the data capture from the controller (rtd-period 100) maybe tomorrow.

The warp9 turns fine. It is coupled (poorly) to a Siemens AC motor. The alignment is not very good and it makes a lot of noise. The battery amps on the pack did not go very high, since there was no real load.

The positive motor cable had more corrosion than I thought. Initially, the motor would not turn at all. When the controller output got up to about 30V it sparked through the corrosion (with a bad noise - BANG - and a bad smell - ozone). I took the connection apart and cleaned everything up. It appears to work better now.

https://youtu.be/aex9fFwmFis

MPaulHolmes 08-30-2015 12:59 AM

https://www.youtube.com/watch?v=FPQlXNH36mI

thingstodo 10-08-2015 10:07 AM

The controller had a failure when a contactor failed closed. Power up without a precharge caused smoke and a BIG bang.

I've cut off the legs on 2 of the 20 MOSFETs that had visible damage.

I connected a 20 amp bench power supply to M- and B- and run 20+ amps through for a few minutes. None of the MOSFETs got warm to the touch or changed temperature - used an infra-red thermometer.

I want to sign out a ductor (ohm meter that injects 10 amps, measures micro-ohms) from work this weekend and see if I can use it to determine WHICH MOSFET(s) are still failed closed.

My next attempt (if the Ductor does not work) is to hook up my 110V welder, set for 20 amps (or 30A, or 40A .. it only goes up to 60A) and push some decent current through whichever MOSFETs are still failed closed. I THINK it will work, but I guess I'll try the Ductor first and see if it obvious which FETs are gone and just cut off the legs.

Piotrsko 10-08-2015 07:38 PM

I could be wrong but I think on failed mosfets the gate shorts to the drain.

thingstodo 10-08-2015 11:45 PM

The Drain and Source appear to be directly connected, perhaps by small bits of metal that melted through the FET part?

Resistance is the same whether from Drain to Source or Source to Drain.

The resistors that connect to Gate SHOULD conduct all of the time, but don't appear to get overly warm. If they did get warm, I could tell which were failed!

thingstodo 11-07-2015 11:17 PM

I've been messing with the Cougar controller today. I have an accurate resistance measurement tool - a Micro Ohmeter, or Ductor - and have checked the resistance of each leg of the MOSFETs to the B- busbar and to the M- busbar.

The results are confusing for me.

I had assumed that one leg of each MOSFET was connected to the M- and the other leg was connected to the B- copper bars. When M- is connected to B- through the MOSFETs, current flows from the battery pack + to B+ to Motor+, through the motor, to motor -, to M-, through the MOSFETs to B-, and on to the battery pack -

I have MOSFETs that during one set of measurements appear to have a poor connection to B-, but the same MOSFET has to good connetion to M-.

Table of measurements below. MOSFETs 1 and 3 have had their leads cut - scorch marks were a good hint that they had failed. But not just them!
Resistances are listed in milli-ohms
Code:

Measure resistance from B- to MOSFETs
MOSFET        Middle        Right
1                dead        dead
2                >200        14.7
3                dead        dead
4                3.9        10.1
5                8.4        0.7
6                3.8        2.6
7                3.7        9.6
8                3.7        22.7
9                2.8        1.7
10                3.8        16.4

Code:

Measure resistance from M- to MOSFETs
MOSFET        Middle        Right
1                dead        dead
2                >200        >200
3                dead        dead
4                2.4        9.3
5                7.0        4.6
6                0.6        50.0
7                0.5        6.4
8                0.5        19
9                0.5        1.7
10                0.5        13.0

I'm not sure what I was expecting. But whatever THAT was - THIS does not match it!

I took the Cougar out to my battery pack, put a resistor in series with it, then connected it first across 4V, then 8V, 12V, 16V and on up until I ran out of batteries. There was no current measured except for charging the caps. I was expecting current to flow somewhere. 12V was not connected to the Cougar at the time.

I disconnected the pack and just connected 12V to the controller. I checked for heat on each resistor. Nothing. I checked for voltage across the resistors that drive the MOSFETs. Nothing.

Paul - what am I doing wrong here?

thingstodo 12-23-2015 10:11 AM

Update for Dec 21.

After doing some AC controller testing I connected the Cougar to a 24V pack. All OK. To avoid turning any of the MOSFETs on, I left the throttle off and did not power up the controller with 12V. All seems fine.

I then turned off power and connected the Warp 9 motor. When I powered up the precharge resistor gets *HOT* ... 6.7 ohm 20W resistor.

I then pulled in the contactor and let some smoke out :(

2 of the resistors driving the MOSFETs actually caught FIRE! It appears that most of the MOSFETs were actually failed on. There are 3 resistors that have not turned black or burned. I left the controller that way until the smoke stopped and the current dropped. Any MOSFET that was failed stayed on until it *HOPEFULLY* melted.

I have video but I think I lost the audio track. I will post when I get it edited. I hope to get the Cougar connected to a small test blower and a small test pack in my basement to see if anything still works.

So far, I have cut off 2 MOSFETs that were obviously damaged, the controller sends the power up message but will not respond to text commands, or even echo the characters. I have re-soldered the serial header and made a new serial connector - no response. And lastly I cooked several of the MOSFETs and the resistors that drive them ON as described above.

I'm still hopeful that I have a couple of operational MOSFETs ... but hope is dwindling ...

My education is EXPENSIVE ... because I BLOW **** UP!

Piotrsko 12-23-2015 05:58 PM

I got a quarter that says all your mosfets are toasted by now. 20 watt resistor got hot? hmmm sounds like a lot more than 10 amps current flowing. What does your motor need to idle? My Kostov takes 30 amps @ 12 volts.

thingstodo 12-24-2015 12:00 PM

Quote:

Originally Posted by Piotrsko (Post 503061)
I got a quarter that says all your mosfets are toasted by now.

I've got to agree - but I'll check anyway

Quote:

20 watt resistor got hot? hmmm sounds like a lot more than 10 amps current flowing. What does your motor need to idle? My Kostov takes 30 amps @ 12 volts.
At 24V, spinning unloaded at 3600 rpm, the warp 9 takes about 40 amps. To accelerate to that speed it starts out over 100 amps.

I think I tried 12V in the past but I didn't write down what it takes to make it spin.

If any MOSFETs are left undamaged, I don't think the output current will be much. 10 pairs of MOSFETs to start, only 3 resistors left that are not visibly failed means a max of 6 MOSFETs. If 20 MOSFETs can do 500 amps, 6 can only do 150?

MPaulHolmes 12-24-2015 01:28 PM

Actually there are 10 mosfets and 10 diodes. So 6 unfailed mosfets would be 300amp.

thingstodo 12-24-2015 01:43 PM

Quote:

Originally Posted by MPaulHolmes (Post 503135)
Actually there are 10 mosfets and 10 diodes. So 6 unfailed mosfets would be 300amp.

Uh-oh. The ones on the inside, where you can't really see them, are diodes? Connected to the heat spreader ... sorry about that! And thanks for the correction.

I guess I'll just have to try them out and see which ones still work.

I might get some time between family stuff in this next week ... but that would be a bonus.

MPaulHolmes 12-24-2015 03:30 PM

Yes the inside ones are diodes. I've never seen a diode failure. Are any of them bad?

thingstodo 01-17-2016 02:36 PM

Last of the video updates from Dec 21

The Cougar controller has failed MOSFETs - I just can't figure out which ones. Put power on the controller (B+ and B-, not 12V to the controller) and see what happens.

https://youtu.be/soV_Voq2bmM

apowers 01-18-2016 11:13 AM

I had mosfets fail before. They failed shorted. If yours are shorted then a precharge resistor would burn out trying to carry all the amps the motor is drawing.

You will have to disconnect each mosfet to find out if any are still good. Sometimes they don't look bad but are.

They could have been damaged from the heat of the soldering gun when first installed.

Alvin

thingstodo 01-18-2016 07:31 PM

Quote:

Originally Posted by apowers (Post 505083)
They could have been damaged from the heat of the soldering gun when first installed.

The controller was working properly for ... maybe 2 weeks ...

The MOSFETs were running for longer. The communication with the PC was the least reliable ...


All times are GMT -4. The time now is 06:38 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.
Content Relevant URLs by vBSEO 3.5.2
All content copyright EcoModder.com