Merge branch 'master' into master

This commit is contained in:
Josh Stewart 2017-08-31 14:46:06 +10:00 committed by GitHub
commit 976c18fb26
32 changed files with 81116 additions and 30115 deletions

View File

@ -0,0 +1,128 @@
$fn = 100;
// standard board thicknesses (mm)
PCB_THICK_06 = 0.6;
PCB_THICK_08 = 0.8;
PCB_THICK_10 = 1.0;
PCB_THICK_12 = 1.2;
PCB_THICK_16 = 1.6;
// standard board hole diameters
PCB_HOLE_30 = 3.0;
HEIGHT = 1.8;
// standard stand-off heights
STANDOFF_4 = 3.0;
// base dimensions
BASE_THICKNESS = 3.0;
BASE_DIAMETER = 12.0;
module pcb_support(coord,hole_dia,pcb_thick,standoff_height)
{
translate(coord)
{
standoff(hole_dia,standoff_height);
translate([standoff_height,0,0]) clip(hole_dia,pcb_thick,standoff_height);
}
}
module baseWedge(hole_dia,base_thickness)
{
standoff_side = hole_dia*1.2; // width of standoff
//standoff_thickness = hole_dia * .75; // thickness of standoff bar
standoff_thickness = HEIGHT; // thickness of standoff bar
translate([0,-base_thickness,0])
linear_extrude(height=standoff_thickness)
{
polygon
(
points=
[
[-(standoff_side/2+base_thickness),0],
[-standoff_side/2,base_thickness],
[standoff_side/2,base_thickness],
[standoff_side/2+base_thickness,0]
]
);
}
}
module standoff(hole_dia,height,base_thickness)
{
standoff_side = hole_dia*1.2; // width of standoff
//standoff_thickness = hole_dia * .75; // thickness of standoff bar
standoff_thickness = HEIGHT; // thickness of standoff bar
shaft_width = hole_dia * 1.0; // width of clip part that rests inside of the PCB hole
slot_length = height/5-2; // length of cut slot
slot_width = shaft_width * 0.4; // amount of gap in the slot
base_inset = 0.1; // inset of wedge into bottom of base
// standoff
translate([-standoff_side/2,0,0])
{
difference()
{
cube([standoff_side,height,standoff_thickness]);
translate([standoff_side/2-slot_width/2,height-slot_length,0]) cube([slot_width,slot_length,standoff_thickness]);
}
}
difference()
{
baseWedge(hole_dia,base_thickness);
translate([-(standoff_side+base_thickness*2)/2,-base_thickness,0]) cube([standoff_side+base_thickness*2,base_inset,standoff_thickness]);
}
}
//pcb_support([0,0,0],3,PCB_THICK_16,8);
module clip(hole_dia,pcb_thick)
{
clip_length = pcb_thick * 3; // total length of clip
clip_width = hole_dia * 1.2; // width of clip at its widest
//clip_thickness = hole_dia * .75; // thickness of of the entire clip in the Z direction
clip_thickness = HEIGHT; // thickness of of the entire clip in the Z direction
shaft_length = pcb_thick * 1.1; // length of clip part that rests inside of the PCB hole
shaft_width = hole_dia * 0.9; // width of clip part that rests inside of the PCB hole
slot_length = clip_length; // length of cut slot
slot_width = shaft_width * 0.4; // amount of gap in the slot
clip_lip = 0.4; // overhange on one side
clip_chamfer = hole_dia/3; // side of triangle taken off of clip to produce a chamfer
translate([-shaft_width/2,0,0])
linear_extrude(height=clip_thickness)
{
polygon
(
points=
[
// left clip
[0,0],
[0,shaft_length],
[-clip_lip,shaft_length+clip_chamfer],
[-clip_lip,clip_length-clip_chamfer],
[0,clip_length],
[(shaft_width-slot_width)/2,clip_length],
[(shaft_width-slot_width)/2,clip_length-slot_length],
// right clip
[(shaft_width-slot_width)/2+slot_width,clip_length-slot_length],
[(shaft_width-slot_width)/2+slot_width,clip_length],
[shaft_width,clip_length],
[shaft_width+clip_lip,clip_length-clip_chamfer],
[shaft_width+clip_lip,shaft_length+clip_chamfer],
[shaft_width,shaft_length],
[shaft_width,0]
]
);
}
}
scale([1.8,3.2,2.5])
{
translate([0,STANDOFF_4,0]) clip(PCB_HOLE_30,PCB_THICK_16);
standoff(PCB_HOLE_30,STANDOFF_4,BASE_THICKNESS);
}

View File

@ -1,26 +0,0 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10R,0.984252X0.984252*%
%ADD11C,0.008000*%
%ADD10C,0.008*%
%LNCONTOUR*%
G90*
G70*
G54D10*
G54D11*
X4Y980D02*
X980Y980D01*
X980Y4D01*
X4Y4D01*
X4Y980D01*
D02*
G04 End of contour*
M02*

View File

@ -1,39 +0,0 @@
; NON-PLATED HOLES START AT T1
; THROUGH (PLATED) HOLES START AT T100
M48
INCH
T100C0.039370
T101C0.035000
T102C0.015748
%
T100
X003694Y006148
X003694Y004148
X006694Y005148
X006694Y003148
X003694Y005148
X003694Y003148
X006694Y006148
X006694Y004148
T101
X008194Y008148
X008194Y001398
X004194Y008148
X004194Y001398
T102
X002694Y001148
X005444Y003148
X004944Y004148
X002944Y006898
X001444Y002648
X000444Y009148
X002444Y002648
X001944Y001398
X009444Y007398
X005694Y007398
X004944Y001148
X000694Y007148
X005194Y008398
X006444Y007398
T00
M30

View File

