Merge branch 'master' into pr/77

# Conflicts:
#	reference/speeduino.ini
#	speeduino/comms.ino
This commit is contained in:
Josh Stewart 2017-05-02 12:25:51 +10:00
commit 3f099f06f1
58 changed files with 350318 additions and 48659 deletions

View File

@ -0,0 +1 @@
Part/Designator,Manufacture Part Number/Seeed SKU,Quantity C16,T356G106K035AT,1 "C1,C3,C5,C13,C15",C322C104M5R5TA7301,5 "C7,C9",08055C104KAT2A,2 C14,T356F476K006AT,1 C18,AR215F334K4R,1 C19,C317C103K5R5TA,1 "C11,C12,C20",CC0805KKX7R7BB105,3 C23,C317C472K1R5TA,1 "C2,C4,C6,C8,C24,C10",CL21B224KOCNNNC,6 D16,1N5919BG,1 "D15,D17",1N5818-TP,2 "LED1,LED2,LED3,LED4,LED5,LED6,LED7,LED8",LTL-4221N,8 "D9,D10,D11,D12",1N4004-TP,4 U2,ERZ-V14D220,1 Jumpers for male pins,969102-0000-DA,5 "JP1,JP2,JP3",M20-9990345,3 "JP4,JP5",M20-9990245,2 J4,3020-40-0100-00,1 IC3,PPPC041LFBN-RC,2 "Q1,Q2,Q3,Q4,Q5,Q6,Q7,Q8",STP75NS04Z,8 R54,MFR-25FBF52-10K,1 "R10,R13,R16,R19,R23,R24,R29,R30,R39,R40,R50,R51,R57,R58",MFR-25FBF52-1K,14 "R9,R12,R15,R18",CFR-25JB-52-680R,4 "R2,R4,R6,R8,R22,R41",CFR-25JB-52-470R,6 "R1,R3,R26,R28,R33,R34,R61",RT0805BRD072K49L,7 R7,RC0805FR-073K9L,1 R21,MFP-25BRD52-1K,1 "R11,R14,R17,R20,R35,R36,R37,R38,R48,R49,R55,R56",MFR-25FBF52-100K,12 "R25,R27,R31,R32",FMP200JR-52-180R,4 "R59,R60",RC0805FR-071KL,2 R62,RC0805FR-07120RL,1 U1,LM2940T-5.0/NOPB,1 MPX4250A,MPX4250AP,1 "IC1,IC2",TC4424EPA,2 IC4,SP721APP,1
Can't render this file because it contains an unexpected character in line 1 and column 81.

View File

@ -2,126 +2,134 @@
; THROUGH (PLATED) HOLES START AT T100
M48
INCH
T1C0.137795
T100C0.035000
T101C0.035433
T102C0.042000
T1C0.165354
T100C0.035433
T101C0.040000
T102C0.043302
T103C0.015748
T104C0.040000
T105C0.043307
T104C0.035000
T105C0.042000
%
T1
X012991Y021143
X012991Y003106
X012991Y036440
X012757Y003283
X012757Y021332
X012757Y036632
T100
X010991Y002866
X006491Y029616
X006991Y002866
X006491Y033616
X005991Y024116
X004991Y004866
X007741Y022866
X005991Y004116
X006866Y022866
T101
X006241Y022866
X007491Y022866
T102
X002491Y002866
X005471Y002866
T103
X006491Y028366
T104
X002741Y024116
X001741Y008116
X002741Y016116
X002741Y008116
X001741Y022116
X001741Y014116
X003991Y028866
X002741Y022116
X001741Y006116
X002741Y014116
X001741Y019116
X003241Y035866
X002741Y006116
X002741Y019116
X001741Y020116
X001741Y012116
X002741Y020116
X001741Y025116
X002741Y012116
X001741Y017116
X002741Y025116
X003241Y033866
X001741Y009116
X002741Y017116
X002741Y009116
X001741Y010116
X001741Y023116
X002741Y010116
X001741Y015116
X002741Y023116
X001741Y007116
X002741Y015116
X003241Y036866
X002741Y007116
X001741Y021116
X001741Y013116
X002741Y021116
X002741Y013116
X001741Y018116
X003491Y022116
X003491Y014116
X002491Y022116
X003491Y006116
X002491Y014116
X003241Y034866
X002741Y018116
X003491Y019116
X002491Y006116
X002491Y019116
X003491Y020116
X003491Y012116
X002491Y020116
X003491Y025116
X002491Y012116
X003491Y017116
X002491Y025116
X003991Y030834
X001741Y011116
X001741Y024116
X002741Y011116
X001741Y016116
X003491Y009116
X002491Y017116
X002491Y009116
X003491Y010116
X003491Y023116
X002491Y010116
X003491Y015116
X002491Y023116
X003491Y007116
X002491Y015116
X003241Y035866
X003991Y028866
X002491Y007116
X003491Y021116
X003491Y013116
X002491Y021116
X002491Y013116
X003241Y033866
X003491Y018116
X002491Y018116
X003491Y011116
X003491Y024116
X002491Y011116
X003491Y016116
X002491Y024116
X003491Y008116
X002491Y016116
X003241Y036866
X002491Y008116
T102
X008741Y015149
X010511Y010424
X008741Y018732
X008741Y028499
X010511Y013970
X010511Y027315
X010511Y032040
X010511Y023774
X008741Y033265
X010511Y017516
X008741Y006649
X010511Y020116
X010511Y011608
X010511Y024957
X010511Y005270
X008741Y016332
X008741Y012791
X008741Y026136
X008741Y008024
X008741Y029682
X010511Y034640
X008741Y010424
X010511Y030861
X008741Y013970
X008741Y027315
X008741Y032040
X008741Y023774
X008741Y017516
X010511Y022557
X008741Y020116
X008741Y011608
X008741Y024957
X010511Y009245
X008741Y005270
X010511Y015149
X008741Y034640
X010511Y018732
X010511Y028499
X010511Y033265
X008741Y030861
X008741Y022557
X010511Y006649
X010511Y016332
X010511Y012791
X010511Y026136
X008741Y009245
X010511Y008024
X010511Y029682
T103
X009741Y014616
X009741Y016866
X009741Y020866
X006491Y028366
X006491Y031616
X009491Y023116
T104
X006491Y029616
X010491Y002616
X006491Y033616
X006491Y002616
T105
X010496Y014000
X008745Y015176
X008755Y011649
X010510Y005348
X010533Y029704
X008782Y026153
X008782Y032065
X010496Y012815
X010496Y017556
X010533Y022579
X008760Y008094
X010533Y026162
X008782Y022570
X010533Y028518
X010519Y034671
X010533Y032074
X008745Y013991
X010510Y006726
X008763Y009286
X010533Y024977
X010505Y011658
X010533Y030889
X008782Y030880
X008755Y018750
X008787Y023792
X008745Y017546
X008745Y012806
X008755Y020139
X010496Y016370
X008782Y028523
X010533Y027333
X008760Y005339
X010505Y018759
X008782Y024982
X010510Y008104
X008782Y033287
X010496Y015185
X010513Y009295
X008782Y027338
X008745Y016361
X010533Y033296
X010505Y020148
X010537Y023801
X008760Y006717
X010482Y010477
X008732Y010467
X008782Y034662
X008782Y029694
X002491Y002616
X005471Y002616
T00
M30

View File

@ -14,28 +14,29 @@ G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ADD13C,0.092000*%
%ADD14C,0.090000*%
%ADD15C,0.084000*%
%ADD16C,0.147795*%
%ADD17C,0.093307*%
%ADD16C,0.092672*%
%ADD17C,0.175354*%
%ADD18R,0.092000X0.092000*%
%ADD19R,0.090000X0.090000*%
%ADD20R,0.084000X0.084000*%
%ADD21R,0.001000X0.001000*%
%LNMASK0*%
G90*
G70*
G54D10*
X624Y2287D03*
X687Y2287D03*
G54D11*
X649Y2837D03*
G54D12*
X1099Y287D03*
X699Y287D03*
X1049Y262D03*
X649Y262D03*
X649Y3362D03*
X649Y2962D03*
G54D13*
X249Y287D03*
X547Y287D03*
X249Y262D03*
X547Y262D03*
G54D10*
X749Y2287D03*
X774Y2287D03*
G54D14*
X324Y3387D03*
X324Y3487D03*
@ -44,105 +45,678 @@ X324Y3687D03*
X399Y2887D03*
X399Y3083D03*
G54D15*
X274Y2512D03*
X274Y2412D03*
X274Y2312D03*
X274Y2212D03*
X274Y2112D03*
X274Y2012D03*
X274Y1912D03*
X274Y1812D03*
X274Y1712D03*
X274Y1612D03*
X274Y1512D03*
X274Y1412D03*
X274Y1312D03*
X274Y1212D03*
X274Y1112D03*
X274Y1012D03*
X274Y912D03*
X274Y812D03*
X274Y712D03*
X274Y612D03*
X174Y2512D03*
X174Y2412D03*
X174Y2312D03*
X174Y2212D03*
X174Y2112D03*
X174Y2012D03*
X174Y1912D03*
X174Y1812D03*
X174Y1712D03*
X174Y1612D03*
X174Y1512D03*
X174Y1412D03*
X174Y1312D03*
X174Y1212D03*
X174Y1112D03*
X174Y1012D03*
X174Y912D03*
X174Y812D03*
X174Y712D03*
X174Y612D03*
X349Y2512D03*
X349Y2412D03*
X349Y2312D03*
X349Y2212D03*
X349Y2112D03*
X349Y2012D03*
X349Y1912D03*
X349Y1812D03*
X349Y1712D03*
X349Y1612D03*
X349Y1512D03*
X349Y1412D03*
X349Y1312D03*
X349Y1212D03*
X349Y1112D03*
X349Y1012D03*
X349Y912D03*
X349Y812D03*
X349Y712D03*
X349Y612D03*
X249Y2512D03*
X249Y2412D03*
X249Y2312D03*
X249Y2212D03*
X249Y2112D03*
X249Y2012D03*
X249Y1912D03*
X249Y1812D03*
X249Y1712D03*
X249Y1612D03*
X249Y1512D03*
X249Y1412D03*
X249Y1312D03*
X249Y1212D03*
X249Y1112D03*
X249Y1012D03*
X249Y912D03*
X249Y812D03*
X249Y712D03*
X249Y612D03*
G54D16*
X1299Y311D03*
X1299Y2114D03*
X1299Y3644D03*
X1051Y3464D03*
X1051Y3327D03*
X874Y3327D03*
X1051Y3204D03*
X874Y3204D03*
X1051Y3086D03*
X874Y3086D03*
X1051Y2968D03*
X874Y2968D03*
X1051Y2850D03*
X874Y2850D03*
X1051Y2732D03*
X874Y2732D03*
X1051Y2614D03*
X874Y2614D03*
X1051Y2496D03*
X874Y2496D03*
X1051Y2377D03*
X874Y2377D03*
X1051Y2256D03*
X874Y2256D03*
X1051Y2012D03*
X1051Y1873D03*
X874Y1873D03*
X1051Y1752D03*
X874Y1752D03*
X1051Y1633D03*
X874Y1633D03*
X1051Y1515D03*
X874Y1515D03*
X1051Y1397D03*
X874Y1397D03*
X1051Y1279D03*
X874Y1279D03*
X1051Y1161D03*
X874Y1161D03*
X1051Y1042D03*
X874Y1042D03*
X1051Y925D03*
X874Y925D03*
X1051Y802D03*
X874Y802D03*
X1051Y665D03*
X874Y665D03*
X1051Y527D03*
X874Y527D03*
X874Y3464D03*
X874Y2012D03*
G54D17*
X876Y534D03*
X876Y672D03*
X876Y809D03*
X876Y929D03*
X873Y1047D03*
X876Y1165D03*
X875Y1281D03*
X875Y1399D03*
X875Y1518D03*
X875Y1636D03*
X875Y1755D03*
X876Y1875D03*
X1051Y535D03*
X1051Y673D03*
X1051Y810D03*
X1051Y930D03*
X1048Y1048D03*
X1051Y1166D03*
X1050Y1282D03*
X1050Y1400D03*
X1050Y1519D03*
X1050Y1637D03*
X1050Y1756D03*
X1051Y1876D03*
X1051Y2015D03*
X876Y2014D03*
X878Y2257D03*
X1053Y2258D03*
X879Y2379D03*
X1054Y2380D03*
X878Y2498D03*
X1053Y2498D03*
X878Y2615D03*
X1053Y2616D03*
X878Y2734D03*
X1053Y2733D03*
X878Y2852D03*
X1053Y2852D03*
X878Y2969D03*
X1053Y2970D03*
X878Y3088D03*
X1053Y3089D03*
X878Y3207D03*
X1053Y3207D03*
X878Y3329D03*
X1053Y3330D03*
X878Y3466D03*
X1052Y3467D03*
X1276Y3663D03*
X1276Y328D03*
X1276Y2133D03*
G54D16*
X1051Y3464D03*
X1051Y3327D03*
X874Y3327D03*
X1051Y3204D03*
X874Y3204D03*
X1051Y3086D03*
X874Y3086D03*
X1051Y2968D03*
X874Y2968D03*
X1051Y2850D03*
X874Y2850D03*
X1051Y2732D03*
X874Y2732D03*
X1051Y2614D03*
X874Y2614D03*
X1051Y2496D03*
X874Y2496D03*
X1051Y2377D03*
X874Y2377D03*
X1051Y2256D03*
X874Y2256D03*
X1051Y2012D03*
X1051Y1873D03*
X874Y1873D03*
X1051Y1752D03*
X874Y1752D03*
X1051Y1633D03*
X874Y1633D03*
X1051Y1515D03*
X874Y1515D03*
X1051Y1397D03*
X874Y1397D03*
X1051Y1279D03*
X874Y1279D03*
X1051Y1161D03*
X874Y1161D03*
X1051Y1042D03*
X874Y1042D03*
X1051Y925D03*
X874Y925D03*
X1051Y802D03*
X874Y802D03*
X1051Y665D03*
X874Y665D03*
X1051Y527D03*
X874Y527D03*
X874Y3464D03*
X874Y2012D03*
G54D17*
X1276Y3663D03*
X1276Y328D03*
X1276Y2133D03*
G54D10*
X599Y2412D03*
X599Y412D03*
X499Y487D03*
G54D11*
X974Y2087D03*
X949Y2312D03*
X649Y3162D03*
X974Y1687D03*
X974Y1462D03*
G54D18*
X248Y287D03*
X248Y262D03*
G54D19*
X324Y3387D03*
X399Y2887D03*
G54D20*
X174Y2512D03*
X249Y2512D03*
G54D21*
X827Y3510D02*
X919Y3510D01*
X827Y3509D02*
X919Y3509D01*
X827Y3508D02*
X919Y3508D01*
X827Y3507D02*
X919Y3507D01*
X827Y3506D02*
X919Y3506D01*
X827Y3505D02*
X919Y3505D01*
X827Y3504D02*
X919Y3504D01*
X827Y3503D02*
X919Y3503D01*
X827Y3502D02*
X919Y3502D01*
X827Y3501D02*
X919Y3501D01*
X827Y3500D02*
X919Y3500D01*
X827Y3499D02*
X919Y3499D01*
X827Y3498D02*
X919Y3498D01*
X827Y3497D02*
X919Y3497D01*
X827Y3496D02*
X919Y3496D01*
X827Y3495D02*
X919Y3495D01*
X827Y3494D02*
X919Y3494D01*
X827Y3493D02*
X919Y3493D01*
X827Y3492D02*
X919Y3492D01*
X827Y3491D02*
X919Y3491D01*
X827Y3490D02*
X919Y3490D01*
X827Y3489D02*
X919Y3489D01*
X827Y3488D02*
X919Y3488D01*
X827Y3487D02*
X919Y3487D01*
X827Y3486D02*
X919Y3486D01*
X827Y3485D02*
X919Y3485D01*
X827Y3484D02*
X919Y3484D01*
X827Y3483D02*
X919Y3483D01*
X827Y3482D02*
X919Y3482D01*
X827Y3481D02*
X867Y3481D01*
X879Y3481D02*
X919Y3481D01*
X827Y3480D02*
X865Y3480D01*
X881Y3480D02*
X919Y3480D01*
X827Y3479D02*
X863Y3479D01*
X883Y3479D02*
X919Y3479D01*
X827Y3478D02*
X862Y3478D01*
X885Y3478D02*
X919Y3478D01*
X827Y3477D02*
X861Y3477D01*
X886Y3477D02*
X919Y3477D01*
X827Y3476D02*
X860Y3476D01*
X887Y3476D02*
X919Y3476D01*
X827Y3475D02*
X859Y3475D01*
X888Y3475D02*
X919Y3475D01*
X827Y3474D02*
X858Y3474D01*
X888Y3474D02*
X919Y3474D01*
X827Y3473D02*
X858Y3473D01*
X889Y3473D02*
X919Y3473D01*
X827Y3472D02*
X857Y3472D01*
X889Y3472D02*
X919Y3472D01*
X827Y3471D02*
X857Y3471D01*
X890Y3471D02*
X919Y3471D01*
X827Y3470D02*
X856Y3470D01*
X890Y3470D02*
X919Y3470D01*
X827Y3469D02*
X856Y3469D01*
X890Y3469D02*
X919Y3469D01*
X827Y3468D02*
X856Y3468D01*
X891Y3468D02*
X919Y3468D01*
X827Y3467D02*
X856Y3467D01*
X891Y3467D02*
X919Y3467D01*
X827Y3466D02*
X856Y3466D01*
X891Y3466D02*
X919Y3466D01*
X827Y3465D02*
X856Y3465D01*
X891Y3465D02*
X919Y3465D01*
X827Y3464D02*
X856Y3464D01*
X891Y3464D02*
X919Y3464D01*
X827Y3463D02*
X856Y3463D01*
X891Y3463D02*
X919Y3463D01*
X827Y3462D02*
X856Y3462D01*
X891Y3462D02*
X919Y3462D01*
X827Y3461D02*
X856Y3461D01*
X891Y3461D02*
X919Y3461D01*
X827Y3460D02*
X856Y3460D01*
X890Y3460D02*
X919Y3460D01*
X827Y3459D02*
X856Y3459D01*
X890Y3459D02*
X919Y3459D01*
X827Y3458D02*
X857Y3458D01*
X890Y3458D02*
X919Y3458D01*
X827Y3457D02*
X857Y3457D01*
X889Y3457D02*
X919Y3457D01*
X827Y3456D02*
X858Y3456D01*
X889Y3456D02*
X919Y3456D01*
X827Y3455D02*
X858Y3455D01*
X888Y3455D02*
X919Y3455D01*
X827Y3454D02*
X859Y3454D01*
X887Y3454D02*
X919Y3454D01*
X827Y3453D02*
X860Y3453D01*
X886Y3453D02*
X919Y3453D01*
X827Y3452D02*
X861Y3452D01*
X885Y3452D02*
X919Y3452D01*
X827Y3451D02*
X862Y3451D01*
X884Y3451D02*
X919Y3451D01*
X827Y3450D02*
X864Y3450D01*
X883Y3450D02*
X919Y3450D01*
X827Y3449D02*
X865Y3449D01*
X881Y3449D02*
X919Y3449D01*
X827Y3448D02*
X868Y3448D01*
X878Y3448D02*
X919Y3448D01*
X827Y3447D02*
X919Y3447D01*
X827Y3446D02*
X919Y3446D01*
X827Y3445D02*
X919Y3445D01*
X827Y3444D02*
X919Y3444D01*
X827Y3443D02*
X919Y3443D01*
X827Y3442D02*
X919Y3442D01*
X827Y3441D02*
X919Y3441D01*
X827Y3440D02*
X919Y3440D01*
X827Y3439D02*
X919Y3439D01*
X827Y3438D02*
X919Y3438D01*
X827Y3437D02*
X919Y3437D01*
X827Y3436D02*
X919Y3436D01*
X827Y3435D02*
X919Y3435D01*
X827Y3434D02*
X919Y3434D01*
X827Y3433D02*
X919Y3433D01*
X827Y3432D02*
X919Y3432D01*
X827Y3431D02*
X919Y3431D01*
X827Y3430D02*
X919Y3430D01*
X827Y3429D02*
X919Y3429D01*
X827Y3428D02*
X919Y3428D01*
X827Y3427D02*
X919Y3427D01*
X827Y3426D02*
X919Y3426D01*
X827Y3425D02*
X919Y3425D01*
X827Y3424D02*
X919Y3424D01*
X827Y3423D02*
X919Y3423D01*
X827Y3422D02*
X919Y3422D01*
X827Y3421D02*
X919Y3421D01*
X827Y3420D02*
X919Y3420D01*
X827Y3419D02*
X919Y3419D01*
X827Y2058D02*
X919Y2058D01*
X827Y2057D02*
X919Y2057D01*
X827Y2056D02*
X919Y2056D01*
X827Y2055D02*
X919Y2055D01*
X827Y2054D02*
X919Y2054D01*
X827Y2053D02*
X919Y2053D01*
X827Y2052D02*
X919Y2052D01*
X827Y2051D02*
X919Y2051D01*
X827Y2050D02*
X919Y2050D01*
X827Y2049D02*
X919Y2049D01*
X827Y2048D02*
X919Y2048D01*
X827Y2047D02*
X919Y2047D01*
X827Y2046D02*
X919Y2046D01*
X827Y2045D02*
X919Y2045D01*
X827Y2044D02*
X919Y2044D01*
X827Y2043D02*
X919Y2043D01*
X827Y2042D02*
X919Y2042D01*
X827Y2041D02*
X919Y2041D01*
X827Y2040D02*
X919Y2040D01*
X827Y2039D02*
X919Y2039D01*
X827Y2038D02*
X919Y2038D01*
X827Y2037D02*
X919Y2037D01*
X827Y2036D02*
X919Y2036D01*
X827Y2035D02*
X919Y2035D01*
X827Y2034D02*
X919Y2034D01*
X827Y2033D02*
X919Y2033D01*
X827Y2032D02*
X919Y2032D01*
X827Y2031D02*
X919Y2031D01*
X827Y2030D02*
X919Y2030D01*
X827Y2029D02*
X869Y2029D01*
X877Y2029D02*
X919Y2029D01*
X827Y2028D02*
X866Y2028D01*
X880Y2028D02*
X919Y2028D01*
X827Y2027D02*
X864Y2027D01*
X882Y2027D02*
X919Y2027D01*
X827Y2026D02*
X863Y2026D01*
X884Y2026D02*
X919Y2026D01*
X827Y2025D02*
X861Y2025D01*
X885Y2025D02*
X919Y2025D01*
X827Y2024D02*
X860Y2024D01*
X886Y2024D02*
X919Y2024D01*
X827Y2023D02*
X859Y2023D01*
X887Y2023D02*
X919Y2023D01*
X827Y2022D02*
X859Y2022D01*
X888Y2022D02*
X919Y2022D01*
X827Y2021D02*
X858Y2021D01*
X888Y2021D02*
X919Y2021D01*
X827Y2020D02*
X857Y2020D01*
X889Y2020D02*
X919Y2020D01*
X827Y2019D02*
X857Y2019D01*
X890Y2019D02*
X919Y2019D01*
X827Y2018D02*
X857Y2018D01*
X890Y2018D02*
X919Y2018D01*
X827Y2017D02*
X856Y2017D01*
X890Y2017D02*
X919Y2017D01*
X827Y2016D02*
X856Y2016D01*
X890Y2016D02*
X919Y2016D01*
X827Y2015D02*
X856Y2015D01*
X891Y2015D02*
X919Y2015D01*
X827Y2014D02*
X856Y2014D01*
X891Y2014D02*
X919Y2014D01*
X827Y2013D02*
X856Y2013D01*
X891Y2013D02*
X919Y2013D01*
X827Y2012D02*
X856Y2012D01*
X891Y2012D02*
X919Y2012D01*
X827Y2011D02*
X856Y2011D01*
X891Y2011D02*
X919Y2011D01*
X827Y2010D02*
X856Y2010D01*
X891Y2010D02*
X919Y2010D01*
X827Y2009D02*
X856Y2009D01*
X891Y2009D02*
X919Y2009D01*
X827Y2008D02*
X856Y2008D01*
X890Y2008D02*
X919Y2008D01*
X827Y2007D02*
X856Y2007D01*
X890Y2007D02*
X919Y2007D01*
X827Y2006D02*
X857Y2006D01*
X890Y2006D02*
X919Y2006D01*
X827Y2005D02*
X857Y2005D01*
X889Y2005D02*
X919Y2005D01*
X827Y2004D02*
X858Y2004D01*
X889Y2004D02*
X919Y2004D01*
X827Y2003D02*
X858Y2003D01*
X888Y2003D02*
X919Y2003D01*
X827Y2002D02*
X859Y2002D01*
X888Y2002D02*
X919Y2002D01*
X827Y2001D02*
X860Y2001D01*
X887Y2001D02*
X919Y2001D01*
X827Y2000D02*
X861Y2000D01*
X886Y2000D02*
X919Y2000D01*
X827Y1999D02*
X862Y1999D01*
X885Y1999D02*
X919Y1999D01*
X827Y1998D02*
X863Y1998D01*
X884Y1998D02*
X919Y1998D01*
X827Y1997D02*
X864Y1997D01*
X882Y1997D02*
X919Y1997D01*
X827Y1996D02*
X867Y1996D01*
X880Y1996D02*
X919Y1996D01*
X827Y1995D02*
X872Y1995D01*
X875Y1995D02*
X919Y1995D01*
X827Y1994D02*
X919Y1994D01*
X827Y1993D02*
X919Y1993D01*
X827Y1992D02*
X919Y1992D01*
X827Y1991D02*
X919Y1991D01*
X827Y1990D02*
X919Y1990D01*
X827Y1989D02*
X919Y1989D01*
X827Y1988D02*
X919Y1988D01*
X827Y1987D02*
X919Y1987D01*
X827Y1986D02*
X919Y1986D01*
X827Y1985D02*
X919Y1985D01*
X827Y1984D02*
X919Y1984D01*
X827Y1983D02*
X919Y1983D01*
X827Y1982D02*
X919Y1982D01*
X827Y1981D02*
X919Y1981D01*
X827Y1980D02*
X919Y1980D01*
X827Y1979D02*
X919Y1979D01*
X827Y1978D02*
X919Y1978D01*
X827Y1977D02*
X919Y1977D01*
X827Y1976D02*
X919Y1976D01*
X827Y1975D02*
X919Y1975D01*
X827Y1974D02*
X919Y1974D01*
X827Y1973D02*
X919Y1973D01*
X827Y1972D02*
X919Y1972D01*
X827Y1971D02*
X919Y1971D01*
X827Y1970D02*
X919Y1970D01*
X827Y1969D02*
X919Y1969D01*
X827Y1968D02*
X919Y1968D01*
X827Y1967D02*
X919Y1967D01*
X828Y1966D02*
X919Y1966D01*
D02*
G04 End of Mask0*
M02*

