Ghostchips

Members
  • Content Count

    4,651
  • Joined

  • Last visited

  • Days Won

    4

Ghostchips last won the day on April 7 2018

Ghostchips had the most liked content!

Community Reputation

4,621 Excellent

1 Follower

About Ghostchips

  • Rank
    Committed

Profile Information

  • Gender
    Not Telling
  • Interests
    Cars & stuff, like motorbikes, things with engines.

Converted

  • Local Area
    Northland

Recent Profile Visitors

1,566 profile views
  1. Yes i found enough pieces of bronze ones to make about 80% of one, then faked the rest with bits from the rustiest one i could find. Not sure why i spent about...50 hours on it? It's a ...questionable? design, like, Victorian era "I just designed an engine that runs on gas & want to run it on liquid fuel & this is the best I have" design. Not horrible, just weird. They have a 'toilet lid' looking flapper in them and a bowl of gas, and tubes, and the flapper not only regulates how much air (yes air) gets sucked into the main jet but opens at speed as a kind of mixing valve? And doubles as a backfire arrestor. Weird, logical enough, but horridly old fashioned.
  2. I picked through a bucket of parts & found them. Should be enough parts for 1 good one. I think the parts carb' was one you gave me too. Do you need a giant 3 litre lawnmower engine carb?
  3. Huh.... someone gave me rusty carb's. At first i couldn't find any, now i have spares.
  4. Forget that one, the new tune is better. That one sounded like a series of tiny gearshifts, kind of like an early fast&furious movie. Eww why is there a digital thing on my dash? Oh, if i look closer it's an exhaust temp' sensor. But the gauge seems to have suffered damage from a 25 volt alternating current charging system. But it worked for a month so i guess i got enough data...
  5. I thought ellerslie was fine as long as someone gets broken leaky BW35 on their doorstep if they complain?
  6. Would have but i think i'd get lost again. Great idea though.
  7. If i increment the math side of things by 100 it stays at full advance all the time. By 1,000 - 10,000, same thing. It even advances while sitting there not turning over, but will retard while running. Please tell me how bad my math is.
  8. Don't mind this, it's just a basic, primitive tune i spent the afternoon adjusting // constants won't change. Used here to set a pin number: const int coil1 = 3; const int coil2 = 5; const int coil3 = 7; const int coil4 = 9; const int sensorPin1 = A4; const int sensorPin2 = A1; const int sensorPin3 = A2; const int sensorPin4 = A3; int sensorValue = 0; int sensorThreshold = 200; int sensorMax = 0; // Variables will change: volatile int coilState = LOW; volatile int coilPin = LOW; volatile int sparkTriggerDelayActive = false; //added this to try & see if i can delay spark at low RPM. volatile int sparkTriggerDelay = 0; volatile unsigned long rpmCurrMicros= 0; volatile unsigned long rpmOldMicros = 0; volatile int sensor1TriggerCounter = 0; // counter for the number of button presses volatile int sensorTriggerState = false; // current state of the button volatile int lastsensorTriggerState = true; // previous state of the button/sensor in this case. // constants won't change: // Generally, you should use "unsigned long" for variables that hold time // The value will quickly become too large for an int to store const long dwell = 10; // but this is how long the "points" are open, open longer reduces duty cycle of coils. // constants won't change: const long coilCharge = 2; // interval at which to charge coil (milliseconds) void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(coil1, OUTPUT); pinMode(coil2, OUTPUT); pinMode(coil3, OUTPUT); pinMode(coil4, OUTPUT); pinMode(A4, INPUT_PULLUP); pinMode(A1, INPUT_PULLUP); pinMode(A2, INPUT_PULLUP); pinMode(A3, INPUT_PULLUP); } void activateCoilsIfLow(uint8_t inPin, uint8_t outPin) { volatile unsigned long timestamp = 0; sensorTriggerState = true; if (analogRead(inPin) <= sensorThreshold) { if (lastsensorTriggerState = (false)) { delay(sparkTriggerDelay); lastsensorTriggerState = true; } else { coilState = HIGH; coilPin = HIGH; digitalWrite(outPin, HIGH); timestamp = millis(); while (coilState == HIGH && coilPin == HIGH && (timestamp + coilCharge) > millis()); //Busy wait digitalWrite(outPin, LOW); coilPin = LOW; timestamp = millis(); while (coilState == HIGH && coilPin == LOW && (timestamp + dwell) > millis()); coilState = LOW; coilPin = LOW; } } else if (analogRead(inPin) >= sensorThreshold) { sensorTriggerState = false; if (sensorTriggerState != lastsensorTriggerState) { rpmOldMicros = rpmCurrMicros; rpmCurrMicros = micros(); lastsensorTriggerState = false; rpmConsultRatioTable(); } } } void loop() { activateCoilsIfLow(sensorPin1, coil1); activateCoilsIfLow(sensorPin3, coil3); activateCoilsIfLow(sensorPin2, coil4); activateCoilsIfLow(sensorPin4, coil2); } void rpmConsultRatioTable() { if (rpmCurrMicros - rpmOldMicros >= 497512) //sub250rpm { sparkTriggerDelay =0; } else if (rpmCurrMicros - rpmOldMicros <= 255024) //125rpm { sparkTriggerDelay =57; //prev'55 } else if (rpmCurrMicros - rpmOldMicros <= 169491) //177rpm { sparkTriggerDelay =39; //prev' 37 } else if (rpmCurrMicros - rpmOldMicros <= 127512) //250rpm { sparkTriggerDelay =27; //at 250 RPM and 45 degree sensor advance, this would be 30ms to TDC, subtract 2ms for coil charging and subtract more m.s. for advance } else if (rpmCurrMicros - rpmOldMicros <= 85008) //375rpm { sparkTriggerDelay =16; } else if (rpmCurrMicros - rpmOldMicros <= 61000) //500rpm { sparkTriggerDelay =11; } else if (rpmCurrMicros - rpmOldMicros <= 48000) //625rpm { sparkTriggerDelay =7; } else if (rpmCurrMicros - rpmOldMicros <= 41000) //750rpm { sparkTriggerDelay =2; } else if (rpmCurrMicros - rpmOldMicros <= 31500) //just under 1000rpm { sparkTriggerDelay =0; } } Posting this here so i can find it later if i'm not home. Side note: i am probably the only person using milliseconds to determine when to fire the plug compared to using actual degrees.
  9. After deciding that i can't really devise a means of making a sparkplug ionization measuring device at home... Has anyone here used inductance on the coil lead to calculate the delay of firing a coil to the point of the spark occurring? Bonus points if it's an earth lead on a C.o.P. setup.
  10. If you're asking how much of the closing face needs to be lapped to fit. It should have a minimum ring, if the seat is cut on 2 angles and the valve face would be lapped for maybe half a mill' or so? Reason being that sharp edge cuts through carbon, but is still wide enough to dissipate heat. Obviously i do 1-2 mm on my dinosaurs so maybe you shouldn't take my advice. Or i answered a different question altogether.
  11. I have no idea what that made cold starting easier but in the limited tests i did (2 tests. Not very accurate) it did.
  12. Not sure how to test the frequency of the main loop without an oscilloscope so i had it serial print for 30 seconds. Which told me the baud rate was the limiting factor. E.G. Versus Edit: what happened to the text with the other rate ect? Anyhow. adding "coilState = LOW" in the 'else' statement has transformed the open road running. Work much like i intended (Duhh what an oversight that was!) Would drive fine. But it's now hard to start & misses at 120-500 RPM? Can't figure that one out.
  13. Good observation, but if that happened it'd cut power to the coil which would result in a spark. So not a bad result as it'd be "on time" rather than lagging.
  14. Edit: Forgot to mention this is a nano 328P about 16.000hrtz? If that makes a difference to the way it runs. So.. this runs really weird on manual advance mode, seems to lag at certain RPM, then suddenly the timing will become accurate for a slightly higher RPM, then lag for the few RPM above that. Revving stationary it'll be fine at idle to ...1100RPM? cough & pop out the carb' until 1700 RPM. On the road you can feel it lurching at cruise speeds, each time the RPM rises or falls across that threshold that spans maybe... 10RPM layers where the lag disappears & re-appears, judging from the exhaust sound and gas temp' gauge reading 50-70 degrees above normal it's running retarded. Feels like a cross between riding a horse and "Run out of gas & sloshing the last bit of fuel in the carb' bowl over the main jet" surging. At 1600-1700 RPM or so it'll lose that lag & fire on time every time, feels like someone hit Vtec. Tried changing micros to millis ect, same effect. 6,000 worked better than 10,000 micros. Meanwhile. This crappy delay code will run perfectly. But doesn't have any advance/retard (and if i tried to add that i'd lose lots of time to calculate it due to the delay...)