revilla Posted September 14, 2021 Share Posted September 14, 2021 Yes ... Kelvin. And 0K is approximately -273.2°C. So 0°C is 273.2K or 2732 in tenths, 10°C is 283.2K or 2832 in tenths etc. Hence all the round number in °C end in 32. Link to comment Share on other sites More sharing options...
anthonym Posted September 15, 2021 Share Posted September 15, 2021 bytes? is this meaning all that is presented to you in binary? 2 max being 65536-1? I see the biggest number is indeed 65535. I hesitate to ask if that means we have a 16bit processor? bit of a while since my training only touched on this area, mostly long forgotten. Link to comment Share on other sites More sharing options...
revilla Posted September 15, 2021 Share Posted September 15, 2021 Yes, all read from the ECU as binary.Byte = 8 Bits = 0 to 255 (or -128 to 127 is signed). Word = 2 Bytes = 16 Bits = 0 to 65,535 (or -32,768 to 32,767 if signed). Long = 2 Words = 4 Bytes = 32 Bits = 0 to 4,294,967,295 (or -2,147,483,648 to 2,147,483,647 is signed).It's a hybrid 16/32-Bit processor. Most of the registers are 32-bit, but the internal and external data buses are only 16-bit.So the memory is 16 bits wide (Word sized).All of the code is written is some high level language (I suspect C). This is compiled down to binary machine code by a compiler. The closest you can get to getting back to source code is to pass the machine code through a disassembler, which gives you a text-based readable Assembly Language representation of the machine code.Some newer reverse-engineering tools like Ghidra will decompile the code back into Pseudo-C, but it's a long way from the original source code (no meaningful variable names etc.) - although it can help you get your head around the structure of a program which can very opaque staring at assembly language.I've done all of my patch programming directly in assembly. Link to comment Share on other sites More sharing options...
anthonym Posted September 15, 2021 Share Posted September 15, 2021 Could Ghidra match scalars to code even if the code is more like pseudo code than the original? Link to comment Share on other sites More sharing options...
revilla Posted September 15, 2021 Share Posted September 15, 2021 There's no matching to be done. Scalars are just fixed memory addresses. The code refers to them by address. Link to comment Share on other sites More sharing options...
revilla Posted September 15, 2021 Share Posted September 15, 2021 Just to give you a flavour of what you get:This is one function taken from the ECU in Ghidra-syntax assembly language. Buried in there you will see things like (0x26 ,A5) - this is accessing a scalar. Register A5 holds a pointer to the map data (usually at 0x13C000) and the map data starts with a short header and then the scalars. So this is accessing address A5+0x26 which will generally be the scalar ar 0x13C026. The instruction used with it, move.w (0x26 ,A5),D0w is Word-sized which implies that it's a Word-sized scalar at this address. ************************************************************* * FUNCTION ************************************************************* undefined __stdcall FUN_00102938 (void ) undefined D0b:1 <RETURN> FUN_00102938 XREF[1]: FUN_0010292a:00102932 © 00102938 08 b8 00 bclr.b 0x2 ,(DAT_0000057f ).w 02 05 7f 0010293e 08 b8 00 bclr.b 0x7 ,(DAT_00000580 ).w 07 05 80 00102944 08 b8 00 bclr.b 0x2 ,(DAT_00000415 ).w 02 04 15 0010294a 08 b8 00 bclr.b 0x7 ,(DAT_00000414 ).w 07 04 14 00102950 42 41 clr.w D1w 00102952 12 38 02 ef move.b (DAT_000002ef ).w,D1b 00102956 0c 41 00 06 cmpi.w #0x6 ,D1w 0010295a 64 08 bcc.b switchD_00102962::caseD_6 0010295c 20 7b 14 08 movea.l (->switchD_00102962::caseD_0 ,PC,D1w *0x4 ),A0 = 0010297e 00102960 4e 71 nop switchD_00102962::switchD 00102962 4e d0 jmp (A0) switchD_00102962::caseD_6 XREF[2]: 0010295a (j) , 00102962 (j) 00102964 4e 75 rts switchD_00102962::switchdataD_00102966 XREF[1]: FUN_00102938:0010295c ® 00102966 00 10 29 7e addr switchD_00102962::caseD_0 0010296a 00 10 29 d4 addr switchD_00102962::caseD_1 0010296e 00 10 2a 98 addr switchD_00102962::caseD_2 00102972 00 10 2a d2 addr switchD_00102962::caseD_3 00102976 00 10 2b 4a addr switchD_00102962::caseD_4 0010297a 00 10 29 ac addr switchD_00102962::caseD_5 switchD_00102962::caseD_0 XREF[2]: 00102962 (j) , 00102966 (*) 0010297e 61 00 0b 52 bsr.w FUN_001034d2 undefined FUN_001034d2(void) 00102982 61 00 0b 18 bsr.w FUN_0010349c undefined FUN_0010349c(void) 00102986 08 f8 00 bset.b 0x7 ,(DAT_00000414 ).w 07 04 14 0010298c 08 f8 00 bset.b 0x5 ,(DAT_fffffc0b ).w 05 fc 0b 00102992 08 f8 00 bset.b 0x4 ,(DAT_00000582 ).w 04 05 82 00102998 61 ff 00 bsr.l FUN_00105faa undefined FUN_00105faa(void) 00 36 10 0010299e 11 fc 00 move.b #0x5 ,(DAT_000002ef ).w 05 02 ef 001029a4 60 ff 00 bra.l LAB_001029cc 00 00 26 001029aa 4e ?? 4Eh N 001029ab 75 ?? 75h u switchD_00102962::caseD_5 XREF[2]: 00102962 (j) , 0010297a (*) 001029ac 08 38 00 btst.b 0x3 ,(DAT_00000416 ).w 03 04 16 001029b2 67 18 beq.b LAB_001029cc 001029b4 08 b8 00 bclr.b 0x4 ,(DAT_00000582 ).w 04 05 82 001029ba 08 b8 00 bclr.b 0x3 ,(DAT_00000416 ).w 03 04 16 001029c0 11 fc 00 move.b #0x1 ,(DAT_000002ef ).w 01 02 ef 001029c6 60 ff 00 bra.l LAB_00102a96 00 00 ce LAB_001029cc XREF[2]: 001029a4 (j) , 001029b2 (j) 001029cc 61 ff 00 bsr.l FUN_00105f98 undefined FUN_00105f98(void) 00 35 ca 001029d2 4e 75 rts switchD_00102962::caseD_1 XREF[2]: 00102962 (j) , 0010296a (*) 001029d4 30 2d 00 26 move.w (0x26 ,A5),D0w 001029d8 32 2d 00 28 move.w (0x28 ,A5),D1w 001029dc 08 38 00 btst.b 0x1 ,(DAT_00000413 ).w 01 04 13 001029e2 67 2a beq.b LAB_00102a0e 001029e4 b0 78 02 86 cmp.w (DAT_00000286 ).w,D0w 001029e8 66 24 bne.b LAB_00102a0e 001029ea 61 00 0a 2e bsr.w FUN_0010341a undefined FUN_0010341a(void) 001029ee 61 00 0a d0 bsr.w FUN_001034c0 undefined FUN_001034c0(void) 001029f2 61 00 0b 02 bsr.w FUN_001034f6 undefined FUN_001034f6(void) 001029f6 08 f8 00 bset.b 0x2 ,(DAT_00000415 ).w 02 04 15 001029fc 08 b8 00 bclr.b 0x1 ,(DAT_00000413 ).w 01 04 13 00102a02 11 fc 00 move.b #0x3 ,(DAT_000002ef ).w 03 02 ef 00102a08 60 ff 00 bra.l LAB_00102b48 00 01 3e LAB_00102a0e XREF[2]: 001029e2 (j) , 001029e8 (j) 00102a0e 08 38 00 btst.b 0x1 ,(DAT_00000413 ).w 01 04 13 00102a14 67 28 beq.b LAB_00102a3e 00102a16 b0 78 02 86 cmp.w (DAT_00000286 ).w,D0w 00102a1a 67 22 beq.b LAB_00102a3e 00102a1c b2 78 02 86 cmp.w (DAT_00000286 ).w,D1w 00102a20 67 1c beq.b LAB_00102a3e 00102a22 61 00 09 f6 bsr.w FUN_0010341a undefined FUN_0010341a(void) 00102a26 61 00 0a 98 bsr.w FUN_001034c0 undefined FUN_001034c0(void) 00102a2a 08 f8 00 bset.b 0x7 ,(DAT_00000414 ).w 07 04 14 00102a30 08 b8 00 bclr.b 0x1 ,(DAT_00000413 ).w 01 04 13 00102a36 11 fc 00 move.b #0x1 ,(DAT_000002ef ).w 01 02 ef 00102a3c 60 58 bra.b LAB_00102a96 LAB_00102a3e XREF[3]: 00102a14 (j) , 00102a1a (j) , 00102a20 (j) 00102a3e 08 38 00 btst.b 0x1 ,(DAT_00000413 ).w 01 04 13 00102a44 67 2a beq.b LAB_00102a70 00102a46 b2 78 02 86 cmp.w (DAT_00000286 ).w,D1w 00102a4a 66 24 bne.b LAB_00102a70 00102a4c 61 00 09 cc bsr.w FUN_0010341a undefined FUN_0010341a(void) 00102a50 61 00 0a 80 bsr.w FUN_001034d2 undefined FUN_001034d2(void) 00102a54 61 00 0a 8e bsr.w FUN_001034e4 undefined FUN_001034e4(void) 00102a58 08 f8 00 bset.b 0x2 ,(DAT_00000415 ).w 02 04 15 00102a5e 08 b8 00 bclr.b 0x1 ,(DAT_00000413 ).w 01 04 13 00102a64 11 fc 00 move.b #0x3 ,(DAT_000002ef ).w 03 02 ef 00102a6a 60 ff 00 bra.l LAB_00102b48 00 00 dc LAB_00102a70 XREF[2]: 00102a44 (j) , 00102a4a (j) 00102a70 08 38 00 btst.b 0x0 ,(DAT_00000410 ).w 00 04 10 00102a76 67 18 beq.b LAB_00102a90 00102a78 61 ff 00 bsr.l FUN_00105faa undefined FUN_00105faa(void) 00 35 30 00102a7e 11 fc 00 move.b #0x2 ,(DAT_000002ef ).w 02 02 ef 00102a84 08 f8 00 bset.b 0x5 ,(DAT_fffffc0b ).w 05 fc 0b 00102a8a 60 ff 00 bra.l LAB_00102aca 00 00 3e LAB_00102a90 XREF[1]: 00102a76 (j) 00102a90 08 b8 00 bclr.b 0x1 ,(DAT_00000413 ).w 01 04 13 LAB_00102a96 XREF[5]: 001029c6 (j) , 00102a3c (j) , 00102ac4 (j) , 00102b42 (j) , 00102b76 (j) 00102a96 4e 75 rts switchD_00102962::caseD_2 XREF[2]: 00102962 (j) , 0010296e (*) 00102a98 08 38 00 btst.b 0x1 ,(DAT_0000057f ).w 01 05 7f 00102a9e 67 2a beq.b LAB_00102aca 00102aa0 08 b8 00 bclr.b 0x0 ,(DAT_00000410 ).w 00 04 10 00102aa6 08 b8 00 bclr.b 0x5 ,(DAT_fffffc0b ).w 05 fc 0b 00102aac 08 f8 00 bset.b 0x7 ,(DAT_00000414 ).w 07 04 14 00102ab2 61 00 0a 0c bsr.w FUN_001034c0 undefined FUN_001034c0(void) 00102ab6 42 78 02 88 clr.w (DAT_00000288 ).w 00102aba 42 78 02 8a clr.w (DAT_0000028a ).w 00102abe 11 fc 00 move.b #0x1 ,(DAT_000002ef ).w 01 02 ef 00102ac4 60 ff ff bra.l LAB_00102a96 ff ff d0 LAB_00102aca XREF[3]: 00102a8a (j) , 00102a9e (j) , 00102af6 (j) 00102aca 61 ff 00 bsr.l FUN_00105f98 undefined FUN_00105f98(void) 00 34 cc 00102ad0 4e 75 rts switchD_00102962::caseD_3 XREF[2]: 00102962 (j) , 00102972 (*) 00102ad2 08 38 00 btst.b 0x7 ,(DAT_0000057e ).w 07 05 7e 00102ad8 67 1e beq.b LAB_00102af8 00102ada 30 2d 00 26 move.w (0x26 ,A5),D0w 00102ade b0 78 02 86 cmp.w (DAT_00000286 ).w,D0w 00102ae2 66 14 bne.b LAB_00102af8 00102ae4 61 ff 00 bsr.l FUN_00105faa undefined FUN_00105faa(void) 00 34 c4 00102aea 11 fc 00 move.b #0x2 ,(DAT_000002ef ).w 02 02 ef 00102af0 08 f8 00 bset.b 0x5 ,(DAT_fffffc0b ).w 05 fc 0b 00102af6 60 d2 bra.b LAB_00102aca LAB_00102af8 XREF[2]: 00102ad8 (j) , 00102ae2 (j) 00102af8 08 38 00 btst.b 0x7 ,(DAT_0000057e ).w 07 05 7e 00102afe 67 2e beq.b LAB_00102b2e 00102b00 30 2d 00 28 move.w (0x28 ,A5),D0w 00102b04 b0 78 02 86 cmp.w (DAT_00000286 ).w,D0w 00102b08 66 24 bne.b LAB_00102b2e 00102b0a 11 fc 00 move.b #0x4 ,(DAT_000002ef ).w 04 02 ef 00102b10 08 b8 00 bclr.b 0x7 ,(DAT_fffffc0b ).w 07 fc 0b 00102b16 08 b8 00 bclr.b 0x5 ,(DAT_fffffc0b ).w 05 fc 0b 00102b1c 08 f8 00 bset.b 0x3 ,(DAT_fffffc0b ).w 03 fc 0b 00102b22 08 f8 00 bset.b 0x2 ,(DAT_fffffc0b ).w 02 fc 0b 00102b28 60 ff 00 bra.l LAB_00102b7c 00 00 52 LAB_00102b2e XREF[2]: 00102afe (j) , 00102b08 (j) 00102b2e 08 38 00 btst.b 0x4 ,(DAT_00000412 ).w 04 04 12 00102b34 67 12 beq.b LAB_00102b48 00102b36 08 f8 00 bset.b 0x7 ,(DAT_00000414 ).w 07 04 14 00102b3c 11 fc 00 move.b #0x1 ,(DAT_000002ef ).w 01 02 ef 00102b42 60 ff ff bra.l LAB_00102a96 ff ff 52 LAB_00102b48 XREF[3]: 00102a08 (j) , 00102a6a (j) , 00102b34 (j) 00102b48 4e 75 rts switchD_00102962::caseD_4 XREF[2]: 00102962 (j) , 00102976 (*) 00102b4a 08 38 00 btst.b 0x5 ,(DAT_00000414 ).w 05 04 14 00102b50 67 2a beq.b LAB_00102b7c 00102b52 08 b8 00 bclr.b 0x7 ,(DAT_fffffc0b ).w 07 fc 0b 00102b58 08 b8 00 bclr.b 0x5 ,(DAT_fffffc0b ).w 05 fc 0b 00102b5e 08 f8 00 bset.b 0x7 ,(DAT_00000414 ).w 07 04 14 00102b64 61 00 09 5a bsr.w FUN_001034c0 undefined FUN_001034c0(void) 00102b68 42 78 02 88 clr.w (DAT_00000288 ).w 00102b6c 42 78 02 8a clr.w (DAT_0000028a ).w 00102b70 11 fc 00 move.b #0x1 ,(DAT_000002ef ).w 01 02 ef 00102b76 60 ff ff bra.l LAB_00102a96 ff ff 1e LAB_00102b7c XREF[2]: 00102b28 (j) , 00102b50 (j) 00102b7c 61 ff ff bsr.l FUN_001014ae undefined FUN_001014ae(void) ff e9 30 00102b82 4e 75 rts 00102b84 4e align align(1) 00102b85 75 ?? 75h uAnd this is the same function decompiled into C by Ghidra. More readable in terms of structure and flow, but still not a lot of clues as there are no meaningful variable names, procedure names etc. You can see that same scalar being accessed as *(short *)(unaff_A5 + 0x26). Short is the C-equivalent of a Word-sized integer. /* WARNING: Globals starting with '_' overlap smaller symbols at the same address */void FUN_00102938(void){ byte bVar1; byte bVar2; int unaff_A5; bVar2 = DAT_0000057f; bVar1 = DAT_00000414; DAT_0000057f = DAT_0000057f & 0xfb; DAT_00000580 = DAT_00000580 & 0x7f; DAT_00000415 = DAT_00000415 & 0xfb; DAT_00000414 = DAT_00000414 & 0x7f; switch(DAT_000002ef) { case 0: FUN_001034d2(); FUN_0010349c(); DAT_00000414 = DAT_00000414 | 0x80; DAT_fffffc0b = DAT_fffffc0b | 0x20; DAT_00000582 = DAT_00000582 | 0x10; FUN_00105faa(); DAT_000002ef = 5; goto LAB_001029cc; case 1: if (((DAT_00000413 & 2) != 0) && (*(short *)(unaff_A5 + 0x26) == _DAT_00000286)) { FUN_0010341a(); FUN_001034c0(); FUN_001034f6(); DAT_00000415 = DAT_00000415 | 4; DAT_00000413 = DAT_00000413 & 0xfd; DAT_000002ef = 3; return; } if ((((DAT_00000413 & 2) != 0) && (*(short *)(unaff_A5 + 0x26) != _DAT_00000286)) && (*(short *)(unaff_A5 + 0x28) != _DAT_00000286)) { FUN_0010341a(); FUN_001034c0(); DAT_00000414 = DAT_00000414 | 0x80; DAT_00000413 = DAT_00000413 & 0xfd; DAT_000002ef = 1; return; } if (((DAT_00000413 & 2) != 0) && (*(short *)(unaff_A5 + 0x28) == _DAT_00000286)) { FUN_0010341a(); FUN_001034d2(); FUN_001034e4(); DAT_00000415 = DAT_00000415 | 4; DAT_00000413 = DAT_00000413 & 0xfd; DAT_000002ef = 3; return; } if ((DAT_00000410 & 1) == 0) { DAT_00000413 = DAT_00000413 & 0xfd; return; } FUN_00105faa(); DAT_000002ef = 2; DAT_fffffc0b = DAT_fffffc0b | 0x20; break; case 2: if ((bVar2 & 2) != 0) { DAT_00000410 = DAT_00000410 & 0xfe; DAT_fffffc0b = DAT_fffffc0b & 0xdf; DAT_00000414 = DAT_00000414 | 0x80; FUN_001034c0(); _DAT_00000288 = 0; _DAT_0000028a = 0; DAT_000002ef = 1; return; } break; case 3: if (((DAT_0000057e & 0x80) == 0) || (*(short *)(unaff_A5 + 0x26) != _DAT_00000286)) { if (((DAT_0000057e & 0x80) == 0) || (*(short *)(unaff_A5 + 0x28) != _DAT_00000286)) { if ((DAT_00000412 & 0x10) != 0) { DAT_00000414 = DAT_00000414 | 0x80; DAT_000002ef = 1; return; } return; } DAT_000002ef = 4; DAT_fffffc0b = DAT_fffffc0b & 0x5f; DAT_fffffc0b = DAT_fffffc0b | 0xc; goto LAB_00102b7c; } FUN_00105faa(); DAT_000002ef = 2; DAT_fffffc0b = DAT_fffffc0b | 0x20; break; case 4: if ((bVar1 & 0x20) != 0) { DAT_fffffc0b = DAT_fffffc0b & 0x5f; DAT_00000414 = DAT_00000414 | 0x80; FUN_001034c0(); _DAT_00000288 = 0; _DAT_0000028a = 0; DAT_000002ef = 1; return; } LAB_00102b7c: FUN_001014ae(); return; case 5: if ((DAT_00000416 & 8) != 0) { DAT_00000582 = DAT_00000582 & 0xef; DAT_00000416 = DAT_00000416 & 0xf7; DAT_000002ef = 1; return; } LAB_001029cc: FUN_00105f98(); return; default: return; } FUN_00105f98(); return; } Link to comment Share on other sites More sharing options...
anthonym Posted September 15, 2021 Share Posted September 15, 2021 So looking for something quite possibly not there could be viewed as a waste of time?especially given we do not know what units it may be in. Link to comment Share on other sites More sharing options...
revilla Posted September 15, 2021 Share Posted September 15, 2021 You have to regard it as research. You may find something. You may not. If you're lucky, you'll find the answer to your original question. You'll probably find the answers to a lot of other questions along the way. It's a lot more fruitful just working away cracking the code and building up your understanding of the ECU bit by bit and just taking the wins as they come, rather than trying to search for the answer to a specific question from the start. There are just too many unknowns. Link to comment Share on other sites More sharing options...
anthonym Posted September 15, 2021 Share Posted September 15, 2021 I hardly dare ask this, but heck. Could we fit a capacitor in to the ECU 12V Supply to smooth the voltage so it never drops below say 6 volts (whatever is minimum)? That is for the very short time of a transient drop. Where as an ignition off state would drain it fast enough so we never notice. Would it charge enough fast enough at ignition on?Sure, not a practical solution for what is basically broken, but curious if it could work. Link to comment Share on other sites More sharing options...
revilla Posted September 15, 2021 Share Posted September 15, 2021 Not really, the ECU is connected to the same supply as everything else. Any capacitor directly across it would just effectively be in parallel with the battery, and if a 30Ah battery can't keep the voltage up then a capacitor would do nothing.You would need something slightly more sophisticated, either an LC (inductor-capacitor) or RC (resistor-capacitor) filter network. But for example with an RC network, the ECU draws quite a lot of current so the resistance would need to be very low, and therefore the capacitor would need to be extremely large. A similar argument exists for the LC network.You might just get it to work it to work with big bulky impractical components but you're missing the point ...The whole car electrical supply is being pulled down to 5V. That's not healthy for anything. The ECU is internally using a 5V regulator and needs a fairly accurately regulated 5V supply for the logic circuits to function properly. The regulator itself will have an overhead, probably 1V or more. So dropping the external supply to 5V will probably drop the internal supply to 4V or less. At that, the ECU is probably going to crash and reboot anyway, which will just manifest itself as a similar problem.Asking the electronics to cope with a supply dropout from 12V to 5V is just silly. Trying to fix up the ECU alone to cope with it just bodging over a problem. As I mentioned before, other electronics will be affected. Some cars have found that the immobiliser re-arms itself when cranking.Any starter that is pulling the supply that low AT THE BATTERY (so not as a fault of the wiring, which would leave a low voltage at the starter but still a high voltage at the battery) really doesn't belong in the car. It might work well in a car with a much larger, lower internal resistance battery, but it just doesn't belong in our cars. Link to comment Share on other sites More sharing options...
anthonym Posted September 15, 2021 Share Posted September 15, 2021 Sure, I get that. Just exploring. Link to comment Share on other sites More sharing options...
anthonym Posted September 15, 2021 Share Posted September 15, 2021 anyway, thank you for your endless patience. RegardsAnthony Link to comment Share on other sites More sharing options...
SM25T Posted September 15, 2021 Share Posted September 15, 2021 And I thought it was just a fairly simple car !! Link to comment Share on other sites More sharing options...
Area Representative Paul Richards Posted September 15, 2021 Area Representative Share Posted September 15, 2021 I simply fitted an additional relay to cure my hot start problem. That was 20 years ago and it's not failed since. Link to comment Share on other sites More sharing options...
revilla Posted September 16, 2021 Share Posted September 16, 2021 Anthony,I'd forgotten about Sam's car: https://www.lotus7.club/forum/techtalk/k-series-brise-starter-another-odd-failure-modeThere's a good example of how other things can end up going wrong with a starter transient dropout. His car was behaving very oddly. Sometimes (most times) after starting, it just wouldn't run right. It limped along with the fuel trim all wrong, the SS shift light lit and an awful throttle response that slowly bogged down. It was a "permanent" condition, once the engine was in that state it never recovered, unlike with the IACV recycle which resolved after a few seconds.He had a Brise starter ...An oscilloscope showed the battery voltage dropping to 4.3V on cranking! It was tripping the ECU into some strange malfunctioning state that it didn't recover from.We swapped the Brise for a standard Magneton and all of the problems immediately disappeared.With the Brise, we were struggling to get a good start and get the engine runnig normally at all. Since swapping in the Magneton he's put thousands of miles on it without any repetition of the issue.I was only reminded of this today as Sam contacted me to say it was misbehaving again ... but this turned out to be a couple of corroded connections this time and was quickly resolved.It is odd to think that the starter can cause problems which persist long after the engine has started, especially when the engine was cranking over strongly; you kind of think it has done its job and is irrelevant once the engine starts. But that's what was causing it all for sure. Link to comment Share on other sites More sharing options...
anthonym Posted September 18, 2021 Share Posted September 18, 2021 Sounds like a challenge for Pedro.http://serverside.pw/Starter-motor/Index-Pedro's%20Caterham%20R500%20Operation%202006.htmlthis fixed a click of death problem. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now