@ -1,136 +0,0 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10C,0.049370*%
%ADD11C,0.085000*%
%ADD12C,0.089370*%
%ADD13R,0.065118X0.069055*%
%ADD14R,0.069055X0.065118*%
%ADD15R,0.089370X0.089370*%
%ADD16C,0.026000*%
%LNMASK0*%
G90*
G70*
G54D10*
X569Y740D03*
X644Y740D03*
X944Y740D03*
G54D11*
X819Y815D03*
X419Y815D03*
G54D10*
X519Y840D03*
X544Y315D03*
X194Y140D03*
X269Y115D03*
X69Y715D03*
G54D11*
X819Y140D03*
X419Y140D03*
G54D12*
X369Y615D03*
X669Y615D03*
X369Y515D03*
X669Y515D03*
X369Y415D03*
X669Y415D03*
X369Y315D03*
X669Y315D03*
G54D10*
X494Y115D03*
X244Y265D03*
X144Y265D03*
X44Y915D03*
X294Y690D03*
X494Y415D03*
G54D13*
X869Y240D03*
X789Y240D03*
X869Y440D03*
X789Y440D03*
X119Y640D03*
X200Y640D03*
X144Y365D03*
X225Y365D03*
X114Y865D03*
X194Y865D03*
X569Y915D03*
X650Y915D03*
G54D14*
X544Y615D03*
X544Y534D03*
X119Y465D03*
X119Y546D03*
G54D13*
X344Y915D03*
X425Y915D03*
X869Y340D03*
X789Y340D03*
G54D14*
X569Y140D03*
X569Y221D03*
G54D13*
X794Y640D03*
X875Y640D03*
G54D14*
X669Y215D03*
X669Y134D03*
G54D15*
X369Y615D03*
G54D16*
X330Y240D02*
X308Y240D01*
D02*
X330Y215D02*
X308Y215D01*
D02*
X330Y190D02*
X308Y190D01*
D02*
X330Y165D02*
X308Y165D01*
D02*
X330Y140D02*
X308Y140D01*
D02*
X330Y115D02*
X308Y115D01*
D02*
X330Y90D02*
X308Y90D01*
D02*
X330Y65D02*
X308Y65D01*
D02*
X118Y64D02*
X96Y64D01*
D02*
X118Y89D02*
X96Y89D01*
D02*
X118Y114D02*
X96Y114D01*
D02*
X118Y139D02*
X96Y139D01*
D02*
X118Y164D02*
X96Y164D01*
D02*
X118Y189D02*
X96Y189D01*
D02*
X118Y214D02*
X96Y214D01*
D02*
X118Y239D02*
X96Y239D01*
G04 End of Mask0*
M02*

View File

@ -1,77 +0,0 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10C,0.049370*%
%ADD11C,0.085000*%
%ADD12C,0.089370*%
%ADD13R,0.069055X0.065118*%
%ADD14R,0.065118X0.069055*%
%ADD15R,0.034000X0.097000*%
%ADD16R,0.089370X0.089370*%
%LNMASK1*%
G90*
G70*
G54D10*
X569Y740D03*
X644Y740D03*
X944Y740D03*
G54D11*
X819Y815D03*
X419Y815D03*
G54D10*
X519Y840D03*
X544Y315D03*
X194Y140D03*
X269Y115D03*
X69Y715D03*
G54D11*
X819Y140D03*
X419Y140D03*
G54D12*
X369Y615D03*
X669Y615D03*
X369Y515D03*
X669Y515D03*
X369Y415D03*
X669Y415D03*
X369Y315D03*
X669Y315D03*
G54D10*
X494Y115D03*
X244Y265D03*
X144Y265D03*
X44Y915D03*
X294Y690D03*
X494Y415D03*
G54D13*
X819Y590D03*
X819Y509D03*
G54D14*
X819Y665D03*
X900Y665D03*
G54D13*
X194Y365D03*
X194Y446D03*
G54D15*
X94Y584D03*
X144Y584D03*
X194Y584D03*
X244Y584D03*
X244Y790D03*
X194Y790D03*
X144Y790D03*
X94Y790D03*
G54D14*
X219Y65D03*
X139Y65D03*
G54D16*
X369Y615D03*
G04 End of Mask1*
M02*

View File

@ -1,98 +0,0 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10R,0.055118X0.059055*%
%ADD11R,0.059055X0.055118*%
%ADD12C,0.016000*%
%LNPASTEMASK0*%
G90*
G70*
G54D10*
X869Y240D03*
X789Y240D03*
X869Y440D03*
X789Y440D03*
X119Y640D03*
X200Y640D03*
X144Y365D03*
X225Y365D03*
X114Y865D03*
X194Y865D03*
X569Y915D03*
X650Y915D03*
G54D11*
X544Y615D03*
X544Y534D03*
X119Y465D03*
X119Y546D03*
G54D10*
X344Y915D03*
X425Y915D03*
X869Y340D03*
X789Y340D03*
G54D11*
X569Y140D03*
X569Y221D03*
G54D10*
X794Y640D03*
X875Y640D03*
G54D11*
X669Y215D03*
X669Y134D03*
G54D12*
X330Y240D02*
X308Y240D01*
D02*
X330Y215D02*
X308Y215D01*
D02*
X330Y190D02*
X308Y190D01*
D02*
X330Y165D02*
X308Y165D01*
D02*
X330Y140D02*
X308Y140D01*
D02*
X330Y115D02*
X308Y115D01*
D02*
X330Y90D02*
X308Y90D01*
D02*
X330Y65D02*
X308Y65D01*
D02*
X118Y64D02*
X96Y64D01*
D02*
X118Y89D02*
X96Y89D01*
D02*
X118Y114D02*
X96Y114D01*
D02*
X118Y139D02*
X96Y139D01*
D02*
X118Y164D02*
X96Y164D01*
D02*
X118Y189D02*
X96Y189D01*
D02*
X118Y214D02*
X96Y214D01*
D02*
X118Y239D02*
X96Y239D01*
G04 End of PasteMask0*
M02*