View File

@ -14,28 +14,29 @@ G04 CONTOUR ON CENTER OF CONTOUR VECTOR*
%ADD13C,0.092000*%
%ADD14C,0.090000*%
%ADD15C,0.084000*%
%ADD16C,0.147795*%
%ADD17C,0.093307*%
%ADD16C,0.092672*%
%ADD17C,0.175354*%
%ADD18R,0.092000X0.092000*%
%ADD19R,0.090000X0.090000*%
%ADD20R,0.084000X0.084000*%
%ADD21R,0.001000X0.001000*%
%LNMASK1*%
G90*
G70*
G54D10*
X624Y2287D03*
X687Y2287D03*
G54D11*
X649Y2837D03*
G54D12*
X1099Y287D03*
X699Y287D03*
X1049Y262D03*
X649Y262D03*
X649Y3362D03*
X649Y2962D03*
G54D13*
X249Y287D03*
X547Y287D03*
X249Y262D03*
X547Y262D03*
G54D10*
X749Y2287D03*
X774Y2287D03*
G54D14*
X324Y3387D03*
X324Y3487D03*
@ -44,105 +45,625 @@ X324Y3687D03*
X399Y2887D03*
X399Y3083D03*
G54D15*
X274Y2512D03*
X274Y2412D03*
X274Y2312D03*
X274Y2212D03*
X274Y2112D03*
X274Y2012D03*
X274Y1912D03*
X274Y1812D03*
X274Y1712D03*
X274Y1612D03*
X274Y1512D03*
X274Y1412D03*
X274Y1312D03*
X274Y1212D03*
X274Y1112D03*
X274Y1012D03*
X274Y912D03*
X274Y812D03*
X274Y712D03*
X274Y612D03*
X174Y2512D03*
X174Y2412D03*
X174Y2312D03*
X174Y2212D03*
X174Y2112D03*
X174Y2012D03*
X174Y1912D03*
X174Y1812D03*
X174Y1712D03*
X174Y1612D03*
X174Y1512D03*
X174Y1412D03*
X174Y1312D03*
X174Y1212D03*
X174Y1112D03*
X174Y1012D03*
X174Y912D03*
X174Y812D03*
X174Y712D03*
X174Y612D03*
X349Y2512D03*
X349Y2412D03*
X349Y2312D03*
X349Y2212D03*
X349Y2112D03*
X349Y2012D03*
X349Y1912D03*
X349Y1812D03*
X349Y1712D03*
X349Y1612D03*
X349Y1512D03*
X349Y1412D03*
X349Y1312D03*
X349Y1212D03*
X349Y1112D03*
X349Y1012D03*
X349Y912D03*
X349Y812D03*
X349Y712D03*
X349Y612D03*
X249Y2512D03*
X249Y2412D03*
X249Y2312D03*
X249Y2212D03*
X249Y2112D03*
X249Y2012D03*
X249Y1912D03*
X249Y1812D03*
X249Y1712D03*
X249Y1612D03*
X249Y1512D03*
X249Y1412D03*
X249Y1312D03*
X249Y1212D03*
X249Y1112D03*
X249Y1012D03*
X249Y912D03*
X249Y812D03*
X249Y712D03*
X249Y612D03*
G54D16*
X1299Y311D03*
X1299Y2114D03*
X1299Y3644D03*
X1051Y3464D03*
X1051Y3327D03*
X874Y3327D03*
X1051Y3204D03*
X874Y3204D03*
X1051Y3086D03*
X874Y3086D03*
X1051Y2968D03*
X874Y2968D03*
X1051Y2850D03*
X874Y2850D03*
X1051Y2732D03*
X874Y2732D03*
X1051Y2614D03*
X874Y2614D03*
X1051Y2496D03*
X874Y2496D03*
X1051Y2377D03*
X874Y2377D03*
X1051Y2256D03*
X874Y2256D03*
X1051Y2012D03*
X1051Y1873D03*
X874Y1873D03*
X1051Y1752D03*
X874Y1752D03*
X1051Y1633D03*
X874Y1633D03*
X1051Y1515D03*
X874Y1515D03*
X1051Y1397D03*
X874Y1397D03*
X1051Y1279D03*
X874Y1279D03*
X1051Y1161D03*
X874Y1161D03*
X1051Y1042D03*
X874Y1042D03*
X1051Y925D03*
X874Y925D03*
X1051Y802D03*
X874Y802D03*
X1051Y665D03*
X874Y665D03*
X1051Y527D03*
X874Y527D03*
X874Y3464D03*
X874Y2012D03*
G54D17*
X876Y534D03*
X876Y672D03*
X876Y809D03*
X876Y929D03*
X873Y1047D03*
X876Y1165D03*
X875Y1281D03*
X875Y1399D03*
X875Y1518D03*
X875Y1636D03*
X875Y1755D03*
X876Y1875D03*
X1051Y535D03*
X1051Y673D03*
X1051Y810D03*
X1051Y930D03*
X1048Y1048D03*
X1051Y1166D03*
X1050Y1282D03*
X1050Y1400D03*
X1050Y1519D03*
X1050Y1637D03*
X1050Y1756D03*
X1051Y1876D03*
X1051Y2015D03*
X876Y2014D03*
X878Y2257D03*
X1053Y2258D03*
X879Y2379D03*
X1054Y2380D03*
X878Y2498D03*
X1053Y2498D03*
X878Y2615D03*
X1053Y2616D03*
X878Y2734D03*
X1053Y2733D03*
X878Y2852D03*
X1053Y2852D03*
X878Y2969D03*
X1053Y2970D03*
X878Y3088D03*
X1053Y3089D03*
X878Y3207D03*
X1053Y3207D03*
X878Y3329D03*
X1053Y3330D03*
X878Y3466D03*
X1052Y3467D03*
X1276Y3663D03*
X1276Y328D03*
X1276Y2133D03*
G54D10*
X599Y2412D03*
X599Y412D03*
X499Y487D03*
G54D11*
X974Y2087D03*
X949Y2312D03*
X649Y3162D03*
X974Y1687D03*
X974Y1462D03*
G54D18*
X248Y287D03*
X248Y262D03*
G54D19*
X324Y3387D03*
X399Y2887D03*
G54D20*
X174Y2512D03*
X249Y2512D03*
G54D21*
X827Y3510D02*
X919Y3510D01*
X827Y3509D02*
X919Y3509D01*
X827Y3508D02*
X919Y3508D01*
X827Y3507D02*
X919Y3507D01*
X827Y3506D02*
X919Y3506D01*
X827Y3505D02*
X919Y3505D01*
X827Y3504D02*
X919Y3504D01*
X827Y3503D02*
X919Y3503D01*
X827Y3502D02*
X919Y3502D01*
X827Y3501D02*
X919Y3501D01*
X827Y3500D02*
X919Y3500D01*
X827Y3499D02*
X919Y3499D01*
X827Y3498D02*
X919Y3498D01*
X827Y3497D02*
X919Y3497D01*
X827Y3496D02*
X919Y3496D01*
X827Y3495D02*
X919Y3495D01*
X827Y3494D02*
X919Y3494D01*
X827Y3493D02*
X919Y3493D01*
X827Y3492D02*
X919Y3492D01*
X827Y3491D02*
X919Y3491D01*
X827Y3490D02*
X919Y3490D01*
X827Y3489D02*
X919Y3489D01*
X827Y3488D02*
X919Y3488D01*
X827Y3487D02*
X919Y3487D01*
X827Y3486D02*
X919Y3486D01*
X827Y3485D02*
X919Y3485D01*
X827Y3484D02*
X919Y3484D01*
X827Y3483D02*
X919Y3483D01*
X827Y3482D02*
X919Y3482D01*
X827Y3481D02*
X867Y3481D01*
X879Y3481D02*
X919Y3481D01*
X827Y3480D02*
X865Y3480D01*
X881Y3480D02*
X919Y3480D01*
X827Y3479D02*
X863Y3479D01*
X883Y3479D02*
X919Y3479D01*
X827Y3478D02*
X862Y3478D01*
X885Y3478D02*
X919Y3478D01*
X827Y3477D02*
X861Y3477D01*
X886Y3477D02*
X919Y3477D01*
X827Y3476D02*
X860Y3476D01*
X887Y3476D02*
X919Y3476D01*
X827Y3475D02*
X859Y3475D01*
X888Y3475D02*
X919Y3475D01*
X827Y3474D02*
X858Y3474D01*
X888Y3474D02*
X919Y3474D01*
X827Y3473D02*
X858Y3473D01*
X889Y3473D02*
X919Y3473D01*
X827Y3472D02*
X857Y3472D01*
X889Y3472D02*
X919Y3472D01*
X827Y3471D02*
X857Y3471D01*
X890Y3471D02*
X919Y3471D01*
X827Y3470D02*
X856Y3470D01*
X890Y3470D02*
X919Y3470D01*
X827Y3469D02*
X856Y3469D01*
X890Y3469D02*
X919Y3469D01*
X827Y3468D02*
X856Y3468D01*
X891Y3468D02*
X919Y3468D01*
X827Y3467D02*
X856Y3467D01*
X891Y3467D02*
X919Y3467D01*
X827Y3466D02*
X856Y3466D01*
X891Y3466D02*
X919Y3466D01*
X827Y3465D02*
X856Y3465D01*
X891Y3465D02*
X919Y3465D01*
X827Y3464D02*
X856Y3464D01*
X891Y3464D02*
X919Y3464D01*
X827Y3463D02*
X856Y3463D01*
X891Y3463D02*
X919Y3463D01*
X827Y3462D02*
X856Y3462D01*
X891Y3462D02*
X919Y3462D01*
X827Y3461D02*
X856Y3461D01*
X891Y3461D02*
X919Y3461D01*
X827Y3460D02*
X856Y3460D01*
X890Y3460D02*
X919Y3460D01*
X827Y3459D02*
X856Y3459D01*
X890Y3459D02*
X919Y3459D01*
X827Y3458D02*
X857Y3458D01*
X890Y3458D02*
X919Y3458D01*
X827Y3457D02*
X857Y3457D01*
X889Y3457D02*
X919Y3457D01*
X827Y3456D02*
X858Y3456D01*
X889Y3456D02*
X919Y3456D01*
X827Y3455D02*
X858Y3455D01*
X888Y3455D02*
X919Y3455D01*
X827Y3454D02*
X859Y3454D01*
X887Y3454D02*
X919Y3454D01*
X827Y3453D02*
X860Y3453D01*
X886Y3453D02*
X919Y3453D01*
X827Y3452D02*
X861Y3452D01*
X885Y3452D02*
X919Y3452D01*
X827Y3451D02*
X862Y3451D01*
X884Y3451D02*
X919Y3451D01*
X827Y3450D02*
X864Y3450D01*
X883Y3450D02*
X919Y3450D01*
X827Y3449D02*
X865Y3449D01*
X881Y3449D02*
X919Y3449D01*
X827Y3448D02*
X868Y3448D01*
X878Y3448D02*
X919Y3448D01*
X827Y3447D02*
X919Y3447D01*
X827Y3446D02*
X919Y3446D01*
X827Y3445D02*
X919Y3445D01*
X827Y3444D02*
X919Y3444D01*
X827Y3443D02*
X919Y3443D01*
X827Y3442D02*
X919Y3442D01*
X827Y3441D02*
X919Y3441D01*
X827Y3440D02*
X919Y3440D01*
X827Y3439D02*
X919Y3439D01*
X827Y3438D02*
X919Y3438D01*
X827Y3437D02*
X919Y3437D01*
X827Y3436D02*
X919Y3436D01*
X827Y3435D02*
X919Y3435D01*
X827Y3434D02*
X919Y3434D01*
X827Y3433D02*
X919Y3433D01*
X827Y3432D02*
X919Y3432D01*
X827Y3431D02*
X919Y3431D01*
X827Y3430D02*
X919Y3430D01*
X827Y3429D02*
X919Y3429D01*
X827Y3428D02*
X919Y3428D01*
X827Y3427D02*
X919Y3427D01*
X827Y3426D02*
X919Y3426D01*
X827Y3425D02*
X919Y3425D01*
X827Y3424D02*
X919Y3424D01*
X827Y3423D02*
X919Y3423D01*
X827Y3422D02*
X919Y3422D01*
X827Y3421D02*
X919Y3421D01*
X827Y3420D02*
X919Y3420D01*
X827Y3419D02*
X919Y3419D01*
X827Y2058D02*
X919Y2058D01*
X827Y2057D02*
X919Y2057D01*
X827Y2056D02*
X919Y2056D01*
X827Y2055D02*
X919Y2055D01*
X827Y2054D02*
X919Y2054D01*
X827Y2053D02*
X919Y2053D01*
X827Y2052D02*
X919Y2052D01*
X827Y2051D02*
X919Y2051D01*
X827Y2050D02*
X919Y2050D01*
X827Y2049D02*
X919Y2049D01*
X827Y2048D02*
X919Y2048D01*
X827Y2047D02*
X919Y2047D01*
X827Y2046D02*
X919Y2046D01*
X827Y2045D02*
X919Y2045D01*
X827Y2044D02*
X919Y2044D01*
X827Y2043D02*
X919Y2043D01*
X827Y2042D02*
X919Y2042D01*
X827Y2041D02*
X919Y2041D01*
X827Y2040D02*
X919Y2040D01*
X827Y2039D02*
X919Y2039D01*
X827Y2038D02*
X919Y2038D01*
X827Y2037D02*
X919Y2037D01*
X827Y2036D02*
X919Y2036D01*
X827Y2035D02*
X919Y2035D01*
X827Y2034D02*
X919Y2034D01*
X827Y2033D02*
X919Y2033D01*
X827Y2032D02*
X919Y2032D01*
X827Y2031D02*
X919Y2031D01*
X827Y2030D02*
X919Y2030D01*
X827Y2029D02*
X869Y2029D01*
X877Y2029D02*
X919Y2029D01*
X827Y2028D02*
X866Y2028D01*
X880Y2028D02*
X919Y2028D01*
X827Y2027D02*
X864Y2027D01*
X882Y2027D02*
X919Y2027D01*
X827Y2026D02*
X863Y2026D01*
X884Y2026D02*
X919Y2026D01*
X827Y2025D02*
X861Y2025D01*
X885Y2025D02*
X919Y2025D01*
X827Y2024D02*
X860Y2024D01*
X886Y2024D02*
X919Y2024D01*
X827Y2023D02*
X859Y2023D01*
X887Y2023D02*
X919Y2023D01*
X827Y2022D02*
X859Y2022D01*
X888Y2022D02*
X919Y2022D01*
X827Y2021D02*
X858Y2021D01*
X888Y2021D02*
X919Y2021D01*
X827Y2020D02*
X857Y2020D01*
X889Y2020D02*
X919Y2020D01*
X827Y2019D02*
X857Y2019D01*
X890Y2019D02*
X919Y2019D01*
X827Y2018D02*
X857Y2018D01*
X890Y2018D02*
X919Y2018D01*
X827Y2017D02*
X856Y2017D01*
X890Y2017D02*
X919Y2017D01*
X827Y2016D02*
X856Y2016D01*
X890Y2016D02*
X919Y2016D01*
X827Y2015D02*
X856Y2015D01*
X891Y2015D02*
X919Y2015D01*
X827Y2014D02*
X856Y2014D01*
X891Y2014D02*
X919Y2014D01*
X827Y2013D02*
X856Y2013D01*
X891Y2013D02*
X919Y2013D01*
X827Y2012D02*
X856Y2012D01*
X891Y2012D02*
X919Y2012D01*
X827Y2011D02*
X856Y2011D01*
X891Y2011D02*
X919Y2011D01*
X827Y2010D02*
X856Y2010D01*
X891Y2010D02*
X919Y2010D01*
X827Y2009D02*
X856Y2009D01*
X891Y2009D02*
X919Y2009D01*
X827Y2008D02*
X856Y2008D01*
X890Y2008D02*
X919Y2008D01*
X827Y2007D02*
X856Y2007D01*
X890Y2007D02*
X919Y2007D01*
X827Y2006D02*
X857Y2006D01*
X890Y2006D02*
X919Y2006D01*
X827Y2005D02*
X857Y2005D01*
X889Y2005D02*
X919Y2005D01*
X827Y2004D02*
X858Y2004D01*
X889Y2004D02*
X919Y2004D01*
X827Y2003D02*
X858Y2003D01*
X888Y2003D02*
X919Y2003D01*
X827Y2002D02*
X859Y2002D01*
X888Y2002D02*
X919Y2002D01*
X827Y2001D02*
X860Y2001D01*
X887Y2001D02*
X919Y2001D01*
X827Y2000D02*
X861Y2000D01*
X886Y2000D02*
X919Y2000D01*
X827Y1999D02*
X862Y1999D01*
X885Y1999D02*
X919Y1999D01*
X827Y1998D02*
X863Y1998D01*
X884Y1998D02*
X919Y1998D01*
X827Y1997D02*
X864Y1997D01*
X882Y1997D02*
X919Y1997D01*
X827Y1996D02*
X867Y1996D01*
X880Y1996D02*
X919Y1996D01*
X827Y1995D02*
X872Y1995D01*
X875Y1995D02*
X919Y1995D01*
X827Y1994D02*
X919Y1994D01*
X827Y1993D02*
X919Y1993D01*
X827Y1992D02*
X919Y1992D01*
X827Y1991D02*
X919Y1991D01*
X827Y1990D02*
X919Y1990D01*
X827Y1989D02*
X919Y1989D01*
X827Y1988D02*
X919Y1988D01*
X827Y1987D02*
X919Y1987D01*
X827Y1986D02*
X919Y1986D01*
X827Y1985D02*
X919Y1985D01*
X827Y1984D02*
X919Y1984D01*
X827Y1983D02*
X919Y1983D01*
X827Y1982D02*
X919Y1982D01*
X827Y1981D02*
X919Y1981D01*
X827Y1980D02*
X919Y1980D01*
X827Y1979D02*
X919Y1979D01*
X827Y1978D02*
X919Y1978D01*
X827Y1977D02*
X919Y1977D01*
X827Y1976D02*
X919Y1976D01*
X827Y1975D02*
X919Y1975D01*
X827Y1974D02*
X919Y1974D01*
X827Y1973D02*
X919Y1973D01*
X827Y1972D02*
X919Y1972D01*
X827Y1971D02*
X919Y1971D01*
X827Y1970D02*
X919Y1970D01*
X827Y1969D02*
X919Y1969D01*
X827Y1968D02*
X919Y1968D01*
X827Y1967D02*
X919Y1967D01*
X828Y1966D02*
X919Y1966D01*
D02*
G04 End of Mask1*
M02*

