Speeduino install update.

Speeduino install update.

Author
Discussion

lancepar

1,016 posts

172 months

Sunday 15th May 2022
quotequote all
If you need to test the pump.
Run a 12v pos and neg supply to it with the OE wiring disconnected. even if you run it backwards it will do no harm and if it's blocked it should clear it anyway.
cool


Fenderer

Original Poster:

137 posts

102 months

Sunday 15th May 2022
quotequote all
ric355 said:
I'm not clear how much of the original loom you still have. For my installation I have the original loom still in tact right down to the OEM 14CUX connector, and thus I had to engineer a way to ensure that the OEM main relay is turned on when the ignition key is activated. Without that, you get no supply to the fuel pump relay.
The answer to that is there's not much left of the original loom into the engine bay. I've ripped out all the old relays and connectors and most of the OE wiring. I've got a totally separate sub-fusebox now located under the dash, fed upstream of Fuse 12 in the main fusebox. One relay controls coil packs and fuel pump and the other looks after injectors and the ECU.

Basically the main relay goes live when the switched ignition goes on. The fuel pump and coil pack relay goes live when the Speeduino grounds pin 85 i.e. the fuel pump run signal. The odd thing is I was only get +8v or thereabouts when looking at the voltage measured between the Speeduino fuel pump run pin 16 on the board and the voltage at supply pin 87 of the fuel pump relay.

My initial thought was that the pump wiring was so knackered it was drawing down the voltage to this level due to crazy resistance but I pulled the fuse and it was still there. If I measured between pin 85 of the main relay which has a proper ground to the chassis and the same pin 87 I get the full 12.5v battery voltage. So this would leave me to conclude that under fuel priming (the configurable 4 or sec routine to pressurise the fuel rail) the Speeduino is not actually fully grounding pin 16 which sounds daft so left me confused. Either way it was enough to trigger the relay and supply the pump so wasn't the problem just another weird anomaly.

I tried to put that aside as it was pretty clear the pump wasn't running. I disconnected the terminals switched on the ignition and got full battery voltage at the pump terminals, but pump wasn't running, so basically the pump died. Got the pump off and tested straight across a battery and it wouldn't there either so it must have been slowly dying , caused the lean out and then just gave up.

New pump coming next week and will start again.




Edited by Fenderer on Sunday 15th May 20:43


Edited by Fenderer on Sunday 15th May 20:44

Fenderer

Original Poster:

137 posts

102 months

Sunday 15th May 2022
quotequote all
lancepar said:
If you need to test the pump.
Run a 12v pos and neg supply to it with the OE wiring disconnected. even if you run it backwards it will do no harm and if it's blocked it should clear it anyway.
cool
Thanks, yes exactly what I did in the end and found pump is knackered which explains a lot.

ric355

215 posts

149 months

Monday 16th May 2022
quotequote all
Fenderer said:
pin 16
I presume you're using a 0.4.4b board or later? The earlier boards can't supply enough current via the proto area unless a ULN is installed. I just moved the fuel pump output to one of the medium current outputs instead as I didn't need BOOST or VVC (can't remember which one I used).

Fenderer

Original Poster:

137 posts

102 months

Monday 16th May 2022
quotequote all
I'm using 0.4.3d, the last one before SMT which has a ULN2003 on board and proto has been removed.

Either way the fuel pump output is only grounding pin 85 of the main relay so shouldn't be supplying any current other than the 130mA or so to power the relay coil?

This is assuming I haven't made the completely wrong assumption about how that pin works. My understanding is that the Speeduino grounds that pin (pin 16 on the IDC) to run the pump.

Edited by Fenderer on Monday 16th May 15:24

ric355

215 posts

149 months

Monday 16th May 2022
quotequote all
Fenderer said:
I'm using 0.4.3d, the last one before SMT which has a ULN2003 on board.

Either way the fuel pump output is only grounding pin 85 of the main relay so shouldn't be supplying any current other than the 130mA or so to power the coil?

This is assuming I haven't made the completely wrong assumption about how that pin works. My understanding is that the Speeduino grounds that pin (pin 16 on the IDC) to run the pump.
You're correct about the grounding. All of the speeduino outputs are grounds.