View File

@ -1,39 +0,0 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10R,0.059055X0.055118*%
%ADD11R,0.055118X0.059055*%
%ADD12R,0.024000X0.087000*%
%LNPASTEMASK1*%
G90*
G70*
G54D10*
X819Y590D03*
X819Y509D03*
G54D11*
X819Y665D03*
X900Y665D03*
G54D10*
X194Y365D03*
X194Y446D03*
G54D12*
X94Y584D03*
X144Y584D03*
X194Y584D03*
X244Y584D03*
X244Y790D03*
X194Y790D03*
X144Y790D03*
X94Y790D03*
G54D11*
X219Y65D03*
X139Y65D03*
G04 End of PasteMask1*
M02*

View File

@ -1,121 +0,0 @@
*Pick And Place List
*Company=
*Author=
*eMail=
*
*Project=VR Conditioner v2
*Date=23:30:08
*CreatedBy=Fritzing 0.9.2b.11.19.8d2d5970658f0bed09c661c9ea9a515b5f40f44c
*
*
*Coordinates in mm, always center of component
*Origin 0/0=Lower left corner of PCB
*Rotation in degree (0-360, math. pos.)
*
*No;Value;Package;X;Y;Rotation;Side;Name
1;;;22.0472;-14.8654;0;Bottom;Copper Fill43
2;;;15.9512;-6.2802;0;Bottom;Copper Fill20
3;10k;0805 [SMD];4.0589;-16.2511;180;Bottom;R13
4;;;18.9992;-15.602;0;Bottom;Copper Fill42
5;;;14.2748;-8.0455;0;Bottom;Copper Fill53
6;;;14.4145;-18.3452;0;Bottom;Copper Fill55
7;;;2.2098;-18.2055;0;Bottom;Copper Fill29
8;;;3.66888;-6.72612;0;Bottom;Via3
9;;;20.32;-11.8428;0;Bottom;Copper Fill12
10;;;22.6808;-9.35918;90;Bottom;TXT3
11;;;13.2842;-8.0455;0;Bottom;Copper Fill30
12;;;18.7452;-11.157;0;Bottom;Copper Fill44
13;;so08;4.30388;-17.4449;0;Top;IC2
14;;;13.1445;-20.8852;0;Bottom;Copper Fill31
15;;;8.4582;-6.1151;0;Bottom;Copper Fill34
16;;;16.3688;-18.7911;0;Bottom;Via14
17;;;12.3698;-4.3244;0;Bottom;Copper Fill23
18;;;7.493;-6.8898;0;Bottom;Copper Fill47
19;;;6.6802;-1.8606;0;Bottom;Copper Fill26
20;;;7.4549;-17.0752;0;Bottom;Copper Fill64
21;;DIP (Dual Inline) [THT];13.1939;-11.8061;0;Bottom;IC1
22;;;6.84388;-2.91612;0;Bottom;Via12
23;;;6.3246;-13.1636;0;Bottom;Copper Fill9
24;;;15.4178;-3.1814;0;Bottom;Copper Fill50
25;;;2.3368;-3.6386;0;Bottom;Copper Fill48
26;;;15.5194;-13.189;0;Bottom;Copper Fill13
27;;;12.5589;-2.91612;0;Bottom;Via1
28;;;13.0048;-10.5855;0;Bottom;Copper Fill57
29;;;14.4145;-19.3358;0;Bottom;Copper Fill33
30;1nF;0805 [SMD, multilayer];3.03388;-12.8311;90;Bottom;C5
31;;;22.1488;-3.5624;0;Bottom;Copper Fill22
32;;;6.477;-20.0851;0;Bottom;Copper Fill61
33;;;6.1849;-20.8344;0;Bottom;Copper Fill60
34;;;1.12888;-23.2361;0;Bottom;Via4
35;220;0805 [SMD];4.5489;-1.6461;180;Top;R2
36;;;20.536;-1.021;0;Bottom;TXT5
37;;;13.8049;-7.5502;0;Bottom;Copper Fill52
38;10k;0805 [SMD];3.91387;-21.9661;180;Bottom;R9
39;0.01µF;0805 [SMD, multilayer];21.0588;-8.6311;0;Bottom;C2
40;10k;0805 [SMD];17.0039;-4.43111;-90;Bottom;R6
41;;;2.5654;-23.476;0;Bottom;Copper Fill1
42;;;13.1939;-21.3311;0;Bottom;Via8
43;;;1.76388;-18.1561;0;Bottom;Via13
44;;;2.7432;-9.9632;0;Bottom;Copper Fill45
45;1k;0805 [SMD];13.8289;-14.5911;-90;Bottom;R3
46;;;4.93888;-3.55112;0;Bottom;Via10
47;;;23.4433;-6.87236;90;Bottom;TXT1
48;;;19.736;-0.964559;0;Bottom;TXT4
49;10k;0805 [SMD];20.8138;-13.9561;90;Top;R16
50;;;3.5052;-19.92;0;Bottom;Copper Fill5
51;10k;0805 [SMD];4.6939;-9.2661;180;Bottom;R11
52;;;7.4549;-17.0752;0;Bottom;Copper Fill35
53;;;18.923;-4.7816;0;Bottom;Copper Fill18
54;1µF;0805 [SMD, multilayer];21.0588;-11.1711;0;Bottom;C3
55;;;6.477;-14.8527;0;Bottom;Copper Fill59
56;4.7k;THT;15.7339;-3.55111;180;Bottom;R12
57;;;7.4549;-18.0658;0;Bottom;Copper Fill63
58;;;3.2004;-7.6518;0;Bottom;Copper Fill16
59;220;0805 [SMD];4.93888;-10.2911;-90;Top;R1
60;;;14.6304;-16.6942;0;Bottom;Copper Fill8
61;;;7.9248;-17.5451;0;Bottom;Copper Fill65
62;;;13.6398;-21.3551;0;Bottom;Copper Fill54
63;;;6.2484;-16.0084;0;Bottom;Copper Fill38
64;;;22.6568;-21.6726;0;Bottom;Copper Fill2
65;;;10.3632;-14.4082;0;Bottom;Copper Fill7
66;;;23.9888;-18.7911;0;Bottom;Via15
67;;;13.6398;-21.3551;0;Bottom;Copper Fill32
68;10k;0805 [SMD];15.4889;-23.2361;180;Bottom;R7
69;;;7.47888;-17.5211;0;Bottom;Via5
70;;;6.6294;-3.791;0;Bottom;Copper Fill49
71;;;3.6449;-20.8344;0;Bottom;Copper Fill62
72;;;12.5589;-10.5361;0;Bottom;Via6
73;;;2.032;-11.4618;0;Bottom;Copper Fill14
74;1nF;0805 [SMD, multilayer];9.77387;-23.2361;180;Bottom;C4
75;;;17.018;-9.7854;0;Bottom;Copper Fill46
76;;;8.0264;-21.952;0;Bottom;Copper Fill3
77;;;18.4404;-15.9576;0;Bottom;Copper Fill10
78;;;11.684;-17.9134;0;Bottom;Copper Fill39
79;;;17.0434;-21.4186;0;Bottom;Copper Fill40
80;;;6.985;-4.6038;0;Bottom;Copper Fill21
81;;;4.7244;-20.4026;0;Bottom;Copper Fill6
82;;;21.7678;-7.3724;0;Bottom;Copper Fill17
83;1k;0805 [SMD];21.2039;-16.2511;180;Bottom;R5
84;;;3.8354;-22.1298;0;Bottom;Copper Fill37
85;;;6.20888;-6.72612;0;Bottom;Via2
86;;;14.4639;-18.7911;0;Bottom;Via16
87;;;14.5796;-2.902;0;Bottom;Copper Fill25
88;;;1.5494;-14.9924;0;Bottom;Copper Fill11
89;;;2.1844;-21.4186;0;Bottom;Copper Fill36
90;;;21.8702;-9.95258;90;Bottom;TXT2
91;;;4.318;-2.6988;0;Bottom;Copper Fill24
92;;;13.8289;-7.99612;0;Bottom;Via9
93;0.1µF;0805 [SMD, multilayer];21.0588;-6.0911;0;Bottom;C1
94;;QSOP16;5.42149;-4.17341;0;Bottom;MAX9926
95;10k;0805 [SMD];21.8389;-16.8861;0;Top;R15
96;10k;0805 [SMD];14.4639;-4.5761;90;Bottom;R4
97;;;21.7678;-9.9124;0;Bottom;Copper Fill15
98;;;15.6972;-20.682;0;Bottom;Copper Fill4
99;;;6.1849;-15.602;0;Bottom;Copper Fill58
100;;;12.5349;-11.0808;0;Bottom;Copper Fill56
101;;;16.0528;-10.5855;0;Bottom;Copper Fill51
102;4.7k;THT;15.7339;-20.6961;180;Bottom;R10
103;;;11.2776;-7.22;0;Bottom;Copper Fill19
104;;;19.3802;-19.3358;0;Bottom;Copper Fill41
105;;;1.7145;-18.7008;0;Bottom;Copper Fill27
106;;;1.2192;-18.2055;0;Bottom;Copper Fill28

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,31 @@
; NON-PLATED HOLES START AT T1
; THROUGH (PLATED) HOLES START AT T100
M48
INCH
T100C0.035000
T101C0.015748
T102C0.039370
T103C0.038000
%
T100
X009921Y009135
X005921Y009135
X009921Y008135
X005921Y008135
T101
X005421Y001885
X007671Y003135
T102
X004171Y006135
X007171Y007135
X004171Y004135
X007171Y005135
X004171Y007135
X004171Y005135
X007171Y006135
X007171Y004135
T103
X007921Y001510
X008921Y001510
T00
M30