View File

@ -4,8 +4,8 @@
*eMail=
*
*Project=NA Miata 48 pin
*Date=09:58:49
*CreatedBy=Fritzing 0.9.2b.11.19.8d2d5970658f0bed09c661c9ea9a515b5f40f44c
*Date=22:03:55
*CreatedBy=Fritzing 0.9.3b.04.19.5c895d327c44a3114e5fcc9d8260daf0cbb52806
*
*
*Coordinates in mm, always center of component
@ -13,195 +13,158 @@
*Rotation in degree (0-360, math. pos.)
*
*No;Value;Package;X;Y;Rotation;Side;Name
1;;;3.3782;-54.915;0;Bottom;Copper Fill15
2;;;25.8318;-70.9424;0;Bottom;Copper Fill8
3;;;5.6896;-59.7664;0;Bottom;Copper Fill12
4;;;12.9032;-7.3535;0;Bottom;Copper Fill121
5;;THT;22.2382;-51.1537;0;Bottom;2A
6;;;5.6896;-52.375;0;Bottom;Copper Fill81
7;;;5.6896;-37.135;0;Bottom;Copper Fill90
8;;THT;5.81996;-39.665;0;Bottom;J1
9;;;13.3604;-89.6368;0;Bottom;Copper Fill1
10;;;5.6896;-26.975;0;Bottom;Copper Fill96
11;;;3.3782;-16.815;0;Bottom;Copper Fill57
12;;;3.3782;-44.755;0;Bottom;Copper Fill25
13;;;5.6896;-16.815;0;Bottom;Copper Fill103
14;;THT;26.6597;-44.5921;0;Bottom;2F
15;;THT;22.2382;-47.6262;0;Bottom;2C
16;;THT;26.6973;-20.5843;0;Bottom;2V
17;;;32.9979;-53.7056;0;Bottom;Hole2
18;;;3.3782;-21.895;0;Bottom;Copper Fill52
19;;;26.6065;-52.1972;0;Bottom;Copper Fill72
20;;;7.7724;-20.6631;0;Bottom;Copper Fill119
21;;THT;22.1794;-26.5885;-90;Bottom;2Q
22;;;5.6896;-24.435;0;Bottom;Copper Fill98
23;;;19.4056;-52.4766;0;Bottom;Copper Fill77
24;;;21.2344;-51.1939;0;Bottom;Copper Fill106
25;;;25.8064;-79.9848;0;Bottom;Copper Fill4
26;;THT;26.6597;-38.5711;0;Bottom;2J
27;;THT;26.7538;-78.4588;0;Bottom;1H
28;;;2.63283;-88.5802;0;Bottom;TXT2
29;;THT;22.2147;-44.5689;0;Bottom;2E
30;20k;THT;22.838;-7.28003;180;Bottom;R1
31;;;25.8318;-73.9396;0;Bottom;Copper Fill6
32;;THT;22.2147;-41.5585;0;Bottom;2G
33;;;25.781;-34.0616;0;Bottom;Copper Fill38
34;;;5.6896;-39.675;0;Bottom;Copper Fill32
35;;;16.4846;-80.315;0;Bottom;Copper Fill3
36;;THT;26.6834;-29.6131;0;Bottom;2P
37;;300 mil [THT];10.1126;-7.28003;0;Bottom;D1
38;;THT;26.6597;-41.5816;0;Bottom;2H
39;;;16.4465;-86.284;0;Bottom;Copper Fill115
40;;;10.1346;-17.1198;0;Bottom;Copper Fill56
41;;;16.4465;-72.5934;0;Bottom;Copper Fill64
42;;;5.6896;-54.915;0;Bottom;Copper Fill16
43;;THT;22.2523;-13.562;-90;Bottom;2Y
44;;;1.83257;-73.1386;0;Bottom;TXT4
45;;;3.3782;-39.675;0;Bottom;Copper Fill31
46;;;3.3782;-47.295;0;Bottom;Copper Fill22
47;;THT;22.2147;-38.548;0;Bottom;2I
48;;;16.4465;-72.5934;0;Bottom;Copper Fill107
49;;THT;22.3088;-78.4353;0;Bottom;1G
50;;;5.6896;-44.755;0;Bottom;Copper Fill26
51;;THT;26.7538;-69.4276;0;Bottom;1N
52;;;19.1516;-42.8246;0;Bottom;Copper Fill86
53;;;16.4465;-71.6028;0;Bottom;Copper Fill108
54;;THT;26.7538;-75.4484;0;Bottom;1J
55;;;5.6896;-21.895;0;Bottom;Copper Fill53
56;;;9.4996;-25.9844;0;Bottom;Copper Fill39
57;;;25.8318;-61.9508;0;Bottom;Copper Fill11
58;;;5.6896;-29.515;0;Bottom;Copper Fill94
59;;;10.0965;-74.2698;0;Bottom;Copper Fill66
60;;THT;22.3088;-84.5501;0;Bottom;1C
61;;;5.6896;-19.355;0;Bottom;Copper Fill101
62;;;9.1948;-73.3427;0;Bottom;Copper Fill68
63;;THT;26.7538;-72.4381;0;Bottom;1L
64;;;5.6896;-54.915;0;Bottom;Copper Fill80
65;;THT;26.7538;-84.5736;0;Bottom;1D
66;;;16.4465;-84.6076;0;Bottom;Copper Fill116
67;;;3.3782;-57.455;0;Bottom;Copper Fill13
68;;;5.6896;-49.835;0;Bottom;Copper Fill20
69;;;12.9032;-7.3535;0;Bottom;Copper Fill76
70;;THT;22.3088;-63.4541;0;Bottom;1Q
71;;THT;7.72496;-89.703;180;Bottom;J2
72;;;33.9569;-73.3406;-90;Bottom;IMG1
73;;;16.4465;-71.6028;0;Bottom;Copper Fill65
74;;THT;22.3088;-69.4395;0;Bottom;1M
75;;;5.6896;-29.515;0;Bottom;Copper Fill44
76;;;5.6896;-44.755;0;Bottom;Copper Fill85
77;;;5.6896;-47.295;0;Bottom;Copper Fill84
78;;THT;26.7185;-88.0661;0;Bottom;1B
79;;;15.853;-58.0799;0;Bottom;Via4
80;;;10.9982;-73.3427;0;Bottom;Copper Fill113
81;;;5.6896;-34.595;0;Bottom;Copper Fill91
82;;;5.6896;-39.675;0;Bottom;Copper Fill89
83;;;19.028;-58.0799;0;Bottom;Via1
84;;THT;26.6973;-13.5852;0;Bottom;2Z
85;10k;THT;16.488;-80.305;90;Bottom;R2
86;;THT;26.7656;-60.4555;0;Bottom;1T
87;;;25.8064;-76.9368;0;Bottom;Copper Fill5
88;;;25.7556;-40.0814;0;Bottom;Copper Fill30
89;;;5.6896;-42.215;0;Bottom;Copper Fill29
90;;;25.7556;-43.0786;0;Bottom;Copper Fill27
91;;THT;22.3088;-72.4499;0;Bottom;1K
92;;THT;22.3088;-88.0426;0;Bottom;1A
93;;;15.9512;-72.0727;0;Bottom;Copper Fill109
94;;;12.0396;-24.7398;0;Bottom;Copper Fill97
95;;;3.3782;-37.135;0;Bottom;Copper Fill33
96;;THT;26.7538;-81.4692;0;Bottom;1F
97;;;16.4846;-71.298;0;Bottom;Copper Fill7
98;;;22.1869;-52.1464;0;Bottom;Copper Fill63
99;;THT;22.3088;-81.4457;0;Bottom;1E
100;;;5.6896;-24.435;0;Bottom;Copper Fill50
101;;;9.1948;-73.3427;0;Bottom;Copper Fill112
102;;;10.0965;-72.4664;0;Bottom;Copper Fill111
103;;;30.4038;-31.3946;0;Bottom;Copper Fill21
104;;;2.8448;-39.9798;0;Bottom;Copper Fill83
105;;;3.3782;-19.355;0;Bottom;Copper Fill54
106;;;25.8064;-67.9452;0;Bottom;Copper Fill9
107;;;3.3782;-49.835;0;Bottom;Copper Fill19
108;;THT;22.2596;-23.5871;-90;Bottom;2S
109;;;3.3782;-52.375;0;Bottom;Copper Fill17
110;;;5.6896;-19.355;0;Bottom;Copper Fill55
111;;THT;26.6973;-17.0847;0;Bottom;2X
112;;THT;22.2523;-20.5611;-90;Bottom;2U
113;;THT;26.7538;-57.351;0;Bottom;1V
114;;;3.429;-8.2552;0;Bottom;Copper Fill104
115;;;5.6896;-47.295;0;Bottom;Copper Fill23
116;;;5.6896;-32.055;0;Bottom;Copper Fill93
117;;;22.1098;-90.6514;0;Bottom;TXT1
118;;;2.8448;-24.1048;0;Bottom;Copper Fill95
119;;;27.559;-47.6887;0;Bottom;Copper Fill71
120;;THT;22.3088;-57.3276;0;Bottom;1U
121;;;13.8557;-6.401;0;Bottom;Copper Fill75
122;;;11.4554;-88.2652;0;Bottom;Copper Fill2
123;;;5.6896;-57.455;0;Bottom;Copper Fill79
124;;;20.32;-29.8198;0;Bottom;Copper Fill92
125;;THT;26.6832;-51.1772;0;Bottom;2B
126;;THT;22.3206;-60.4321;0;Bottom;1S
127;;;5.6896;-49.835;0;Bottom;Copper Fill82
128;;;3.3782;-29.515;0;Bottom;Copper Fill43
129;;;19.9898;-50.0128;0;Bottom;Copper Fill105
130;;;5.6896;-59.995;0;Bottom;Copper Fill78
131;;THT;9.12196;-75.693;180;Bottom;J3
132;;THT;22.3088;-66.4293;0;Bottom;1O
133;;;16.4465;-86.284;0;Bottom;Copper Fill69
134;;;2.70367;-93.3681;0;Bottom;TXT5
135;;;3.8608;-12.9288;0;Bottom;Copper Fill59
136;;;19.812;-37.3128;0;Bottom;Copper Fill88
137;;;3.3782;-26.975;0;Bottom;Copper Fill46
138;;;2.397;-90.9186;0;Bottom;TXT2
139;;THT;26.6244;-26.6117;0;Bottom;2R
140;;;22.1794;-53.2353;0;Bottom;TXT1
141;;;2.66706;-85.7659;0;Bottom;TXT2
142;;;13.8557;-6.401;0;Bottom;Copper Fill120
143;;THT;22.2384;-29.59;-90;Bottom;2O
144;;;16.4879;-72.05;0;Bottom;Via3
145;;;5.6896;-42.215;0;Bottom;Copper Fill87
146;;;25.7302;-31.0644;0;Bottom;Copper Fill42
147;;;5.6896;-52.375;0;Bottom;Copper Fill18
148;;THT;26.6597;-32.5505;0;Bottom;2N
149;;;16.4465;-84.6076;0;Bottom;Copper Fill70
150;;THT;22.2147;-35.5378;0;Bottom;2K
151;;;32.9979;-7.89138;0;Bottom;Hole3
152;;;13.3096;-16.307;0;Bottom;Copper Fill102
153;;THT;26.7538;-66.4527;0;Bottom;1P
154;;THT;26.6832;-47.6494;0;Bottom;2D
155;;;17.272;-85.4331;0;Bottom;Copper Fill118
156;;;1.79225;-78.2589;0;Bottom;TXT4
157;;;25.8318;-64.948;0;Bottom;Copper Fill10
158;;;3.3782;-42.215;0;Bottom;Copper Fill28
159;;THT;22.3088;-75.425;0;Bottom;1I
160;;;16.9164;-72.0727;0;Bottom;Copper Fill110
161;;;25.781;-28.1434;0;Bottom;Copper Fill45
162;;;10.0965;-72.4664;0;Bottom;Copper Fill67
163;;;25.781;-37.0588;0;Bottom;Copper Fill35
164;;;5.6896;-32.055;0;Bottom;Copper Fill41
165;;;20.039;-3.47325;0;Bottom;TXT6
166;;;19.9898;-50.0128;0;Bottom;Copper Fill62
167;;;32.9979;-92.5582;0;Bottom;Hole1
168;;;14.5796;-53.9498;0;Bottom;Copper Fill60
169;;THT;22.2523;-17.0616;-90;Bottom;2W
170;;;5.6896;-21.895;0;Bottom;Copper Fill100
171;;;26.5684;-15.3418;0;Bottom;Copper Fill61
172;;;5.6896;-34.595;0;Bottom;Copper Fill37
173;;THT;26.6597;-35.561;0;Bottom;2L
174;;THT;26.7046;-23.6103;0;Bottom;2T
175;;;27.559;-51.2447;0;Bottom;Copper Fill73
176;;;5.6896;-37.135;0;Bottom;Copper Fill34
177;;;19.2052;-1.7927;0;Bottom;TXT7
178;;;5.6896;-26.975;0;Bottom;Copper Fill47
179;;;7.7724;-20.6631;0;Bottom;Copper Fill74
180;;;5.6896;-16.815;0;Bottom;Copper Fill58
181;;;3.3782;-32.055;0;Bottom;Copper Fill40
182;;;15.5956;-85.4331;0;Bottom;Copper Fill117
183;;THT;26.7538;-63.4423;0;Bottom;1R
184;;;3.3782;-34.595;0;Bottom;Copper Fill36
185;;;12.7762;-20.9552;0;Bottom;Copper Fill99
186;;;25.7556;-25.07;0;Bottom;Copper Fill48
187;;;25.8064;-46.1266;0;Bottom;Copper Fill24
188;;;21.2344;-47.6887;0;Bottom;Copper Fill114
189;;THT;22.2147;-32.5273;-90;Bottom;2M
190;;;3.3782;-24.435;0;Bottom;Copper Fill49
191;;;25.781;-22.0982;0;Bottom;Copper Fill51
192;;;5.6896;-57.455;0;Bottom;Copper Fill14
1;;;21.2852;-61.8746;0;Bottom;Copper Fill66
2;;;24.6761;-53.5688;0;Bottom;Copper Fill50
3;;;15.9512;-80.3531;0;Bottom;Copper Fill106
4;;;11.0998;-17.1198;0;Bottom;Copper Fill33
5;;;24.743;-37.125;0;Bottom;Via12
6;;;7.5946;-32.0296;0;Bottom;Copper Fill87
7;10k;THT;16.488;-80.305;90;Bottom;R2
8;;;7.5946;-42.1896;0;Bottom;Copper Fill79
9;;;5.2578;-16.7388;0;Bottom;Copper Fill97
10;;;25.1714;-53.0735;0;Bottom;Copper Fill53
11;;;7.5946;-16.7896;0;Bottom;Copper Fill34
12;;;7.5946;-57.4296;0;Bottom;Copper Fill69
13;;;14.0462;-60.0966;0;Bottom;Copper Fill68
14;;;30.5562;-95.174;0;Bottom;Copper Fill61
15;;;26.6573;-52.0956;0;Bottom;Copper Fill47
16;;;19.2052;-1.7927;0;Bottom;TXT7
17;;;10.4648;-25.9844;0;Bottom;Copper Fill23
18;;;24.0665;-59.2584;0;Bottom;Copper Fill108
19;;;34.163;-94.7676;0;Bottom;Copper Fill62
20;;;19.9898;-50.0128;0;Bottom;Copper Fill36
21;;;7.5946;-47.2696;0;Bottom;Copper Fill76
22;;;7.5946;-29.4896;0;Bottom;Copper Fill89
23;;;24.108;-58.715;0;Bottom;Via9
24;;;16.4846;-71.2726;0;Bottom;Copper Fill4
25;;;28.8544;-31.4708;0;Bottom;Copper Fill86
26;;;7.5946;-34.5696;0;Bottom;Copper Fill83
27;;;10.0965;-74.2698;0;Bottom;Copper Fill55
28;;;7.5946;-24.4096;0;Bottom;Copper Fill92
29;;;2.63283;-88.5802;0;Bottom;TXT2
30;;;7.5946;-54.8896;0;Bottom;Copper Fill70
31;;;12.9032;-6.6931;0;Bottom;Copper Fill49
32;;;7.747;-57.4296;0;Bottom;Copper Fill6
33;;;22.1098;-90.6514;0;Bottom;TXT1
34;;;21.1836;-51.1431;0;Bottom;Copper Fill116
35;;;7.5946;-26.9496;0;Bottom;Copper Fill28
36;;;19.9898;-50.0128;0;Bottom;Copper Fill102
37;;;13.8557;-5.766;0;Bottom;Copper Fill48
38;;;21.4376;-46.025;0;Bottom;Copper Fill13
39;;;7.5946;-34.5696;0;Bottom;Copper Fill21
40;;;16.4465;-84.6076;0;Bottom;Copper Fill121
41;;;12.5222;-63.5002;0;Bottom;Copper Fill64
42;;;21.2852;-42.977;0;Bottom;Copper Fill15
43;;;8.1788;-10.8714;0;Bottom;Copper Fill35
44;;;13.8557;-5.766;0;Bottom;Copper Fill114
45;;;32.6898;-50.4954;0;Bottom;Copper Fill73
46;;;7.5946;-24.4096;0;Bottom;Copper Fill30
47;;;22.1361;-52.0956;0;Bottom;Copper Fill54
48;;;7.6708;-14.4528;0;Bottom;Copper Fill99
49;;;12.678;-12.36;0;Bottom;Via7
50;;;10.0965;-72.4664;0;Bottom;Copper Fill117
51;;;7.5946;-21.8696;0;Bottom;Copper Fill93
52;;;7.5946;-59.9696;0;Bottom;Copper Fill67
53;;;2.66706;-85.7659;0;Bottom;TXT2
54;;;24.6761;-52.5782;0;Bottom;Copper Fill51
55;;THT;7.72496;-39.665;0;Bottom;J1
56;;;7.5946;-39.6496;0;Bottom;Copper Fill18
57;;;7.5946;-44.7296;0;Bottom;Copper Fill14
58;;;34.611;-73.4089;-90;Bottom;IMG1
59;;;10.0584;-16.8912;0;Bottom;Copper Fill95
60;;;2.70367;-93.3681;0;Bottom;TXT5
61;;;7.5946;-54.8896;0;Bottom;Copper Fill7
62;;;7.5946;-37.1096;0;Bottom;Copper Fill82
63;;;11.4808;-88.2652;0;Bottom;Copper Fill2
64;;;7.5946;-21.8696;0;Bottom;Copper Fill31
65;;;19.663;-58.08;0;Bottom;Via1
66;;;5.4102;-35.9031;0;Bottom;Copper Fill126
67;;;16.4465;-86.284;0;Bottom;Copper Fill120
68;;THT;7.72496;-89.703;180;Bottom;J2
69;;;21.2598;-24.9938;0;Bottom;Copper Fill29
70;;;13.3858;-89.6622;0;Bottom;Copper Fill1
71;;;7.5946;-49.8096;0;Bottom;Copper Fill10
72;;;10.0965;-72.4664;0;Bottom;Copper Fill56
73;;;7.5946;-37.1096;0;Bottom;Copper Fill19
74;;;16.4465;-72.5934;0;Bottom;Copper Fill110
75;;;16.488;-80.305;0;Bottom;Via10
76;;;24.0665;-58.2678;0;Bottom;Copper Fill109
77;;;16.4465;-72.5934;0;Bottom;Copper Fill43
78;;;7.5946;-32.0296;0;Bottom;Copper Fill24
79;;;7.5946;-49.8096;0;Bottom;Copper Fill74
80;;THT;9.12196;-75.693;180;Bottom;J3
81;;;20.2946;-30.9374;0;Bottom;Copper Fill84
82;;;7.5946;-16.7896;0;Bottom;Copper Fill96
83;;;17.272;-85.4331;0;Bottom;Copper Fill123
84;;;5.4102;-40.9831;0;Bottom;Copper Fill124
85;;;15.5956;-85.4331;0;Bottom;Copper Fill122
86;;;3.7846;-39.9798;0;Bottom;Copper Fill75
87;;;20.039;-3.47325;0;Bottom;TXT6
88;;;16.4465;-71.6028;0;Bottom;Copper Fill44
89;;;24.4348;-30.9374;0;Bottom;Copper Fill85
90;;;16.9164;-72.0727;0;Bottom;Copper Fill113
91;;;15.6464;-29.7182;0;Bottom;Copper Fill80
92;;;5.4102;-43.5231;0;Bottom;Copper Fill125
93;;;21.2344;-36.9826;0;Bottom;Copper Fill20
94;;;27.4828;-11.3794;0;Bottom;Copper Fill100
95;;;3.937;-53.2132;0;Bottom;Copper Fill8
96;;;9.1948;-73.3427;0;Bottom;Copper Fill118
97;;;24.6761;-37.6684;0;Bottom;Copper Fill37
98;;;10.3378;-19.6598;0;Bottom;Copper Fill88
99;;;20.2184;-27.1274;0;Bottom;Copper Fill91
100;;;15.6718;-33.9346;0;Bottom;Copper Fill78
101;;300 mil [THT];10.1126;-6.64503;0;Bottom;D1
102;;;24.6761;-36.7032;0;Bottom;Copper Fill38
103;;;7.5946;-42.1896;0;Bottom;Copper Fill16
104;;;7.747;-52.3496;0;Bottom;Copper Fill9
105;;;16.4465;-84.6076;0;Bottom;Copper Fill59
106;;;15.9512;-72.0727;0;Bottom;Copper Fill112
107;;;32.6898;-73.6094;0;Bottom;Copper Fill63
108;;;16.4465;-86.284;0;Bottom;Copper Fill58
109;;;16.4465;-80.8484;0;Bottom;Copper Fill104
110;;;7.5946;-39.6496;0;Bottom;Copper Fill81
111;;;16.9164;-80.3531;0;Bottom;Copper Fill107
112;;;7.5946;-47.2696;0;Bottom;Copper Fill12
113;;;9.1186;-31.5724;0;Bottom;Copper Fill11
114;;;5.5118;-14.1734;0;Bottom;Copper Fill98
115;;;24.1808;-53.0735;0;Bottom;Copper Fill52
116;;;1.83257;-73.1386;0;Bottom;TXT4
117;;;24.743;-53;0;Bottom;Via8
118;20k;THT;21.568;-6.64503;180;Bottom;R1
119;;;21.2598;-30.9882;0;Bottom;Copper Fill25
120;;;7.5946;-19.3296;0;Bottom;Copper Fill32
121;;;24.0665;-58.2678;0;Bottom;Copper Fill42
122;;48-pin 0.40/0.70;34.4867;-50.6852;0;Bottom;Part3
123;;;21.2852;-27.991;0;Bottom;Copper Fill27
124;;;7.5946;-59.7918;0;Bottom;Copper Fill5
125;;;16.4879;-72.05;0;Bottom;Via3
126;;;7.5946;-19.3296;0;Bottom;Copper Fill94
127;;;22.1794;-53.2353;0;Bottom;TXT1
128;;;24.743;-42.84;0;Bottom;Via11
129;;;7.6962;-95.0978;0;Bottom;Copper Fill60
130;;;24.0665;-59.2584;0;Bottom;Copper Fill41
131;;;7.5946;-26.9496;0;Bottom;Copper Fill90
132;;;15.218;-61.255;0;Bottom;Via5
133;;;16.4465;-79.8578;0;Bottom;Copper Fill40
134;;;2.397;-90.9186;0;Bottom;TXT2
135;;;16.4846;-80.315;0;Bottom;Copper Fill3
136;;;7.5946;-52.3496;0;Bottom;Copper Fill72
137;;;3.5306;-7.5948;0;Bottom;Copper Fill101
138;;;12.9032;-6.6931;0;Bottom;Copper Fill115
139;;;16.4465;-79.8578;0;Bottom;Copper Fill105
140;;;9.1948;-73.3427;0;Bottom;Copper Fill57
141;;;21.2598;-33.9854;0;Bottom;Copper Fill22
142;;;17.4405;-58.08;0;Bottom;Via4
143;;;24.6761;-36.7032;0;Bottom;Copper Fill103
144;;;1.79225;-78.2589;0;Bottom;TXT4
145;;;16.4465;-71.6028;0;Bottom;Copper Fill111
146;;;10.9982;-73.3427;0;Bottom;Copper Fill119
147;;;12.0142;-62.535;0;Bottom;Copper Fill65
148;;;16.4465;-80.8484;0;Bottom;Copper Fill39
149;;;7.5946;-29.4896;0;Bottom;Copper Fill26
150;;;24.6761;-43.4088;0;Bottom;Copper Fill45
151;;;21.2598;-39.9798;0;Bottom;Copper Fill17
152;;;24.6761;-42.4182;0;Bottom;Copper Fill46
153;;;7.5946;-44.7296;0;Bottom;Copper Fill77
154;;;15.218;-10.455;0;Bottom;Via6
155;;;19.4056;-40.6656;0;Bottom;Copper Fill71

