mirror of
https://github.com/joe-scotto/scottokeebs.git
synced 2026-08-24 10:14:29 -05:00
Merge branch 'scottot9-pcb'
This commit is contained in:
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
@@ -0,0 +1,595 @@
|
||||
ISO-10303-21;
|
||||
HEADER;
|
||||
|
||||
/* File generated by Shapr3D Version 5.1001.9950.0 */
|
||||
|
||||
FILE_DESCRIPTION(('HOOPS Exchange Step'),'2;1');
|
||||
|
||||
FILE_NAME('C:\\Users\\me\\AppData\\Local\\Packages\\Shapr3D.Shapr3D_dvv5p1vgwv6mp\\TempState\\export\\temp_export',
|
||||
'2025-12-08T18:21:51-05:00',
|
||||
('me'),
|
||||
('Shapr3D Limited'),
|
||||
'HOOPS Exchange 2025.7',
|
||||
'Shapr3D',
|
||||
'Authorized');
|
||||
|
||||
FILE_SCHEMA( ('AP242_MANAGED_MODEL_BASED_3D_ENGINEERING_MIM_LF {1 0 10303 442 1 1 4}') );
|
||||
|
||||
ENDSEC;
|
||||
|
||||
DATA;
|
||||
#3=(NAMED_UNIT(*)PLANE_ANGLE_UNIT()SI_UNIT($,.RADIAN.));
|
||||
#4=PLANE_ANGLE_MEASURE_WITH_UNIT(PLANE_ANGLE_MEASURE(0.0174532925),#3);
|
||||
#5=(CONVERSION_BASED_UNIT('DEGREE',#4)NAMED_UNIT(#6)PLANE_ANGLE_UNIT());
|
||||
#6=DIMENSIONAL_EXPONENTS(0.,0.,0.,0.,0.,0.,0.);
|
||||
#7=(NAMED_UNIT(*)SI_UNIT($,.STERADIAN.)SOLID_ANGLE_UNIT());
|
||||
#8=(LENGTH_UNIT()NAMED_UNIT(*)SI_UNIT(.MILLI.,.METRE.));
|
||||
#9=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.000000E-05),#8,'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model');
|
||||
#10=(GEOMETRIC_REPRESENTATION_CONTEXT(3)GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#9))GLOBAL_UNIT_ASSIGNED_CONTEXT((#8,#5,#7))REPRESENTATION_CONTEXT('','root'));
|
||||
#12=CARTESIAN_POINT('',(0.,0.,0.));
|
||||
#13=DIRECTION('',(0.,0.,1.));
|
||||
#14=DIRECTION('',(1.,0.,0.));
|
||||
#15=AXIS2_PLACEMENT_3D('',#12,#13,#14);
|
||||
#27=CARTESIAN_POINT('',(0.65001043,44.303937115,17.2));
|
||||
#28=DIRECTION('',(0.,1.,0.));
|
||||
#29=DIRECTION('',(0.,0.,1.));
|
||||
#30=AXIS2_PLACEMENT_3D('',#27,#28,#29);
|
||||
#31=PLANE('',#30);
|
||||
#32=CARTESIAN_POINT('',(-10.09998957,44.303937115,17.2));
|
||||
#33=VERTEX_POINT('',#32);
|
||||
#34=CARTESIAN_POINT('',(10.40001043,44.303937115,17.2));
|
||||
#35=VERTEX_POINT('',#34);
|
||||
#36=CARTESIAN_POINT('',(-10.09998957,44.303937115,17.2));
|
||||
#37=DIRECTION('',(1.,0.,-0.));
|
||||
#38=VECTOR('',#37,20.5);
|
||||
#39=LINE('',#36,#38);
|
||||
#40=EDGE_CURVE('',#33,#35,#39,.T.);
|
||||
#41=ORIENTED_EDGE('',*,*,#40,.T.);
|
||||
#42=CARTESIAN_POINT('',(10.40001043,44.303937115,16.2));
|
||||
#43=VERTEX_POINT('',#42);
|
||||
#44=CARTESIAN_POINT('',(10.40001043,44.303937115,17.2));
|
||||
#45=DIRECTION('',(-0.,-0.,-1.));
|
||||
#46=VECTOR('',#45,1.);
|
||||
#47=LINE('',#44,#46);
|
||||
#48=EDGE_CURVE('',#35,#43,#47,.T.);
|
||||
#49=ORIENTED_EDGE('',*,*,#48,.T.);
|
||||
#50=CARTESIAN_POINT('',(-10.09998957,44.303937115,16.2));
|
||||
#51=VERTEX_POINT('',#50);
|
||||
#52=CARTESIAN_POINT('',(-10.09998957,44.303937115,16.2));
|
||||
#53=DIRECTION('',(1.,0.,-0.));
|
||||
#54=VECTOR('',#53,20.5);
|
||||
#55=LINE('',#52,#54);
|
||||
#56=EDGE_CURVE('',#51,#43,#55,.T.);
|
||||
#57=ORIENTED_EDGE('',*,*,#56,.F.);
|
||||
#58=CARTESIAN_POINT('',(-10.09998957,44.303937115,16.2));
|
||||
#59=DIRECTION('',(-0.,-0.,1.));
|
||||
#60=VECTOR('',#59,1.);
|
||||
#61=LINE('',#58,#60);
|
||||
#62=EDGE_CURVE('',#51,#33,#61,.T.);
|
||||
#63=ORIENTED_EDGE('',*,*,#62,.T.);
|
||||
#64=EDGE_LOOP('',(#41,#49,#57,#63));
|
||||
#65=FACE_BOUND('',#64,.T.);
|
||||
#66=ADVANCED_FACE('',(#65),#31,.T.);
|
||||
#67=CARTESIAN_POINT('',(0.15,32.5,17.2));
|
||||
#68=DIRECTION('',(0.,0.,1.));
|
||||
#69=DIRECTION('',(1.,0.,0.));
|
||||
#70=AXIS2_PLACEMENT_3D('',#67,#68,#69);
|
||||
#71=PLANE('',#70);
|
||||
#72=CARTESIAN_POINT('',(9.30001043,42.203937115,17.2));
|
||||
#73=VERTEX_POINT('',#72);
|
||||
#74=CARTESIAN_POINT('',(11.50001043,42.203937115,17.2));
|
||||
#75=VERTEX_POINT('',#74);
|
||||
#76=CARTESIAN_POINT('',(10.40001043,42.203937115,17.2));
|
||||
#77=DIRECTION('',(0.,0.,1.));
|
||||
#78=DIRECTION('',(1.,0.,-0.));
|
||||
#79=AXIS2_PLACEMENT_3D('',#76,#77,#78);
|
||||
#80=CIRCLE('',#79,1.1);
|
||||
#81=EDGE_CURVE('',#73,#75,#80,.T.);
|
||||
#82=ORIENTED_EDGE('',*,*,#81,.F.);
|
||||
#83=CARTESIAN_POINT('',(10.40001043,42.203937115,17.2));
|
||||
#84=DIRECTION('',(0.,0.,1.));
|
||||
#85=DIRECTION('',(1.,0.,-0.));
|
||||
#86=AXIS2_PLACEMENT_3D('',#83,#84,#85);
|
||||
#87=CIRCLE('',#86,1.1);
|
||||
#88=EDGE_CURVE('',#75,#73,#87,.T.);
|
||||
#89=ORIENTED_EDGE('',*,*,#88,.F.);
|
||||
#90=EDGE_LOOP('',(#82,#89));
|
||||
#91=FACE_BOUND('',#90,.T.);
|
||||
#92=CARTESIAN_POINT('',(9.30001043,19.203937115,17.2));
|
||||
#93=VERTEX_POINT('',#92);
|
||||
#94=CARTESIAN_POINT('',(11.50001043,19.203937115,17.2));
|
||||
#95=VERTEX_POINT('',#94);
|
||||
#96=CARTESIAN_POINT('',(10.40001043,19.203937115,17.2));
|
||||
#97=DIRECTION('',(0.,0.,1.));
|
||||
#98=DIRECTION('',(1.,0.,-0.));
|
||||
#99=AXIS2_PLACEMENT_3D('',#96,#97,#98);
|
||||
#100=CIRCLE('',#99,1.1);
|
||||
#101=EDGE_CURVE('',#93,#95,#100,.T.);
|
||||
#102=ORIENTED_EDGE('',*,*,#101,.F.);
|
||||
#103=CARTESIAN_POINT('',(10.40001043,19.203937115,17.2));
|
||||
#104=DIRECTION('',(0.,0.,1.));
|
||||
#105=DIRECTION('',(1.,0.,-0.));
|
||||
#106=AXIS2_PLACEMENT_3D('',#103,#104,#105);
|
||||
#107=CIRCLE('',#106,1.1);
|
||||
#108=EDGE_CURVE('',#95,#93,#107,.T.);
|
||||
#109=ORIENTED_EDGE('',*,*,#108,.F.);
|
||||
#110=EDGE_LOOP('',(#102,#109));
|
||||
#111=FACE_BOUND('',#110,.T.);
|
||||
#112=CARTESIAN_POINT('',(-11.19998957,42.203937115,17.2));
|
||||
#113=VERTEX_POINT('',#112);
|
||||
#114=CARTESIAN_POINT('',(-8.99998957,42.203937115,17.2));
|
||||
#115=VERTEX_POINT('',#114);
|
||||
#116=CARTESIAN_POINT('',(-10.09998957,42.203937115,17.2));
|
||||
#117=DIRECTION('',(0.,0.,1.));
|
||||
#118=DIRECTION('',(1.,0.,-0.));
|
||||
#119=AXIS2_PLACEMENT_3D('',#116,#117,#118);
|
||||
#120=CIRCLE('',#119,1.1);
|
||||
#121=EDGE_CURVE('',#113,#115,#120,.T.);
|
||||
#122=ORIENTED_EDGE('',*,*,#121,.F.);
|
||||
#123=CARTESIAN_POINT('',(-10.09998957,42.203937115,17.2));
|
||||
#124=DIRECTION('',(0.,0.,1.));
|
||||
#125=DIRECTION('',(1.,0.,-0.));
|
||||
#126=AXIS2_PLACEMENT_3D('',#123,#124,#125);
|
||||
#127=CIRCLE('',#126,1.1);
|
||||
#128=EDGE_CURVE('',#115,#113,#127,.T.);
|
||||
#129=ORIENTED_EDGE('',*,*,#128,.F.);
|
||||
#130=EDGE_LOOP('',(#122,#129));
|
||||
#131=FACE_BOUND('',#130,.T.);
|
||||
#132=CARTESIAN_POINT('',(-11.19998957,19.203937115,17.2));
|
||||
#133=VERTEX_POINT('',#132);
|
||||
#134=CARTESIAN_POINT('',(-8.99998957,19.203937115,17.2));
|
||||
#135=VERTEX_POINT('',#134);
|
||||
#136=CARTESIAN_POINT('',(-10.09998957,19.203937115,17.2));
|
||||
#137=DIRECTION('',(0.,0.,1.));
|
||||
#138=DIRECTION('',(1.,0.,-0.));
|
||||
#139=AXIS2_PLACEMENT_3D('',#136,#137,#138);
|
||||
#140=CIRCLE('',#139,1.1);
|
||||
#141=EDGE_CURVE('',#133,#135,#140,.T.);
|
||||
#142=ORIENTED_EDGE('',*,*,#141,.F.);
|
||||
#143=CARTESIAN_POINT('',(-10.09998957,19.203937115,17.2));
|
||||
#144=DIRECTION('',(0.,0.,1.));
|
||||
#145=DIRECTION('',(1.,0.,-0.));
|
||||
#146=AXIS2_PLACEMENT_3D('',#143,#144,#145);
|
||||
#147=CIRCLE('',#146,1.1);
|
||||
#148=EDGE_CURVE('',#135,#133,#147,.T.);
|
||||
#149=ORIENTED_EDGE('',*,*,#148,.F.);
|
||||
#150=EDGE_LOOP('',(#142,#149));
|
||||
#151=FACE_BOUND('',#150,.T.);
|
||||
#152=CARTESIAN_POINT('',(-12.19998957,19.203937115,17.2));
|
||||
#153=VERTEX_POINT('',#152);
|
||||
#154=CARTESIAN_POINT('',(-12.19998957,42.203937115,17.2));
|
||||
#155=VERTEX_POINT('',#154);
|
||||
#156=CARTESIAN_POINT('',(-12.19998957,19.203937115,17.2));
|
||||
#157=DIRECTION('',(0.,1.,0.));
|
||||
#158=VECTOR('',#157,23.);
|
||||
#159=LINE('',#156,#158);
|
||||
#160=EDGE_CURVE('',#153,#155,#159,.T.);
|
||||
#161=ORIENTED_EDGE('',*,*,#160,.F.);
|
||||
#162=CARTESIAN_POINT('',(-10.09998957,17.103937115,17.2));
|
||||
#163=VERTEX_POINT('',#162);
|
||||
#164=CARTESIAN_POINT('',(-10.09998957,19.203937115,17.2));
|
||||
#165=DIRECTION('',(0.,0.,1.));
|
||||
#166=DIRECTION('',(1.,0.,-0.));
|
||||
#167=AXIS2_PLACEMENT_3D('',#164,#165,#166);
|
||||
#168=CIRCLE('',#167,2.1);
|
||||
#169=EDGE_CURVE('',#153,#163,#168,.T.);
|
||||
#170=ORIENTED_EDGE('',*,*,#169,.T.);
|
||||
#171=CARTESIAN_POINT('',(10.40001043,17.103937115,17.2));
|
||||
#172=VERTEX_POINT('',#171);
|
||||
#173=CARTESIAN_POINT('',(10.40001043,17.103937115,17.2));
|
||||
#174=DIRECTION('',(-1.,0.,0.));
|
||||
#175=VECTOR('',#174,20.5);
|
||||
#176=LINE('',#173,#175);
|
||||
#177=EDGE_CURVE('',#172,#163,#176,.T.);
|
||||
#178=ORIENTED_EDGE('',*,*,#177,.F.);
|
||||
#179=CARTESIAN_POINT('',(12.50001043,19.203937115,17.2));
|
||||
#180=VERTEX_POINT('',#179);
|
||||
#181=CARTESIAN_POINT('',(10.40001043,19.203937115,17.2));
|
||||
#182=DIRECTION('',(0.,0.,1.));
|
||||
#183=DIRECTION('',(1.,0.,-0.));
|
||||
#184=AXIS2_PLACEMENT_3D('',#181,#182,#183);
|
||||
#185=CIRCLE('',#184,2.1);
|
||||
#186=EDGE_CURVE('',#172,#180,#185,.T.);
|
||||
#187=ORIENTED_EDGE('',*,*,#186,.T.);
|
||||
#188=CARTESIAN_POINT('',(12.50001043,42.203937115,17.2));
|
||||
#189=VERTEX_POINT('',#188);
|
||||
#190=CARTESIAN_POINT('',(12.50001043,42.203937115,17.2));
|
||||
#191=DIRECTION('',(0.,-1.,0.));
|
||||
#192=VECTOR('',#191,23.);
|
||||
#193=LINE('',#190,#192);
|
||||
#194=EDGE_CURVE('',#189,#180,#193,.T.);
|
||||
#195=ORIENTED_EDGE('',*,*,#194,.F.);
|
||||
#196=CARTESIAN_POINT('',(10.40001043,42.203937115,17.2));
|
||||
#197=DIRECTION('',(0.,0.,1.));
|
||||
#198=DIRECTION('',(1.,0.,-0.));
|
||||
#199=AXIS2_PLACEMENT_3D('',#196,#197,#198);
|
||||
#200=CIRCLE('',#199,2.1);
|
||||
#201=EDGE_CURVE('',#189,#35,#200,.T.);
|
||||
#202=ORIENTED_EDGE('',*,*,#201,.T.);
|
||||
#203=ORIENTED_EDGE('',*,*,#40,.F.);
|
||||
#204=CARTESIAN_POINT('',(-10.09998957,42.203937115,17.2));
|
||||
#205=DIRECTION('',(0.,0.,1.));
|
||||
#206=DIRECTION('',(1.,0.,-0.));
|
||||
#207=AXIS2_PLACEMENT_3D('',#204,#205,#206);
|
||||
#208=CIRCLE('',#207,2.1);
|
||||
#209=EDGE_CURVE('',#33,#155,#208,.T.);
|
||||
#210=ORIENTED_EDGE('',*,*,#209,.T.);
|
||||
#211=EDGE_LOOP('',(#161,#170,#178,#187,#195,#202,#203,#210));
|
||||
#212=FACE_BOUND('',#211,.T.);
|
||||
#213=ADVANCED_FACE('',(#91,#111,#131,#151,#212),#71,.T.);
|
||||
#214=CARTESIAN_POINT('',(0.15,32.5,16.2));
|
||||
#215=DIRECTION('',(0.,0.,1.));
|
||||
#216=DIRECTION('',(1.,0.,0.));
|
||||
#217=AXIS2_PLACEMENT_3D('',#214,#215,#216);
|
||||
#218=PLANE('',#217);
|
||||
#219=CARTESIAN_POINT('',(-8.99998957,19.203937115,16.2));
|
||||
#220=VERTEX_POINT('',#219);
|
||||
#221=CARTESIAN_POINT('',(-11.19998957,19.203937115,16.2));
|
||||
#222=VERTEX_POINT('',#221);
|
||||
#223=CARTESIAN_POINT('',(-10.09998957,19.203937115,16.2));
|
||||
#224=DIRECTION('',(0.,0.,1.));
|
||||
#225=DIRECTION('',(1.,0.,-0.));
|
||||
#226=AXIS2_PLACEMENT_3D('',#223,#224,#225);
|
||||
#227=CIRCLE('',#226,1.1);
|
||||
#228=EDGE_CURVE('',#220,#222,#227,.T.);
|
||||
#229=ORIENTED_EDGE('',*,*,#228,.T.);
|
||||
#230=CARTESIAN_POINT('',(-10.09998957,19.203937115,16.2));
|
||||
#231=DIRECTION('',(0.,0.,1.));
|
||||
#232=DIRECTION('',(1.,0.,-0.));
|
||||
#233=AXIS2_PLACEMENT_3D('',#230,#231,#232);
|
||||
#234=CIRCLE('',#233,1.1);
|
||||
#235=EDGE_CURVE('',#222,#220,#234,.T.);
|
||||
#236=ORIENTED_EDGE('',*,*,#235,.T.);
|
||||
#237=EDGE_LOOP('',(#229,#236));
|
||||
#238=FACE_BOUND('',#237,.T.);
|
||||
#239=CARTESIAN_POINT('',(-8.99998957,42.203937115,16.2));
|
||||
#240=VERTEX_POINT('',#239);
|
||||
#241=CARTESIAN_POINT('',(-11.19998957,42.203937115,16.2));
|
||||
#242=VERTEX_POINT('',#241);
|
||||
#243=CARTESIAN_POINT('',(-10.09998957,42.203937115,16.2));
|
||||
#244=DIRECTION('',(0.,0.,1.));
|
||||
#245=DIRECTION('',(1.,0.,-0.));
|
||||
#246=AXIS2_PLACEMENT_3D('',#243,#244,#245);
|
||||
#247=CIRCLE('',#246,1.1);
|
||||
#248=EDGE_CURVE('',#240,#242,#247,.T.);
|
||||
#249=ORIENTED_EDGE('',*,*,#248,.T.);
|
||||
#250=CARTESIAN_POINT('',(-10.09998957,42.203937115,16.2));
|
||||
#251=DIRECTION('',(0.,0.,1.));
|
||||
#252=DIRECTION('',(1.,0.,-0.));
|
||||
#253=AXIS2_PLACEMENT_3D('',#250,#251,#252);
|
||||
#254=CIRCLE('',#253,1.1);
|
||||
#255=EDGE_CURVE('',#242,#240,#254,.T.);
|
||||
#256=ORIENTED_EDGE('',*,*,#255,.T.);
|
||||
#257=EDGE_LOOP('',(#249,#256));
|
||||
#258=FACE_BOUND('',#257,.T.);
|
||||
#259=CARTESIAN_POINT('',(11.50001043,19.203937115,16.2));
|
||||
#260=VERTEX_POINT('',#259);
|
||||
#261=CARTESIAN_POINT('',(9.30001043,19.203937115,16.2));
|
||||
#262=VERTEX_POINT('',#261);
|
||||
#263=CARTESIAN_POINT('',(10.40001043,19.203937115,16.2));
|
||||
#264=DIRECTION('',(0.,0.,1.));
|
||||
#265=DIRECTION('',(1.,0.,-0.));
|
||||
#266=AXIS2_PLACEMENT_3D('',#263,#264,#265);
|
||||
#267=CIRCLE('',#266,1.1);
|
||||
#268=EDGE_CURVE('',#260,#262,#267,.T.);
|
||||
#269=ORIENTED_EDGE('',*,*,#268,.T.);
|
||||
#270=CARTESIAN_POINT('',(10.40001043,19.203937115,16.2));
|
||||
#271=DIRECTION('',(0.,0.,1.));
|
||||
#272=DIRECTION('',(1.,0.,-0.));
|
||||
#273=AXIS2_PLACEMENT_3D('',#270,#271,#272);
|
||||
#274=CIRCLE('',#273,1.1);
|
||||
#275=EDGE_CURVE('',#262,#260,#274,.T.);
|
||||
#276=ORIENTED_EDGE('',*,*,#275,.T.);
|
||||
#277=EDGE_LOOP('',(#269,#276));
|
||||
#278=FACE_BOUND('',#277,.T.);
|
||||
#279=CARTESIAN_POINT('',(11.50001043,42.203937115,16.2));
|
||||
#280=VERTEX_POINT('',#279);
|
||||
#281=CARTESIAN_POINT('',(9.30001043,42.203937115,16.2));
|
||||
#282=VERTEX_POINT('',#281);
|
||||
#283=CARTESIAN_POINT('',(10.40001043,42.203937115,16.2));
|
||||
#284=DIRECTION('',(0.,0.,1.));
|
||||
#285=DIRECTION('',(1.,0.,-0.));
|
||||
#286=AXIS2_PLACEMENT_3D('',#283,#284,#285);
|
||||
#287=CIRCLE('',#286,1.1);
|
||||
#288=EDGE_CURVE('',#280,#282,#287,.T.);
|
||||
#289=ORIENTED_EDGE('',*,*,#288,.T.);
|
||||
#290=CARTESIAN_POINT('',(10.40001043,42.203937115,16.2));
|
||||
#291=DIRECTION('',(0.,0.,1.));
|
||||
#292=DIRECTION('',(1.,0.,-0.));
|
||||
#293=AXIS2_PLACEMENT_3D('',#290,#291,#292);
|
||||
#294=CIRCLE('',#293,1.1);
|
||||
#295=EDGE_CURVE('',#282,#280,#294,.T.);
|
||||
#296=ORIENTED_EDGE('',*,*,#295,.T.);
|
||||
#297=EDGE_LOOP('',(#289,#296));
|
||||
#298=FACE_BOUND('',#297,.T.);
|
||||
#299=CARTESIAN_POINT('',(10.40001043,17.103937115,16.2));
|
||||
#300=VERTEX_POINT('',#299);
|
||||
#301=CARTESIAN_POINT('',(-10.09998957,17.103937115,16.2));
|
||||
#302=VERTEX_POINT('',#301);
|
||||
#303=CARTESIAN_POINT('',(10.40001043,17.103937115,16.2));
|
||||
#304=DIRECTION('',(-1.,0.,0.));
|
||||
#305=VECTOR('',#304,20.5);
|
||||
#306=LINE('',#303,#305);
|
||||
#307=EDGE_CURVE('',#300,#302,#306,.T.);
|
||||
#308=ORIENTED_EDGE('',*,*,#307,.T.);
|
||||
#309=CARTESIAN_POINT('',(-12.19998957,19.203937115,16.2));
|
||||
#310=VERTEX_POINT('',#309);
|
||||
#311=CARTESIAN_POINT('',(-10.09998957,19.203937115,16.2));
|
||||
#312=DIRECTION('',(-0.,-0.,-1.));
|
||||
#313=DIRECTION('',(1.,0.,-0.));
|
||||
#314=AXIS2_PLACEMENT_3D('',#311,#312,#313);
|
||||
#315=CIRCLE('',#314,2.1);
|
||||
#316=EDGE_CURVE('',#302,#310,#315,.T.);
|
||||
#317=ORIENTED_EDGE('',*,*,#316,.T.);
|
||||
#318=CARTESIAN_POINT('',(-12.19998957,42.203937115,16.2));
|
||||
#319=VERTEX_POINT('',#318);
|
||||
#320=CARTESIAN_POINT('',(-12.19998957,19.203937115,16.2));
|
||||
#321=DIRECTION('',(0.,1.,0.));
|
||||
#322=VECTOR('',#321,23.);
|
||||
#323=LINE('',#320,#322);
|
||||
#324=EDGE_CURVE('',#310,#319,#323,.T.);
|
||||
#325=ORIENTED_EDGE('',*,*,#324,.T.);
|
||||
#326=CARTESIAN_POINT('',(-10.09998957,42.203937115,16.2));
|
||||
#327=DIRECTION('',(0.,0.,1.));
|
||||
#328=DIRECTION('',(1.,0.,-0.));
|
||||
#329=AXIS2_PLACEMENT_3D('',#326,#327,#328);
|
||||
#330=CIRCLE('',#329,2.1);
|
||||
#331=EDGE_CURVE('',#51,#319,#330,.T.);
|
||||
#332=ORIENTED_EDGE('',*,*,#331,.F.);
|
||||
#333=ORIENTED_EDGE('',*,*,#56,.T.);
|
||||
#334=CARTESIAN_POINT('',(12.50001043,42.203937115,16.2));
|
||||
#335=VERTEX_POINT('',#334);
|
||||
#336=CARTESIAN_POINT('',(10.40001043,42.203937115,16.2));
|
||||
#337=DIRECTION('',(-0.,-0.,-1.));
|
||||
#338=DIRECTION('',(1.,0.,-0.));
|
||||
#339=AXIS2_PLACEMENT_3D('',#336,#337,#338);
|
||||
#340=CIRCLE('',#339,2.1);
|
||||
#341=EDGE_CURVE('',#43,#335,#340,.T.);
|
||||
#342=ORIENTED_EDGE('',*,*,#341,.T.);
|
||||
#343=CARTESIAN_POINT('',(12.50001043,19.203937115,16.2));
|
||||
#344=VERTEX_POINT('',#343);
|
||||
#345=CARTESIAN_POINT('',(12.50001043,42.203937115,16.2));
|
||||
#346=DIRECTION('',(0.,-1.,0.));
|
||||
#347=VECTOR('',#346,23.);
|
||||
#348=LINE('',#345,#347);
|
||||
#349=EDGE_CURVE('',#335,#344,#348,.T.);
|
||||
#350=ORIENTED_EDGE('',*,*,#349,.T.);
|
||||
#351=CARTESIAN_POINT('',(10.40001043,19.203937115,16.2));
|
||||
#352=DIRECTION('',(-0.,-0.,-1.));
|
||||
#353=DIRECTION('',(1.,0.,-0.));
|
||||
#354=AXIS2_PLACEMENT_3D('',#351,#352,#353);
|
||||
#355=CIRCLE('',#354,2.1);
|
||||
#356=EDGE_CURVE('',#344,#300,#355,.T.);
|
||||
#357=ORIENTED_EDGE('',*,*,#356,.T.);
|
||||
#358=EDGE_LOOP('',(#308,#317,#325,#332,#333,#342,#350,#357));
|
||||
#359=FACE_BOUND('',#358,.T.);
|
||||
#360=ADVANCED_FACE('',(#238,#258,#278,#298,#359),#218,.F.);
|
||||
#361=CARTESIAN_POINT('',(12.50001043,17.603937115,17.2));
|
||||
#362=DIRECTION('',(1.,0.,0.));
|
||||
#363=DIRECTION('',(0.,0.,-1.));
|
||||
#364=AXIS2_PLACEMENT_3D('',#361,#362,#363);
|
||||
#365=PLANE('',#364);
|
||||
#366=ORIENTED_EDGE('',*,*,#194,.T.);
|
||||
#367=CARTESIAN_POINT('',(12.50001043,19.203937115,17.2));
|
||||
#368=DIRECTION('',(-0.,-0.,-1.));
|
||||
#369=VECTOR('',#368,1.);
|
||||
#370=LINE('',#367,#369);
|
||||
#371=EDGE_CURVE('',#180,#344,#370,.T.);
|
||||
#372=ORIENTED_EDGE('',*,*,#371,.T.);
|
||||
#373=ORIENTED_EDGE('',*,*,#349,.F.);
|
||||
#374=CARTESIAN_POINT('',(12.50001043,42.203937115,16.2));
|
||||
#375=DIRECTION('',(0.,0.,1.));
|
||||
#376=VECTOR('',#375,1.);
|
||||
#377=LINE('',#374,#376);
|
||||
#378=EDGE_CURVE('',#335,#189,#377,.T.);
|
||||
#379=ORIENTED_EDGE('',*,*,#378,.T.);
|
||||
#380=EDGE_LOOP('',(#366,#372,#373,#379));
|
||||
#381=FACE_BOUND('',#380,.T.);
|
||||
#382=ADVANCED_FACE('',(#381),#365,.T.);
|
||||
#383=CARTESIAN_POINT('',(-12.19998957,30.703937115,17.2));
|
||||
#384=DIRECTION('',(-1.,0.,0.));
|
||||
#385=DIRECTION('',(0.,0.,1.));
|
||||
#386=AXIS2_PLACEMENT_3D('',#383,#384,#385);
|
||||
#387=PLANE('',#386);
|
||||
#388=ORIENTED_EDGE('',*,*,#324,.F.);
|
||||
#389=CARTESIAN_POINT('',(-12.19998957,19.203937115,16.2));
|
||||
#390=DIRECTION('',(0.,0.,1.));
|
||||
#391=VECTOR('',#390,1.);
|
||||
#392=LINE('',#389,#391);
|
||||
#393=EDGE_CURVE('',#310,#153,#392,.T.);
|
||||
#394=ORIENTED_EDGE('',*,*,#393,.T.);
|
||||
#395=ORIENTED_EDGE('',*,*,#160,.T.);
|
||||
#396=CARTESIAN_POINT('',(-12.19998957,42.203937115,16.2));
|
||||
#397=DIRECTION('',(0.,0.,1.));
|
||||
#398=VECTOR('',#397,1.);
|
||||
#399=LINE('',#396,#398);
|
||||
#400=EDGE_CURVE('',#319,#155,#399,.T.);
|
||||
#401=ORIENTED_EDGE('',*,*,#400,.F.);
|
||||
#402=EDGE_LOOP('',(#388,#394,#395,#401));
|
||||
#403=FACE_BOUND('',#402,.T.);
|
||||
#404=ADVANCED_FACE('',(#403),#387,.T.);
|
||||
#405=CARTESIAN_POINT('',(-10.09998957,19.203937115,17.2));
|
||||
#406=DIRECTION('',(0.,0.,-1.));
|
||||
#407=DIRECTION('',(-1.,0.,0.));
|
||||
#408=AXIS2_PLACEMENT_3D('',#405,#406,#407);
|
||||
#409=CYLINDRICAL_SURFACE('',#408,1.1);
|
||||
#410=CARTESIAN_POINT('',(-11.19998957,19.203937115,16.2));
|
||||
#411=DIRECTION('',(-0.,-0.,1.));
|
||||
#412=VECTOR('',#411,1.);
|
||||
#413=LINE('',#410,#412);
|
||||
#414=EDGE_CURVE('',#222,#133,#413,.T.);
|
||||
#415=ORIENTED_EDGE('',*,*,#414,.F.);
|
||||
#416=ORIENTED_EDGE('',*,*,#228,.F.);
|
||||
#417=ORIENTED_EDGE('',*,*,#235,.F.);
|
||||
#418=ORIENTED_EDGE('',*,*,#414,.T.);
|
||||
#419=ORIENTED_EDGE('',*,*,#141,.T.);
|
||||
#420=ORIENTED_EDGE('',*,*,#148,.T.);
|
||||
#421=EDGE_LOOP('',(#415,#416,#417,#418,#419,#420));
|
||||
#422=FACE_BOUND('',#421,.T.);
|
||||
#423=ADVANCED_FACE('',(#422),#409,.F.);
|
||||
#424=CARTESIAN_POINT('',(-10.09998957,42.203937115,17.2));
|
||||
#425=DIRECTION('',(0.,0.,-1.));
|
||||
#426=DIRECTION('',(-1.,0.,0.));
|
||||
#427=AXIS2_PLACEMENT_3D('',#424,#425,#426);
|
||||
#428=CYLINDRICAL_SURFACE('',#427,1.1);
|
||||
#429=CARTESIAN_POINT('',(-11.19998957,42.203937115,16.2));
|
||||
#430=DIRECTION('',(-0.,-0.,1.));
|
||||
#431=VECTOR('',#430,1.);
|
||||
#432=LINE('',#429,#431);
|
||||
#433=EDGE_CURVE('',#242,#113,#432,.T.);
|
||||
#434=ORIENTED_EDGE('',*,*,#433,.F.);
|
||||
#435=ORIENTED_EDGE('',*,*,#248,.F.);
|
||||
#436=ORIENTED_EDGE('',*,*,#255,.F.);
|
||||
#437=ORIENTED_EDGE('',*,*,#433,.T.);
|
||||
#438=ORIENTED_EDGE('',*,*,#121,.T.);
|
||||
#439=ORIENTED_EDGE('',*,*,#128,.T.);
|
||||
#440=EDGE_LOOP('',(#434,#435,#436,#437,#438,#439));
|
||||
#441=FACE_BOUND('',#440,.T.);
|
||||
#442=ADVANCED_FACE('',(#441),#428,.F.);
|
||||
#443=CARTESIAN_POINT('',(10.40001043,19.203937115,17.2));
|
||||
#444=DIRECTION('',(0.,0.,-1.));
|
||||
#445=DIRECTION('',(-1.,0.,0.));
|
||||
#446=AXIS2_PLACEMENT_3D('',#443,#444,#445);
|
||||
#447=CYLINDRICAL_SURFACE('',#446,1.1);
|
||||
#448=CARTESIAN_POINT('',(9.30001043,19.203937115,16.2));
|
||||
#449=DIRECTION('',(-0.,-0.,1.));
|
||||
#450=VECTOR('',#449,1.);
|
||||
#451=LINE('',#448,#450);
|
||||
#452=EDGE_CURVE('',#262,#93,#451,.T.);
|
||||
#453=ORIENTED_EDGE('',*,*,#452,.F.);
|
||||
#454=ORIENTED_EDGE('',*,*,#268,.F.);
|
||||
#455=ORIENTED_EDGE('',*,*,#275,.F.);
|
||||
#456=ORIENTED_EDGE('',*,*,#452,.T.);
|
||||
#457=ORIENTED_EDGE('',*,*,#101,.T.);
|
||||
#458=ORIENTED_EDGE('',*,*,#108,.T.);
|
||||
#459=EDGE_LOOP('',(#453,#454,#455,#456,#457,#458));
|
||||
#460=FACE_BOUND('',#459,.T.);
|
||||
#461=ADVANCED_FACE('',(#460),#447,.F.);
|
||||
#462=CARTESIAN_POINT('',(10.40001043,42.203937115,17.2));
|
||||
#463=DIRECTION('',(0.,0.,-1.));
|
||||
#464=DIRECTION('',(-1.,0.,0.));
|
||||
#465=AXIS2_PLACEMENT_3D('',#462,#463,#464);
|
||||
#466=CYLINDRICAL_SURFACE('',#465,1.1);
|
||||
#467=CARTESIAN_POINT('',(9.30001043,42.203937115,16.2));
|
||||
#468=DIRECTION('',(-0.,-0.,1.));
|
||||
#469=VECTOR('',#468,1.);
|
||||
#470=LINE('',#467,#469);
|
||||
#471=EDGE_CURVE('',#282,#73,#470,.T.);
|
||||
#472=ORIENTED_EDGE('',*,*,#471,.F.);
|
||||
#473=ORIENTED_EDGE('',*,*,#288,.F.);
|
||||
#474=ORIENTED_EDGE('',*,*,#295,.F.);
|
||||
#475=ORIENTED_EDGE('',*,*,#471,.T.);
|
||||
#476=ORIENTED_EDGE('',*,*,#81,.T.);
|
||||
#477=ORIENTED_EDGE('',*,*,#88,.T.);
|
||||
#478=EDGE_LOOP('',(#472,#473,#474,#475,#476,#477));
|
||||
#479=FACE_BOUND('',#478,.T.);
|
||||
#480=ADVANCED_FACE('',(#479),#466,.F.);
|
||||
#481=CARTESIAN_POINT('',(0.15001043,17.103937115,17.2));
|
||||
#482=DIRECTION('',(0.,-1.,0.));
|
||||
#483=DIRECTION('',(0.,0.,-1.));
|
||||
#484=AXIS2_PLACEMENT_3D('',#481,#482,#483);
|
||||
#485=PLANE('',#484);
|
||||
#486=ORIENTED_EDGE('',*,*,#177,.T.);
|
||||
#487=CARTESIAN_POINT('',(-10.09998957,17.103937115,17.2));
|
||||
#488=DIRECTION('',(-0.,-0.,-1.));
|
||||
#489=VECTOR('',#488,1.);
|
||||
#490=LINE('',#487,#489);
|
||||
#491=EDGE_CURVE('',#163,#302,#490,.T.);
|
||||
#492=ORIENTED_EDGE('',*,*,#491,.T.);
|
||||
#493=ORIENTED_EDGE('',*,*,#307,.F.);
|
||||
#494=CARTESIAN_POINT('',(10.40001043,17.103937115,16.2));
|
||||
#495=DIRECTION('',(0.,0.,1.));
|
||||
#496=VECTOR('',#495,1.);
|
||||
#497=LINE('',#494,#496);
|
||||
#498=EDGE_CURVE('',#300,#172,#497,.T.);
|
||||
#499=ORIENTED_EDGE('',*,*,#498,.T.);
|
||||
#500=EDGE_LOOP('',(#486,#492,#493,#499));
|
||||
#501=FACE_BOUND('',#500,.T.);
|
||||
#502=ADVANCED_FACE('',(#501),#485,.T.);
|
||||
#503=CARTESIAN_POINT('',(-10.09998957,42.203937115,17.2));
|
||||
#504=DIRECTION('',(0.,0.,-1.));
|
||||
#505=DIRECTION('',(-1.,0.,0.));
|
||||
#506=AXIS2_PLACEMENT_3D('',#503,#504,#505);
|
||||
#507=CYLINDRICAL_SURFACE('',#506,2.1);
|
||||
#508=ORIENTED_EDGE('',*,*,#331,.T.);
|
||||
#509=ORIENTED_EDGE('',*,*,#400,.T.);
|
||||
#510=ORIENTED_EDGE('',*,*,#209,.F.);
|
||||
#511=ORIENTED_EDGE('',*,*,#62,.F.);
|
||||
#512=EDGE_LOOP('',(#508,#509,#510,#511));
|
||||
#513=FACE_BOUND('',#512,.T.);
|
||||
#514=ADVANCED_FACE('',(#513),#507,.T.);
|
||||
#515=CARTESIAN_POINT('',(-10.09998957,19.203937115,17.2));
|
||||
#516=DIRECTION('',(0.,0.,1.));
|
||||
#517=DIRECTION('',(1.,0.,-0.));
|
||||
#518=AXIS2_PLACEMENT_3D('',#515,#516,#517);
|
||||
#519=CYLINDRICAL_SURFACE('',#518,2.1);
|
||||
#520=ORIENTED_EDGE('',*,*,#169,.F.);
|
||||
#521=ORIENTED_EDGE('',*,*,#393,.F.);
|
||||
#522=ORIENTED_EDGE('',*,*,#316,.F.);
|
||||
#523=ORIENTED_EDGE('',*,*,#491,.F.);
|
||||
#524=EDGE_LOOP('',(#520,#521,#522,#523));
|
||||
#525=FACE_BOUND('',#524,.T.);
|
||||
#526=ADVANCED_FACE('',(#525),#519,.T.);
|
||||
#527=CARTESIAN_POINT('',(10.40001043,19.203937115,17.2));
|
||||
#528=DIRECTION('',(0.,0.,1.));
|
||||
#529=DIRECTION('',(1.,0.,-0.));
|
||||
#530=AXIS2_PLACEMENT_3D('',#527,#528,#529);
|
||||
#531=CYLINDRICAL_SURFACE('',#530,2.1);
|
||||
#532=ORIENTED_EDGE('',*,*,#186,.F.);
|
||||
#533=ORIENTED_EDGE('',*,*,#498,.F.);
|
||||
#534=ORIENTED_EDGE('',*,*,#356,.F.);
|
||||
#535=ORIENTED_EDGE('',*,*,#371,.F.);
|
||||
#536=EDGE_LOOP('',(#532,#533,#534,#535));
|
||||
#537=FACE_BOUND('',#536,.T.);
|
||||
#538=ADVANCED_FACE('',(#537),#531,.T.);
|
||||
#539=CARTESIAN_POINT('',(10.40001043,42.203937115,17.2));
|
||||
#540=DIRECTION('',(0.,0.,1.));
|
||||
#541=DIRECTION('',(1.,0.,-0.));
|
||||
#542=AXIS2_PLACEMENT_3D('',#539,#540,#541);
|
||||
#543=CYLINDRICAL_SURFACE('',#542,2.1);
|
||||
#544=ORIENTED_EDGE('',*,*,#201,.F.);
|
||||
#545=ORIENTED_EDGE('',*,*,#378,.F.);
|
||||
#546=ORIENTED_EDGE('',*,*,#341,.F.);
|
||||
#547=ORIENTED_EDGE('',*,*,#48,.F.);
|
||||
#548=EDGE_LOOP('',(#544,#545,#546,#547));
|
||||
#549=FACE_BOUND('',#548,.T.);
|
||||
#550=ADVANCED_FACE('',(#549),#543,.T.);
|
||||
#551=CLOSED_SHELL('',(#66,#213,#360,#382,#404,#423,#442,#461,#480,#502,#514,#526,#538,#550));
|
||||
#552=MANIFOLD_SOLID_BREP('OLED Cover',#551);
|
||||
#553=COLOUR_RGB('',0.627451003,0.627451003,0.643137276);
|
||||
#554=FILL_AREA_STYLE_COLOUR('',#553);
|
||||
#555=FILL_AREA_STYLE('',(#554));
|
||||
#556=SURFACE_STYLE_FILL_AREA(#555);
|
||||
#557=SURFACE_SIDE_STYLE('',(#556));
|
||||
#558=SURFACE_STYLE_USAGE(.BOTH.,#557);
|
||||
#559=PRESENTATION_STYLE_ASSIGNMENT((#558));
|
||||
#26=STYLED_ITEM('',(#559),#552);
|
||||
#16=SHAPE_REPRESENTATION('root',(#15),#10);
|
||||
#17=ADVANCED_BREP_SHAPE_REPRESENTATION('root',(#552),#10);
|
||||
#567=SHAPE_REPRESENTATION_RELATIONSHIP('','',#16,#17);
|
||||
#568=CARTESIAN_POINT('',(0.,0.,0.));
|
||||
#569=DIRECTION('',(0.,0.,1.));
|
||||
#570=DIRECTION('',(1.,0.,0.));
|
||||
#571=AXIS2_PLACEMENT_3D('',#568,#569,#570);
|
||||
#573=MAPPED_ITEM('',#572,#571);
|
||||
#572=REPRESENTATION_MAP(#571,#16);
|
||||
#574=APPLICATION_CONTEXT('Managed model based 3d engineering');
|
||||
#575=APPLICATION_PROTOCOL_DEFINITION('international standard','ap242_managed_model_based_3d_engineering',2014,#574);
|
||||
#576=PRODUCT_CONTEXT('',#574,'mechanical');
|
||||
#577=PRODUCT_DEFINITION_CONTEXT('part definition',#574,'design');
|
||||
#24=PRODUCT('root','root','',(#576));
|
||||
#578=PRODUCT_RELATED_PRODUCT_CATEGORY('part','',(#24));
|
||||
#579=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#24,.NOT_KNOWN.);
|
||||
#25=PRODUCT_DEFINITION('design','',#579,#577);
|
||||
#23=PRODUCT_DEFINITION_SHAPE('','',#25);
|
||||
#580=SHAPE_DEFINITION_REPRESENTATION(#23,#16);
|
||||
#11=DRAUGHTING_MODEL('',(#573),#10);
|
||||
#581=DESCRIPTIVE_REPRESENTATION_ITEM('KEY','C:\\Users\\me\\AppData\\Local\\Packages\\Shapr3D.Shapr3D_dvv5p1vgwv6mp\\TempState\\89b63c18-09b5-4b50-a048-264623e15c4c.tmp');
|
||||
#582=PROPERTY_DEFINITION('KEY','',#25);
|
||||
#583=REPRESENTATION('',(#581),#10);
|
||||
#584=PROPERTY_DEFINITION_REPRESENTATION(#582,#583);
|
||||
#585=GENERAL_PROPERTY('','KEY','');
|
||||
#586=GENERAL_PROPERTY_ASSOCIATION('','',#585,#582);
|
||||
#1=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#26),#10);
|
||||
ENDSEC;
|
||||
END-ISO-10303-21;
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,29 @@
|
||||
[
|
||||
[
|
||||
"0,0",
|
||||
{
|
||||
"x": 1
|
||||
},
|
||||
"0,2"
|
||||
],
|
||||
[
|
||||
"1,0",
|
||||
"1,1",
|
||||
"1,2"
|
||||
],
|
||||
[
|
||||
"2,0",
|
||||
"2,1",
|
||||
"2,2"
|
||||
],
|
||||
[
|
||||
"3,0",
|
||||
"3,1",
|
||||
"3,2"
|
||||
],
|
||||
[
|
||||
"4,0",
|
||||
"4,1",
|
||||
"4,2"
|
||||
]
|
||||
]
|
||||
Binary file not shown.
@@ -0,0 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
// OLED
|
||||
#define OLED_DISPLAY_128X64
|
||||
#define I2C_DRIVER I2CD1
|
||||
#define I2C1_SCL_PIN GP27
|
||||
#define I2C1_SDA_PIN GP26
|
||||
@@ -0,0 +1,5 @@
|
||||
#pragma once
|
||||
|
||||
#define HAL_USE_I2C TRUE
|
||||
|
||||
#include_next <halconf.h>
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"manufacturer": "ScottoKeebs",
|
||||
"keyboard_name": "ScottoT9 (PCB Edition)",
|
||||
"maintainer": "joe-scotto",
|
||||
"bootloader": "rp2040",
|
||||
"diode_direction": "COL2ROW",
|
||||
"features": {
|
||||
"bootmagic": true,
|
||||
"command": false,
|
||||
"console": false,
|
||||
"extrakey": true,
|
||||
"mousekey": true,
|
||||
"nkro": true,
|
||||
"oled": true
|
||||
},
|
||||
"matrix_pins": {
|
||||
"cols": ["GP29", "GP11", "GP3"],
|
||||
"rows": ["GP9", "GP5", "GP6", "GP7", "GP8"]
|
||||
},
|
||||
"processor": "RP2040",
|
||||
"url": "https://scottokeebs.com",
|
||||
"usb": {
|
||||
"device_version": "1.0.0",
|
||||
"pid": "0x0039",
|
||||
"vid": "0x534B"
|
||||
},
|
||||
"layouts": {
|
||||
"LAYOUT_ortho_2_4x3": {
|
||||
"layout": [
|
||||
{ "matrix": [0, 0], "x": 0, "y": 0 },
|
||||
{ "matrix": [0, 2], "x": 2, "y": 0 },
|
||||
{ "matrix": [1, 0], "x": 0, "y": 1 },
|
||||
{ "matrix": [1, 1], "x": 1, "y": 1 },
|
||||
{ "matrix": [1, 2], "x": 2, "y": 1 },
|
||||
{ "matrix": [2, 0], "x": 0, "y": 2 },
|
||||
{ "matrix": [2, 1], "x": 1, "y": 2 },
|
||||
{ "matrix": [2, 2], "x": 2, "y": 2 },
|
||||
{ "matrix": [3, 0], "x": 0, "y": 3 },
|
||||
{ "matrix": [3, 1], "x": 1, "y": 3 },
|
||||
{ "matrix": [3, 2], "x": 2, "y": 3 },
|
||||
{ "matrix": [4, 0], "x": 0, "y": 4 },
|
||||
{ "matrix": [4, 1], "x": 1, "y": 4 },
|
||||
{ "matrix": [4, 2], "x": 2, "y": 4 }
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ┌──────┐ ┌──────┐
|
||||
// │ left │ │ rght │
|
||||
// ├──────┼───┼──────┤
|
||||
// │ 1 │ 2 │ 3 │
|
||||
// ├──────┼───┼──────┤
|
||||
// │ 4 │ 5 │ 6 │
|
||||
// ├──────┼───┼──────┤
|
||||
// │ 7 │ 8 │ 9 │
|
||||
// ├──────┼───┼──────┤
|
||||
// │ * │ 0 │ # │
|
||||
// └──────┴───┴──────┘
|
||||
[0] = LAYOUT_ortho_2_4x3(
|
||||
KC_LEFT , KC_RIGHT,
|
||||
KC_1 , KC_2 , KC_3 ,
|
||||
KC_4 , KC_5 , KC_6 ,
|
||||
KC_7 , KC_8 , KC_9 ,
|
||||
KC_ASTERISK , KC_0 , KC_HASH
|
||||
)
|
||||
};
|
||||
// clang-format on
|
||||
@@ -0,0 +1,11 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum combos {
|
||||
ENTER,
|
||||
};
|
||||
|
||||
const uint16_t PROGMEM enter[] = {KC_RSFT, LT(1, KC_BSPC), COMBO_END};
|
||||
|
||||
combo_t key_combos[] = {
|
||||
[ENTER] = COMBO(enter, KC_ENTER),
|
||||
};
|
||||
@@ -0,0 +1,353 @@
|
||||
#include "combos.c"
|
||||
#include "tapdance.c"
|
||||
#include QMK_KEYBOARD_H
|
||||
#include <stdio.h>
|
||||
char wpm_str[10];
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ┌──────────┐ ┌─────────────┐
|
||||
// │ left │ │ rght │
|
||||
// ├──────────┼──────────┼─────────────┤
|
||||
// │ TD(TD_1) │ TD(TD_2) │ TD(TD_3) │
|
||||
// ├──────────┼──────────┼─────────────┤
|
||||
// │ TD(TD_4) │ TD(TD_5) │ TD(TD_6) │
|
||||
// ├──────────┼──────────┼─────────────┤
|
||||
// │ TD(TD_7) │ TD(TD_8) │ TD(TD_9) │
|
||||
// ├──────────┼──────────┼─────────────┤
|
||||
// │ rsft │ TD(TD_0) │ LT(1, bspc) │
|
||||
// └──────────┴──────────┴─────────────┘
|
||||
[0] = LAYOUT_ortho_2_4x3(
|
||||
KC_LEFT , KC_RIGHT ,
|
||||
TD(TD_1) , TD(TD_2) , TD(TD_3) ,
|
||||
TD(TD_4) , TD(TD_5) , TD(TD_6) ,
|
||||
TD(TD_7) , TD(TD_8) , TD(TD_9) ,
|
||||
KC_RSFT , TD(TD_0) , LT(1, KC_BSPC)
|
||||
),
|
||||
|
||||
// ┌──────┐ ┌──────┐
|
||||
// │ left │ │ rght │
|
||||
// ├──────┼─────────┼──────┤
|
||||
// │ tab │ up │ ent │
|
||||
// ├──────┼─────────┼──────┤
|
||||
// │ left │ down │ rght │
|
||||
// ├──────┼─────────┼──────┤
|
||||
// │ caps │ QK_BOOT │ del │
|
||||
// ├──────┼─────────┼──────┤
|
||||
// │ │ │ │
|
||||
// └──────┴─────────┴──────┘
|
||||
[1] = LAYOUT_ortho_2_4x3(
|
||||
KC_LEFT , KC_RIGHT ,
|
||||
KC_TAB , KC_UP , KC_ENTER ,
|
||||
KC_LEFT , KC_DOWN , KC_RIGHT ,
|
||||
KC_CAPS , QK_BOOT , KC_DELETE,
|
||||
KC_TRNS , KC_TRNS , KC_TRNS
|
||||
)
|
||||
};
|
||||
// clang-format on
|
||||
|
||||
#if OLED_ENABLE
|
||||
// WPM-responsive animation stuff here
|
||||
#define IDLE_FRAMES 5
|
||||
#define IDLE_SPEED 20 // below this wpm value your animation will idle
|
||||
|
||||
// #define PREP_FRAMES 1 // uncomment if >1
|
||||
|
||||
#define TAP_FRAMES 2
|
||||
#define TAP_SPEED 40 // above this wpm value typing animation to trigger
|
||||
|
||||
#define ANIM_FRAME_DURATION 200 // how long each frame lasts in ms
|
||||
// #define SLEEP_TIMER 60000 // should sleep after this period of 0 wpm, needs fixing
|
||||
#define ANIM_SIZE 636 // number of bytes in array, minimize for adequate firmware size, max is 1024
|
||||
|
||||
uint32_t anim_timer = 0;
|
||||
uint32_t anim_sleep = 0;
|
||||
uint8_t current_idle_frame = 0;
|
||||
// uint8_t current_prep_frame = 0; // uncomment if PREP_FRAMES >1
|
||||
uint8_t current_tap_frame = 0;
|
||||
|
||||
oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_180; }
|
||||
|
||||
// Code containing pixel art, contains:
|
||||
// 5 idle frames, 1 prep frame, and 2 tap frames
|
||||
|
||||
// To make your own pixel art:
|
||||
// save a png/jpeg of an 128x32 image (resource: https://www.pixilart.com/draw )
|
||||
// follow this guide up to and including "CONVERT YOUR IMAGE"
|
||||
// https://docs.splitkb.com/hc/en-us/articles/360013811280-How-do-I-convert-an-image-for-use-on-an-OLED-display- replace
|
||||
// numbers in brackets with your own if you start getting errors when compiling make sure you didn't accedentally delete
|
||||
// a bracket
|
||||
static void render_anim(void) {
|
||||
static const char PROGMEM idle[IDLE_FRAMES][ANIM_SIZE] = {
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02,
|
||||
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02,
|
||||
0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00,
|
||||
0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80,
|
||||
0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04,
|
||||
0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83,
|
||||
0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04,
|
||||
0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02,
|
||||
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02,
|
||||
0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00,
|
||||
0x60, 0x60, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80,
|
||||
0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04,
|
||||
0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86,
|
||||
0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04,
|
||||
0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04,
|
||||
0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x82, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x04,
|
||||
0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x80, 0x00, 0x00,
|
||||
0x60, 0x60, 0x00, 0x01, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80,
|
||||
0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04,
|
||||
0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xc0, 0x30, 0x0c, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86,
|
||||
0x86, 0x40, 0x40, 0x40, 0x40, 0x21, 0x22, 0x22, 0x20, 0x11, 0x11, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04,
|
||||
0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x10, 0x08, 0x04,
|
||||
0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x34, 0xc4, 0x04, 0x04, 0x04, 0x08, 0x08, 0x08, 0x08, 0x08, 0x04,
|
||||
0x04, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00,
|
||||
0x30, 0x30, 0x00, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80,
|
||||
0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04,
|
||||
0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83,
|
||||
0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04,
|
||||
0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x20, 0x18, 0x04, 0x02,
|
||||
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0d, 0x31, 0xc1, 0x01, 0x01, 0x01, 0x02, 0x02, 0x02, 0x04, 0x04, 0x02,
|
||||
0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00,
|
||||
0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80,
|
||||
0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04,
|
||||
0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83,
|
||||
0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04,
|
||||
0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x18, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||
static const char PROGMEM prep[][ANIM_SIZE] = {
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04,
|
||||
0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42,
|
||||
0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00,
|
||||
0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80,
|
||||
0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04,
|
||||
0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83,
|
||||
0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,
|
||||
0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04,
|
||||
0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}};
|
||||
static const char PROGMEM tap[TAP_FRAMES][ANIM_SIZE] = {
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04,
|
||||
0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x04, 0x04, 0x02,
|
||||
0x02, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00,
|
||||
0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x64, 0x18, 0x04, 0x12, 0xc2, 0xca, 0x24, 0x88, 0xf0, 0x80, 0x80,
|
||||
0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04,
|
||||
0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x83,
|
||||
0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,
|
||||
0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04,
|
||||
0x04, 0x04, 0x04, 0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x41, 0x42, 0x24, 0x98, 0xc0, 0x88, 0x88,
|
||||
0x8c, 0x9c, 0x1c, 0x1e, 0x0e, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
|
||||
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x08, 0x04,
|
||||
0x02, 0x04, 0x08, 0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xc1, 0x01, 0x01, 0x02, 0x02, 0x04, 0x84, 0x44, 0x44, 0x42,
|
||||
0x82, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x40, 0x80, 0x80, 0x40, 0x00, 0x00,
|
||||
0x30, 0x30, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x20, 0x40, 0x80, 0x80, 0x80, 0x80,
|
||||
0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04, 0x04,
|
||||
0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0xe0, 0x18, 0x06, 0x01, 0x00, 0x00, 0x0c, 0x03, 0x00, 0x02, 0x18, 0x19, 0x00, 0x05, 0xfe, 0x80, 0x83,
|
||||
0x83, 0x40, 0x40, 0x40, 0x40, 0x20, 0x21, 0x21, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x08, 0x08, 0x08, 0x04, 0x04,
|
||||
0x04, 0x04, 0x04, 0x08, 0x30, 0x40, 0x80, 0x80, 0x00, 0x00, 0x01, 0x86, 0x98, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80,
|
||||
0x80, 0x80, 0x40, 0x40, 0x40, 0x40, 0x20, 0x20, 0x20, 0x20, 0x10, 0x10, 0x10, 0x10, 0x08, 0x0f, 0x08, 0x08, 0x04,
|
||||
0x04, 0x04, 0x04, 0x02, 0x02, 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x0f, 0x0f, 0x07, 0x03, 0x03, 0x61, 0xf0,
|
||||
0xf8, 0xfc, 0x60, 0x01, 0x01, 0x01, 0x3c, 0x78, 0xf8, 0xf0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
|
||||
};
|
||||
|
||||
// assumes 1 frame prep stage
|
||||
void animation_phase(void) {
|
||||
if (get_current_wpm() <= IDLE_SPEED) {
|
||||
current_idle_frame = (current_idle_frame + 1) % IDLE_FRAMES;
|
||||
oled_write_raw_P(idle[abs((IDLE_FRAMES - 1) - current_idle_frame)], ANIM_SIZE);
|
||||
}
|
||||
if (get_current_wpm() > IDLE_SPEED && get_current_wpm() < TAP_SPEED) {
|
||||
// oled_write_raw_P(prep[abs((PREP_FRAMES-1)-current_prep_frame)], ANIM_SIZE); // uncomment if IDLE_FRAMES >1
|
||||
oled_write_raw_P(prep[0], ANIM_SIZE); // remove if IDLE_FRAMES >1
|
||||
}
|
||||
if (get_current_wpm() >= TAP_SPEED) {
|
||||
current_tap_frame = (current_tap_frame + 1) % TAP_FRAMES;
|
||||
oled_write_raw_P(tap[abs((TAP_FRAMES - 1) - current_tap_frame)], ANIM_SIZE);
|
||||
}
|
||||
}
|
||||
if (get_current_wpm() != 000) {
|
||||
oled_on(); // not essential but turns on animation OLED with any alpha keypress
|
||||
if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
|
||||
anim_timer = timer_read32();
|
||||
animation_phase();
|
||||
}
|
||||
anim_sleep = timer_read32();
|
||||
} else {
|
||||
if (timer_elapsed32(anim_sleep) > OLED_TIMEOUT) {
|
||||
oled_off();
|
||||
} else {
|
||||
if (timer_elapsed32(anim_timer) > ANIM_FRAME_DURATION) {
|
||||
anim_timer = timer_read32();
|
||||
animation_phase();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Used to draw on to the oled screen
|
||||
bool oled_task_user(void) {
|
||||
render_anim(); // renders pixelart
|
||||
|
||||
oled_set_cursor(0, 0); // sets cursor to (row, column) using charactar spacing (5 rows on 128x32 screen, anything more
|
||||
// will overflow back to the top)
|
||||
sprintf(wpm_str,
|
||||
"WPM:%03d",
|
||||
get_current_wpm()); // edit the string to change wwhat shows up, edit %03d to change how many digits show up
|
||||
oled_write(wpm_str, false); // writes wpm on top left corner of string
|
||||
|
||||
led_t led_state = host_keyboard_led_state(); // caps lock stuff, prints CAPS on new line if caps led is on
|
||||
oled_set_cursor(0, 1);
|
||||
oled_write_P(led_state.caps_lock ? PSTR("CAPS") : PSTR(" "), false);
|
||||
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,135 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum tap_dance {
|
||||
SFT_LOCK,
|
||||
CMD_LOCK,
|
||||
CTRL_LOCK,
|
||||
ALT_LOCK
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
TD_NONE,
|
||||
TD_UNKNOWN,
|
||||
TD_SINGLE_HOLD,
|
||||
TD_SINGLE_TAP,
|
||||
} td_state_t;
|
||||
|
||||
typedef struct {
|
||||
bool is_press_action;
|
||||
td_state_t state;
|
||||
} td_tap_t;
|
||||
|
||||
static td_tap_t xtap_state = {.is_press_action = true, .state = TD_NONE};
|
||||
static bool shift_locked = false;
|
||||
static bool cmd_locked = false;
|
||||
static bool ctrl_locked = false;
|
||||
static bool alt_locked = false;
|
||||
|
||||
// Determine state of tap dance
|
||||
td_state_t cur_dance(tap_dance_state_t *state) {
|
||||
if (state->count == 1) {
|
||||
if (state->interrupted || !state->pressed) {
|
||||
return TD_SINGLE_TAP;
|
||||
} else {
|
||||
return TD_SINGLE_HOLD;
|
||||
}
|
||||
}
|
||||
return TD_UNKNOWN;
|
||||
}
|
||||
|
||||
// Shift lock
|
||||
void sft_lock_finished(tap_dance_state_t *state, void *user_data) {
|
||||
xtap_state.state = cur_dance(state);
|
||||
switch (xtap_state.state) {
|
||||
case TD_SINGLE_TAP:
|
||||
if (shift_locked) {
|
||||
unregister_code(KC_LSFT);
|
||||
shift_locked = false;
|
||||
} else {
|
||||
register_code(KC_LSFT);
|
||||
shift_locked = true;
|
||||
}
|
||||
break;
|
||||
case TD_SINGLE_HOLD:
|
||||
register_code(KC_LSFT);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// CMD lock
|
||||
void cmd_lock_finished(tap_dance_state_t *state, void *user_data) {
|
||||
xtap_state.state = cur_dance(state);
|
||||
switch (xtap_state.state) {
|
||||
case TD_SINGLE_TAP:
|
||||
if (cmd_locked) {
|
||||
unregister_code(KC_LGUI);
|
||||
cmd_locked = false;
|
||||
} else {
|
||||
register_code(KC_LGUI);
|
||||
cmd_locked = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// CTRL lock
|
||||
void ctrl_lock_finished(tap_dance_state_t *state, void *user_data) {
|
||||
xtap_state.state = cur_dance(state);
|
||||
switch (xtap_state.state) {
|
||||
case TD_SINGLE_TAP:
|
||||
if (ctrl_locked) {
|
||||
unregister_code(KC_LCTL);
|
||||
ctrl_locked = false;
|
||||
} else {
|
||||
register_code(KC_LCTL);
|
||||
ctrl_locked = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// ALT lock
|
||||
void alt_lock_finished(tap_dance_state_t *state, void *user_data) {
|
||||
xtap_state.state = cur_dance(state);
|
||||
switch (xtap_state.state) {
|
||||
case TD_SINGLE_TAP:
|
||||
if (alt_locked) {
|
||||
unregister_code(KC_LALT);
|
||||
alt_locked = false;
|
||||
} else {
|
||||
register_code(KC_LALT);
|
||||
alt_locked = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Tap dance end
|
||||
void sft_lock_reset(tap_dance_state_t *state, void *user_data) {
|
||||
switch (xtap_state.state) {
|
||||
case TD_SINGLE_HOLD:
|
||||
unregister_code(KC_LSFT);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
xtap_state.state = TD_NONE;
|
||||
}
|
||||
|
||||
void generic_reset(tap_dance_state_t *state, void *user_data) { xtap_state.state = TD_NONE; }
|
||||
|
||||
// Define tap dance actions
|
||||
tap_dance_action_t tap_dance_actions[] = {
|
||||
[SFT_LOCK] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, sft_lock_finished, sft_lock_reset),
|
||||
[CMD_LOCK] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, cmd_lock_finished, generic_reset),
|
||||
[CTRL_LOCK] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, ctrl_lock_finished, generic_reset),
|
||||
[ALT_LOCK] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, alt_lock_finished, generic_reset),
|
||||
};
|
||||
@@ -0,0 +1,3 @@
|
||||
TAP_DANCE_ENABLE = yes
|
||||
COMBO_ENABLE = yes
|
||||
WPM_ENABLE = yes
|
||||
@@ -0,0 +1,159 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
enum tap_dance_keycodes {
|
||||
TD_1,
|
||||
TD_2,
|
||||
TD_3,
|
||||
TD_4,
|
||||
TD_5,
|
||||
TD_6,
|
||||
TD_7,
|
||||
TD_8,
|
||||
TD_9,
|
||||
TD_0,
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
TD_NONE,
|
||||
TD_UNKNOWN,
|
||||
TD_SINGLE_HOLD,
|
||||
TD_DOUBLE_HOLD,
|
||||
TD_TRIPLE_HOLD,
|
||||
TD_QUAD_HOLD,
|
||||
TD_SINGLE_TAP,
|
||||
TD_DOUBLE_TAP,
|
||||
TD_TRIPLE_TAP,
|
||||
TD_QUAD_TAP
|
||||
} td_state_t;
|
||||
|
||||
static td_state_t td_state = TD_NONE;
|
||||
|
||||
// Determine current tap-dance state
|
||||
td_state_t cur_dance(tap_dance_state_t *state) {
|
||||
switch (state->count) {
|
||||
case 1:
|
||||
return (state->interrupted || !state->pressed) ? TD_SINGLE_TAP : TD_SINGLE_HOLD;
|
||||
case 2:
|
||||
return (state->interrupted || !state->pressed) ? TD_DOUBLE_TAP : TD_DOUBLE_HOLD;
|
||||
case 3:
|
||||
return (state->interrupted || !state->pressed) ? TD_TRIPLE_TAP : TD_TRIPLE_HOLD;
|
||||
case 4:
|
||||
return (state->interrupted || !state->pressed) ? TD_QUAD_TAP : TD_QUAD_HOLD;
|
||||
default:
|
||||
return TD_UNKNOWN;
|
||||
}
|
||||
}
|
||||
|
||||
void symbol_finished(tap_dance_state_t *state, void *user_data) {
|
||||
td_state = cur_dance(state);
|
||||
switch (td_state) {
|
||||
case TD_SINGLE_TAP:
|
||||
tap_code(KC_QUOTE);
|
||||
break;
|
||||
case TD_SINGLE_HOLD:
|
||||
tap_code(KC_1);
|
||||
break;
|
||||
case TD_DOUBLE_TAP:
|
||||
tap_code(KC_COMMA);
|
||||
break;
|
||||
case TD_TRIPLE_TAP:
|
||||
tap_code(KC_SEMICOLON);
|
||||
break;
|
||||
case TD_QUAD_TAP:
|
||||
tap_code(KC_SLSH);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void space_finished(tap_dance_state_t *state, void *user_data) {
|
||||
td_state = cur_dance(state);
|
||||
switch (td_state) {
|
||||
case TD_SINGLE_TAP:
|
||||
tap_code(KC_SPC);
|
||||
break;
|
||||
case TD_SINGLE_HOLD:
|
||||
tap_code(KC_0);
|
||||
break;
|
||||
case TD_DOUBLE_TAP:
|
||||
tap_code(KC_DOT);
|
||||
break;
|
||||
case TD_TRIPLE_TAP:
|
||||
tap_code16(S(KC_SLSH));
|
||||
break;
|
||||
case TD_QUAD_TAP:
|
||||
tap_code16(S(KC_1));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void td_reset(tap_dance_state_t *state, void *user_data) { td_state = TD_NONE; }
|
||||
|
||||
static void t9_handler(td_state_t state, bool press, uint16_t kc1, uint16_t kc2, uint16_t kc3, uint16_t kc4,
|
||||
uint16_t kc_num) {
|
||||
uint16_t key = KC_NO;
|
||||
switch (state) {
|
||||
case TD_SINGLE_TAP:
|
||||
key = kc1;
|
||||
break;
|
||||
case TD_SINGLE_HOLD:
|
||||
key = kc_num;
|
||||
break;
|
||||
case TD_DOUBLE_TAP:
|
||||
key = kc2;
|
||||
break;
|
||||
case TD_TRIPLE_TAP:
|
||||
key = kc3;
|
||||
break;
|
||||
case TD_QUAD_TAP:
|
||||
key = kc4;
|
||||
break;
|
||||
default:
|
||||
return;
|
||||
}
|
||||
|
||||
if (key != KC_NO) {
|
||||
if (press)
|
||||
register_code(key);
|
||||
else
|
||||
unregister_code(key);
|
||||
}
|
||||
}
|
||||
|
||||
// Helper macro for T9 declaration
|
||||
#define T9(name, kc1, kc2, kc3, kc4, kc_num) \
|
||||
void td_##name##_finished(tap_dance_state_t *state, void *user_data) { \
|
||||
td_state = cur_dance(state); \
|
||||
t9_handler(td_state, true, kc1, kc2, kc3, kc4, kc_num); \
|
||||
} \
|
||||
\
|
||||
void td_##name##_reset(tap_dance_state_t *state, void *user_data) { \
|
||||
t9_handler(td_state, false, kc1, kc2, kc3, kc4, kc_num); \
|
||||
td_state = TD_NONE; \
|
||||
}
|
||||
|
||||
// Tap-dance key definitions
|
||||
T9(2, KC_A, KC_B, KC_C, KC_NO, KC_2);
|
||||
T9(3, KC_D, KC_E, KC_F, KC_NO, KC_3);
|
||||
T9(4, KC_G, KC_H, KC_I, KC_NO, KC_4);
|
||||
T9(5, KC_J, KC_K, KC_L, KC_NO, KC_5);
|
||||
T9(6, KC_M, KC_N, KC_O, KC_NO, KC_6);
|
||||
T9(7, KC_P, KC_Q, KC_R, KC_S, KC_7);
|
||||
T9(8, KC_T, KC_U, KC_V, KC_NO, KC_8);
|
||||
T9(9, KC_W, KC_X, KC_Y, KC_Z, KC_9);
|
||||
|
||||
tap_dance_action_t tap_dance_actions[] = {
|
||||
[TD_1] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, symbol_finished, td_reset),
|
||||
[TD_2] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_2_finished, td_2_reset),
|
||||
[TD_3] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_3_finished, td_3_reset),
|
||||
[TD_4] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_4_finished, td_4_reset),
|
||||
[TD_5] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_5_finished, td_5_reset),
|
||||
[TD_6] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_6_finished, td_6_reset),
|
||||
[TD_7] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_7_finished, td_7_reset),
|
||||
[TD_8] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_8_finished, td_8_reset),
|
||||
[TD_9] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, td_9_finished, td_9_reset),
|
||||
[TD_0] = ACTION_TAP_DANCE_FN_ADVANCED(NULL, space_finished, td_reset),
|
||||
};
|
||||
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
// Vial
|
||||
#define VIAL_KEYBOARD_UID {0x2A, 0x7D, 0x49, 0xE7, 0x63, 0xC0, 0x9B, 0x8A}
|
||||
#define VIAL_UNLOCK_COMBO_ROWS {3, 3}
|
||||
#define VIAL_UNLOCK_COMBO_COLS {0, 2}
|
||||
@@ -0,0 +1,24 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
|
||||
// clang-format off
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||
// ┌──────┐ ┌──────┐
|
||||
// │ left │ │ rght │
|
||||
// ├──────┼───┼──────┤
|
||||
// │ 1 │ 2 │ 3 │
|
||||
// ├──────┼───┼──────┤
|
||||
// │ 4 │ 5 │ 6 │
|
||||
// ├──────┼───┼──────┤
|
||||
// │ 7 │ 8 │ 9 │
|
||||
// ├──────┼───┼──────┤
|
||||
// │ * │ 0 │ # │
|
||||
// └──────┴───┴──────┘
|
||||
[0] = LAYOUT_ortho_2_4x3(
|
||||
KC_LEFT , KC_RIGHT,
|
||||
KC_1 , KC_2 , KC_3 ,
|
||||
KC_4 , KC_5 , KC_6 ,
|
||||
KC_7 , KC_8 , KC_9 ,
|
||||
KC_ASTERISK , KC_0 , KC_HASH
|
||||
)
|
||||
};
|
||||
// clang-format on
|
||||
@@ -0,0 +1,2 @@
|
||||
VIA_ENABLE = yes
|
||||
VIAL_ENABLE = yes
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"matrix": {
|
||||
"rows": 5,
|
||||
"cols": 3
|
||||
},
|
||||
"layouts": {
|
||||
"keymap": [
|
||||
["0,0", { "x": 1 }, "0,2"],
|
||||
["1,0", "1,1", "1,2"],
|
||||
["2,0", "2,1", "2,2"],
|
||||
["3,0", "3,1", "3,2"],
|
||||
["4,0", "4,1", "4,2"]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include_next <mcuconf.h>
|
||||
|
||||
#undef RP_I2C_USE_I2C
|
||||
#define RP_I2C_USE_I2C1 TRUE
|
||||
@@ -0,0 +1,27 @@
|
||||
# ScottoT9
|
||||
|
||||

|
||||
|
||||
A 14-key macropad. Case files available [here](https://github.com/joe-scotto/scottokeebs).
|
||||
|
||||
- Keyboard Maintainer: [Joe Scotto](https://github.com/joe-scotto)
|
||||
- Hardware Supported: RP2040
|
||||
- Hardware Availability: [Amazon](https://amazon.com)
|
||||
|
||||
Make example for this keyboard (after setting up your build environment):
|
||||
|
||||
make scottokeebs/scottot9:default
|
||||
|
||||
Flashing example for this keyboard:
|
||||
|
||||
make scottokeebs/scottot9:default:flash
|
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
|
||||
|
||||
## Bootloader
|
||||
|
||||
Enter the bootloader in 3 ways:
|
||||
|
||||
- **Bootmagic reset**: Hold down the key at (0,0) in the matrix (usually the top left key or Escape) and plug in the keyboard
|
||||
- **Physical reset button**: Briefly press the button on the back of the PCB - some may have pads you must short instead
|
||||
- **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
|
||||
@@ -0,0 +1,7 @@
|
||||
# ScottoT9 (SK39)
|
||||
|
||||
The ScottoT9 (PCB Edition) is a 14-key macropad based on the T9 keyboard layout with a 128x64 OLED display.
|
||||
|
||||
You can read more about the components and how to build it [here](https://scottokeebs.com/blogs/macropads/scottot9-pcb-macropad).
|
||||
|
||||
<!--  -->
|
||||
Reference in New Issue
Block a user