On boards without a ULN, there are a set of proto area pins connected directly to the arduino mega. The intent with these is that you put a circuit in the proto area (most often just a ULN) and the output of that circuit connects to one or more IDC pins that are physically next to the proto pins. It's possible to simply bridge from the proto area to the relevant IDC pin with just a wire but this effectively connects whatever is on the IDC pin directly to the arduino's digital output. In the case of a relay that would mean it would need to sink the relay coil current through the arduino, which is too much for it and would immediately blow the digital output pin.

If your output is driven by the ULN you're fine.

The medium current outputs have mosfets on them hence why it's common to use those on slightly earlier boards to control relays and the like.

Fenderer

Original Poster:

137 posts

102 months

Monday 16th May 2022
quotequote all
ric355 said:
You're correct about the grounding. All of the speeduino outputs are grounds.

On boards without a ULN, there are a set of proto area pins connected directly to the arduino mega. The intent with these is that you put a circuit in the proto area (most often just a ULN) and the output of that circuit connects to one or more IDC pins that are physically next to the proto pins. It's possible to simply bridge from the proto area to the relevant IDC pin with just a wire but this effectively connects whatever is on the IDC pin directly to the arduino's digital output. In the case of a relay that would mean it would need to sink the relay coil current through the arduino, which is too much for it and would immediately blow the digital output pin.

If your output is driven by the ULN you're fine.

The medium current outputs have mosfets on them hence why it's common to use those on slightly earlier boards to control relays and the like.
Great thanks that's reassuring. Going to do some more testing and make sure I haven't run myself around in circles with voltage measurements.

Fenderer

Original Poster:

137 posts

102 months

Monday 16th May 2022
quotequote all
OK just checked again and it's pretty confusing.

With ignition on - Testing on the Fuel Pump Relay.

I'm getting:

8v between pin 86 and pin 85 - Pin 85 is connected to Speeduino - Pin 16 on the board IDC
12.6 v between pin 86 and known ground.

This suggests the Speeduino isn't grounding the fuel run pin with ignition on.

To verify - Voltage between known Ground and Speeduino - Pin 16 on the board IDC is 4.5v.

This proves the pin isn't grounded.

I don't understand why... With ignition on, the fuel pump should prime, so it should ground the pin for 4 seconds or so set in the software. Maybe it will 8v is actually enough to trigger the relay so the fuel pump will try to run anyway even though it's not getting the right trigger voltage.

Am I missing something in how the Speeduino operates?

Edited by Fenderer on Monday 16th May 18:24

ric355

215 posts

149 months

Tuesday 17th May 2022
quotequote all
Fenderer said:
OK just checked again and it's pretty confusing.

With ignition on - Testing on the Fuel Pump Relay.

I'm getting:

8v between pin 86 and pin 85 - Pin 85 is connected to Speeduino - Pin 16 on the board IDC
12.6 v between pin 86 and known ground.

This suggests the Speeduino isn't grounding the fuel run pin with ignition on.

To verify - Voltage between known Ground and Speeduino - Pin 16 on the board IDC is 4.5v.

This proves the pin isn't grounded.

I don't understand why... With ignition on, the fuel pump should prime, so it should ground the pin for 4 seconds or so set in the software. Maybe it will 8v is actually enough to trigger the relay so the fuel pump will try to run anyway even though it's not getting the right trigger voltage.

Am I missing something in how the Speeduino operates?
As a suggestion to help with investigations, you could try moving the fuel pump output to either BOOST or VVC. This removes the ULN and replaces it with a MOSFET so it puts you on a different circuit. You will need to set the fuel pump pin in the tune, and make sure no other setting in the tune is using that same pin otherwise you'll get odd results.

That would at least help to prove whether there is an issue with the ULN on your board or whether it's something else.

Regards the grounding, the way I check this is to measure continuity between the output pin on the IDC and the ECU ground using a meter that beeps. Or look for zero ohms if you don't have a beep feature. If you don't get continuity at the IDC you can move back to the arduino's output pin and check there; however on the arduino pin it should go high when the pump is on (as it's driving another device to get the low) so you'll need to read voltage there or continuity against +5v.