View File

@ -0,0 +1,26 @@
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,3.937010X3.937010*%
%ADD11C,0.008000*%
%ADD10C,0.008*%
%LNCONTOUR*%
G90*
G70*
G54D10*
G54D11*
X4Y3933D02*
X3933Y3933D01*
X3933Y4D01*
X4Y4D01*
X4Y3933D01*
D02*
G04 End of contour*
M02*

View File

@ -0,0 +1,26 @@
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,3.937010X3.937010*%
%ADD11C,0.008000*%
%ADD10C,0.008*%
%LNCONTOUR*%
G90*
G70*
G54D10*
G54D11*
X4Y3933D02*
X3933Y3933D01*
X3933Y4D01*
X4Y4D01*
X4Y3933D01*
D02*
G04 End of contour*
M02*

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,548 @@
; NON-PLATED HOLES START AT T1
; THROUGH (PLATED) HOLES START AT T100
M48
INCH
T1C0.165354
T2C0.125984
T3C0.033465
T100C0.059055
T101C0.040000
T102C0.031496
T103C0.031497
T104C0.030000
T105C0.070000
T106C0.039370
T107C0.038000
T108C0.038194
T109C0.035000
T110C0.042000
T111C0.015748
%
T1
X001437Y021480
X001437Y030579
T2
X037569Y012280
X035411Y031280
T3
X021268Y004142
X020087Y004142
T100
X036411Y034811
X036411Y036780
T101
X007911Y021780
X008911Y005780
X007911Y013780
X008911Y018780
X007911Y005780
X007911Y018780
X006161Y026530
X008911Y011780
X008911Y003780
X007911Y011780
X008911Y016780
X007911Y003780
X008911Y008780
X007911Y016780
X006161Y024530
X007911Y008780
X008911Y022780
X008911Y014780
X007911Y022780
X008911Y006780
X007911Y014780
X008911Y019780
X007911Y006780
X007911Y019780
X006161Y027530
X008911Y020780
X008911Y012780
X007911Y020780
X008911Y004780
X007911Y012780
X008911Y017780
X007911Y004780
X008911Y009780
X007911Y017780
X006161Y025530
X007911Y009780
X008911Y010780
X007911Y010780
X008911Y015780
X008911Y007780
X007911Y015780
X006161Y023530
X007911Y007780
X006161Y028531
X008911Y021780
X008911Y013780
T102
X033911Y036983
X033911Y034030
T103
X005421Y035789
X005421Y034805
X018161Y033045
X025911Y023030
X024927Y023030
X018161Y034030
X018161Y035045
X025911Y015030
X024927Y015030
X018161Y036030
X005421Y033789
X005421Y032805
X025911Y017030
X025911Y021030
X024927Y017030
X024927Y021030
T104
X004661Y018030
X002661Y018030
X032161Y035780
X013911Y013780
X011911Y013780
X028911Y035280
X027161Y035280
X032161Y033780
X028911Y030030
X029911Y030030
X028911Y033280
X027161Y033280
X031911Y030030
X033911Y030030
X030911Y030030
X032911Y030030
X034911Y030030
X028911Y025030
X035911Y030030
X029911Y025030
X004661Y016780
X002661Y016780
X032411Y037280
X030411Y037280
X031911Y025030
X033911Y025030
X024661Y002780
X026661Y002780
X030911Y025030
X032911Y025030
X034911Y025030
X011411Y003780
X035911Y025030
X014661Y003780
X016661Y003780
X013411Y003780
T105
X012411Y024280
X012411Y022280
X012411Y028280
X012411Y026280
T106
X027661Y014530
X030661Y023530
X027661Y015530
X030661Y014530
X027661Y016530
X030661Y015530
X027661Y020530
X027661Y017530
X030661Y016530
X027661Y021530
X030661Y020530
X030661Y017530
X027661Y022530
X030661Y021530
X027661Y023530
X030661Y022530
T107
X001911Y010530
X004911Y011530
X003911Y003530
X002911Y014530
X001911Y006530
X005911Y015530
X004911Y007530
X004911Y010530
X003911Y002530
X002911Y013530
X001911Y005530
X005911Y014530
X004911Y006530
X002911Y009530
X027911Y028280
X002911Y012530
X001911Y004530
X005911Y013530
X029911Y004030
X004911Y005530
X035661Y007280
X002911Y008530
X027911Y027280
X005911Y009530
X002911Y011530
X001911Y003530
X032661Y004030
X005911Y012530
X030911Y004030
X004911Y004530
X035661Y006280
X002911Y007530
X003911Y015530
X027911Y026280
X005911Y008530
X002911Y010530
X001911Y002530
X005911Y011530
X004911Y003530
X035661Y005280
X003911Y014530
X002911Y006530
X005911Y007530
X005911Y010530
X004911Y002530
X003911Y013530
X002911Y005530
X005911Y006530
X003911Y009530
X003911Y012530
X002911Y004530
X005911Y005530
X001911Y015530
X003911Y008530
X003911Y011530
X002911Y003530
X033661Y004030
X005911Y004530
X001911Y014530
X004911Y015530
X003911Y007530
X003911Y010530
X002911Y002530
X001911Y013530
X005911Y003530
X035661Y009780
X004911Y014530
X003911Y006530
X001911Y009530
X001911Y012530
X005911Y002530
X035661Y008780
X004911Y013530
X003911Y005530
X001911Y008530
X004911Y009530
X001911Y011530
X004911Y012530
X003911Y004530
X002911Y015530
X001911Y007530
X035661Y010780
X004911Y008530
T108
X021911Y012280
X021911Y031280
X037911Y019280
X030911Y012280
X015311Y031280
X030911Y031280
X037911Y022280
X036911Y014280
X015911Y012280
X037911Y018280
X024911Y012280
X009311Y031280
X024911Y031280
X036911Y029280
X033911Y012280
X037911Y021280
X033911Y031280
X037911Y017280
X010311Y031280
X018911Y031280
X036911Y028280
X027911Y031280
X037911Y020280
X010911Y012280
X036911Y031280
X037911Y016280
X036911Y027280
X013311Y031280
X036911Y030280
X037911Y015280
X013911Y012280
X022911Y012280
X036911Y026280
X007311Y031280
X022911Y031280
X031911Y012280
X016311Y031280
X031911Y031280
X037911Y014280
X016911Y012280
X036911Y025280
X025911Y012280
X037911Y029280
X034911Y012280
X036911Y024280
X019911Y012280
X011311Y031280
X019911Y031280
X037911Y028280
X028911Y012280
X028911Y031280
X037911Y031280
X036911Y023280
X011911Y012280
X020911Y012280
X020911Y031280
X037911Y027280
X036911Y019280
X014311Y031280
X037911Y030280
X036911Y022280
X014911Y012280
X037911Y026280
X008311Y031280
X023911Y012280
X036911Y018280
X023911Y031280
X032911Y012280
X032911Y031280
X036911Y021280
X037911Y025280
X017911Y012280
X036911Y017280
X017911Y031280
X026911Y012280
X026911Y031280
X036911Y020280
X035911Y012280
X037911Y024280
X036911Y016280
X012311Y031280
X029911Y012280
X029911Y031280
X037911Y023280
X012911Y012280
X036911Y015280
T109
X016661Y035530
X014661Y007030
X020661Y026280
X031661Y023280
X035911Y017530
X029911Y006030
X016661Y034530
X022661Y021030
X023661Y030280
X020661Y018780
X031661Y022280
X021911Y007280
X023661Y025030
X023661Y026280
X035911Y016530
X029911Y005030
X030911Y007280
X021911Y010280
X017661Y030280
X030911Y010280
X031661Y021280
X017411Y014530
X021911Y018780
X017661Y026280
X016661Y029530
X023161Y017780
X035911Y015530
X012652Y036521
X033911Y006030
X033911Y007280
X016661Y032530
X031661Y020280
X006911Y037780
X006911Y036530
X033911Y010280
X035911Y014530
X018911Y007280
X027661Y010780
X033911Y005030
X018911Y010280
X021661Y030280
X006911Y035530
X027661Y006780
X024661Y030030
X021661Y026280
X006911Y034530
X012661Y037780
X000661Y019030
X023661Y021030
X010911Y037780
X010911Y036530
X025911Y030030
X012652Y033521
X024661Y025030
X035661Y023280
X020661Y013780
X016411Y018530
X031911Y007280
X006911Y033530
X023411Y010780
X012661Y035530
X018661Y030280
X016661Y025530
X010911Y035530
X023161Y013780
X031911Y010280
X023411Y006780
X035661Y022280
X018661Y026280
X024161Y017780
X031911Y017530
X006911Y032530
X025911Y025030
X021911Y013780
X012661Y034530
X010911Y034530
X035661Y021280
X019911Y007280
X031911Y016530
X016661Y011030
X010911Y033530
X019911Y010280
X016652Y036521
X022661Y030280
X035661Y020280
X016661Y007030
X020911Y007280
X031911Y015530
X022661Y025030
X022661Y026280
X012661Y032530
X010911Y032530
X020911Y010280
X016411Y014530
X031911Y014530
X017411Y018530
X032911Y007280
X019661Y030280
X024161Y013780
X032911Y010280
X016661Y037780
X004661Y019030
X019661Y026280
X016652Y033521
X014661Y011030
X020661Y030280
T110
X019661Y024780
X014911Y027280
X024911Y037280
X020911Y037280
X011911Y007780
X025661Y033030
X017931Y037280
X003891Y036530
X022161Y035280
X020161Y035280
X000911Y037780
X020661Y024780
X021161Y035280
X021931Y037280
X014911Y025030
X030661Y036280
X003891Y037780
X001411Y033030
X014911Y028280
X018661Y022280
X002411Y033030
X011911Y010760
X019661Y022280
X022161Y033030
X020161Y033030
X014911Y023030
X003411Y033030
X021161Y033030
X030661Y033300
X028661Y037030
X026661Y037030
X020661Y022280
X027661Y037030
X014911Y029280
X001421Y035289
X003421Y035289
X025661Y036010
X002421Y035289
X014911Y024030
X000911Y036530
X018661Y024780
T111
X030411Y027280
X024911Y013280
X028661Y017530
X023411Y034530
X036911Y013030
X012411Y003780
X013161Y014780
X022161Y029530
X029411Y002780
X034911Y028780
X009661Y026530
X018911Y012280
X009661Y033030
X029661Y023530
X019161Y014530
X033911Y023780
X006411Y017530
X025411Y029030
X001661Y026530
X031161Y008530
X017661Y025280
X023661Y036780
X020161Y029530
X025911Y006780
X006411Y022030
X030661Y006030
X007161Y010530
X027911Y018780
X034911Y025780
X024411Y022030
X037911Y010780
X007161Y025530
X010661Y009280
X034911Y027030
X035661Y004280
X026911Y008530
X028661Y015030
X035911Y028780
X038661Y020780
X026661Y014530
X031161Y009280
X010661Y003530
X036661Y010030
X012411Y016280
X007161Y004530
X015411Y017280
X005911Y031030
X022661Y008280
X015661Y035780
X035661Y013780
X015023Y006280
X016661Y010030
X024411Y033030
X019911Y016530
X002161Y038530
X009911Y011530
X024911Y010530
X013661Y036780
X033161Y016030
X011661Y007030
X019661Y006030
X031661Y004030
X003411Y019530
X029911Y011030
X013411Y016280
X027661Y018280
X038161Y007780
T00
M30