View File

@ -0,0 +1,44 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10C,0.085000*%
%ADD11C,0.089370*%
%ADD12C,0.049370*%
%ADD13C,0.088000*%
%ADD14R,0.089370X0.089370*%
%LNMASK0*%
G90*
G70*
G54D10*
X592Y814D03*
X992Y814D03*
G54D11*
X417Y714D03*
X717Y714D03*
X417Y614D03*
X717Y614D03*
X417Y514D03*
X717Y514D03*
X417Y414D03*
X717Y414D03*
G54D10*
X992Y914D03*
X592Y914D03*
G54D12*
X767Y314D03*
G54D13*
X892Y151D03*
X792Y151D03*
G54D12*
X542Y189D03*
G54D14*
X417Y714D03*
G04 End of Mask0*
M02*

View File

@ -0,0 +1,122 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10C,0.085000*%
%ADD11C,0.089370*%
%ADD12C,0.049370*%
%ADD13C,0.088000*%
%ADD14R,0.089370X0.089370*%
%ADD15R,0.065118X0.069055*%
%ADD16R,0.069055X0.065118*%
%ADD17C,0.026000*%
%LNMASK1*%
G90*
G70*
G54D10*
X592Y814D03*
X992Y814D03*
G54D11*
X417Y714D03*
X717Y714D03*
X417Y614D03*
X717Y614D03*
X417Y514D03*
X717Y514D03*
X417Y414D03*
X717Y414D03*
G54D10*
X992Y914D03*
X592Y914D03*
G54D12*
X767Y314D03*
G54D13*
X892Y151D03*
X792Y151D03*
G54D12*
X542Y189D03*
G54D14*
X417Y714D03*
G54D15*
X830Y714D03*
X910Y714D03*
X830Y614D03*
X910Y614D03*
X830Y514D03*
X910Y514D03*
G54D16*
X830Y426D03*
X830Y345D03*
X930Y426D03*
X930Y345D03*
G54D15*
X317Y914D03*
X398Y914D03*
X767Y1001D03*
X848Y1001D03*
G54D16*
X242Y914D03*
X242Y994D03*
G54D15*
X242Y664D03*
X323Y664D03*
X317Y564D03*
X236Y564D03*
X242Y464D03*
X323Y464D03*
G54D17*
X690Y138D02*
X668Y138D01*
D02*
X690Y163D02*
X668Y163D01*
D02*
X690Y188D02*
X668Y188D01*
D02*
X690Y213D02*
X668Y213D01*
D02*
X690Y238D02*
X668Y238D01*
D02*
X690Y263D02*
X668Y263D01*
D02*
X690Y288D02*
X668Y288D01*
D02*
X690Y313D02*
X668Y313D01*
D02*
X478Y314D02*
X456Y314D01*
D02*
X478Y289D02*
X456Y289D01*
D02*
X478Y264D02*
X456Y264D01*
D02*
X478Y239D02*
X456Y239D01*
D02*
X478Y214D02*
X456Y214D01*
D02*
X478Y189D02*
X456Y189D01*
D02*
X478Y164D02*
X456Y164D01*
D02*
X478Y139D02*
X456Y139D01*
G04 End of Mask1*
M02*

