Version 0.9.13 uploaded to github (link in sig). This version has NOT been tested extensively. Due to rain today I can't drive it because I've yet to seal the enclosure and don't want to risk water infiltration. Yesterday's test drive wasn't great but some small bugs have since been fixed. It felt like some cylinders might have been missing intermittently.
Major changes:
1) revised dwellLookup so it returns total # of degrees for dwell requirement in two components - # of cylinders ahead of current, and remaining degrees. Logging reflects this new convention so for example if spark advance is 28 and dwell requirement is 38, dwell will be reported as D0.66. Anything over 89 degrees will be D1.xx and so forth.
2) #1 was done to simplify the dwellCoils() routine so less math is required
3) main loop has major cleanup and some prioritization trees so more time critical functions are acted on with higher priority
4) some ISR cleanups and optimization
5) removed the low res falling edge toggle code in the ISR after sequence is detected
6) map sensing for accel comp adder has been improved and tested - optional output #1 on pin A0 is used to mirror the state of accelComp variable for in-car testing and tuning of map threshold
That's what I can remember offhand anyway. :-) As always smarter coding suggestions are always welcome.
I'm not going to have a chance to write up a proper assembly guide for several days, but here's a quick stab at what is fresh in my mind.
Attached is a bill of materials with resistor color codes for those who don't know them offhand. I would cite a few of the phrases I was taught in order to aid memorization, but that was from a much less politically correct era and I'm afraid it would get me banned. :-)
All values for required components are silk screened on the board. You will probably need a magnifying glass. If there is no value for a resistor or capacitor and only a component number that means the component is optional and will need to be selected based on your particular application for that input or output.
Obviously, mind the key marking on the Atmega.
The 5v regulator can be attached to the board with a 1/8" pop rivet or a 3mm x 8mm screw and nut. I don't believe a heat sink will be required but a small sheet metal style one could possibly be used if you'd like to err on the side of caution.
Due to the size of the component side solder pads, the crystal should probably have a mica insulator to prevent possible shorts. Since I couldn't find anything on short notice I used a business card temporarily between the PCB and the crystal's metal case while soldering to provide a small air gap. Solder these joints without going overboard on the solder and you should be fine.
The polarization marks on the electrolytic capacitors go in pointing toward each other.
Resistor values for R1 and R2 should be measured with a known good meter and recorded (ideally on the board). These values can be fed into the source to fine-tune the voltage divider network for the ignition circuit adc formula.
EDIT3: these values go here
The LEDs go in with the short leg (cathode / negative) closest to the board edge. If you happen to cut the legs to the same length you can identify the cathode by looking at the internal mechanics of the LED. On these particular chemistry LEDs the larger piece (generally referred to as the "anvil") is on the cathode / negative side.Code:// plug-in your values for R1 and R2 here (voltage divider network) // be sure to include mantissa of zero or the precompiler will convert to integers and data will be lost #define R1_VAL 9850.0 #define R2_VAL 3844.0
The plating on these boards is pretty thick so try to get everything right the first time. Desoldering attempts haven't worked out very well for me.
Good luck!
EDIT1: BTW, after programming be sure to disconnect the serial adapter or if you intend to log the datastream remove the connection for the DTR pin or the controller will be reset by the serial adapter. I use a six pin IDC male to male connector between two female connectors and offset it by one pin as shown in this picture from post # 356. Just keep in mind if your engine stalls immediately upon starting logging you forgot to disconnect the programming pin.
Also, for programming choose board type "Arduino/Genuino Uno" from the Arduino Tools menu.
EDIT2: It looks like I might be out of commission for a while now. I've been meaning to get a camera in the #6 and #8 bores for several weeks, and this is what I found on the inboard side of #6 cyl wall.
Pic (click)
I think I might have a broken or bent skirt there. Whatever it is, something's not good. Hoping to avoid the boring machine!
Bookmarks