View File

@ -0,0 +1,639 @@
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.084000*%
%ADD12C,0.175354*%
%ADD13C,0.080000*%
%ADD14C,0.088000*%
%ADD15C,0.085000*%
%ADD16C,0.140000*%
%ADD17C,0.082917*%
%ADD18C,0.135984*%
%ADD19C,0.092000*%
%ADD20C,0.061496*%
%ADD21C,0.089370*%
%ADD22C,0.072992*%
%ADD23C,0.109055*%
%ADD24R,0.084000X0.084000*%
%ADD25R,0.080000X0.080000*%
%ADD26R,0.085000X0.085000*%
%ADD27R,0.092000X0.092000*%
%ADD28R,0.089370X0.089370*%
%ADD29R,0.072992X0.072992*%
%ADD30R,0.109055X0.109055*%
%LNMASK0*%
G90*
G70*
G54D10*
X3566Y1378D03*
X2991Y1103D03*
X2441Y3303D03*
X2341Y3453D03*
X1966Y603D03*
X2491Y1328D03*
X716Y1053D03*
X716Y453D03*
X2441Y2203D03*
X3041Y2728D03*
X1366Y3678D03*
X216Y3853D03*
X3116Y928D03*
X1666Y1003D03*
X2491Y1053D03*
X2591Y678D03*
X2266Y828D03*
X2691Y853D03*
X1166Y703D03*
X2366Y3678D03*
X1066Y928D03*
X1766Y2528D03*
X991Y1153D03*
X1916Y1453D03*
X3666Y1003D03*
X3691Y1303D03*
X2666Y1453D03*
X591Y3103D03*
G54D11*
X616Y2353D03*
X616Y2453D03*
X616Y2553D03*
X616Y2653D03*
X616Y2753D03*
X616Y2853D03*
G54D12*
X144Y2148D03*
X144Y3058D03*
G54D11*
X616Y2353D03*
X616Y2453D03*
X616Y2553D03*
X616Y2653D03*
X616Y2753D03*
X616Y2853D03*
G54D12*
X144Y2148D03*
X144Y3058D03*
G54D10*
X3491Y2878D03*
X3491Y2703D03*
X3491Y2578D03*
X3066Y603D03*
X3116Y853D03*
X3591Y2878D03*
X2216Y2953D03*
X2016Y2953D03*
X966Y2653D03*
X716Y2553D03*
X341Y1953D03*
X641Y2203D03*
X641Y1753D03*
X2866Y1753D03*
X2966Y2353D03*
X3391Y2378D03*
X1502Y628D03*
G54D13*
X3591Y3003D03*
X3591Y2503D03*
X3491Y3003D03*
X3491Y2503D03*
X3391Y3003D03*
X3391Y2503D03*
X3291Y3003D03*
X3291Y2503D03*
X3191Y3003D03*
X3191Y2503D03*
X3091Y3003D03*
X3091Y2503D03*
X2991Y3003D03*
X2991Y2503D03*
X2891Y3003D03*
X2891Y2503D03*
G54D10*
X3866Y2078D03*
X1566Y3578D03*
X3166Y403D03*
X3791Y1078D03*
X3816Y778D03*
X966Y3303D03*
X1891Y1228D03*
G54D14*
X191Y1553D03*
X291Y1553D03*
X391Y1553D03*
X491Y1553D03*
X591Y1553D03*
X191Y253D03*
X291Y253D03*
X391Y253D03*
X491Y253D03*
X591Y253D03*
X191Y853D03*
X191Y1153D03*
X191Y353D03*
X291Y353D03*
X391Y353D03*
X491Y353D03*
X591Y353D03*
X191Y1353D03*
X191Y1253D03*
X191Y1053D03*
X191Y753D03*
X191Y453D03*
X191Y953D03*
X191Y1453D03*
X191Y653D03*
X191Y553D03*
X291Y853D03*
X291Y1153D03*
X291Y1353D03*
X291Y1253D03*
X291Y1053D03*
X291Y753D03*
X291Y453D03*
X291Y953D03*
X291Y1453D03*
X291Y653D03*
X291Y553D03*
X391Y853D03*
X391Y1153D03*
X391Y1353D03*
X391Y1253D03*
X391Y1053D03*
X391Y753D03*
X391Y453D03*
X391Y953D03*
X391Y1453D03*
X391Y653D03*
X391Y553D03*
X491Y853D03*
X491Y1153D03*
X491Y1353D03*
X491Y1253D03*
X491Y1053D03*
X491Y753D03*
X491Y453D03*
X491Y953D03*
X491Y1453D03*
X491Y653D03*
X491Y553D03*
X591Y453D03*
X591Y553D03*
X591Y653D03*
X591Y753D03*
X591Y853D03*
X591Y953D03*
X591Y1053D03*
X591Y1153D03*
X591Y1253D03*
X591Y1353D03*
X591Y1453D03*
G54D15*
X1891Y728D03*
X1891Y1028D03*
X1991Y728D03*
X1991Y1028D03*
X2091Y728D03*
X2091Y1028D03*
X2191Y728D03*
X2191Y1028D03*
G54D16*
X1241Y2628D03*
X1241Y2828D03*
X1241Y2428D03*
X1241Y2228D03*
G54D10*
X1316Y1478D03*
X3316Y1603D03*
X2866Y1503D03*
X1991Y1653D03*
X1541Y1728D03*
X1241Y378D03*
X1066Y353D03*
X166Y2653D03*
X3566Y428D03*
X2541Y2903D03*
X2941Y278D03*
X2791Y1878D03*
X2766Y1828D03*
X1241Y1628D03*
X1341Y1628D03*
G54D15*
X3091Y728D03*
X3091Y1028D03*
X3191Y728D03*
X3191Y1028D03*
X3291Y728D03*
X3291Y1028D03*
X3391Y728D03*
X3391Y1028D03*
G54D11*
X891Y2278D03*
X891Y2178D03*
X891Y2078D03*
X891Y1978D03*
X891Y1878D03*
X891Y1778D03*
X891Y1678D03*
X891Y1578D03*
X891Y1478D03*
X891Y1378D03*
X891Y1278D03*
X891Y1178D03*
X891Y1078D03*
X891Y978D03*
X891Y878D03*
X891Y778D03*
X891Y678D03*
X891Y578D03*
X891Y478D03*
X891Y378D03*
X791Y2278D03*
X791Y2178D03*
X791Y2078D03*
X791Y1978D03*
X791Y1878D03*
X791Y1778D03*
X791Y1678D03*
X791Y1578D03*
X791Y1478D03*
X791Y1378D03*
X791Y1278D03*
X791Y1178D03*
X791Y1078D03*
X791Y978D03*
X791Y878D03*
X791Y778D03*
X791Y678D03*
X791Y578D03*
X791Y478D03*
X791Y378D03*
G54D17*
X2991Y1228D03*
X1391Y1228D03*
X3091Y1228D03*
X3191Y1228D03*
X3291Y1228D03*
X3391Y1228D03*
X3691Y2628D03*
X3491Y1228D03*
X3591Y1228D03*
X1431Y3128D03*
X1991Y1228D03*
X2091Y1228D03*
X2191Y1228D03*
X2291Y1228D03*
X3691Y1828D03*
X2391Y1228D03*
X2491Y1228D03*
X2591Y1228D03*
X2691Y1228D03*
X2191Y3128D03*
X3691Y3028D03*
X3691Y2228D03*
X3691Y1428D03*
X1031Y3128D03*
X1791Y1228D03*
X1791Y3128D03*
X3691Y2828D03*
X3691Y2428D03*
X3691Y2028D03*
X3391Y3128D03*
X3691Y1628D03*
X3291Y3128D03*
X3191Y3128D03*
X3091Y3128D03*
X2991Y3128D03*
X2891Y3128D03*
X2791Y3128D03*
X2691Y3128D03*
X831Y3128D03*
X1231Y3128D03*
X1631Y3128D03*
X1191Y1228D03*
X1591Y1228D03*
X2391Y3128D03*
X1991Y3128D03*
X3691Y3128D03*
X3691Y2928D03*
X3691Y2728D03*
X3691Y2528D03*
X3691Y2328D03*
X3691Y2128D03*
X3691Y1928D03*
X3691Y1728D03*
X3691Y1528D03*
X731Y3128D03*
X931Y3128D03*
X1131Y3128D03*
X1331Y3128D03*
X1531Y3128D03*
X1091Y1228D03*
X1291Y1228D03*
X1491Y1228D03*
X1691Y1228D03*
X2491Y3128D03*
X2291Y3128D03*
X2091Y3128D03*
X1891Y3128D03*
X3791Y3128D03*
X3791Y3028D03*
X3791Y2928D03*
X3791Y2828D03*
X3791Y2728D03*
X3791Y2628D03*
X3791Y2528D03*
X3791Y2428D03*
X3791Y2328D03*
X3791Y2228D03*
X3791Y2128D03*
X3791Y2028D03*
X3791Y1928D03*
X3791Y1828D03*
X3791Y1728D03*
X3791Y1628D03*
X3791Y1528D03*
X3791Y1428D03*
X2891Y1228D03*
G54D18*
X3757Y1228D03*
X3541Y3128D03*
G54D19*
X1491Y2503D03*
X1491Y2403D03*
X1491Y2303D03*
X2066Y2478D03*
X1966Y2478D03*
X1866Y2478D03*
X1491Y2928D03*
X1491Y2828D03*
X1491Y2728D03*
X2066Y2228D03*
X1966Y2228D03*
X1866Y2228D03*
G54D13*
X1191Y1378D03*
X1391Y1378D03*
G54D19*
X2566Y3303D03*
X2566Y3601D03*
G54D15*
X466Y1903D03*
X66Y1903D03*
G54D14*
X3566Y528D03*
X3566Y628D03*
X3566Y728D03*
X3566Y1078D03*
X3566Y978D03*
X3566Y878D03*
X2791Y2828D03*
X2791Y2728D03*
X2791Y2628D03*
G54D15*
X2991Y603D03*
X3391Y603D03*
X2991Y503D03*
X3391Y503D03*
G54D14*
X2991Y403D03*
X3091Y403D03*
X3266Y403D03*
X3366Y403D03*
G54D15*
X3591Y1453D03*
X3191Y1453D03*
X2366Y3028D03*
X2366Y2628D03*
X2266Y3028D03*
X2266Y2628D03*
X3566Y2028D03*
X3166Y2028D03*
X3591Y1753D03*
X3191Y1753D03*
X2166Y3028D03*
X2166Y2628D03*
X1666Y2953D03*
X1666Y2553D03*
X3566Y2328D03*
X3166Y2328D03*
G54D19*
X2666Y3703D03*
X2766Y3703D03*
X2866Y3703D03*
G54D13*
X3041Y3728D03*
X3241Y3728D03*
X2891Y3528D03*
X2891Y3328D03*
X3216Y3378D03*
X3216Y3578D03*
X2716Y3528D03*
X2716Y3328D03*
G54D19*
X3066Y3628D03*
X3066Y3330D03*
G54D20*
X3391Y3403D03*
X3391Y3698D03*
G54D21*
X3066Y1453D03*
X2766Y1453D03*
X3066Y1553D03*
X2766Y1553D03*
X3066Y1653D03*
X2766Y1653D03*
X3066Y1753D03*
X2766Y1753D03*
X3066Y2053D03*
X2766Y2053D03*
X3066Y2153D03*
X2766Y2153D03*
X3066Y2253D03*
X2766Y2253D03*
X3066Y2353D03*
X2766Y2353D03*
G54D15*
X3591Y1553D03*
X3191Y1553D03*
X1866Y3028D03*
X1866Y2628D03*
X1966Y3028D03*
X1966Y2628D03*
X3566Y2128D03*
X3166Y2128D03*
X3591Y1653D03*
X3191Y1653D03*
X2066Y3028D03*
X2066Y2628D03*
X1766Y3028D03*
X1766Y2628D03*
X3566Y2228D03*
X3166Y2228D03*
X2066Y1378D03*
X2066Y1878D03*
X2591Y2503D03*
X2591Y3003D03*
X2191Y1878D03*
X2191Y1378D03*
X2466Y3003D03*
X2466Y2503D03*
X2416Y1778D03*
X2416Y1378D03*
X2266Y2103D03*
X2266Y2503D03*
X2316Y1778D03*
X2316Y1378D03*
X2366Y2103D03*
X2366Y2503D03*
G54D22*
X2493Y1703D03*
X2591Y1703D03*
X2493Y2303D03*
X2591Y2303D03*
X2493Y1503D03*
X2591Y1503D03*
X2493Y2103D03*
X2591Y2103D03*
G54D15*
X1741Y1853D03*
X1741Y1453D03*
G54D13*
X1666Y378D03*
X1466Y378D03*
X1341Y378D03*
X1141Y378D03*
G54D15*
X1666Y703D03*
X1666Y1103D03*
X1466Y703D03*
X1466Y1103D03*
G54D19*
X1191Y778D03*
X1191Y1076D03*
G54D13*
X266Y1678D03*
X466Y1678D03*
X266Y1803D03*
X466Y1803D03*
X2666Y278D03*
X2466Y278D03*
G54D15*
X2766Y678D03*
X2766Y1078D03*
X2341Y678D03*
X2341Y1078D03*
X1641Y1853D03*
X1641Y1453D03*
X1091Y3253D03*
X691Y3253D03*
X1266Y3253D03*
X1666Y3253D03*
X1091Y3553D03*
X691Y3553D03*
X1266Y3553D03*
X1666Y3553D03*
G54D22*
X542Y3281D03*
X542Y3379D03*
X1816Y3305D03*
X1816Y3403D03*
X542Y3481D03*
X542Y3579D03*
X1816Y3505D03*
X1816Y3603D03*
G54D19*
X91Y3653D03*
X389Y3653D03*
X2091Y3728D03*
X1793Y3728D03*
X91Y3778D03*
X389Y3778D03*
X2491Y3728D03*
X2193Y3728D03*
X341Y3303D03*
X241Y3303D03*
X141Y3303D03*
X2016Y3303D03*
X2116Y3303D03*
X2216Y3303D03*
X342Y3529D03*
X242Y3529D03*
X142Y3529D03*
X2016Y3528D03*
X2116Y3528D03*
X2216Y3528D03*
G54D15*
X1091Y3353D03*
X691Y3353D03*
X1265Y3352D03*
X1665Y3352D03*
X1091Y3653D03*
X691Y3653D03*
X1265Y3652D03*
X1665Y3652D03*
X1091Y3453D03*
X691Y3453D03*
X1266Y3453D03*
X1666Y3453D03*
X1091Y3778D03*
X691Y3778D03*
X1266Y3778D03*
X1666Y3778D03*
G54D23*
X3641Y3678D03*
X3641Y3481D03*
G54D24*
X616Y2353D03*
X616Y2353D03*
G54D25*
X2891Y2503D03*
X3491Y2503D03*
G54D26*
X1891Y728D03*
X3091Y728D03*
G54D24*
X791Y2278D03*
G54D27*
X1491Y2503D03*
X2066Y2478D03*
X1491Y2928D03*
X2066Y2228D03*
X2566Y3302D03*
X2666Y3703D03*
X3066Y3629D03*
G54D28*
X3066Y1453D03*
X3066Y2053D03*
G54D29*
X2493Y1703D03*
X2493Y2303D03*
X2493Y1503D03*
X2493Y2103D03*
G54D27*
X1191Y777D03*
G54D29*
X542Y3281D03*
X1816Y3305D03*
X542Y3481D03*
X1816Y3505D03*
G54D27*
X90Y3653D03*
X2092Y3728D03*
X90Y3778D03*
X2492Y3728D03*
X341Y3303D03*
X2016Y3303D03*
X342Y3529D03*
X2016Y3528D03*
G54D30*
X3641Y3678D03*
G04 End of Mask0*
M02*

View File