There is one other detail you could check - make sure you are getting a decent battery voltage reading in TunerStudio i.e. 12v+. The firmware has some logic in it that detects whether the ignition key has been turned on by checking that the main battery voltage is > 7v. When it sees that it does a fuel pump prime. It also does it if the voltage is < 5.5v - this detects a USB connection. But if somewhere in between, it does nothing. The reason this exists is that powering the board by USB in order to use tunerstudio turns on the arduino, so if you plug in the USB first, then turn on the ignition key some seconds later, the fuel pump prime would be missed without detecting the voltage change.

Fenderer

Original Poster:

137 posts

102 months

Tuesday 17th May 2022
quotequote all
ric355 said:
As a suggestion to help with investigations, you could try moving the fuel pump output to either BOOST or VVC. This removes the ULN and replaces it with a MOSFET so it puts you on a different circuit. You will need to set the fuel pump pin in the tune, and make sure no other setting in the tune is using that same pin otherwise you'll get odd results.

That would at least help to prove whether there is an issue with the ULN on your board or whether it's something else.

Regards the grounding, the way I check this is to measure continuity between the output pin on the IDC and the ECU ground using a meter that beeps. Or look for zero ohms if you don't have a beep feature. If you don't get continuity at the IDC you can move back to the arduino's output pin and check there; however on the arduino pin it should go high when the pump is on (as it's driving another device to get the low) so you'll need to read voltage there or continuity against +5v.

There is one other detail you could check - make sure you are getting a decent battery voltage reading in TunerStudio i.e. 12v+. The firmware has some logic in it that detects whether the ignition key has been turned on by checking that the main battery voltage is > 7v. When it sees that it does a fuel pump prime. It also does it if the voltage is < 5.5v - this detects a USB connection. But if somewhere in between, it does nothing. The reason this exists is that powering the board by USB in order to use tunerstudio turns on the arduino, so if you plug in the USB first, then turn on the ignition key some seconds later, the fuel pump prime would be missed without detecting the voltage change.
Thanks again.

OK I've now taken the ECU back out of the car and I'm just testing on the bench to go back to first principles and make sure both the Arduino and ULN are doing the right things. Sadly still getting really confusing results.

Firstly it won't prime under USB power at all - I presume this is because of the reason you said above as the firmware is detecting it's running on USB bus power (5v) and need not prime. I also thought it wouldn't prime anyway as the Speeduino board isn't powered under bus power?.

Tests:

1 - Arduino outputs +5v on pin 45 for the length of the priming period - Good news - this means the Arduino is working and initiating the fuel prime.

2 - Checking for continuity between ECU ground and PIN16 on the IDC. Get 709 ohms before power up, then 448 ohms for the length of the prime period, then goes open circuit. Looks like I'm getting a prime signal but why isn't is 0 ohms or thereabouts for the length of the prime?

3 - Changed Fuel output from 'board default' to Arduino Pin 7 (Boost) - No prime at all Just goes open circuit as soon as it powers up.

So I know Arduino is working but it still doesn't look I'm getting a proper ground signal from the ULN. Do we know if there is any other circuitry apart from the ULN involved in converting the logic +5v signal from Arduino to the continuity signal on Pin16. Maybe it's damaged from the fuel pump fail but I can't see how as it's not physically connected to the Speeduino.

All really confusing.





Edited by Fenderer on Tuesday 17th May 18:15

Polly Grigora

11,209 posts

109 months

Wednesday 18th May 2022
quotequote all
Cleaned your topic up by deleting posts, hadn't noticed that ric355 has been running Speeduino for several years, most of what was posted is already mentioned elsewhere

Out of interest

Fenderer said:
Quick update on the Speeduino install.

Also had a bit of a mare getting the fuel pump to prime which was a dodgy fuse connector.

It now starts and runs
Would you happen to know what the voltage was between B+ and Fuel pump relay terminal 85 when the fuel pump primed as commented above?

Why I ask is, am wondering if the output from Pin 16 was ever what it should have been or was there a low output fault in the board from the very beginning

ric355

215 posts

149 months

Wednesday 18th May 2022
quotequote all
Fenderer said:
Thanks again.

OK I've now taken the ECU back out of the car and I'm just testing on the bench to go back to first principles and make sure both the Arduino and ULN are doing the right things. Sadly still getting really confusing results.

Firstly it won't prime under USB power at all - I presume this is because of the reason you said above as the firmware is detecting it's running on USB bus power (5v) and need not prime. I also thought it wouldn't prime anyway as the Speeduino board isn't powered under bus power?.