View File

@ -0,0 +1,93 @@
G04 MADE WITH FRITZING*
G04 WWW.FRITZING.ORG*
G04 DOUBLE SIDED*
G04 HOLES PLATED*
G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ASAXBY*%
%FSLAX23Y23*%
%MOIN*%
%OFA0B0*%
%SFA1.0B1.0*%
%ADD10R,0.055118X0.059055*%
%ADD11R,0.059055X0.055118*%
%ADD12C,0.016000*%
%LNPASTEMASK1*%
G90*
G70*
G54D10*
X830Y714D03*
X910Y714D03*
X830Y614D03*
X910Y614D03*
X830Y514D03*
X910Y514D03*
G54D11*
X830Y426D03*
X830Y345D03*
X930Y426D03*
X930Y345D03*
G54D10*
X317Y914D03*
X398Y914D03*
X767Y1001D03*
X848Y1001D03*
G54D11*
X242Y914D03*
X242Y994D03*
G54D10*
X242Y664D03*
X323Y664D03*
X317Y564D03*
X236Y564D03*
X242Y464D03*
X323Y464D03*
G54D12*
X690Y138D02*
X668Y138D01*
D02*
X690Y163D02*
X668Y163D01*
D02*
X690Y188D02*
X668Y188D01*
D02*
X690Y213D02*
X668Y213D01*
D02*
X690Y238D02*
X668Y238D01*
D02*
X690Y263D02*
X668Y263D01*
D02*
X690Y288D02*
X668Y288D01*
D02*
X690Y313D02*
X668Y313D01*
D02*
X478Y314D02*
X456Y314D01*
D02*
X478Y289D02*
X456Y289D01*
D02*
X478Y264D02*
X456Y264D01*
D02*
X478Y239D02*
X456Y239D01*
D02*
X478Y214D02*
X456Y214D01*
D02*
X478Y189D02*
X456Y189D01*
D02*
X478Y164D02*
X456Y164D01*
D02*
X478Y139D02*
X456Y139D01*
G04 End of PasteMask1*
M02*

View File