@ -0,0 +1,716 @@
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.043465*%
%ADD12C,0.084000*%
%ADD13C,0.175354*%
%ADD14C,0.080000*%
%ADD15C,0.088000*%
%ADD16C,0.085000*%
%ADD17C,0.140000*%
%ADD18C,0.082917*%
%ADD19C,0.135984*%
%ADD20C,0.092000*%
%ADD21C,0.061496*%
%ADD22C,0.089370*%
%ADD23C,0.072992*%
%ADD24C,0.109055*%
%ADD25R,0.049370X0.055276*%
%ADD26R,0.069055X0.065118*%
%ADD27R,0.065118X0.069055*%
%ADD28R,0.067874X0.060000*%
%ADD29R,0.084000X0.084000*%
%ADD30R,0.080000X0.080000*%
%ADD31R,0.085000X0.085000*%
%ADD32R,0.092000X0.092000*%
%ADD33R,0.089370X0.089370*%
%ADD34R,0.072992X0.072992*%
%ADD35R,0.109055X0.109055*%
%ADD36C,0.010000*%
%LNMASK1*%
G90*
G70*
G54D10*
X3566Y1378D03*
X2991Y1103D03*
X2441Y3303D03*
X2341Y3453D03*
X1966Y603D03*
X2491Y1328D03*
X716Y1053D03*
X716Y453D03*
G54D11*
X2009Y414D03*
X2127Y414D03*
G54D10*
X2441Y2203D03*
X3041Y2728D03*
X1366Y3678D03*
X216Y3853D03*
X3116Y928D03*
X1666Y1003D03*
X2491Y1053D03*
X2591Y678D03*
X2266Y828D03*
X2691Y853D03*
X1166Y703D03*
X2366Y3678D03*
X1066Y928D03*
X1766Y2528D03*
X991Y1153D03*
X1916Y1453D03*
X3666Y1003D03*
X3691Y1303D03*
X2666Y1453D03*
X591Y3103D03*
G54D12*
X616Y2353D03*
X616Y2453D03*
X616Y2553D03*
X616Y2653D03*
X616Y2753D03*
X616Y2853D03*
G54D13*
X144Y2148D03*
X144Y3058D03*
G54D10*
X3491Y2878D03*
X3491Y2703D03*
X3491Y2578D03*
X3066Y603D03*
X3116Y853D03*
X3591Y2878D03*
X2216Y2953D03*
X2016Y2953D03*
X966Y2653D03*
X716Y2553D03*
X341Y1953D03*
X641Y2203D03*
X641Y1753D03*
X2866Y1753D03*
X2966Y2353D03*
X3391Y2378D03*
X1502Y628D03*
G54D14*
X3591Y3003D03*
X3591Y2503D03*
X3491Y3003D03*
X3491Y2503D03*
X3391Y3003D03*
X3391Y2503D03*
X3291Y3003D03*
X3291Y2503D03*
X3191Y3003D03*
X3191Y2503D03*
X3091Y3003D03*
X3091Y2503D03*
X2991Y3003D03*
X2991Y2503D03*
X2891Y3003D03*
X2891Y2503D03*
G54D10*
X3866Y2078D03*
X1566Y3578D03*
X3166Y403D03*
X3791Y1078D03*
X3816Y778D03*
X966Y3303D03*
X1891Y1228D03*
G54D15*
X191Y1553D03*
X291Y1553D03*
X391Y1553D03*
X491Y1553D03*
X591Y1553D03*
X191Y253D03*
X291Y253D03*
X391Y253D03*
X491Y253D03*
X591Y253D03*
X191Y853D03*
X191Y1153D03*
X191Y353D03*
X291Y353D03*
X391Y353D03*
X491Y353D03*
X591Y353D03*
X191Y1353D03*
X191Y1253D03*
X191Y1053D03*
X191Y753D03*
X191Y453D03*
X191Y953D03*
X191Y1453D03*
X191Y653D03*
X191Y553D03*
X291Y853D03*
X291Y1153D03*
X291Y1353D03*
X291Y1253D03*
X291Y1053D03*
X291Y753D03*
X291Y453D03*
X291Y953D03*
X291Y1453D03*
X291Y653D03*
X291Y553D03*
X391Y853D03*
X391Y1153D03*
X391Y1353D03*
X391Y1253D03*
X391Y1053D03*
X391Y753D03*
X391Y453D03*
X391Y953D03*
X391Y1453D03*
X391Y653D03*
X391Y553D03*
X491Y853D03*
X491Y1153D03*
X491Y1353D03*
X491Y1253D03*
X491Y1053D03*
X491Y753D03*
X491Y453D03*
X491Y953D03*
X491Y1453D03*
X491Y653D03*
X491Y553D03*
X591Y453D03*
X591Y553D03*
X591Y653D03*
X591Y753D03*
X591Y853D03*
X591Y953D03*
X591Y1053D03*
X591Y1153D03*
X591Y1253D03*
X591Y1353D03*
X591Y1453D03*
G54D16*
X1891Y728D03*
X1891Y1028D03*
X1991Y728D03*
X1991Y1028D03*
X2091Y728D03*
X2091Y1028D03*
X2191Y728D03*
X2191Y1028D03*
G54D17*
X1241Y2628D03*
X1241Y2828D03*
X1241Y2428D03*
X1241Y2228D03*
X1241Y2628D03*
X1241Y2828D03*
X1241Y2428D03*
X1241Y2228D03*
G54D10*
X1316Y1478D03*
X3316Y1603D03*
X2866Y1503D03*
X1991Y1653D03*
X1541Y1728D03*
X1241Y378D03*
X1066Y353D03*
X166Y2653D03*
X3566Y428D03*
X2541Y2903D03*
X2941Y278D03*
X2791Y1878D03*
X2766Y1828D03*
X1241Y1628D03*
X1341Y1628D03*
G54D16*
X3091Y728D03*
X3091Y1028D03*
X3191Y728D03*
X3191Y1028D03*
X3291Y728D03*
X3291Y1028D03*
X3391Y728D03*
X3391Y1028D03*
G54D12*
X891Y2278D03*
X891Y2178D03*
X891Y2078D03*
X891Y1978D03*
X891Y1878D03*
X891Y1778D03*
X891Y1678D03*
X891Y1578D03*
X891Y1478D03*
X891Y1378D03*
X891Y1278D03*
X891Y1178D03*
X891Y1078D03*
X891Y978D03*
X891Y878D03*
X891Y778D03*
X891Y678D03*
X891Y578D03*
X891Y478D03*
X891Y378D03*
X791Y2278D03*
X791Y2178D03*
X791Y2078D03*
X791Y1978D03*
X791Y1878D03*
X791Y1778D03*
X791Y1678D03*
X791Y1578D03*
X791Y1478D03*
X791Y1378D03*
X791Y1278D03*
X791Y1178D03*
X791Y1078D03*
X791Y978D03*
X791Y878D03*
X791Y778D03*
X791Y678D03*
X791Y578D03*
X791Y478D03*
X791Y378D03*
G54D18*
X2991Y1228D03*
X1391Y1228D03*
X3091Y1228D03*
X3191Y1228D03*
X3291Y1228D03*
X3391Y1228D03*
X3691Y2628D03*
X3491Y1228D03*
X3591Y1228D03*
X1431Y3128D03*
X1991Y1228D03*
X2091Y1228D03*
X2191Y1228D03*
X2291Y1228D03*
X3691Y1828D03*
X2391Y1228D03*
X2491Y1228D03*
X2591Y1228D03*
X2691Y1228D03*
X2191Y3128D03*
X3691Y3028D03*
X3691Y2228D03*
X3691Y1428D03*
X1031Y3128D03*
X1791Y1228D03*
X1791Y3128D03*
X3691Y2828D03*
X3691Y2428D03*
X3691Y2028D03*
X3391Y3128D03*
X3691Y1628D03*
X3291Y3128D03*
X3191Y3128D03*
X3091Y3128D03*
X2991Y3128D03*
X2891Y3128D03*
X2791Y3128D03*
X2691Y3128D03*
X831Y3128D03*
X1231Y3128D03*
X1631Y3128D03*
X1191Y1228D03*
X1591Y1228D03*
X2391Y3128D03*
X1991Y3128D03*
X3691Y3128D03*
X3691Y2928D03*
X3691Y2728D03*
X3691Y2528D03*
X3691Y2328D03*
X3691Y2128D03*
X3691Y1928D03*
X3691Y1728D03*
X3691Y1528D03*
X731Y3128D03*
X931Y3128D03*
X1131Y3128D03*
X1331Y3128D03*
X1531Y3128D03*
X1091Y1228D03*
X1291Y1228D03*
X1491Y1228D03*
X1691Y1228D03*
X2491Y3128D03*
X2291Y3128D03*
X2091Y3128D03*
X1891Y3128D03*
X3791Y3128D03*
X3791Y3028D03*
X3791Y2928D03*
X3791Y2828D03*
X3791Y2728D03*
X3791Y2628D03*
X3791Y2528D03*
X3791Y2428D03*
X3791Y2328D03*
X3791Y2228D03*
X3791Y2128D03*
X3791Y2028D03*
X3791Y1928D03*
X3791Y1828D03*
X3791Y1728D03*
X3791Y1628D03*
X3791Y1528D03*
X3791Y1428D03*
X2891Y1228D03*
G54D19*
X3757Y1228D03*
X3541Y3128D03*
G54D20*
X1491Y2503D03*
X1491Y2403D03*
X1491Y2303D03*
X2066Y2478D03*
X1966Y2478D03*
X1866Y2478D03*
X1491Y2928D03*
X1491Y2828D03*
X1491Y2728D03*
X2066Y2228D03*
X1966Y2228D03*
X1866Y2228D03*
G54D14*
X1191Y1378D03*
X1391Y1378D03*
G54D20*
X2566Y3303D03*
X2566Y3601D03*
G54D16*
X466Y1903D03*
X66Y1903D03*
G54D15*
X3566Y528D03*
X3566Y628D03*
X3566Y728D03*
X3566Y1078D03*
X3566Y978D03*
X3566Y878D03*
X2791Y2828D03*
X2791Y2728D03*
X2791Y2628D03*
G54D16*
X2991Y603D03*
X3391Y603D03*
X2991Y503D03*
X3391Y503D03*
G54D15*
X2991Y403D03*
X3091Y403D03*
X3266Y403D03*
X3366Y403D03*
G54D16*
X3591Y1453D03*
X3191Y1453D03*
X2366Y3028D03*
X2366Y2628D03*
X2266Y3028D03*
X2266Y2628D03*
X3566Y2028D03*
X3166Y2028D03*
X3591Y1753D03*
X3191Y1753D03*
X2166Y3028D03*
X2166Y2628D03*
X1666Y2953D03*
X1666Y2553D03*
X3566Y2328D03*
X3166Y2328D03*
G54D20*
X2666Y3703D03*
X2766Y3703D03*
X2866Y3703D03*
G54D14*
X3041Y3728D03*
X3241Y3728D03*
X2891Y3528D03*
X2891Y3328D03*
X3216Y3378D03*
X3216Y3578D03*
X2716Y3528D03*
X2716Y3328D03*
G54D20*
X3066Y3628D03*
X3066Y3330D03*
G54D21*
X3391Y3403D03*
X3391Y3698D03*
X3391Y3403D03*
X3391Y3698D03*
G54D22*
X3066Y1453D03*
X2766Y1453D03*
X3066Y1553D03*
X2766Y1553D03*
X3066Y1653D03*
X2766Y1653D03*
X3066Y1753D03*
X2766Y1753D03*
X3066Y2053D03*
X2766Y2053D03*
X3066Y2153D03*
X2766Y2153D03*
X3066Y2253D03*
X2766Y2253D03*
X3066Y2353D03*
X2766Y2353D03*
G54D16*
X3591Y1553D03*
X3191Y1553D03*
X1866Y3028D03*
X1866Y2628D03*
X1966Y3028D03*
X1966Y2628D03*
X3566Y2128D03*
X3166Y2128D03*
X3591Y1653D03*
X3191Y1653D03*
X2066Y3028D03*
X2066Y2628D03*
X1766Y3028D03*
X1766Y2628D03*
X3566Y2228D03*
X3166Y2228D03*
X2066Y1378D03*
X2066Y1878D03*
X2591Y2503D03*
X2591Y3003D03*
X2191Y1878D03*
X2191Y1378D03*
X2466Y3003D03*
X2466Y2503D03*
X2416Y1778D03*
X2416Y1378D03*
X2266Y2103D03*
X2266Y2503D03*
X2316Y1778D03*
X2316Y1378D03*
X2366Y2103D03*
X2366Y2503D03*
G54D23*
X2493Y1703D03*
X2591Y1703D03*
X2493Y2303D03*
X2591Y2303D03*
X2493Y1503D03*
X2591Y1503D03*
X2493Y2103D03*
X2591Y2103D03*
G54D16*
X1741Y1853D03*
X1741Y1453D03*
G54D14*
X1666Y378D03*
X1466Y378D03*
X1341Y378D03*
X1141Y378D03*
G54D16*
X1666Y703D03*
X1666Y1103D03*
X1466Y703D03*
X1466Y1103D03*
G54D20*
X1191Y778D03*
X1191Y1076D03*
G54D14*
X266Y1678D03*
X466Y1678D03*
X266Y1803D03*
X466Y1803D03*
X2666Y278D03*
X2466Y278D03*
G54D16*
X2766Y678D03*
X2766Y1078D03*
X2341Y678D03*
X2341Y1078D03*
X1641Y1853D03*
X1641Y1453D03*
X1091Y3253D03*
X691Y3253D03*
X1266Y3253D03*
X1666Y3253D03*
X1091Y3553D03*
X691Y3553D03*
X1266Y3553D03*
X1666Y3553D03*
G54D23*
X542Y3281D03*
X542Y3379D03*
X1816Y3305D03*
X1816Y3403D03*
X542Y3481D03*
X542Y3579D03*
X1816Y3505D03*
X1816Y3603D03*
G54D20*
X91Y3653D03*
X389Y3653D03*
X2091Y3728D03*
X1793Y3728D03*
X91Y3778D03*
X389Y3778D03*
X2491Y3728D03*
X2193Y3728D03*
X341Y3303D03*
X241Y3303D03*
X141Y3303D03*
X2016Y3303D03*
X2116Y3303D03*
X2216Y3303D03*
X342Y3529D03*
X242Y3529D03*
X142Y3529D03*
X2016Y3528D03*
X2116Y3528D03*
X2216Y3528D03*
G54D16*
X1091Y3353D03*
X691Y3353D03*
X1265Y3352D03*
X1665Y3352D03*
X1091Y3653D03*
X691Y3653D03*
X1265Y3652D03*
X1665Y3652D03*
X1091Y3453D03*
X691Y3453D03*
X1266Y3453D03*
X1666Y3453D03*
X1091Y3778D03*
X691Y3778D03*
X1266Y3778D03*
X1666Y3778D03*
G54D24*
X3641Y3678D03*
X3641Y3481D03*
G54D25*
X1969Y303D03*
X2068Y303D03*
X2166Y303D03*
X1969Y525D03*
X2068Y525D03*
X2166Y525D03*
G54D26*
X1841Y503D03*
X1841Y422D03*
X2366Y578D03*
X2366Y497D03*
G54D27*
X2591Y578D03*
X2672Y578D03*
G54D26*
X1441Y1453D03*
X1441Y1534D03*
G54D28*
X2441Y3228D03*
X2441Y3397D03*
G54D26*
X2641Y1028D03*
X2641Y1109D03*
X2866Y903D03*
X2866Y984D03*
X1766Y953D03*
X1766Y1034D03*
X1566Y953D03*
X1566Y1034D03*
X1541Y1528D03*
X1541Y1447D03*
X2466Y3553D03*
X2466Y3472D03*
X3791Y878D03*
X3791Y959D03*
G54D27*
X3466Y278D03*
X3547Y278D03*
G54D26*
X2441Y828D03*
X2441Y909D03*
X2541Y828D03*
X2541Y909D03*
X2666Y1553D03*
X2666Y1634D03*
X766Y2803D03*
X766Y2722D03*
X1741Y728D03*
X1741Y647D03*
G54D27*
X1235Y628D03*
X1316Y628D03*
X2841Y1328D03*
X2760Y1328D03*
G54D29*
X616Y2353D03*
G54D30*
X2891Y2503D03*
X3491Y2503D03*
G54D31*
X1891Y728D03*
X3091Y728D03*
G54D29*
X791Y2278D03*
G54D32*
X1491Y2503D03*
X2066Y2478D03*
X1491Y2928D03*
X2066Y2228D03*
X2566Y3302D03*
X2666Y3703D03*
X3066Y3629D03*
G54D33*
X3066Y1453D03*
X3066Y2053D03*
G54D34*
X2493Y1703D03*
X2493Y2303D03*
X2493Y1503D03*
X2493Y2103D03*
G54D32*
X1191Y777D03*
G54D34*
X542Y3281D03*
X1816Y3305D03*
X542Y3481D03*
X1816Y3505D03*
G54D32*
X90Y3653D03*
X2092Y3728D03*
X90Y3778D03*
X2492Y3728D03*
X341Y3303D03*
X2016Y3303D03*
X342Y3529D03*
X2016Y3528D03*
G54D35*
X3641Y3678D03*
G54D36*
G36*
X2637Y2231D02*
X2696Y2231D01*
X2696Y2175D01*
X2637Y2175D01*
X2637Y2231D01*
G37*
D02*
G36*
X2637Y2311D02*
X2696Y2311D01*
X2696Y2256D01*
X2637Y2256D01*
X2637Y2311D01*
G37*
D02*
G04 End of Mask1*
M02*

View File

@ -0,0 +1,106 @@
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.033465*%
%ADD11C,0.074000*%
%ADD12C,0.165354*%
%ADD13R,0.039370X0.045276*%
%ADD14R,0.059055X0.055118*%
%ADD15R,0.055118X0.059055*%
%ADD16R,0.057874X0.050000*%
%ADD17R,0.001000X0.001000*%
%LNPASTEMASK1*%
G90*
G70*
G54D10*
X2009Y414D03*
X2127Y414D03*
G54D11*
X616Y2653D03*
X616Y2753D03*
X616Y2853D03*
G54D12*
X144Y2148D03*
X144Y3058D03*
G54D13*
X1969Y303D03*
X2068Y303D03*
X2166Y303D03*
X1969Y525D03*
X2068Y525D03*
X2166Y525D03*
G54D14*
X1841Y503D03*
X1841Y422D03*
X2366Y578D03*
X2366Y497D03*
G54D15*
X2591Y578D03*
X2672Y578D03*
G54D14*
X1441Y1453D03*
X1441Y1534D03*
G54D16*
X2441Y3228D03*
X2441Y3397D03*
G54D14*
X2641Y1028D03*
X2641Y1109D03*
X2866Y903D03*
X2866Y984D03*
X1766Y953D03*
X1766Y1034D03*
X1566Y953D03*
X1566Y1034D03*
X1541Y1528D03*
X1541Y1447D03*
X2466Y3553D03*
X2466Y3472D03*
X3791Y878D03*
X3791Y959D03*
G54D15*
X3466Y278D03*
X3547Y278D03*
G54D14*
X2441Y828D03*
X2441Y909D03*
X2541Y828D03*
X2541Y909D03*
X2666Y1553D03*
X2666Y1634D03*
X766Y2803D03*
X766Y2722D03*
X1741Y728D03*
X1741Y647D03*
G54D15*
X1235Y628D03*
X1316Y628D03*
X2841Y1328D03*
X2760Y1328D03*
G36*
X2637Y2231D02*
X2696Y2231D01*
X2696Y2175D01*
X2637Y2175D01*
X2637Y2231D01*
G37*
D02*
G36*
X2637Y2311D02*
X2696Y2311D01*
X2696Y2256D01*
X2637Y2256D01*
X2637Y2311D01*
G37*
D02*
G54D17*
D02*
G04 End of PasteMask1*
M02*

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
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,3.937010X3.937010X3.921010X3.921010*%
%ADD11C,0.008000*%
%LNSILK0*%
G90*
G70*
G54D11*
X4Y3933D02*
X3933Y3933D01*
X3933Y4D01*
X4Y4D01*
X4Y3933D01*
D02*
G04 End of Silk0*
M02*

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 140 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 59 KiB

BIN
reference/wiki/vr/vr_wave.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 148 KiB

View File

@ -22,7 +22,7 @@ void canCommand()
switch (Serial3.read())
{
case 'A': // sends the bytes of realtime values
sendValues(packetSize,3); //send values to serial3
sendValues(0, packetSize,3); //send values to serial3
break;
case 'G': // this is the reply command sent by the Can interface

View File

@ -17,6 +17,8 @@
byte currentPage = 1;//Not the same as the speeduino config page numbers
boolean isMap = true;
unsigned long requestCount = 0; //The number of times the A command has been issued
byte currentCommand;
bool cmdPending = false;
byte cmdGroup = 0;
byte cmdValue = 0;
int cmdCombined = 0; //the cmdgroup as high byte and cmdvalue as low byte
@ -37,7 +39,7 @@ const char pageTitles[] PROGMEM //This is being stored in the avr flash instead
};
void command();//This is the heart of the Command Line Interpeter. All that needed to be done was to make it human readable.
void sendValues(int packetlength, byte portnum);
void sendValues(uint16_t offset, uint16_t packetlength, byte portnum);
void receiveValue(int offset, byte newValue);
void saveConfig();
void sendPage(bool useChar);

View File