Tests:

1 - Arduino outputs +5v on pin 45 for the length of the priming period - Good news - this means the Arduino is working and initiating the fuel prime.

2 - Checking for continuity between ECU ground and PIN16 on the IDC. Get 709 ohms before power up, then 448 ohms for the length of the prime period, then goes open circuit. Looks like I'm getting a prime signal but why isn't is 0 ohms or thereabouts for the length of the prime?

3 - Changed Fuel output from 'board default' to Arduino Pin 7 (Boost) - No prime at all Just goes open circuit as soon as it powers up.

So I know Arduino is working but it still doesn't look I'm getting a proper ground signal from the ULN. Do we know if there is any other circuitry apart from the ULN involved in converting the logic +5v signal from Arduino to the continuity signal on Pin16. Maybe it's damaged from the fuel pump fail but I can't see how as it's not physically connected to the Speeduino.

All really confusing.
Most functions on the speedy board require it to be properly powered via the 12v feed to operate properly. This is mostly the MOSFET driven stuff. You should always power it via 12v when testing anything otherwise you're in unknown territory.

Regarding boost, I have just been looking at the code here for another user, and you must make sure that the boost configuration in TS is moved to a different pin if you are using it for FP. It is likely disabled and set to 'board default' -- but this is pin 7 so you have a clash where one pin is set for 2 functions. The code doesn't discriminate whether stuff is enabled or not during initialisation so it will likely enable the boost pin as an output pin and turn it off during init. Enable boost, change the pin to something not used anywhere else, burn the tune, disable the function, burn the tune again. This just makes sure the pin is burned and not only the enabled setting.

I would expect a lot less than 448 ohms when the FP pin is grounded. Something definitely not right there. Check all your solder joints in the circuit involving that pin. I suggest resoldering them regardless of what they look like, but doing the boost pin config changes worthwhile and retesting too.

Edited by ric355 on Wednesday 18th May 11:34

Fenderer

Original Poster:

137 posts

102 months

Wednesday 18th May 2022
quotequote all
Polly Grigora said:

Would you happen to know what the voltage was between B+ and Fuel pump relay terminal 85 when the fuel pump primed as commented above?

Why I ask is, am wondering if the output from Pin 16 was ever what it should have been or was there a low output fault in the board from the very beginning

I can't remember if I measured that. There is a very good chance the output from Pin16 has always been wrong though I've never been happy with the relay trigger voltage and it seems to point back to the ECU not grounding PIN16 correctly.

Fenderer

Original Poster:

137 posts

102 months

Wednesday 18th May 2022
quotequote all
ric355 said:

Most functions on the speedy board require it to be properly powered via the 12v feed to operate properly. This is mostly the MOSFET driven stuff. You should always power it via 12v when testing anything otherwise you're in unknown territory.

Regarding boost, I have just been looking at the code here for another user, and you must make sure that the boost configuration in TS is moved to a different pin if you are using it for FP. It is likely disabled and set to 'board default' -- but this is pin 7 so you have a clash where one pin is set for 2 functions. The code doesn't discriminate whether stuff is enabled or not during initialisation so it will likely enable the boost pin as an output pin and turn it off during init. Enable boost, change the pin to something not used anywhere else, burn the tune, disable the function, burn the tune again. This just makes sure the pin is burned and not only the enabled setting.

I would expect a lot less than 448 ohms when the FP pin is grounded. Something definitely not right there. Check all your solder joints in the circuit involving that pin. I suggest resoldering them regardless of what they look like, but doing the boost pin config changes worthwhile and retesting too.

Edited by ric355 on Wednesday 18th May 11:34
Thanks. OK yes I was testing 'ignition on' using a 9v supply so the MOSFETs might not be working as expected. I'll repeat the tests using the pin change in TS as you've suggested and check soldering. Also got some new ULN2003s on order in case that's the issue. Thankfully I had the good sense to install socket carriers on this board, as I already realised from my first attempt at building a board that there was no chance of desoldering chips from these PCBs.

ric355

215 posts

149 months

Wednesday 18th May 2022
quotequote all
Fenderer said:

Thankfully I had the good sense to install socket carriers on this board, as I already realised from my first attempt at building a board that there was no chance of desoldering chips from these PCBs.
It can be done if you cut all the legs on the chip first; then you can pull each pin out of the PCB one at a time, but you still have to be careful with overheating as it'll pull the traces off the board if too much heat is applied. The sockets are certainly a better approach tho.

F1natic

458 posts

56 months

Friday 20th May 2022
quotequote all
I am very new to speeduino but recently learned that testing electronic devices in isolation can be misleading when working directly from the multimeter readings, even though that seems the logical approach. Was testing a couple of hall effect sensors that ground (for crank and cam triggers) and got odd voltages on the signal wires on the sensors when powered and testing on the bench. Was advised to test the signal voltage with a pull up resistor added to the circuit and then both units worked as required. Would suggest having a powered relay coil in circuit with the output will prove if the speedy is actually controlling a relay as desired on the bench.

ric355

215 posts

149 months

Friday 20th May 2022
quotequote all
F1natic said:
I am very new to speeduino but recently learned that testing electronic devices in isolation can be misleading when working directly from the multimeter readings, even though that seems the logical approach. Was testing a couple of hall effect sensors that ground (for crank and cam triggers) and got odd voltages on the signal wires on the sensors when powered and testing on the bench. Was advised to test the signal voltage with a pull up resistor added to the circuit and then both units worked as required. Would suggest having a powered relay coil in circuit with the output will prove if the speedy is actually controlling a relay as desired on the bench.
The hall test isn't quite the same as the relay question. To get a square wave out of a hall effect sensor you *must* have the pullup resistor because the sensor switches between ground and open circuit i.e. it does not switch in the supply voltage for the non-grounded state. The pullup is there to make the circuit switch between ground and the required output voltage (5v in the speedy context) in order to get the square wave. That's just the way almost all hall sensors work.

By contrast, the relay is controlled by grounding one of its coil pins. The other pin has +12v applied externally, thus current flows when the ground is applied. The difference is that you don't need anything else present in the circuit to be able to test when the output pin is grounded because there is a ground reference on the board to compare it to and the board already has the driver on it to ground the output and carry sufficient current.

Fenderer

Original Poster:

137 posts

102 months

Friday 20th May 2022
quotequote all
Yeah as ric355 says, you do need a pull up resistor. But it's really easy to set a voltage divider network up on a breadboard and test before installing it. I'm using the E36 hall effect sensor but wanted to make sure it was doing the right things before going to the effort of making it part of the wiring loom.

I just find it easier to understand what is going on testing on the bench, and then install it once I know how it works.

I've now found that my ULN2003 was indeed blown on the fuel pump input through bench testing the chip in isolation. New ULN's have arrived and so has the new fuel pump and filter so hopefully will get it all back up and running this weekend. I will do some relay testing first on the bench though as I'm still not convinced that that I'm getting the right pull in voltage on the relay coil.

Polly Grigora

11,209 posts

109 months

Saturday 21st May 2022
quotequote all
Fenderer said:
Polly Grigora said:

Would you happen to know what the voltage was between B+ and Fuel pump relay terminal 85 when the fuel pump primed as commented above?

Why I ask is, am wondering if the output from Pin 16 was ever what it should have been or was there a low output fault in the board from the very beginning

I can't remember if I measured that. There is a very good chance the output from Pin16 has always been wrong though I've never been happy with the relay trigger voltage and it seems to point back to the ECU not grounding PIN16 correctly.
Ok then

Anyway, you seem to have found the problem, it's good that you can change chips easily

Polly Grigora

11,209 posts

109 months

Sunday 22nd May 2022
quotequote all
Out of interest and an observation that will possibly solve a problem

Fenderer said:
I've got a totally separate sub-fusebox now located under the dash, fed upstream of Fuse 12 in the main fusebox
Where is the sub-fusebox battery supply picked up from?

Fenderer said:
The fuel pump and coil pack relay goes live when the Speeduino grounds pin 85 i.e. the fuel pump run signal
Don't understand why the coils have been supplied from the fuel pump relay

The coils should be supplied directly from the ignition switch switched supply or from an ignition switch controlled relay, Whatever the method used, the ignition coils supply shouldn't be connected into another circuits relay

There is no reason to supply the ignition coils from a timed relay such as the fuel pump is