@ -0,0 +1,67 @@
*Pick And Place List
*Company=
*Author=
*eMail=
*
*Project=VR Conditioner v3
*Date=19:16:10
*CreatedBy=Fritzing 0.9.3b.04.19.5c895d327c44a3114e5fcc9d8260daf0cbb52806
*
*
*Coordinates in mm, always center of component
*Origin 0/0=Lower left corner of PCB
*Rotation in degree (0-360, math. pos.)
*
*No;Value;Package;X;Y;Rotation;Side;Name
1;;DIP (Dual Inline) [THT];14.4059;-14.3144;0;Bottom;IC1
2;;;15.9512;-14.2933;0;Bottom;Copper Fill24
3;;;22.1742;-8.04494;0;Bottom;Copper Fill20
4;4.7k;THT;20.1209;-20.6644;0;Bottom;R12
5;;;19.4858;-7.96443;0;Bottom;Via14
6;;;6.0564;-7.14176;0;Bottom;TXT5
7;;;12.7;-19.3987;0;Bottom;Copper Fill2
8;1k;0805 [SMD];23.6134;-9.79692;90;Top;R4
9;4.7k;THT;20.1209;-23.2044;180;Bottom;R10
10;;;19.2786;-11.7787;0;Bottom;Copper Fill10
11;;;11.4554;-6.76224;0;Bottom;Copper Fill25
12;1nF;0805 [SMD, multilayer];6.15085;-24.2294;-90;Top;C4
13;;;16.9926;-11.4485;0;Bottom;Copper Fill9
14;;;13.9954;-14.4965;0;Bottom;Copper Fill1
15;10k;0805 [SMD];20.5109;-25.4269;0;Top;R7
16;;;19.2786;-14.1663;0;Bottom;Copper Fill8
17;;;17.1704;-14.2933;0;Bottom;Copper Fill7
18;;;17.5514;-6.76224;0;Bottom;Copper Fill29
19;;;18.5928;-4.28574;0;Bottom;Copper Fill23
20;;;4.572;-23.9707;0;Bottom;Copper Fill11
21;;;25.6196;-12.6698;-90;Bottom;TXT3
22;;;7.47786;-7.22642;0;Bottom;TXT4
23;;;17.9832;-16.3761;0;Bottom;Copper Fill3
24;10k;0805 [SMD];7.17586;-16.8544;0;Top;R13
25;0.01µF;0805 [SMD, multilayer];22.0984;-15.5844;0;Top;C2
26;;;13.7708;-4.78943;0;Bottom;Via15
27;;;21.082;-12.2613;0;Bottom;Copper Fill5
28;;;24.2316;-15.3601;0;Bottom;Copper Fill16
29;;;9.6012;-13.7091;0;Bottom;Copper Fill12
30;1k;0805 [SMD];21.0734;-9.79692;90;Top;R6
31;1nF;0805 [SMD, multilayer];7.03084;-14.3144;180;Top;C5
32;0.1µF;0805 [SMD, multilayer];22.0984;-13.0444;0;Top;C1
33;;THT;21.3909;-3.83692;90;Bottom;J1
34;;;17.1704;-16.8333;0;Bottom;Copper Fill6
35;;QSOP16;14.5583;-5.41172;180;Top;MAX9926
36;;;14.2735;-25.0931;0;Bottom;TXT1
37;;;20.701;-15.1061;0;Bottom;Copper Fill15
38;10k;0805 [SMD];7.17586;-11.7744;0;Top;R11
39;;;17.5514;-4.83184;0;Bottom;Copper Fill27
40;;;11.6586;-14.4711;0;Bottom;Copper Fill18
41;;;20.2946;-7.13054;0;Bottom;Copper Fill22
42;;;11.4554;-5.49224;0;Bottom;Copper Fill28
43;;;12.9286;-16.9349;0;Bottom;Copper Fill4
44;10k;0805 [SMD];9.08086;-23.2044;0;Top;R9
45;;;7.2644;-19.3733;0;Bottom;Copper Fill13
46;;;10.287;-19.0685;0;Bottom;Copper Fill14
47;;;17.2085;-3.37134;0;Bottom;Copper Fill26
48;;;9.9568;-14.2933;0;Bottom;Copper Fill19
49;;;22.4815;-12.723;-90;Bottom;IMG1
50;1µF;0805 [SMD, multilayer];22.0984;-18.1244;0;Top;C3
51;;;8.2804;-14.3187;0;Bottom;Copper Fill17
52;;;24.4094;-6.57174;0;Bottom;Copper Fill21

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" width="120" height="120" viewBox="0 0 120 120" xml:space="preserve">
<g id="board">
<rect fill="#338040" x="10" y="10" width="100" height="100" rx="15" ry="15"/>
</g>
<g id="silkscreen">
<rect fill="none" stroke="#FFFFFF" stroke-width="0.576" x="10" y="10" width="100" height="100" rx="15" ry="15"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 516 B

View File