@ -15,12 +15,16 @@ A detailed description of each call can be found at: http://www.msextra.com/doc/
void command()
{
switch (Serial.read())
if (!cmdPending) { currentCommand = Serial.read(); }
switch (currentCommand)
{
case 'A': // send x bytes of realtime values
sendValues(packetSize, 0); //send values to serial0
sendValues(0, packetSize, 0); //send values to serial0
break;
case 'B': // Burn current values to eeprom
writeConfig();
break;
@ -30,13 +34,15 @@ void command()
break;
case 'E': // receive command button commands
while (Serial.available() == 0) { }
cmdPending = true;
if(Serial.available() < 2) { return; }
cmdGroup = Serial.read();
while (Serial.available() == 0) { }
cmdValue = Serial.read();
cmdCombined = word(cmdGroup, cmdValue);
if (currentStatus.RPM == 0) { commandButtons(); }
cmdPending = false;
break;
case 'L': // List the contents of current page in human readable form
@ -49,8 +55,9 @@ void command()
case 'P': // set the current page
//A 2nd byte of data is required after the 'P' specifying the new page number.
//This loop should never need to run as the byte should already be in the buffer, but is here just in case
while (Serial.available() == 0) { }
cmdPending = true;
if (Serial.available() == 0) { return; }
currentPage = Serial.read();
if (currentPage >= '0') {//This converts the ascii number char into binary
currentPage -= '0';
@ -61,10 +68,7 @@ void command()
else {
isMap = false;
}
break;
case 'R': // send 39 bytes of realtime values
sendValues(39,0);
cmdPending = false;
break;
case 'F': // send serial protocol version
@ -72,12 +76,12 @@ void command()
break;
case 'S': // send code version
Serial.print("Speeduino 2017.03");
Serial.print("Speeduino 2017.04-dev");
currentStatus.secl = 0; //This is required in TS3 due to its stricter timings
break;
case 'Q': // send code version
Serial.print("speeduino 201703");
Serial.print("speeduino 201704-dev");
break;
case 'V': // send VE table and constants in binary
@ -85,24 +89,25 @@ void command()
break;
case 'W': // receive new VE obr constant at 'W'+<offset>+<newbyte>
cmdPending = true;
int valueOffset; //cannot use offset as a variable name, it is a reserved word for several teensy libraries
while (Serial.available() == 0) { }
if (isMap)
{
if(Serial.available()< 3) { return; } // 1 additional byte is required on the MAP pages which are larger than 255 bytes
byte offset1, offset2;
offset1 = Serial.read();
while (Serial.available() == 0) { }
offset2 = Serial.read();
valueOffset = word(offset2, offset1);
}
else
{
if(Serial.available()< 2) { return; }
valueOffset = Serial.read();
}
while (Serial.available() == 0) { }
receiveValue(valueOffset, Serial.read());
cmdPending = false;
break;
case 't': // receive new Calibration info. Command structure: "t", <tble_idx> <data array>. This is an MS2/Extra command, NOT part of MS1 spec
@ -160,10 +165,33 @@ void command()
sendToothLog(false); //Sends tooth log values as ints
break;
case 'r': //Send 256 tooth log entries to a terminal emulator
case 'z': //Send 256 tooth log entries to a terminal emulator
sendToothLog(true); //Sends tooth log values as chars
break;
case 'r': //New format for the optimised OutputChannels
cmdPending = true;
byte cmd;
if (Serial.available() < 6) { return; }
Serial.read(); //Read the $tsCanId
cmd = Serial.read();
uint16_t offset, length;
if(cmd == 0x07) //Send output channels command
{
byte tmp;
tmp = Serial.read();
offset = word(Serial.read(), tmp);
tmp = Serial.read();
length = word(Serial.read(), tmp);
sendValues(offset, length, 0);
}
else
{
//No other r/ commands should be called
}
cmdPending = false;
break;
case '?':
@ -208,19 +236,21 @@ void command()
/*
This function returns the current values of a fixed group of variables
*/
void sendValues(int packetlength, byte portNum)
//void sendValues(int packetlength, byte portNum)
void sendValues(uint16_t offset, uint16_t packetLength, byte portNum)
{
byte response[packetlength];
byte fullStatus[packetSize];
byte response[packetLength];
if (portNum == 3)
{
//CAN serial
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3
Serial3.write("A"); //confirm cmd type
Serial3.write(packetlength); //confirm no of byte to be sent
Serial3.write(packetLength); //confirm no of byte to be sent
#elif defined(CORE_STM32)
Serial2.write("A"); //confirm cmd type
Serial2.write(packetlength); //confirm no of byte to be sent
Serial2.write(packetLength); //confirm no of byte to be sent
#endif
}
else
@ -231,44 +261,45 @@ void sendValues(int packetlength, byte portNum)
currentStatus.spark ^= (-currentStatus.hasSync ^ currentStatus.spark) & (1 << BIT_SPARK_SYNC); //Set the sync bit of the Spark variable to match the hasSync variable
response[0] = currentStatus.secl; //secl is simply a counter that increments each second. Used to track unexpected resets (Which will reset this count to 0)
response[1] = currentStatus.squirt; //Squirt Bitfield
response[2] = currentStatus.engine; //Engine Status Bitfield
response[3] = (byte)(divu100(currentStatus.dwell)); //Dwell in ms * 10
response[4] = (byte)(currentStatus.MAP >> 1); //map value is divided by 2
response[5] = (byte)(currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET); //mat
response[6] = (byte)(currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); //Coolant ADC
response[7] = currentStatus.tpsADC; //TPS (Raw 0-255)
response[8] = currentStatus.battery10; //battery voltage
response[9] = currentStatus.O2; //O2
response[10] = currentStatus.egoCorrection; //Exhaust gas correction (%)
response[11] = currentStatus.iatCorrection; //Air temperature Correction (%)
response[12] = currentStatus.wueCorrection; //Warmup enrichment (%)
response[13] = lowByte(currentStatus.RPM); //rpm HB
response[14] = highByte(currentStatus.RPM); //rpm LB
response[15] = currentStatus.TAEamount; //acceleration enrichment (%)
response[16] = currentStatus.baro; //Barometer value
response[17] = currentStatus.corrections; //Total GammaE (%)
response[18] = currentStatus.VE; //Current VE 1 (%)
response[19] = currentStatus.afrTarget;
response[20] = (byte)(currentStatus.PW1 / 100); //Pulsewidth 1 multiplied by 10 in ms. Have to convert from uS to mS.
response[21] = currentStatus.tpsDOT; //TPS DOT
response[22] = currentStatus.advance;
response[23] = currentStatus.TPS; // TPS (0% to 100%)
fullStatus[0] = currentStatus.secl; //secl is simply a counter that increments each second. Used to track unexpected resets (Which will reset this count to 0)
fullStatus[1] = currentStatus.squirt; //Squirt Bitfield
fullStatus[2] = currentStatus.engine; //Engine Status Bitfield
fullStatus[3] = (byte)(divu100(currentStatus.dwell)); //Dwell in ms * 10
fullStatus[4] = (byte)(currentStatus.MAP >> 1); //map value is divided by 2
fullStatus[5] = (byte)(currentStatus.IAT + CALIBRATION_TEMPERATURE_OFFSET); //mat
fullStatus[6] = (byte)(currentStatus.coolant + CALIBRATION_TEMPERATURE_OFFSET); //Coolant ADC
fullStatus[7] = currentStatus.tpsADC; //TPS (Raw 0-255)
fullStatus[8] = currentStatus.battery10; //battery voltage
fullStatus[9] = currentStatus.O2; //O2
fullStatus[10] = currentStatus.egoCorrection; //Exhaust gas correction (%)
fullStatus[11] = currentStatus.iatCorrection; //Air temperature Correction (%)
fullStatus[12] = currentStatus.wueCorrection; //Warmup enrichment (%)
fullStatus[13] = lowByte(currentStatus.RPM); //rpm HB
fullStatus[14] = highByte(currentStatus.RPM); //rpm LB
fullStatus[15] = currentStatus.TAEamount; //acceleration enrichment (%)
fullStatus[16] = currentStatus.baro; //Barometer value
fullStatus[17] = currentStatus.corrections; //Total GammaE (%)
fullStatus[18] = currentStatus.VE; //Current VE 1 (%)
fullStatus[19] = currentStatus.afrTarget;
fullStatus[20] = (byte)(currentStatus.PW1 / 100); //Pulsewidth 1 multiplied by 10 in ms. Have to convert from uS to mS.
fullStatus[21] = currentStatus.tpsDOT; //TPS DOT
fullStatus[22] = currentStatus.advance;
fullStatus[23] = currentStatus.TPS; // TPS (0% to 100%)
//Need to split the int loopsPerSecond value into 2 bytes
response[24] = lowByte(currentStatus.loopsPerSecond);
response[25] = highByte(currentStatus.loopsPerSecond);
fullStatus[24] = lowByte(currentStatus.loopsPerSecond);
fullStatus[25] = highByte(currentStatus.loopsPerSecond);
//The following can be used to show the amount of free memory
currentStatus.freeRAM = freeRam();
response[26] = lowByte(currentStatus.freeRAM); //(byte)((currentStatus.loopsPerSecond >> 8) & 0xFF);
response[27] = highByte(currentStatus.freeRAM);
fullStatus[26] = lowByte(currentStatus.freeRAM); //(byte)((currentStatus.loopsPerSecond >> 8) & 0xFF);
fullStatus[27] = highByte(currentStatus.freeRAM);
response[28] = currentStatus.batCorrection; //Battery voltage correction (%)
response[29] = currentStatus.spark; //Spark related bitfield
response[30] = currentStatus.O2_2; //O2
fullStatus[28] = currentStatus.batCorrection; //Battery voltage correction (%)
fullStatus[29] = currentStatus.spark; //Spark related bitfield
fullStatus[30] = currentStatus.O2_2; //O2
//rpmDOT must be sent as a signed integer
<<<<<<< HEAD
response[31] = lowByte(currentStatus.rpmDOT);
response[32] = highByte(currentStatus.rpmDOT);
@ -297,12 +328,31 @@ void sendValues(int packetlength, byte portNum)
response[55] = lowByte(currentStatus.canin[7]);
response[56] = highByte(currentStatus.canin[7]);
=======
fullStatus[31] = lowByte(currentStatus.rpmDOT);
fullStatus[32] = highByte(currentStatus.rpmDOT);
fullStatus[33] = currentStatus.ethanolPct; //Flex sensor value (or 0 if not used)
fullStatus[34] = currentStatus.flexCorrection; //Flex fuel correction (% above or below 100)
fullStatus[35] = currentStatus.flexIgnCorrection; //Ignition correction (Increased degrees of advance) for flex fuel
fullStatus[36] = getNextError();
fullStatus[37] = currentStatus.boostTarget;
fullStatus[38] = currentStatus.boostDuty;
fullStatus[39] = currentStatus.idleLoad;
fullStatus[40] = currentStatus.testOutputs;
for(byte x=0; x<packetLength; x++)
{
response[x] = fullStatus[offset+x];
}
>>>>>>> master
//cli();
if (portNum == 0) { Serial.write(response, (size_t)packetlength); }
if (portNum == 0) { Serial.write(response, (size_t)packetLength); }
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) //ATmega2561 does not have Serial3
else if (portNum == 3) { Serial3.write(response, (size_t)packetlength); }
else if (portNum == 3) { Serial3.write(response, (size_t)packetLength); }
#elif defined(CORE_STM32)
else if (portNum == 3) { Serial2.write(response, (size_t)packetlength); }
else if (portNum == 3) { Serial2.write(response, (size_t)packetLength); }
#endif
//sei();
return;
@ -917,10 +967,9 @@ void sendPage(bool useChar)
for (byte x = 0; x < npage_size[currentPage]; x++)
{
response[x] = *((byte *)pnt_configPage + x); //Each byte is simply the location in memory of the configPage + the offset + the variable number (x)
//if ( (x & 31) == 1) { loop(); } //Every 32 loops, do a manual call to loop() to ensure that there is no misses
}
Serial.write((byte *)&response, sizeof(response));
Serial.write((byte *)&response, npage_size[currentPage]);
// }
}
return;
@ -974,9 +1023,9 @@ void receiveCalibration(byte tableID)
bool every2nd = true;
int x;
int counter = 0;
pinMode(13, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT); //pinMode(13, OUTPUT);
digitalWrite(13, LOW);
digitalWrite(LED_BUILTIN, LOW); //digitalWrite(13, LOW);
for (x = 0; x < 1024; x++)
{
//UNlike what is listed in the protocol documentation, the O2 sensor values are sent as bytes rather than ints
@ -1012,7 +1061,11 @@ void receiveCalibration(byte tableID)
EEPROM.update(y, (byte)tempValue);
every2nd = false;
analogWrite(13, (counter % 50) );
#if defined(CORE_STM32)
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
#else
analogWrite(LED_BUILTIN, (counter % 50) ); //analogWrite(13, (counter % 50) );
#endif
counter++;
}
else {
@ -1165,4 +1218,4 @@ void commandButtons()
break;
}
}
}

View File

@ -1,5 +1,5 @@
/*
All functions in the gamma file return
All functions in the gamma file return
*/
#ifndef CORRECTIONS_H
@ -20,14 +20,15 @@ static inline byte correctionIATDensity(); //Inlet temp density correction
static inline byte correctionLaunch(); //Launch control correction
static inline bool correctionDFCO(); //Decelleration fuel cutoff
byte correctionsIgn();
static inline int8_t correctionFixedTiming(int8_t);
static inline int8_t correctionCrankingFixedTiming(int8_t);
static inline int8_t correctionFlexTiming(int8_t);
static inline int8_t correctionIATretard(int8_t);
static inline int8_t correctionSoftRevLimit(int8_t);
static inline int8_t correctionSoftLaunch(int8_t);
static inline int8_t correctionSoftFlatShift(int8_t);
byte correctionsIgn(byte advance);
static inline byte correctionFixedTiming(byte);
static inline byte correctionCrankingFixedTiming(byte);
static inline byte correctionFlexTiming(byte);
static inline byte correctionIATretard(byte);
static inline byte correctionSoftRevLimit(byte);
static inline byte correctionSoftLaunch(byte);
static inline byte correctionSoftFlatShift(byte);
uint16_t correctionsDwell(uint16_t dwell);
#endif // CORRECTIONS_H

View File

@ -314,7 +314,7 @@ static inline byte correctionAFRClosedLoop()
//******************************** IGNITION ADVANCE CORRECTIONS ********************************
int8_t correctionsIgn(int8_t advance)
byte correctionsIgn(byte advance)
{
advance = correctionFlexTiming(advance);
@ -329,19 +329,19 @@ int8_t correctionsIgn(int8_t advance)
return advance;
}
static inline int8_t correctionFixedTiming(int8_t advance)
static inline byte correctionFixedTiming(byte advance)
{
if (configPage2.FixAng != 0) { return configPage2.FixAng; } //Check whether the user has set a fixed timing angle
return advance;
}
static inline int8_t correctionCrankingFixedTiming(int8_t advance)
static inline byte correctionCrankingFixedTiming(byte advance)
{
if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { return configPage2.CrankAng; } //Use the fixed cranking ignition angle
return advance;
}
static inline int8_t correctionFlexTiming(int8_t advance)
static inline byte correctionFlexTiming(byte advance)
{
if(!configPage1.flexEnabled) { return advance; } //Check for flex being enabled
byte flexRange = configPage1.flexAdvHigh - configPage1.flexAdvLow;
@ -352,7 +352,7 @@ static inline int8_t correctionFlexTiming(int8_t advance)
return advance + currentStatus.flexIgnCorrection;
}
static inline int8_t correctionIATretard(int8_t advance)
static inline byte correctionIATretard(byte advance)
{
//Adjust the advance based on IAT. If the adjustment amount is greater than the current advance, just set advance to 0
byte advanceIATadjust = table2D_getValue(&IATRetardTable, currentStatus.IAT);
@ -360,14 +360,14 @@ static inline int8_t correctionIATretard(int8_t advance)
else { return 0; }
}
static inline int8_t correctionSoftRevLimit(int8_t advance)
static inline byte correctionSoftRevLimit(byte advance)
{
BIT_CLEAR(currentStatus.spark, BIT_SPARK_SFTLIM);
if (currentStatus.RPM > ((unsigned int)(configPage2.SoftRevLim) * 100) ) { BIT_SET(currentStatus.spark, BIT_SPARK_SFTLIM); return configPage2.SoftLimRetard; } //Softcut RPM limit (If we're above softcut limit, delay timing by configured number of degrees)
return advance;
}
static inline int8_t correctionSoftLaunch(int8_t advance)
static inline byte correctionSoftLaunch(byte advance)
{
//SoftCut rev limit for 2-step launch control.
if (configPage3.launchEnabled && clutchTrigger && (currentStatus.clutchEngagedRPM < ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > ((unsigned int)(configPage3.lnchSoftLim) * 100)) )
@ -382,7 +382,7 @@ static inline int8_t correctionSoftLaunch(int8_t advance)
return advance;
}
static inline int8_t correctionSoftFlatShift(int8_t advance)
static inline byte correctionSoftFlatShift(byte advance)
{
if(configPage3.flatSEnable && clutchTrigger && (currentStatus.clutchEngagedRPM > ((unsigned int)(configPage3.flatSArm) * 100)) && (currentStatus.RPM > (currentStatus.clutchEngagedRPM-configPage3.flatSSoftWin) ) )
{
@ -393,3 +393,29 @@ static inline int8_t correctionSoftFlatShift(int8_t advance)
BIT_CLEAR(currentStatus.spark2, BIT_SPARK2_FLATSS);
return advance;
}
//******************************** DWELL CORRECTIONS ********************************
uint16_t correctionsDwell(uint16_t dwell)
{
//Pull battery voltage based dwell correction and apply if needed
currentStatus.dwellCorrection = table2D_getValue(&dwellVCorrectionTable, currentStatus.battery10);
if (currentStatus.dwellCorrection != 100) { dwell = divs100(dwell) * currentStatus.dwellCorrection; }
//Dwell limiter
uint16_t dwellPerRevolution = dwell + (uint16_t)(configPage2.sparkDur * 100); //Spark duration is in mS*10. Multiple it by 100 to get spark duration in uS
byte 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
{
pulsesPerRevolution = (configPage1.nCylinders >> 1);
dwellPerRevolution = dwellPerRevolution * pulsesPerRevolution;
}
if(dwellPerRevolution > revolutionTime)
{
//Possibly need some method of reducing spark duration here as well, but this is a start
dwell = (revolutionTime / pulsesPerRevolution) - (configPage2.sparkDur * 100);
}
return dwell;
}

View File

@ -3,8 +3,13 @@
#include <limits.h>
#define READ_PRI_TRIGGER() ((*triggerPri_pin_port & triggerPri_pin_mask) ? HIGH : LOW)
#define READ_SEC_TRIGGER() ((*triggerSec_pin_port & triggerSec_pin_mask) ? HIGH : LOW)
#if defined(CORE_AVR)
#define READ_PRI_TRIGGER() ((*triggerPri_pin_port & triggerPri_pin_mask) ? HIGH : LOW)
#define READ_SEC_TRIGGER() ((*triggerSec_pin_port & triggerSec_pin_mask) ? HIGH : LOW)
#elif defined(CORE_TEENSY) || defined(CORE_STM32)
#define READ_PRI_TRIGGER() digitalRead(pinTrigger)
#define READ_SEC_TRIGGER() digitalRead(pinTrigger2)
#endif
static inline void addToothLogEntry(unsigned long);
static inline int stdGetRPM();

View File

@ -619,16 +619,18 @@ int getRPM_4G63()
{
if(currentStatus.startRevolutions < 2) { return 0; } //Need at least 2 full revolutions to prevent crazy initial rpm value
int tempToothAngle;
unsigned long toothTime;
noInterrupts();
tempToothAngle = triggerToothAngle;
/* High-res mode
if(toothCurrentCount == 1) { tempToothAngle = 70; }
else { tempToothAngle = toothAngles[toothCurrentCount-1] - toothAngles[toothCurrentCount-2]; }
*/
revolutionTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen
revolutionTime = (toothOneTime - toothOneMinusOneTime); //The time in uS that one revolution would take at current speed (The time tooth 1 was last seen, minus the time it was seen prior to that)
toothTime = (toothLastToothTime - toothLastMinusOneToothTime); //Note that trigger tooth angle changes between 70 and 110 depending on the last tooth that was seen
interrupts();
revolutionTime = revolutionTime * 36;
int tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / revolutionTime;
toothTime = toothTime * 36;
int tempRPM = ((unsigned long)tempToothAngle * 6000000UL) / toothTime;
return tempRPM;
}
else { return stdGetRPM(); }

View File

@ -4,13 +4,20 @@
#include "table.h"
#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__) || defined(__AVR_ATmega2561__)
#define BOARD_NR_GPIO_PINS 54
#define LED_BUILTIN 13
#define CORE_AVR
#elif defined(STM32_MCU_SERIES)
#elif defined(CORE_TEENSY)
#define BOARD_NR_GPIO_PINS 34
#elif defined(STM32_MCU_SERIES) || defined(_VARIANT_ARDUINO_STM32_)
#define CORE_STM32
#define LED_BUILTIN 33
inline unsigned char digitalPinToInterrupt(unsigned char Interrupt_pin) { return Interrupt_pin; } //This isn't included in the stm32duino libs (yet)
#define portOutputRegister(port) (volatile byte *)( &(port->regs->ODR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value
#define portInputRegister(port) (volatile byte *)( &(port->regs->IDR) ) //These are defined in STM32F1/variants/generic_stm32f103c/variant.h but return a non byte* value
#else
#error Incorrect board selected. Please select the correct board (Usually Mega 2560) and upload again
#endif
//Handy bitsetting macros
@ -99,7 +106,7 @@ const char TSfirmwareVersion[] = "Speeduino 2016.09";
const byte data_structure_version = 2; //This identifies the data structure when reading / writing.
const byte page_size = 64;
const int npage_size[11] ={0,288,64,288,64,288,64,64,160,192,128};
const int npage_size[11] = {0,288,64,288,64,288,64,64,160,192,128};
//const byte page10_size = 128;
const int map_page_size = 288;
@ -234,7 +241,7 @@ struct config1 {
byte unused1; //Cold cranking pulsewidth modifier. This is added to the fuel pulsewidth when cranking under a certain temp threshold (ms)
byte unused2; //Warm cranking pulsewidth modifier. This is added to the fuel pulsewidth when cranking (ms)
byte asePct; //Afterstart enrichment (%)
byte asePct; //Afterstart enrichment (%)
byte aseCount; //Afterstart enrichment cycles. This is the number of ignition cycles that the afterstart enrichment % lasts for
byte wueValues[10]; //Warm up enrichment array (10 bytes)
byte crankingPct; //Cranking enrichment
@ -247,18 +254,18 @@ struct config1 {
byte taeTime;
//Display config bits
byte displayType : 3;
byte displayType : 3; //21
byte display1 : 3;
byte display2 : 2;
byte display3 : 3;
byte display3 : 3; //22
byte display4 : 2;
byte display5 : 3;
byte displayB1 : 4;
byte displayB1 : 4; //23
byte displayB2 : 4;
byte reqFuel;
byte reqFuel; //24
byte divider;
byte injTiming : 1;
byte multiplyMAP : 1;
@ -316,8 +323,11 @@ struct config1 {
byte iacCLmaxDuty;
byte boostMinDuty;
};
#if defined(CORE_AVR)
};
#else
} __attribute__((__packed__)); //The 32 bi systems require all structs to be fully packed
#endif
//Page 2 of the config - See the ini file for further reference
//This mostly covers off variables that are required for ignition
@ -338,7 +348,7 @@ struct config2 {
byte fuelPumpPin : 6;
byte useResync : 1;
byte unused4_7;
byte sparkDur; //Spark duration in ms * 10
byte IdleAdvRPM;
byte IdleAdvCLT; //The temperature below which the idle is advanced
byte IdleDelayTime;
@ -376,8 +386,11 @@ struct config2 {
byte ignBypassPin : 6; //Pin the ignition bypass is activated on
byte ignBypassHiLo : 1; //Whether this should be active high or low.
};
#if defined(CORE_AVR)
};
#else
} __attribute__((__packed__)); //The 32 bi systems require all structs to be fully packed
#endif
//Page 3 of the config - See the ini file for further reference
//This mostly covers off variables that are required for AFR targets and closed loop
@ -440,8 +453,11 @@ struct config3 {
byte flatSRetard;
byte flatSArm;
};
#if defined(CORE_AVR)
};
#else
} __attribute__((__packed__)); //The 32 bit systems require all structs to be fully packed
#endif
//Page 4 of the config mostly deals with idle control
@ -472,7 +488,11 @@ struct config4 {
byte fanHyster; // Fan hysteresis
byte fanFreq; // Fan PWM frequency
byte fanPWMBins[4]; //Temperature Bins for the PWM fan control
};
#if defined(CORE_AVR)
};
#else
} __attribute__((__packed__)); //The 32 bit systems require all structs to be fully packed
#endif
//Page 10 of the config mostly deals with CANBUS control
//See ini file for further info (Config Page 10 in the ini)
@ -569,7 +589,11 @@ struct config10 {
byte unused10_125;
byte unused10_126;
byte unused10_127;
};
#if defined(CORE_AVR)
};
#else
} __attribute__((__packed__)); //The 32 bit systems require all structs to be fully packed
#endif
byte pinInjector1; //Output pin injector 1
@ -649,4 +673,4 @@ extern byte iatCalibrationTable[CALIBRATION_TABLE_SIZE];
extern byte o2CalibrationTable[CALIBRATION_TABLE_SIZE];
#endif // GLOBALS_H
#endif // GLOBALS_H

