Got the Acewell gauge to work and in the process I think I may also have gotten to the bottom of what was wrong with the old speedo.
I said that the speedo signal from the ECU was a 0 - 3V square wave. The speedo supplies the voltage and the ECU just pulls it to ground to create that square wave. The ECU seems to be expecting a 0 - 5V square wave because if that 3V gets below 2.5V, it stops pulling it to ground and flags the error code which stops it even trying to pull it to ground. Then it won't even try again until the error code is reset.
Luckily the Acewell gauge supplies 5V DC on that wire so there is no adapting required. No need to insert resistors or anything. Just hook the Acewell's "Speed +" wire to the ECU speed signal wire and the "Speed -" wire to ground and it works.
Unfortunately, the tacho wasn't quite as easy. The ECU works the same way on this wire. That is, the gauge supplies the DC voltage and the ECU just pulls it to ground to make the square wave. The old Tacho was supplying 12V DC. The Acewell doesn't supply any DC volts on that wire. It expects a ready made signal. So I was going to have to supply DC volts on that wire so the ECU had something to pull to ground.
The OEM tacho 12V on that wire looks regulated to me so I'm wary of just running the switched power to it as that can get up to 14V DC. So I'm going to put an 82K resistor between the tacho wire and the switched ignition power wire. That runs it at about 6 - 7 V which still happily triggers the tacho circuit on the gauge and shouldn't upset the ECU or the Acewell gauge if the regulator starts cranking out extra volts. If the DC supply on that wire gets below 5V, the ECU throws an error (P0654) and stops trying to pull it to ground.
Also, this setup keeps the ECU happy in terms of error codes on the tacho and speedo signals. I suspect what was triggering the P1500 code was under-voltage on the speedo wire supplied by the OEM speedo. It needs to be over 2.5V to make it work.
Only thing now is to get the fuel gauge working. I will disconnect the fuel level sender from the ECU and just stick a 100ohm resistor in there for the ECU so it sees some resistance and doesn't throw error codes. Then I'll hook the fuel sender directly into the Acewell gauge.
Everything else works. I will tidy up the harness tonight and get it all properly installed tomorrow. With any luck I'll be able to take it for a ride by the afternoon.
I'll show some more pics when she's all tidied up.