@ -717,7 +717,7 @@ page = 11
;-------------------------------------------------------------------------------
[ConstantsExtensions]
[ConstantsExtensions]
requiresPowerCycle = nCylinders
requiresPowerCycle = pinLayout
requiresPowerCycle = fanPin
@ -948,7 +948,7 @@ menuDialog = main
TrigFilter = "Tuning of the trigger filter algorithm. The more aggressive the setting, the more noise will be removed, however this increases the chance of some true readings being filtered out (False positive). Medium is safe for most setups. Only select 'Aggressive' if no other options are working"
sparkMode = "Wasted Spark: Ignition outputs are on the channels <= half the number of cylinders. Eg 4 cylinder outputs on IGN1 and IGN2.\nSingle Channel: All ignition pulses are output on IGN1.\nWasted COP: Ignition pulses are output on all ignition channels up to the number of cylinders. Eg 4 cylinder outputs on all ignition channels. No valid for >4 cylinders"
IgInv = "Whether the spark fires when the ignition sign goes high or goes low. Most ignition systems 'Going Low' but please verify this as damage to coils can result from the incorrect selection"
IgInv = "Whether the spark fires when the ignition signal goes high or goes low. Nearly all ignition systems use 'Going Low' but please verify this as damage to coils can result from the incorrect selection. (NOTE: THIS IS NOT MEGASQUIRT. THIS SETTING IS USUALLY THE OPPOSITE OF WHAT THEY USE!)"
sparkDur = "The duration of the spark at full dwell. Typically around 1ms"
fanInv = ""
@ -1297,7 +1297,6 @@ menuDialog = main
dialog = crankingEnrichDialog, "Cranking Enrichment", yAxis
panel = cranking_enrich_curve
panel = wc_note
dialog = crankingIgnOptions, "Cranking Timing", yAxis
field = "Cranking bypass", ignBypassEnable
@ -1342,7 +1341,7 @@ menuDialog = main
field = "Note: This is the number of revolutions that will be skipped during"
field = "cranking before the injectors and coils are fired"
field = "Trigger edge", TrigEdge
field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 } ;Missing tooth and dual wheel
field = "Secondary trigger edge", TrigEdgeSec, { TrigPattern == 0 || TrigPattern == 2 || TrigPattern == 9 } ;Missing tooth, dual wheel and Miata 9905
field = "Trigger Filter", TrigFilter
field = "Re-sync every cycle", useResync, { TrigPattern == 2 || TrigPattern == 4 || TrigPattern == 7 } ;Dual wheel, 4G63 and Audi 135
field = ""

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -478,7 +478,7 @@ uint16_t correctionsDwell(uint16_t dwell)
uint16_t dwellPerRevolution = tempDwell + (uint16_t)(configPage2.sparkDur * 100); //Spark duration is in mS*10. Multiple it by 100 to get spark duration in uS
int8_t pulsesPerRevolution = 1;
//Single channel spark mode is the only time there will be more than 1 pulse per revolution on any given output
if( (configPage2.sparkMode == IGN_MODE_SINGLE) && (configPage1.nCylinders > 1) ) //No point in running this for 1 cylinder engines
if( ( (configPage2.sparkMode == IGN_MODE_SINGLE) || (configPage2.sparkMode == IGN_MODE_ROTARY) ) && (configPage1.nCylinders > 1) ) //No point in running this for 1 cylinder engines
{
pulsesPerRevolution = (configPage1.nCylinders >> 1);
dwellPerRevolution = dwellPerRevolution * pulsesPerRevolution;

View File

@ -1336,6 +1336,8 @@ void triggerSetup_Miata9905()
decoderIsSequential = true;
triggerActualTeeth = 8;
secondaryToothCount = 0;
toothLastToothTime = micros(); //Set a startup value here to avoid filter errors when starting
toothLastMinusOneToothTime = 0;
//Note that these angles are for every rising and falling edge
@ -1357,17 +1359,17 @@ void triggerSetup_Miata9905()
MAX_STALL_TIME = (3333UL * triggerToothAngle); //Minimum 50rpm. (3333uS is the time per degree at 50rpm)
triggerFilterTime = 1500; //10000 rpm, assuming we're triggering on both edges off the crank tooth.
triggerSecFilterTime = 0; // (int)(1000000 / (MAX_RPM / 60 * 2)) / 2;
triggerSecFilterTime = 0; //Need to figure out something better for this
}
void triggerPri_Miata9905()
{
curTime = micros();
curGap = curTime - toothLastToothTime;
if ( curGap >= triggerFilterTime )
if ( curGap >= triggerFilterTime || (currentStatus.startRevolutions == 0) )
{
toothCurrentCount++;
if( (toothCurrentCount == 1) || (toothCurrentCount == (triggerActualTeeth+1)) )
if( (toothCurrentCount == (triggerActualTeeth + 1)) )
{
toothCurrentCount = 1; //Reset the counter
toothOneMinusOneTime = toothOneTime;
@ -1380,7 +1382,7 @@ void triggerPri_Miata9905()
if(secondaryToothCount == 2)
{
toothCurrentCount = 6;
currentStatus.hasSync = true;
//currentStatus.hasSync = true;
}
}
@ -1389,10 +1391,34 @@ void triggerPri_Miata9905()
addToothLogEntry(curGap);
//Whilst this is an uneven tooth pattern, if the specific angle between the last 2 teeth is specified, 1st deriv prediction can be used
if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away)
else { triggerToothAngle = 110; triggerFilterTime = (curGap * 3) >> 3; } //Trigger filter is set to (110*3)/8=41.25=41 degrees (Next trigger is 70 degrees away).
if( (configPage2.triggerFilter == 1) )
{
//Lite filter
if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = curGap; } //Trigger filter is set to whatever time it took to do 70 degrees (Next trigger is 110 degrees away)
else { triggerToothAngle = 110; triggerFilterTime = (curGap * 3) >> 3; } //Trigger filter is set to (110*3)/8=41.25=41 degrees (Next trigger is 70 degrees away).
}
else if(configPage2.triggerFilter == 2)
{
//Medium filter level
if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = (curGap * 5) >> 2 ; } //87.5 degrees with a target of 110
else { triggerToothAngle = 110; triggerFilterTime = (curGap >> 1); } //55 degrees with a target of 70
}
else if (configPage2.triggerFilter == 3)
{
//Aggressive filter level
if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; triggerFilterTime = (curGap * 11) >> 3 ; } //96.26 degrees with a target of 110
else { triggerToothAngle = 110; triggerFilterTime = (curGap * 9) >> 5; } //61.87 degrees with a target of 70
}
else if (configPage2.triggerFilter == 0)
{
//trigger filter is turned off.
triggerFilterTime = 0;
triggerSecFilterTime = 0;
if( (toothCurrentCount == 1) || (toothCurrentCount == 3) || (toothCurrentCount == 5) || (toothCurrentCount == 7) ) { triggerToothAngle = 70; } //96.26 degrees with a target of 110
else { triggerToothAngle = 110; } //61.87 degrees with a target of 70
}
curGap = curGap >> 1;
//curGap = curGap >> 1; //Why is this here?
toothLastMinusOneToothTime = toothLastToothTime;
toothLastToothTime = curTime;
@ -1413,6 +1439,12 @@ void triggerSec_Miata9905()
{
curTime2 = micros();
curGap2 = curTime2 - toothLastSecToothTime;
if(BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) || (currentStatus.hasSync == false) )
{
triggerFilterTime = 1500; //If this is removed, can have trouble getting sync again after the engine is turned off (but ECU not reset).
}
if ( curGap2 >= triggerSecFilterTime )
{
toothLastSecToothTime = curTime2;
@ -1430,15 +1462,21 @@ uint16_t getRPM_Miata9905()
uint16_t tempRPM = 0;
if(currentStatus.RPM < currentStatus.crankRPM)
{
int tempToothAngle;
noInterrupts();
tempToothAngle = triggerToothAngle;
revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen
interrupts();
revolutionTime = revolutionTime * 36;
tempRPM = (tempToothAngle * 60000000L) / revolutionTime;
if( (toothLastToothTime == 0) || (toothLastMinusOneToothTime == 0) ) { tempRPM = 0; }
else
{
int tempToothAngle;
unsigned long toothTime;
noInterrupts();
tempToothAngle = triggerToothAngle;
toothTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen
interrupts();
toothTime = toothTime * 36;
tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime;
revolutionTime = (10UL * toothTime) / tempToothAngle;
}
}
else { tempRPM = stdGetRPM(); }
else { tempRPM = stdGetRPM() << 1; }
return tempRPM;
}
@ -1460,9 +1498,8 @@ int getCrankAngle_Miata9905(int timePerDegree)
crankAngle = toothAngles[(tempToothCurrentCount - 1)] + configPage2.triggerAngle; //Perform a lookup of the fixed toothAngles array to find what the angle of the last tooth passed was.
//Estimate the number of degrees travelled since the last tooth}
long elapsedTime = micros() - tempToothLastToothTime;
if(elapsedTime < SHRT_MAX ) { crankAngle += div((int)elapsedTime, timePerDegree).quot; } //This option is much faster, but only available for smaller values of elapsedTime
else { crankAngle += ldiv(elapsedTime, timePerDegree).quot; }
unsigned long elapsedTime = micros() - tempToothLastToothTime;
crankAngle += uSToDegrees(elapsedTime);
if (crankAngle >= 720) { crankAngle -= 720; }
if (crankAngle > CRANK_ANGLE_MAX) { crankAngle -= CRANK_ANGLE_MAX; }
@ -1706,7 +1743,7 @@ void triggerSetEndTeeth_Non360()
/* -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Name: Nissan 360 tooth with cam
Desc:
Note:
Note: https://wiki.r31skylineclub.com/index.php/Crank_Angle_Sensor
*/
void triggerSetup_Nissan360()
{

View File

@ -466,6 +466,14 @@ void setIgnitionSchedule3(void (*startCallback)(), unsigned long timeout, unsign
interrupts();
IGN3_TIMER_ENABLE();
}
else
{
//If the schedule is already running, we can set the next schedule so it is ready to go
//This is required in cases of high rpm and high DC where there otherwise would not be enough time to set the schedule
ignitionSchedule3.nextStartCompare = IGN3_COUNTER + uS_TO_TIMER_COMPARE(timeout);
ignitionSchedule3.nextEndCompare = ignitionSchedule3.nextStartCompare + uS_TO_TIMER_COMPARE(duration);
ignitionSchedule3.hasNextSchedule = true;
}
}
void setIgnitionSchedule4(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
{
@ -490,6 +498,14 @@ void setIgnitionSchedule4(void (*startCallback)(), unsigned long timeout, unsign
interrupts();
IGN4_TIMER_ENABLE();
}
else
{
//If the schedule is already running, we can set the next schedule so it is ready to go
//This is required in cases of high rpm and high DC where there otherwise would not be enough time to set the schedule
ignitionSchedule4.nextStartCompare = IGN4_COUNTER + uS_TO_TIMER_COMPARE_SLOW(timeout);
ignitionSchedule4.nextEndCompare = ignitionSchedule4.nextStartCompare + uS_TO_TIMER_COMPARE_SLOW(duration);
ignitionSchedule4.hasNextSchedule = true;
}
}
void setIgnitionSchedule5(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)())
{
@ -728,7 +744,17 @@ static inline void ignitionSchedule3Interrupt() //Most ARM chips can simply call
ignitionSchedule3.EndCallback();
ignitionSchedule3.schedulesSet = 0;
ignitionCount += 1; //Increment the igintion counter
IGN3_TIMER_DISABLE();
//If there is a next schedule queued up, activate it
if(ignitionSchedule3.hasNextSchedule == true)
{
IGN3_COMPARE = ignitionSchedule3.nextStartCompare;
ignitionSchedule3.endCompare = ignitionSchedule3.nextEndCompare;
ignitionSchedule3.Status = PENDING;
ignitionSchedule3.schedulesSet = 1;
ignitionSchedule3.hasNextSchedule = false;
}
else { IGN3_TIMER_DISABLE(); }
}
}
@ -751,7 +777,17 @@ static inline void ignitionSchedule4Interrupt() //Most ARM chips can simply call
ignitionSchedule4.EndCallback();
ignitionSchedule4.schedulesSet = 0;
ignitionCount += 1; //Increment the igintion counter
IGN4_TIMER_DISABLE();
//If there is a next schedule queued up, activate it
if(ignitionSchedule4.hasNextSchedule == true)
{
IGN4_COMPARE = ignitionSchedule4.nextStartCompare;
ignitionSchedule4.endCompare = ignitionSchedule4.nextEndCompare;
ignitionSchedule4.Status = PENDING;
ignitionSchedule4.schedulesSet = 1;
ignitionSchedule4.hasNextSchedule = false;
}
else { IGN4_TIMER_DISABLE(); }
}
}