View File

@ -24,6 +24,8 @@ void initialiseIdle()
#elif defined (CORE_TEENSY)
if(configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_OL || configPage4.iacAlgorithm == IAC_ALGORITHM_PWM_CL)
{
//FlexTimer 2 is used for idle
FTM2_MODE |= FTM_MODE_WPDIS; // Write Protection Disable
FTM2_MODE |= FTM_MODE_FTMEN; //Flex Timer module enable
@ -74,6 +76,7 @@ void initialiseIdle()
// enable IRQ Interrupt
NVIC_ENABLE_IRQ(IRQ_FTM2);
}
#elif defined(MCU_STM32F103RB)

View File

@ -159,13 +159,13 @@ See page 136 of the processors datasheet: http://www.atmel.com/Images/doc2549.pd
//Hack compatibility with AVR timers that run at different speeds
#define uS_TO_TIMER_COMPARE_SLOW(uS) ((uS * 15) >> 5)
#elif defined(STM32_MCU_SERIES)
#elif defined(CORE_STM32)
//Placeholders ONLY!
//https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/master/STM32F4/cores/maple/libmaple/timer.h#L51
#define MAX_TIMER_PERIOD 139808 // 2.13333333uS * 65535
#define uS_TO_TIMER_COMPARE(uS) ((uS * 15) >> 5) //Converts a given number of uS into the required number of timer ticks until that time has passed.
#define uS_TO_TIMER_COMPARE_SLOW(uS) ((uS * 15) >> 5) //Converts a given number of uS into the required number of timer ticks until that time has passed.
#define MAX_TIMER_PERIOD 131070 //The longest period of time (in uS) that the timer can permit (IN this case it is 65535 * 2, as each timer tick is 2uS)
#define uS_TO_TIMER_COMPARE(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed.
#define uS_TO_TIMER_COMPARE_SLOW(uS) (uS >> 1) //Converts a given number of uS into the required number of timer ticks until that time has passed.
#define FUEL1_COUNTER (TIMER2->regs).gen->CNT
#define FUEL2_COUNTER (TIMER2->regs).gen->CNT
@ -232,6 +232,20 @@ void setIgnitionSchedule6(void (*startCallback)(), unsigned long timeout, unsign
void setIgnitionSchedule7(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)());
void setIgnitionSchedule8(void (*startCallback)(), unsigned long timeout, unsigned long duration, void(*endCallback)());
//Needed for STM32 interrupt handlers
#if defined(CORE_STM32)
static inline void fuelSchedule1Interrupt();
static inline void fuelSchedule2Interrupt();
static inline void fuelSchedule3Interrupt();
static inline void fuelSchedule4Interrupt();
static inline void fuelSchedule5Interrupt();
static inline void ignitionSchedule1Interrupt();
static inline void ignitionSchedule2Interrupt();
static inline void ignitionSchedule3Interrupt();
static inline void ignitionSchedule4Interrupt();
static inline void ignitionSchedule5Interrupt();
#endif
enum ScheduleStatus {OFF, PENDING, RUNNING}; //The 3 statuses that a schedule can have
struct Schedule {
@ -336,4 +350,4 @@ static inline unsigned int popQueue(volatile Schedule *queue[])
}
#endif // SCHEDULER_H
#endif // SCHEDULER_H

View File

@ -160,9 +160,32 @@ void initialiseSchedulers()
NVIC_ENABLE_IRQ(IRQ_FTM1);
#elif defined(CORE_STM32)
(TIMER2->regs).gen->CCMR1 &= ~TIM_CCMR1_OC1M; //Select channel 1 output Compare and Mode
//see https://github.com/rogerclarkmelbourne/Arduino_STM32/blob/754bc2969921f1ef262bd69e7faca80b19db7524/STM32F1/system/libmaple/include/libmaple/timer.h#L444
(TIMER1->regs).bas->PSC = (TIMER2->regs).bas->PSC = (TIMER3->regs).bas->PSC = (CYCLES_PER_MICROSECOND << 1) - 1; //2us resolution
//TimerX.setPrescaleFactor(CYCLES_PER_MICROSECOND * 2U); //2us resolution
TIM3->CR1 |= TIM_CR1_CEN
Timer2.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE);
Timer2.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE);
Timer2.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE);
Timer2.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE);
Timer3.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE);
Timer3.setMode(TIMER_CH2, TIMER_OUTPUT_COMPARE);
Timer3.setMode(TIMER_CH3, TIMER_OUTPUT_COMPARE);
Timer3.setMode(TIMER_CH4, TIMER_OUTPUT_COMPARE);
Timer2.attachInterrupt(1, fuelSchedule1Interrupt);
Timer2.attachInterrupt(2, fuelSchedule2Interrupt);
Timer2.attachInterrupt(3, fuelSchedule3Interrupt);
Timer2.attachInterrupt(4, fuelSchedule4Interrupt);
Timer3.attachInterrupt(1, ignitionSchedule1Interrupt);
Timer3.attachInterrupt(2, ignitionSchedule2Interrupt);
Timer3.attachInterrupt(3, ignitionSchedule3Interrupt);
Timer3.attachInterrupt(4, ignitionSchedule4Interrupt);
//(TIMER2->regs).gen->CCMR1 &= ~TIM_CCMR1_OC1M; //Select channel 1 output Compare and Mode
//TIM3->CR1 |= TIM_CR1_CEN
#endif
@ -652,4 +675,4 @@ void ftm0_isr(void)
else if(FTM0_C7SC & FTM_CSC_CHF) { FTM0_C7SC &= ~FTM_CSC_CHF; ignitionSchedule4Interrupt(); }
}
#endif
#endif

View File

@ -42,9 +42,9 @@ void initialiseADC()
BIT_CLEAR(ADCSRA,ADPS1);
BIT_CLEAR(ADCSRA,ADPS0);
#endif
MAPcurRev = 0;
MAPcount = 0;
#endif
MAPcurRev = 0;
MAPcount = 0;
}
void instanteneousMAPReading()
@ -61,8 +61,10 @@ void instanteneousMAPReading()
else { mapErrorCount = 0; }
currentStatus.mapADC = ADC_FILTER(tempReading, ADCFILTER_MAP, currentStatus.mapADC); //Very weak filter
currentStatus.MAP = fastMap1023toX(currentStatus.mapADC, configPage1.mapMax); //Get the current MAP value
}
void readMAP()

View File

@ -22,6 +22,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#define engineSquirtsPerCycle 2 //Would be 1 for a 2 stroke
//**************************************************************************************************
//https://developer.mbed.org/handbook/C-Data-Types
#include <stdint.h>
//************************************************
#include "globals.h"
#include "utils.h"
#include "table.h"
@ -182,8 +185,10 @@ void setup()
//Setup the calibration tables
loadCalibration();
//Set the pin mappings
setPinMapping(configPage1.pinMapping);
if(configPage1.pinMapping > BOARD_NR_GPIO_PINS) { setPinMapping(3); } //First time running? set to v0.4
else { setPinMapping(configPage1.pinMapping); }
//Need to check early on whether the coil charging is inverted. If this is not set straight away it can cause an unwanted spark at bootup
if(configPage2.IgInv == 1) { coilHIGH = LOW, coilLOW = HIGH; }
@ -1175,9 +1180,8 @@ void loop()
//Dwell is stored as ms * 10. ie Dwell of 4.3ms would be 43 in configPage2. This number therefore needs to be multiplied by 100 to get dwell in uS
if ( BIT_CHECK(currentStatus.engine, BIT_ENGINE_CRANK) ) { currentStatus.dwell = (configPage2.dwellCrank * 100); }
else { currentStatus.dwell = (configPage2.dwellRun * 100); }
//Pull battery voltage based dwell correction and apply if needed
currentStatus.dwellCorrection = table2D_getValue(&dwellVCorrectionTable, currentStatus.battery10);
if (currentStatus.dwellCorrection != 100) { currentStatus.dwell = divs100(currentStatus.dwell) * currentStatus.dwellCorrection; }
currentStatus.dwell = correctionsDwell(currentStatus.dwell);
int dwellAngle = (div(currentStatus.dwell, timePerDegree).quot ); //Convert the dwell time to dwell angle based on the current engine speed
//Calculate start angle for each channel
@ -1495,4 +1499,4 @@ void loop()
}
} //Ignition schedules on
} //Has sync and RPM
} //loop()
} //loop()

View File

@ -19,8 +19,8 @@ struct table2D {
byte *values;
byte *axisX;
int16_t *values16;
int16_t *axisX16;
int *values16;
int *axisX16;
//Store the last X and Y coordinates in the table. This is used to make the next check faster
int lastXMax, lastXMin;
@ -36,8 +36,8 @@ struct table3D {
byte ySize;
byte **values;
int16_t *axisX;
int16_t *axisY;
int *axisX;
int *axisY;
//Store the last X and Y coordinates in the table. This is used to make the next check faster
byte lastXMax, lastXMin;

View File

@ -39,9 +39,10 @@ void initialiseTimers()
lowResTimer.begin(oneMSInterval, 1000);
#elif defined(CORE_STM32)
Timer4.setChannel1Mode(TIMER_OUTPUTCOMPARE);
Timer4.setPeriod(1000);
Timer4.attachCompare1Interrupt(oneMSInterval);
Timer4.setPeriod(1000); // Set up period
// Set up an interrupt
Timer4.setMode(TIMER_CH1, TIMER_OUTPUT_COMPARE);
Timer4.attachInterrupt(1, oneMSInterval);
#endif
dwellLimit_uS = (1000 * configPage2.dwellLimit);
@ -175,4 +176,4 @@ void oneMSInterval() //Most ARM chips can simply call a function
TCNT2 = 131; //Preload timer2 with 100 cycles, leaving 156 till overflow.
TIFR2 = 0x00; //Timer2 INT Flag Reg: Clear Timer Overflow Flag
#endif
}
}

View File

@ -40,19 +40,24 @@ void setPinMapping(byte boardID)
{
//This is dumb, but it'll do for now to get things compiling
#if defined(CORE_STM32)
#define A0 0
#define A1 1
#define A2 2
#define A3 3
#define A4 4
#define A5 5
#define A6 6
#define A7 7
#define A8 8
#define A9 9
#define A13 13
#define A14 14
#define A15 15
//STM32F1/variants/.../board.cpp
#define A0 boardADCPins[0]
#define A1 boardADCPins[1]
#define A2 boardADCPins[2]
#define A3 boardADCPins[3]
#define A4 boardADCPins[4]
#define A5 boardADCPins[5]
#define A6 boardADCPins[6]
#define A7 boardADCPins[7]
#define A8 boardADCPins[8]
#define A9 boardADCPins[9]
//STM32F1 have only 9 12bit adc
#define A10 boardADCPins[0]
#define A11 boardADCPins[1]
#define A12 boardADCPins[2]
#define A13 boardADCPins[3]
#define A14 boardADCPins[4]
#define A15 boardADCPins[5]
#endif
switch (boardID)
@ -148,6 +153,46 @@ void setPinMapping(byte boardID)
pinFan = A13; //Pin for the fan output
pinLaunch = 12; //Can be overwritten below
pinFlex = 2; // Flex sensor (Must be external interrupt enabled)
#if defined(CORE_TEENSY)
pinTrigger = 23;
pinStepperDir = 33;
pinCoil1 = 31;
pinTachOut = 28;
pinFan = 27;
pinCoil4 = 21;
pinCoil3 = 30;
pinO2 = A22;
#elif defined(CORE_STM32)
//http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/hardware/maple-mini.html#master-pin-map
//pins 23, 24 and 33 couldn't be used
pinInjector1 = 15; //Output pin injector 1 is on
pinInjector2 = 16; //Output pin injector 2 is on
pinInjector3 = 17; //Output pin injector 3 is on
pinInjector4 = 18; //Output pin injector 4 is on
pinCoil1 = 19; //Pin for coil 1
pinCoil2 = 20; //Pin for coil 2
pinCoil3 = 21; //Pin for coil 3
pinCoil4 = 26; //Pin for coil 4
pinCoil5 = 27; //Pin for coil 5
pinTPS = A0; //TPS input pin
pinMAP = A1; //MAP sensor pin
pinIAT = A2; //IAT sensor pin
pinCLT = A3; //CLS sensor pin
pinO2 = A4; //O2 Sensor pin
pinBat = A5; //Battery reference voltage pin
pinStepperDir = 12; //Direction pin for DRV8825 driver
pinStepperStep = 13; //Step pin for DRV8825 driver
pinStepperEnable = 14; //Enable pin for DRV8825
pinDisplayReset = 2; // OLED reset pin
pinFan = 1; //Pin for the fan output
pinFuelPump = 0; //Fuel pump output
pinTachOut = 31; //Tacho output pin
//external interrupt enabled pins
pinFlex = 32; // Flex sensor (Must be external interrupt enabled)
pinTrigger = 25; //The CAS pin
pinTrigger2 = 22; //The Cam Sensor pin
#endif
break;
case 3:
@ -186,12 +231,43 @@ void setPinMapping(byte boardID)
#if defined(CORE_TEENSY)
pinTrigger = 23;
pinTrigger2 = 35;
pinStepperDir = 33;
pinCoil1 = 31;
pinTachOut = 28;
pinFan = 27;
pinCoil4 = 29;
pinCoil3 = 30;
pinO2 = A22;
#elif defined(CORE_STM32)
//http://docs.leaflabs.com/static.leaflabs.com/pub/leaflabs/maple-docs/0.0.12/hardware/maple-mini.html#master-pin-map
//pins 23, 24 and 33 couldn't be used
pinInjector1 = 15; //Output pin injector 1 is on
pinInjector2 = 16; //Output pin injector 2 is on
pinInjector3 = 17; //Output pin injector 3 is on
pinInjector4 = 18; //Output pin injector 4 is on
pinCoil1 = 19; //Pin for coil 1
pinCoil2 = 20; //Pin for coil 2
pinCoil3 = 21; //Pin for coil 3
pinCoil4 = 26; //Pin for coil 4
pinCoil5 = 27; //Pin for coil 5
pinTPS = A0; //TPS input pin
pinMAP = A1; //MAP sensor pin
pinIAT = A2; //IAT sensor pin
pinCLT = A3; //CLS sensor pin
pinO2 = A4; //O2 Sensor pin
pinBat = A5; //Battery reference voltage pin
pinStepperDir = 12; //Direction pin for DRV8825 driver
pinStepperStep = 13; //Step pin for DRV8825 driver
pinStepperEnable = 14; //Enable pin for DRV8825
pinDisplayReset = 2; // OLED reset pin
pinFan = 1; //Pin for the fan output
pinFuelPump = 0; //Fuel pump output
pinTachOut = 31; //Tacho output pin
//external interrupt enabled pins
pinFlex = 32; // Flex sensor (Must be external interrupt enabled)
pinTrigger = 25; //The CAS pin
pinTrigger2 = 22; //The Cam Sensor pin
#endif
break;
@ -361,27 +437,17 @@ void setPinMapping(byte boardID)
break;
}
//Setup any devices that are using selectable pins
if (configPage3.launchPin != 0) {
pinLaunch = configPage3.launchPin;
}
if (configPage2.ignBypassPin != 0) {
pinIgnBypass = configPage2.ignBypassPin;
}
if (configPage1.tachoPin != 0) {
pinTachOut = configPage1.tachoPin;
}
if (configPage2.fuelPumpPin != 0) {
pinFuelPump = configPage2.fuelPumpPin;
}
if (configPage4.fanPin != 0) {
pinFan = configPage4.fanPin;
}
if (configPage3.boostPin != 0) {
pinBoost = configPage3.boostPin;
}
if (configPage3.vvtPin != 0) {
pinVVT_1 = configPage3.vvtPin;
//First time running?
if (configPage3.launchPin < BOARD_NR_GPIO_PINS)
{
//Setup any devices that are using selectable pins
if (configPage3.launchPin != 0) { pinLaunch = configPage3.launchPin; }
if (configPage2.ignBypassPin != 0) { pinIgnBypass = configPage2.ignBypassPin; }
if (configPage1.tachoPin != 0) { pinTachOut = configPage1.tachoPin; }
if (configPage2.fuelPumpPin != 0) { pinFuelPump = configPage2.fuelPumpPin; }
if (configPage4.fanPin != 0) { pinFan = configPage4.fanPin; }
if (configPage3.boostPin != 0) { pinBoost = configPage3.boostPin; }
if (configPage3.vvtPin != 0) { pinVVT_1 = configPage3.vvtPin; }
}
//Finally, set the relevant pin modes for outputs
@ -433,13 +499,23 @@ void setPinMapping(byte boardID)
tach_pin_mask = digitalPinToBitMask(pinTachOut);
//And for inputs
pinMode(pinMAP, INPUT);
pinMode(pinO2, INPUT);
pinMode(pinO2_2, INPUT);
pinMode(pinTPS, INPUT);
pinMode(pinIAT, INPUT);
pinMode(pinCLT, INPUT);
pinMode(pinBat, INPUT);
#if defined(CORE_STM32)
pinMode(pinMAP, INPUT_ANALOG);
pinMode(pinO2, INPUT_ANALOG);
pinMode(pinO2_2, INPUT_ANALOG);
pinMode(pinTPS, INPUT_ANALOG);
pinMode(pinIAT, INPUT_ANALOG);
pinMode(pinCLT, INPUT_ANALOG);
pinMode(pinBat, INPUT_ANALOG);
#else
pinMode(pinMAP, INPUT);
pinMode(pinO2, INPUT);
pinMode(pinO2_2, INPUT);
pinMode(pinTPS, INPUT);
pinMode(pinIAT, INPUT);
pinMode(pinCLT, INPUT);
pinMode(pinBat, INPUT);
#endif
pinMode(pinTrigger, INPUT);
pinMode(pinTrigger2, INPUT);
pinMode(pinTrigger3, INPUT);
@ -458,10 +534,13 @@ void setPinMapping(byte boardID)
triggerSec_pin_port = portInputRegister(digitalPinToPort(pinTrigger2));
triggerSec_pin_mask = digitalPinToBitMask(pinTrigger2);
//Set default values
digitalWrite(pinMAP, HIGH);
//digitalWrite(pinO2, LOW);
digitalWrite(pinTPS, LOW);
#if defined(CORE_STM32)
#else
//Set default values
digitalWrite(pinMAP, HIGH);
//digitalWrite(pinO2, LOW);
digitalWrite(pinTPS, LOW);
#endif
}
/*
@ -527,4 +606,4 @@ unsigned int PW_AN(int REQ_FUEL, byte VE, byte TPS, int corrections, int injOpen
TPS = 100;
}
return PW(REQ_FUEL, VE, currentStatus.MAP, corrections, injOpen);
}
}