View File

@ -403,6 +403,12 @@ void setup()
CRANK_ANGLE_MAX_IGN = 720;
}
else if(configPage2.sparkMode == IGN_MODE_ROTARY)
{
//Rotary uses the ign 3 and 4 schedules for the trailing spark. They are offset from the ign 1 and 2 channels respectively and so use the same degrees as them
channel3IgnDegrees = 0;
channel4IgnDegrees = 180;
}
}
else
{
@ -923,9 +929,9 @@ void loop()
int injector5StartAngle = 0; //For 5 cylinder testing
int ignition1StartAngle = 0;
int ignition2StartAngle = 0;
int ignition3StartAngle = 0; //Currently used for 3 cylinder only
int ignition4StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written
int ignition5StartAngle = 0; //Not used until sequential or 4+ cylinders support gets written
int ignition3StartAngle = 0;
int ignition4StartAngle = 0;
int ignition5StartAngle = 0;
//These are used for comparisons on channels above 1 where the starting angle (for injectors or ignition) can be less than a single loop time
//(Don't ask why this is needed, it will break your head)
int tempCrankAngle;

View File

@ -724,16 +724,12 @@ void initialiseTriggers()
triggerSetEndTeeth = triggerSetEndTeeth_Miata9905;
//These may both need to change, not sure
if(configPage2.TrigEdge == 0)
{
attachInterrupt(triggerInterrupt, trigger, RISING); // Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering)
attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); //changed
}
else
{
attachInterrupt(triggerInterrupt, trigger, FALLING); // Primary trigger connects to
attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING);
}
// Attach the crank trigger wheel interrupt (Hall sensor drags to ground when triggering)
if(configPage2.TrigEdge == 0) { attachInterrupt(triggerInterrupt, trigger, RISING); }
else { attachInterrupt(triggerInterrupt, trigger, FALLING); }
if(configPage2.TrigEdgeSec == 0) { attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, RISING); }
else { attachInterrupt(triggerInterrupt2, triggerSec_Miata9905, FALLING); }
break;
case 10: