├── Hardware ├── Electrical │ ├── LED Driver │ │ ├── LED Driver - Schematic.pdf │ │ ├── LED Driver-B_Mask.gbr │ │ ├── LED Driver-B_Paste.gbr │ │ ├── LED Driver-B_SilkS.gbr │ │ ├── LED Driver-Bottom.gbr │ │ ├── LED Driver-Edge_Cuts.gbr │ │ ├── LED Driver-F_Mask.gbr │ │ ├── LED Driver-F_Paste.gbr │ │ ├── LED Driver-F_SilkS.gbr │ │ ├── LED Driver-Top.gbr │ │ ├── LED Driver-bottom-pos.csv │ │ ├── LED Driver-top-pos.csv │ │ ├── LED Driver.drl │ │ ├── LED Driver.kicad_pcb │ │ ├── LED Driver.pro │ │ └── fp-info-cache │ └── LED Harness │ │ ├── GREEN │ │ ├── LED_Harness_3x2_GREEN-B_Cu.gbr │ │ ├── LED_Harness_3x2_GREEN-B_Mask.gbr │ │ ├── LED_Harness_3x2_GREEN-B_Paste.gbr │ │ ├── LED_Harness_3x2_GREEN-B_SilkS.gbr │ │ ├── LED_Harness_3x2_GREEN-Edge_Cuts.gbr │ │ ├── LED_Harness_3x2_GREEN-F_Cu.gbr │ │ ├── LED_Harness_3x2_GREEN-F_Mask.gbr │ │ ├── LED_Harness_3x2_GREEN-F_Paste.gbr │ │ ├── LED_Harness_3x2_GREEN-F_SilkS.gbr │ │ ├── LED_Harness_3x2_GREEN-bottom-pos.csv │ │ ├── LED_Harness_3x2_GREEN-top-pos.csv │ │ ├── LED_Harness_3x2_GREEN.drl │ │ ├── LED_Harness_3x2_GREEN.kicad_pcb │ │ └── _autosave-LED_Harness_3x2_GREEN.kicad_pcb │ │ └── RED+BLUE │ │ ├── LED_Harness_3x2_RED+BLUE-B_Cu.gbr │ │ ├── LED_Harness_3x2_RED+BLUE-B_Mask.gbr │ │ ├── LED_Harness_3x2_RED+BLUE-B_Paste.gbr │ │ ├── LED_Harness_3x2_RED+BLUE-B_SilkS.gbr │ │ ├── LED_Harness_3x2_RED+BLUE-Edge_Cuts.gbr │ │ ├── LED_Harness_3x2_RED+BLUE-F_Cu.gbr │ │ ├── LED_Harness_3x2_RED+BLUE-F_Mask.gbr │ │ ├── LED_Harness_3x2_RED+BLUE-F_Paste.gbr │ │ ├── LED_Harness_3x2_RED+BLUE-F_SilkS.gbr │ │ ├── LED_Harness_3x2_RED+BLUE-bottom-pos.csv │ │ ├── LED_Harness_3x2_RED+BLUE-top-pos.csv │ │ ├── LED_Harness_3x2_RED+BLUE.drl │ │ └── LED_Harness_3x2_RED+BLUE.kicad_pcb ├── GelSlim Hardware Quick Start Tutorial.pdf ├── GelSlim Quick Start Tutorial-Updated.pdf ├── Mechanical │ ├── Elastomer │ │ ├── 92095A216_BUTTON HEAD HEX DRIVE SCREW.step │ │ ├── 94545A225_18-8 SS WING NUTS.step │ │ ├── cutting_template.step │ │ ├── mold_back.step │ │ └── mold_front.step │ ├── Fasteners │ │ ├── 6659K650_OIL-EMBEDDED FLANGED SLEEVE BEARING.step │ │ ├── 91698A204_METRIC 18-8 SS FLAT HEAD PHIL MACHINE SCREW.step │ │ ├── 94180A307_HEAT-SET INSERTS FOR PLASTICS.step │ │ └── McMasterCarr_Order.PNG │ ├── Finger │ │ ├── Robtiq 2F-85 │ │ │ ├── STEP │ │ │ │ ├── finger_back.step │ │ │ │ ├── finger_body.step │ │ │ │ └── finger_tip.step │ │ │ └── STL │ │ │ │ ├── finger_back.stl │ │ │ │ ├── finger_body.stl │ │ │ │ └── finger_tip.stl │ │ └── Weiss WSG-32 │ │ │ ├── STEP │ │ │ ├── finger_back.step │ │ │ ├── finger_body.step │ │ │ └── finger_tip.step │ │ │ └── STL │ │ │ ├── finger_back.stl │ │ │ ├── finger_body.stl │ │ │ └── finger_tip.stl │ ├── Shaping Lens │ │ └── shaping_lens.step │ └── exploded_assembly.step └── README.md ├── LICENSE ├── Ordering ├── LED_Driver_DigiKey_Quote.csv ├── LED_Driver_Digikey_Quote.pdf ├── LED_Harness_Mouser_Quote.csv └── LED_Harness_Mouser_Quote.pdf ├── README.md ├── Simulation and Optimization ├── Results │ └── README.txt └── Settings │ └── README.txt ├── Software ├── GUI │ ├── GelSlim │ │ ├── GelSlim.sh │ │ ├── ROS.sh │ │ ├── abe_corr.npz │ │ ├── calibration.py │ │ ├── calibration.pyc │ │ ├── camera.sh │ │ ├── depth_realtime.py │ │ ├── fast_poisson.py │ │ ├── fast_poisson.pyc │ │ ├── gelsight_show_image.py │ │ ├── gui.py │ │ ├── gui.pyc │ │ ├── img_processor.py │ │ ├── load │ │ │ ├── arp_cache.txt │ │ │ ├── count_map.npy │ │ │ ├── count_map_3.npy │ │ │ ├── raspberry_new.launch │ │ │ ├── suction_env.sh │ │ │ ├── table_3.npy │ │ │ └── table_3_smooth.npy │ │ ├── raspi_connect.sh │ │ ├── reboot.sh │ │ ├── recon_jpg.py │ │ ├── reconfigure.sh │ │ ├── reconstruction │ │ │ ├── images │ │ │ │ ├── reconstruct_0.jpg │ │ │ │ ├── reconstruct_1.jpg │ │ │ │ ├── reconstruct_10.jpg │ │ │ │ ├── reconstruct_2.jpg │ │ │ │ ├── reconstruct_3.jpg │ │ │ │ ├── reconstruct_5.jpg │ │ │ │ ├── reconstruct_6.jpg │ │ │ │ ├── reconstruct_7.jpg │ │ │ │ ├── reconstruct_8.jpg │ │ │ │ ├── reconstruct_9.jpg │ │ │ │ ├── sample.zip │ │ │ │ └── updated_reconstruction.zip │ │ │ └── plots │ │ │ │ ├── Figure_1-1.png │ │ │ │ ├── Figure_1.png │ │ │ │ ├── sample_plot.png │ │ │ │ └── sample_realtime_depth.mp4 │ │ ├── slip_detector_both.py │ │ ├── test_data │ │ │ ├── ref.jpg │ │ │ ├── sample.zip │ │ │ ├── sample_10.jpg │ │ │ ├── sample_13.jpg │ │ │ ├── sample_14.jpg │ │ │ ├── sample_15.jpg │ │ │ ├── sample_17.jpg │ │ │ ├── sample_18.jpg │ │ │ ├── sample_19.jpg │ │ │ ├── sample_20.jpg │ │ │ ├── sample_21.jpg │ │ │ ├── sample_22.jpg │ │ │ ├── sample_23.jpg │ │ │ ├── sample_25.jpg │ │ │ ├── sample_26.jpg │ │ │ ├── sample_27.jpg │ │ │ ├── sample_28.jpg │ │ │ ├── sample_29.jpg │ │ │ ├── sample_3.jpg │ │ │ ├── sample_30.jpg │ │ │ ├── sample_31.jpg │ │ │ ├── sample_32.jpg │ │ │ ├── sample_33.jpg │ │ │ ├── sample_35.jpg │ │ │ ├── sample_37.jpg │ │ │ ├── sample_38.jpg │ │ │ ├── sample_39.jpg │ │ │ ├── sample_4.jpg │ │ │ ├── sample_40.jpg │ │ │ ├── sample_41.jpg │ │ │ ├── sample_42.jpg │ │ │ ├── sample_43.jpg │ │ │ ├── sample_44.jpg │ │ │ ├── sample_46.jpg │ │ │ ├── sample_48.jpg │ │ │ ├── sample_49.jpg │ │ │ ├── sample_5.jpg │ │ │ ├── sample_6.jpg │ │ │ ├── sample_7.jpg │ │ │ ├── sample_8.jpg │ │ │ ├── sample_9.jpg │ │ │ └── updated_calib.zip │ │ └── test_poisson.py │ └── README.md ├── README.txt └── Raspberry Pi │ └── README.txt ├── _layouts └── default.html ├── docs ├── extrinsic.mp4 ├── gelslim.mp4 ├── gelslim1.PNG ├── gelslim2.png ├── index.html ├── logo.png └── style.css └── src └── images ├── alcohol.JPG ├── body_1.JPG ├── calibration.png ├── cover_plate.JPG ├── electrical ├── camera.JPG ├── connectors_and_adapters.JPG ├── led_driver.JPG └── led_harness.JPG ├── flex_pcb.JPG ├── hot_plate.JPG ├── knife.JPG ├── mechanical ├── body.JPG ├── elastomer.JPG ├── fasteners.JPG └── shaping_lens.JPG ├── more_details ├── contributing.jpg ├── electronics.jpg ├── hot_plate.JPG ├── known_issues.jpg ├── known_issues.png ├── mechanical-01.jpg ├── mechanical.jpg └── screwdrivers.JPG ├── pop_primer.JPG ├── psilpoxy.JPG ├── screwdrivers.JPG ├── software ├── calibration.jpg ├── calibration.png ├── calibration.svg ├── dependencies.jpg ├── dependencies.png ├── gui.jpg ├── gui.png ├── raspberrypi_pcb.jpg ├── raspberrypi_pcb.png └── raspberrypi_pcb.svg ├── solder_paste.JPG ├── step_by_step ├── 3d_printing.jpg ├── 3d_printing.png ├── 3d_printing.svg ├── assembly.JPG ├── elastomer_fabrication.JPG └── pcb.JPG └── tweezers.JPG /Hardware/Electrical/LED Driver/LED Driver - Schematic.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/Electrical/LED Driver/LED Driver - Schematic.pdf -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-B_Mask.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-15T13:52:55-04:00* 3 | G04 #@! TF.ProjectId,GelSight-Micro HDMI V2.3-INTERIM,47656c53-6967-4687-942d-4d6963726f20,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Soldermask,Bot* 6 | G04 #@! TF.FilePolarity,Negative* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-15 13:52:55* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10C,0.601600*% 14 | %ADD11O,1.901600X1.001600*% 15 | G04 APERTURE END LIST* 16 | D10* 17 | X165455600Y-88053600D03* 18 | X165455600Y-81453600D03* 19 | D11* 20 | X165455600Y-88053600D03* 21 | X165455600Y-81453600D03* 22 | M02* 23 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-15T13:52:55-04:00* 3 | G04 #@! TF.ProjectId,GelSight-Micro HDMI V2.3-INTERIM,47656c53-6967-4687-942d-4d6963726f20,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Paste,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-15 13:52:55* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-B_SilkS.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-15T13:52:55-04:00* 3 | G04 #@! TF.ProjectId,GelSight-Micro HDMI V2.3-INTERIM,47656c53-6967-4687-942d-4d6963726f20,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Legend,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-15 13:52:55* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-Bottom.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-15T13:52:55-04:00* 3 | G04 #@! TF.ProjectId,GelSight-Micro HDMI V2.3-INTERIM,47656c53-6967-4687-942d-4d6963726f20,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Copper,L2,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-15 13:52:55* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10O,1.800000X0.900000*% 14 | G04 APERTURE END LIST* 15 | D10* 16 | X165455600Y-88053600D03* 17 | X165455600Y-81453600D03* 18 | M02* 19 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-15T13:52:55-04:00* 3 | G04 #@! TF.ProjectId,GelSight-Micro HDMI V2.3-INTERIM,47656c53-6967-4687-942d-4d6963726f20,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Profile,NP* 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-15 13:52:55* 9 | %MOMM*% 10 | %LPD*% 11 | G04 APERTURE LIST* 12 | %ADD10C,0.100000*% 13 | G04 APERTURE END LIST* 14 | D10* 15 | X134735000Y-106735000D02* 16 | X165265000Y-106735000D01* 17 | X165265000Y-106735000D02* 18 | X165265000Y-89514996D01* 19 | X165265000Y-89514996D02* 20 | X167655000Y-89514996D01* 21 | X167655000Y-89514996D02* 22 | X167655000Y-80015000D01* 23 | X167655000Y-80014999D02* 24 | X132345046Y-80015000D01* 25 | X132345046Y-80015000D02* 26 | X132345046Y-88514999D01* 27 | X132345046Y-88514999D02* 28 | X134735000Y-88514999D01* 29 | X134735000Y-88514999D02* 30 | X134735000Y-106735000D01* 31 | M02* 32 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-F_Mask.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-15T13:52:55-04:00* 3 | G04 #@! TF.ProjectId,GelSight-Micro HDMI V2.3-INTERIM,47656c53-6967-4687-942d-4d6963726f20,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Soldermask,Top* 6 | G04 #@! TF.FilePolarity,Negative* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-15 13:52:55* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10R,0.401600X1.101600*% 14 | %ADD11R,0.401600X0.801600*% 15 | %ADD12R,1.451600X0.501600*% 16 | %ADD13R,1.501600X1.701600*% 17 | %ADD14R,2.001600X2.001600*% 18 | %ADD15C,0.601600*% 19 | %ADD16O,1.901600X1.001600*% 20 | %ADD17R,3.521600X1.341600*% 21 | %ADD18R,3.421600X1.341600*% 22 | G04 APERTURE END LIST* 23 | D10* 24 | X146256500Y-93755600D03* 25 | X143176500Y-93755600D03* 26 | D11* 27 | X145466500Y-91105600D03* 28 | X144966500Y-91105600D03* 29 | X144466500Y-91105600D03* 30 | X143966500Y-91105600D03* 31 | D10* 32 | X152276300Y-93755600D03* 33 | X149196300Y-93755600D03* 34 | D11* 35 | X151486300Y-91105600D03* 36 | X150986300Y-91105600D03* 37 | X150486300Y-91105600D03* 38 | X149986300Y-91105600D03* 39 | D10* 40 | X158296100Y-93755600D03* 41 | X155216100Y-93755600D03* 42 | D11* 43 | X157506100Y-91105600D03* 44 | X157006100Y-91105600D03* 45 | X156506100Y-91105600D03* 46 | X156006100Y-91105600D03* 47 | D12* 48 | X162780600Y-86053600D03* 49 | X162780600Y-85403600D03* 50 | X162780600Y-84753600D03* 51 | X162780600Y-84103600D03* 52 | X162780600Y-83453600D03* 53 | D13* 54 | X163005600Y-87953600D03* 55 | X163005600Y-81553600D03* 56 | D14* 57 | X165455600Y-85953600D03* 58 | X165455600Y-83553600D03* 59 | D15* 60 | X165455600Y-88053600D03* 61 | X165455600Y-81453600D03* 62 | D16* 63 | X165455600Y-88053600D03* 64 | X165455600Y-81453600D03* 65 | D17* 66 | X157124400Y-81977800D03* 67 | X157124400Y-88057800D03* 68 | X144126375Y-88057800D03* 69 | X144126375Y-81977800D03* 70 | D18* 71 | X148443050Y-88057800D03* 72 | X148443050Y-82077800D03* 73 | D17* 74 | X152759725Y-88057800D03* 75 | X152759725Y-81977800D03* 76 | M02* 77 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-F_Paste.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-15T13:52:55-04:00* 3 | G04 #@! TF.ProjectId,GelSight-Micro HDMI V2.3-INTERIM,47656c53-6967-4687-942d-4d6963726f20,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Paste,Top* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-15 13:52:55* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10R,0.300000X1.000000*% 14 | %ADD11R,0.300000X0.700000*% 15 | %ADD12R,1.350000X0.400000*% 16 | %ADD13R,1.400000X1.600000*% 17 | %ADD14R,1.900000X1.900000*% 18 | %ADD15R,3.420000X1.240000*% 19 | %ADD16R,3.320000X1.240000*% 20 | G04 APERTURE END LIST* 21 | D10* 22 | X146256500Y-93755600D03* 23 | X143176500Y-93755600D03* 24 | D11* 25 | X145466500Y-91105600D03* 26 | X144966500Y-91105600D03* 27 | X144466500Y-91105600D03* 28 | X143966500Y-91105600D03* 29 | D10* 30 | X152276300Y-93755600D03* 31 | X149196300Y-93755600D03* 32 | D11* 33 | X151486300Y-91105600D03* 34 | X150986300Y-91105600D03* 35 | X150486300Y-91105600D03* 36 | X149986300Y-91105600D03* 37 | D10* 38 | X158296100Y-93755600D03* 39 | X155216100Y-93755600D03* 40 | D11* 41 | X157506100Y-91105600D03* 42 | X157006100Y-91105600D03* 43 | X156506100Y-91105600D03* 44 | X156006100Y-91105600D03* 45 | D12* 46 | X162780600Y-86053600D03* 47 | X162780600Y-85403600D03* 48 | X162780600Y-84753600D03* 49 | X162780600Y-84103600D03* 50 | X162780600Y-83453600D03* 51 | D13* 52 | X163005600Y-87953600D03* 53 | X163005600Y-81553600D03* 54 | D14* 55 | X165455600Y-85953600D03* 56 | X165455600Y-83553600D03* 57 | D15* 58 | X157124400Y-81977800D03* 59 | X157124400Y-88057800D03* 60 | X144126375Y-88057800D03* 61 | X144126375Y-81977800D03* 62 | D16* 63 | X148443050Y-88057800D03* 64 | X148443050Y-82077800D03* 65 | D15* 66 | X152759725Y-88057800D03* 67 | X152759725Y-81977800D03* 68 | M02* 69 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-Top.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-15T13:52:55-04:00* 3 | G04 #@! TF.ProjectId,GelSight-Micro HDMI V2.3-INTERIM,47656c53-6967-4687-942d-4d6963726f20,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Copper,L1,Top* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-15 13:52:55* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10R,0.300000X1.000000*% 14 | %ADD11R,0.300000X0.700000*% 15 | %ADD12R,1.350000X0.400000*% 16 | %ADD13R,1.400000X1.600000*% 17 | %ADD14R,1.900000X1.900000*% 18 | %ADD15O,1.800000X0.900000*% 19 | %ADD16R,3.420000X1.240000*% 20 | %ADD17R,3.320000X1.240000*% 21 | %ADD18C,0.152400*% 22 | G04 APERTURE END LIST* 23 | D10* 24 | X146256500Y-93755600D03* 25 | X143176500Y-93755600D03* 26 | D11* 27 | X145466500Y-91105600D03* 28 | X144966500Y-91105600D03* 29 | X144466500Y-91105600D03* 30 | X143966500Y-91105600D03* 31 | D10* 32 | X152276300Y-93755600D03* 33 | X149196300Y-93755600D03* 34 | D11* 35 | X151486300Y-91105600D03* 36 | X150986300Y-91105600D03* 37 | X150486300Y-91105600D03* 38 | X149986300Y-91105600D03* 39 | D10* 40 | X158296100Y-93755600D03* 41 | X155216100Y-93755600D03* 42 | D11* 43 | X157506100Y-91105600D03* 44 | X157006100Y-91105600D03* 45 | X156506100Y-91105600D03* 46 | X156006100Y-91105600D03* 47 | D12* 48 | X162780600Y-86053600D03* 49 | X162780600Y-85403600D03* 50 | X162780600Y-84753600D03* 51 | X162780600Y-84103600D03* 52 | X162780600Y-83453600D03* 53 | D13* 54 | X163005600Y-87953600D03* 55 | X163005600Y-81553600D03* 56 | D14* 57 | X165455600Y-85953600D03* 58 | X165455600Y-83553600D03* 59 | D15* 60 | X165455600Y-88053600D03* 61 | X165455600Y-81453600D03* 62 | D16* 63 | X157124400Y-81977800D03* 64 | X157124400Y-88057800D03* 65 | X144126375Y-88057800D03* 66 | X144126375Y-81977800D03* 67 | D17* 68 | X148443050Y-88057800D03* 69 | X148443050Y-82077800D03* 70 | D16* 71 | X152759725Y-88057800D03* 72 | X152759725Y-81977800D03* 73 | D18* 74 | X145988775Y-88057800D02* 75 | X148443050Y-88057800D01* 76 | X144126375Y-88057800D02* 77 | X145988775Y-88057800D01* 78 | X152759725Y-88057800D02* 79 | X148443050Y-88057800D01* 80 | X155262000Y-88057800D02* 81 | X152759725Y-88057800D01* 82 | X157124400Y-88057800D02* 83 | X155262000Y-88057800D01* 84 | X162305600Y-86053600D02* 85 | X162780600Y-86053600D01* 86 | X162122719Y-88982201D02* 87 | X161953200Y-88812682D01* 88 | X161953200Y-86406000D02* 89 | X162305600Y-86053600D01* 90 | X165936698Y-88982201D02* 91 | X162122719Y-88982201D01* 92 | X166634201Y-88284698D02* 93 | X165936698Y-88982201D01* 94 | X161953200Y-88812682D02* 95 | X161953200Y-86406000D01* 96 | X165936698Y-80524999D02* 97 | X166634201Y-81222502D01* 98 | X166634201Y-81222502D02* 99 | X166634201Y-88284698D01* 100 | X157804801Y-80524999D02* 101 | X165936698Y-80524999D01* 102 | X157124400Y-81205400D02* 103 | X157804801Y-80524999D01* 104 | X157124400Y-81977800D02* 105 | X157124400Y-81205400D01* 106 | X157506100Y-91105600D02* 107 | X157006100Y-91105600D01* 108 | X151486300Y-91105600D02* 109 | X150986300Y-91105600D01* 110 | X145466500Y-91105600D02* 111 | X144966500Y-91105600D01* 112 | X151486300Y-91608000D02* 113 | X151486300Y-91105600D01* 114 | X151562501Y-91684201D02* 115 | X151486300Y-91608000D01* 116 | X157506100Y-91608000D02* 117 | X157429899Y-91684201D01* 118 | X157429899Y-91684201D02* 119 | X151562501Y-91684201D01* 120 | X157506100Y-91105600D02* 121 | X157506100Y-91608000D01* 122 | X159367810Y-89546290D02* 123 | X157808500Y-91105600D01* 124 | X157808500Y-91105600D02* 125 | X157506100Y-91105600D01* 126 | X159367810Y-86038990D02* 127 | X159367810Y-89546290D01* 128 | X161953200Y-83453600D02* 129 | X159367810Y-86038990D01* 130 | X162780600Y-83453600D02* 131 | X161953200Y-83453600D01* 132 | X150986300Y-90603200D02* 133 | X150986300Y-91105600D01* 134 | X146347501Y-90526999D02* 135 | X150910099Y-90526999D01* 136 | X145768900Y-91105600D02* 137 | X146347501Y-90526999D01* 138 | X150910099Y-90526999D02* 139 | X150986300Y-90603200D01* 140 | X145466500Y-91105600D02* 141 | X145768900Y-91105600D01* 142 | X144466500Y-91105600D02* 143 | X143857100Y-91105600D01* 144 | X142187774Y-89629274D02* 145 | X143664100Y-91105600D01* 146 | X142187774Y-84688801D02* 147 | X142187774Y-89629274D01* 148 | X144126375Y-82750200D02* 149 | X142187774Y-84688801D01* 150 | X143664100Y-91105600D02* 151 | X143966500Y-91105600D01* 152 | X144126375Y-81977800D02* 153 | X144126375Y-82750200D01* 154 | X148443050Y-82077800D02* 155 | X149483050Y-82077800D01* 156 | X156506100Y-91105600D02* 157 | X156006100Y-91105600D01* 158 | X156006100Y-90603200D02* 159 | X156006100Y-91105600D01* 160 | X156082301Y-90526999D02* 161 | X156006100Y-90603200D01* 162 | X159063001Y-88860681D02* 163 | X157396683Y-90526999D01* 164 | X159063001Y-87254919D02* 165 | X159063001Y-88860681D01* 166 | X159017281Y-87209199D02* 167 | X159063001Y-87254919D01* 168 | X152802049Y-87209199D02* 169 | X159017281Y-87209199D01* 170 | X157396683Y-90526999D02* 171 | X156082301Y-90526999D01* 172 | X148443050Y-82850200D02* 173 | X152802049Y-87209199D01* 174 | X148443050Y-82077800D02* 175 | X148443050Y-82850200D01* 176 | X150486300Y-91105600D02* 177 | X149986300Y-91105600D01* 178 | X150486300Y-91608000D02* 179 | X150486300Y-91105600D01* 180 | X150410099Y-91684201D02* 181 | X150486300Y-91608000D01* 182 | X141882965Y-89933547D02* 183 | X143633619Y-91684201D01* 184 | X142462103Y-80900590D02* 185 | X141882965Y-81479728D01* 186 | X145790647Y-80900590D02* 187 | X142462103Y-80900590D01* 188 | X146554449Y-81664392D02* 189 | X145790647Y-80900590D01* 190 | X150897325Y-81205400D02* 191 | X146623968Y-81205400D01* 192 | X146554449Y-81274919D02* 193 | X146554449Y-81664392D01* 194 | X151669725Y-81977800D02* 195 | X150897325Y-81205400D01* 196 | X141882965Y-81479728D02* 197 | X141882965Y-89933547D01* 198 | X146623968Y-81205400D02* 199 | X146554449Y-81274919D01* 200 | X152759725Y-81977800D02* 201 | X151669725Y-81977800D01* 202 | X143633619Y-91684201D02* 203 | X150410099Y-91684201D01* 204 | X143176500Y-93755600D02* 205 | X146256500Y-93755600D01* 206 | X155518500Y-93755600D02* 207 | X158296100Y-93755600D01* 208 | X155216100Y-93755600D02* 209 | X155518500Y-93755600D01* 210 | X149196300Y-93755600D02* 211 | X152276300Y-93755600D01* 212 | X164976343Y-88053600D02* 213 | X164976343Y-88030496D01* 214 | X164976343Y-81453600D02* 215 | X164976343Y-81430418D01* 216 | X163958000Y-81453600D02* 217 | X164976343Y-81453600D01* 218 | X163005600Y-81553600D02* 219 | X163858000Y-81553600D01* 220 | X163858000Y-81553600D02* 221 | X163958000Y-81453600D01* 222 | X165455600Y-84851200D02* 223 | X165455600Y-83553600D01* 224 | X165455600Y-85953600D02* 225 | X165455600Y-84851200D01* 226 | X164353200Y-83553600D02* 227 | X165455600Y-83553600D01* 228 | X163958000Y-83158400D02* 229 | X164353200Y-83553600D01* 230 | X163958000Y-81453600D02* 231 | X163958000Y-83158400D01* 232 | X164353200Y-85953600D02* 233 | X165455600Y-85953600D01* 234 | X163958000Y-86348800D02* 235 | X164353200Y-85953600D01* 236 | X163005600Y-87953600D02* 237 | X163858000Y-87953600D01* 238 | X163958000Y-88053600D02* 239 | X163958000Y-86348800D01* 240 | X163858000Y-87953600D02* 241 | X163958000Y-88053600D01* 242 | X163958000Y-88053600D02* 243 | X164976343Y-88053600D01* 244 | M02* 245 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-bottom-pos.csv: -------------------------------------------------------------------------------- 1 | Ref,Val,Package,PosX,PosY,Rot,Side 2 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver-top-pos.csv: -------------------------------------------------------------------------------- 1 | Ref,Val,Package,PosX,PosY,Rot,Side 2 | " ","ERJ-1TNF43R2U","RESC6432X70N",157.124400,-85.017800,270.000000,top 3 | " ","ERJ-1TNF88R7U ","RESC6432X70N",144.126375,-85.017800,90.000000,top 4 | " ","CRCW25120000Z0EG","RESC6331X70N",148.443050,-85.067800,90.000000,top 5 | " ","ERJ-1TNF14R3U","RESC6432X70N",152.759725,-85.017800,90.000000,top 6 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (5.1.5)-3} date 3/15/2021 1:49:35 PM 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2021-03-15T13:49:35-04:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.1.5)-3 6 | FMAT,2 7 | INCH 8 | T1C0.0197 9 | T2C0.0197 10 | % 11 | G90 12 | G05 13 | T2 14 | X6.514Y-3.2068 15 | X6.514Y-3.4667 16 | T1 17 | G00X6.5002Y-3.2068 18 | M15 19 | G01X6.5278Y-3.2068 20 | M16 21 | G05 22 | G00X6.5002Y-3.4667 23 | M15 24 | G01X6.5278Y-3.4667 25 | M16 26 | G05 27 | T0 28 | M30 29 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/LED Driver.pro: -------------------------------------------------------------------------------- 1 | update=22/05/2015 07:44:53 2 | version=1 3 | last_client=kicad 4 | [general] 5 | version=1 6 | RootSch= 7 | BoardNm= 8 | [pcbnew] 9 | version=1 10 | LastNetListRead= 11 | UseCmpFile=1 12 | PadDrill=0.600000000000 13 | PadDrillOvalY=0.600000000000 14 | PadSizeH=1.500000000000 15 | PadSizeV=1.500000000000 16 | PcbTextSizeV=1.500000000000 17 | PcbTextSizeH=1.500000000000 18 | PcbTextThickness=0.300000000000 19 | ModuleTextSizeV=1.000000000000 20 | ModuleTextSizeH=1.000000000000 21 | ModuleTextSizeThickness=0.150000000000 22 | SolderMaskClearance=0.000000000000 23 | SolderMaskMinWidth=0.000000000000 24 | DrawSegmentWidth=0.200000000000 25 | BoardOutlineThickness=0.100000000000 26 | ModuleOutlineThickness=0.150000000000 27 | [cvpcb] 28 | version=1 29 | NetIExt=net 30 | [eeschema] 31 | version=1 32 | LibDir= 33 | [eeschema/libraries] 34 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Driver/fp-info-cache: -------------------------------------------------------------------------------- 1 | 0 2 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-B_Cu.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:28:47-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_GREEN,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Copper,L2,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:28:47* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10C,0.800000*% 14 | %ADD11C,0.250000*% 15 | G04 APERTURE END LIST* 16 | D10* 17 | X127228262Y-84354292D03* 18 | X128136820Y-87264807D03* 19 | X136728538Y-135076308D03* 20 | X135819980Y-132165793D03* 21 | X141624220Y-87468007D03* 22 | X140715662Y-84557492D03* 23 | X149860338Y-135127108D03* 24 | X148951780Y-132216593D03* 25 | X130274763Y-84894799D03* 26 | X130454400Y-80669138D03* 27 | X133682037Y-134535801D03* 28 | X133502400Y-138761462D03* 29 | X143941800Y-80872338D03* 30 | X143762163Y-85097999D03* 31 | X146634200Y-138812262D03* 32 | X146813837Y-134586601D03* 33 | D11* 34 | X127628261Y-84754291D02* 35 | X128267031Y-84754291D01* 36 | X127228262Y-84354292D02* 37 | X127628261Y-84754291D01* 38 | X128267031Y-84754291D02* 39 | X128136820Y-84884502D01* 40 | X128136820Y-84884502D02* 41 | X128136820Y-87264807D01* 42 | X135689769Y-134676309D02* 43 | X135819980Y-134546098D01* 44 | X136328539Y-134676309D02* 45 | X135689769Y-134676309D01* 46 | X135819980Y-134546098D02* 47 | X135819980Y-132165793D01* 48 | X136728538Y-135076308D02* 49 | X136328539Y-134676309D01* 50 | X141115661Y-84957491D02* 51 | X141754431Y-84957491D01* 52 | X141624220Y-85087702D02* 53 | X141624220Y-87468007D01* 54 | X141754431Y-84957491D02* 55 | X141624220Y-85087702D01* 56 | X140715662Y-84557492D02* 57 | X141115661Y-84957491D01* 58 | X149460339Y-134727109D02* 59 | X148821569Y-134727109D01* 60 | X148951780Y-134596898D02* 61 | X148951780Y-132216593D01* 62 | X149860338Y-135127108D02* 63 | X149460339Y-134727109D01* 64 | X148821569Y-134727109D02* 65 | X148951780Y-134596898D01* 66 | X130274763Y-84894799D02* 67 | X130274763Y-80848775D01* 68 | X130274763Y-80848775D02* 69 | X130454400Y-80669138D01* 70 | X133682037Y-134535801D02* 71 | X133682037Y-138581825D01* 72 | X133682037Y-138581825D02* 73 | X133502400Y-138761462D01* 74 | X143762163Y-85097999D02* 75 | X143762163Y-81051975D01* 76 | X143762163Y-81051975D02* 77 | X143941800Y-80872338D01* 78 | X146813837Y-134586601D02* 79 | X146813837Y-138632625D01* 80 | X146813837Y-138632625D02* 81 | X146634200Y-138812262D01* 82 | M02* 83 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-B_Mask.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:28:47-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_GREEN,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Soldermask,Bot* 6 | G04 #@! TF.FilePolarity,Negative* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:28:47* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:28:47-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_GREEN,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Paste,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:28:47* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-B_SilkS.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:28:47-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_GREEN,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Legend,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:28:47* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:28:47-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_GREEN,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Profile,NP* 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:28:47* 9 | %MOMM*% 10 | %LPD*% 11 | G04 APERTURE LIST* 12 | %ADD10C,0.100000*% 13 | G04 APERTURE END LIST* 14 | D10* 15 | X153670000Y-78740000D02* 16 | X153670000Y-140970000D01* 17 | X123190000Y-78740000D02* 18 | X153670000Y-78740000D01* 19 | X123190000Y-140970000D02* 20 | X123190000Y-78740000D01* 21 | X153670000Y-140970000D02* 22 | X123190000Y-140970000D01* 23 | X144344185Y-133181000D02* 24 | G75* 25 | G02X144594185Y-132931000I250000J0D01* 26 | G01* 27 | X147233000Y-130931000D02* 28 | G75* 29 | G02X145233000Y-132931000I-2000000J0D01* 30 | G01* 31 | X152621814Y-140135800D02* 32 | G75* 33 | G02X152371814Y-140385800I-250000J0D01* 34 | G01* 35 | X152371814Y-140385800D02* 36 | X144594185Y-140385800D01* 37 | X144344185Y-140135800D02* 38 | X144344185Y-139983400D01* 39 | X144344185Y-133181000D02* 40 | X144344185Y-133333400D01* 41 | X149733000Y-79349600D02* 42 | X149733000Y-82931000D01* 43 | X149733000Y-79349600D02* 44 | X147233000Y-79349600D01* 45 | X152621814Y-133333400D02* 46 | X152621814Y-133181000D01* 47 | X144344185Y-139983400D02* 48 | X144344185Y-133333400D01* 49 | X152371814Y-132931000D02* 50 | G75* 51 | G02X152621814Y-133181000I0J-250000D01* 52 | G01* 53 | X147233000Y-130931000D02* 54 | X147233000Y-82931000D01* 55 | X152621814Y-133333400D02* 56 | X152621814Y-139983400D01* 57 | X151733000Y-132931000D02* 58 | X152371814Y-132931000D01* 59 | X152621814Y-139983400D02* 60 | X152621814Y-140135800D01* 61 | X149733000Y-130931000D02* 62 | X149733000Y-82931000D01* 63 | X147233000Y-82931000D02* 64 | X147233000Y-79349600D01* 65 | X151733000Y-132931000D02* 66 | G75* 67 | G02X149733000Y-130931000I0J2000000D01* 68 | G01* 69 | X144594185Y-140385800D02* 70 | G75* 71 | G02X144344185Y-140135800I0J250000D01* 72 | G01* 73 | X145233000Y-132931000D02* 74 | X144594185Y-132931000D01* 75 | X138204186Y-79298800D02* 76 | X145981815Y-79298800D01* 77 | X140843000Y-140335000D02* 78 | X143343000Y-140335000D01* 79 | X146231815Y-86503600D02* 80 | G75* 81 | G02X145981815Y-86753600I-250000J0D01* 82 | G01* 83 | X143343000Y-88753600D02* 84 | G75* 85 | G02X145343000Y-86753600I2000000J0D01* 86 | G01* 87 | X137954186Y-79548800D02* 88 | G75* 89 | G02X138204186Y-79298800I250000J0D01* 90 | G01* 91 | X140843000Y-140335000D02* 92 | X140843000Y-136753600D01* 93 | X146231815Y-86503600D02* 94 | X146231815Y-86351200D01* 95 | X146231815Y-79548800D02* 96 | X146231815Y-79701200D01* 97 | X137954186Y-79701200D02* 98 | X137954186Y-79548800D01* 99 | X137954186Y-86351200D02* 100 | X137954186Y-79701200D01* 101 | X146231815Y-79701200D02* 102 | X146231815Y-86351200D01* 103 | X138204186Y-86753600D02* 104 | G75* 105 | G02X137954186Y-86503600I0J250000D01* 106 | G01* 107 | X138843000Y-86753600D02* 108 | X138204186Y-86753600D01* 109 | X143343000Y-136753600D02* 110 | X143343000Y-140335000D01* 111 | X143343000Y-88753600D02* 112 | X143343000Y-136753600D01* 113 | X140843000Y-88753600D02* 114 | X140843000Y-136753600D01* 115 | X138843000Y-86753600D02* 116 | G75* 117 | G02X140843000Y-88753600I0J-2000000D01* 118 | G01* 119 | X145981815Y-79298800D02* 120 | G75* 121 | G02X146231815Y-79548800I0J-250000D01* 122 | G01* 123 | X137954186Y-86351200D02* 124 | X137954186Y-86503600D01* 125 | X145343000Y-86753600D02* 126 | X145981815Y-86753600D01* 127 | X139490014Y-133282600D02* 128 | X139490014Y-133130200D01* 129 | X131462385Y-140335000D02* 130 | G75* 131 | G02X131212385Y-140085000I0J250000D01* 132 | G01* 133 | X139490014Y-133282600D02* 134 | X139490014Y-139932600D01* 135 | X139240014Y-132880200D02* 136 | G75* 137 | G02X139490014Y-133130200I0J-250000D01* 138 | G01* 139 | X131212385Y-139932600D02* 140 | X131212385Y-133282600D01* 141 | X134101200Y-130880200D02* 142 | X134101200Y-82880200D01* 143 | X134101200Y-82880200D02* 144 | X134101200Y-79298800D01* 145 | X138601200Y-132880200D02* 146 | X139240014Y-132880200D01* 147 | X132101200Y-132880200D02* 148 | X131462385Y-132880200D01* 149 | X136601200Y-130880200D02* 150 | X136601200Y-82880200D01* 151 | X138601200Y-132880200D02* 152 | G75* 153 | G02X136601200Y-130880200I0J2000000D01* 154 | G01* 155 | X139240014Y-140335000D02* 156 | X131462385Y-140335000D01* 157 | X136601200Y-79298800D02* 158 | X134101200Y-79298800D01* 159 | X131212385Y-133130200D02* 160 | G75* 161 | G02X131462385Y-132880200I250000J0D01* 162 | G01* 163 | X134101200Y-130880200D02* 164 | G75* 165 | G02X132101200Y-132880200I-2000000J0D01* 166 | G01* 167 | X139490014Y-140085000D02* 168 | G75* 169 | G02X139240014Y-140335000I-250000J0D01* 170 | G01* 171 | X136601200Y-79298800D02* 172 | X136601200Y-82880200D01* 173 | X131212385Y-133130200D02* 174 | X131212385Y-133282600D01* 175 | X131212385Y-140085000D02* 176 | X131212385Y-139932600D01* 177 | X139490014Y-139932600D02* 178 | X139490014Y-140085000D01* 179 | X124466786Y-79498000D02* 180 | X124466786Y-79345600D01* 181 | X132744415Y-79345600D02* 182 | X132744415Y-79498000D01* 183 | X132744415Y-86300400D02* 184 | X132744415Y-86148000D01* 185 | X124466786Y-86148000D02* 186 | X124466786Y-86300400D01* 187 | X127355600Y-140131800D02* 188 | X127355600Y-136550400D01* 189 | X129855600Y-136550400D02* 190 | X129855600Y-140131800D01* 191 | X124466786Y-86148000D02* 192 | X124466786Y-79498000D01* 193 | X124716786Y-86550400D02* 194 | G75* 195 | G02X124466786Y-86300400I0J250000D01* 196 | G01* 197 | X125355600Y-86550400D02* 198 | G75* 199 | G02X127355600Y-88550400I0J-2000000D01* 200 | G01* 201 | X125355600Y-86550400D02* 202 | X124716786Y-86550400D01* 203 | X124716786Y-79095600D02* 204 | X132494415Y-79095600D01* 205 | X131855600Y-86550400D02* 206 | X132494415Y-86550400D01* 207 | X129855600Y-88550400D02* 208 | X129855600Y-136550400D01* 209 | X132494415Y-79095600D02* 210 | G75* 211 | G02X132744415Y-79345600I0J-250000D01* 212 | G01* 213 | X132744415Y-79498000D02* 214 | X132744415Y-86148000D01* 215 | X124466786Y-79345600D02* 216 | G75* 217 | G02X124716786Y-79095600I250000J0D01* 218 | G01* 219 | X129855600Y-88550400D02* 220 | G75* 221 | G02X131855600Y-86550400I2000000J0D01* 222 | G01* 223 | X127355600Y-88550400D02* 224 | X127355600Y-136550400D01* 225 | X132744415Y-86300400D02* 226 | G75* 227 | G02X132494415Y-86550400I-250000J0D01* 228 | G01* 229 | X127355600Y-140131800D02* 230 | X129855600Y-140131800D01* 231 | M02* 232 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-F_Cu.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:28:47-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_GREEN,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Copper,L1,Top* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:28:47* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10R,0.300000X50.000000*% 14 | %ADD11R,2.250000X1.500000*% 15 | %ADD12C,0.800000*% 16 | %ADD13C,0.250000*% 17 | G04 APERTURE END LIST* 18 | D10* 19 | X147726780Y-104546400D03* 20 | X148226780Y-104546400D03* 21 | X148726780Y-104546400D03* 22 | X149226780Y-104546400D03* 23 | D11* 24 | X145671540Y-133837680D03* 25 | X145656300Y-135935720D03* 26 | X151290020Y-133835140D03* 27 | X151274780Y-135933180D03* 28 | X148468080Y-135930640D03* 29 | X148483320Y-133832600D03* 30 | X151277320Y-137462260D03* 31 | X151262080Y-139560300D03* 32 | X148454110Y-139555220D03* 33 | X148469350Y-137457180D03* 34 | X145658840Y-137462260D03* 35 | X145643600Y-139560300D03* 36 | X144917160Y-82222340D03* 37 | X144932400Y-80124300D03* 38 | X144904460Y-85846920D03* 39 | X144919700Y-83748880D03* 40 | D10* 41 | X142849220Y-115138200D03* 42 | X142349220Y-115138200D03* 43 | X141849220Y-115138200D03* 44 | X141349220Y-115138200D03* 45 | D11* 46 | X139285980Y-85849460D03* 47 | X139301220Y-83751420D03* 48 | X142107920Y-83753960D03* 49 | X142092680Y-85852000D03* 50 | X142121890Y-80129380D03* 51 | X142106650Y-82227420D03* 52 | X139298680Y-82222340D03* 53 | X139313920Y-80124300D03* 54 | X135337550Y-137406380D03* 55 | X135322310Y-139504420D03* 56 | X135351520Y-133781800D03* 57 | X135336280Y-135879840D03* 58 | X132511800Y-139509500D03* 59 | X132527040Y-137411460D03* 60 | X138130280Y-139509500D03* 61 | X138145520Y-137411460D03* 62 | X132524500Y-135884920D03* 63 | X132539740Y-133786880D03* 64 | D10* 65 | X136094980Y-104495600D03* 66 | X135594980Y-104495600D03* 67 | X135094980Y-104495600D03* 68 | X134594980Y-104495600D03* 69 | D11* 70 | X138142980Y-135882380D03* 71 | X138158220Y-133784340D03* 72 | D10* 73 | X129361820Y-114935000D03* 74 | X128861820Y-114935000D03* 75 | X128361820Y-114935000D03* 76 | X127861820Y-114935000D03* 77 | D11* 78 | X125811280Y-82019140D03* 79 | X125826520Y-79921100D03* 80 | X128634490Y-79926180D03* 81 | X128619250Y-82024220D03* 82 | X131429760Y-82019140D03* 83 | X131445000Y-79921100D03* 84 | X125798580Y-85646260D03* 85 | X125813820Y-83548220D03* 86 | X128620520Y-83550760D03* 87 | X128605280Y-85648800D03* 88 | X131417060Y-85643720D03* 89 | X131432300Y-83545680D03* 90 | D12* 91 | X127228262Y-84354292D03* 92 | X128136820Y-87264807D03* 93 | X136728538Y-135076308D03* 94 | X135819980Y-132165793D03* 95 | X141624220Y-87468007D03* 96 | X140715662Y-84557492D03* 97 | X149860338Y-135127108D03* 98 | X148951780Y-132216593D03* 99 | X130274763Y-84894799D03* 100 | X130454400Y-80669138D03* 101 | X133682037Y-134535801D03* 102 | X133502400Y-138761462D03* 103 | X143941800Y-80872338D03* 104 | X143762163Y-85097999D03* 105 | X146634200Y-138812262D03* 106 | X146813837Y-134586601D03* 107 | D13* 108 | X131432300Y-82021680D02* 109 | X131429760Y-82019140D01* 110 | X131432300Y-83545680D02* 111 | X131432300Y-82021680D01* 112 | X128620520Y-82025490D02* 113 | X128619250Y-82024220D01* 114 | X128620520Y-83550760D02* 115 | X128620520Y-82025490D01* 116 | X125813820Y-82021680D02* 117 | X125811280Y-82019140D01* 118 | X125813820Y-83548220D02* 119 | X125813820Y-82021680D01* 120 | X128614170Y-82019140D02* 121 | X128619250Y-82024220D01* 122 | X125811280Y-82019140D02* 123 | X128614170Y-82019140D01* 124 | X131424680Y-82024220D02* 125 | X131429760Y-82019140D01* 126 | X128619250Y-82024220D02* 127 | X131424680Y-82024220D01* 128 | X128625600Y-83545680D02* 129 | X128620520Y-83550760D01* 130 | X131432300Y-83545680D02* 131 | X128625600Y-83545680D01* 132 | X125816360Y-83550760D02* 133 | X125813820Y-83548220D01* 134 | X128620520Y-83550760D02* 135 | X125816360Y-83550760D01* 136 | X128620520Y-83550760D02* 137 | X128031794Y-83550760D01* 138 | X128031794Y-83550760D02* 139 | X127228262Y-84354292D01* 140 | X128136820Y-87830492D02* 141 | X128307168Y-88000840D01* 142 | X128136820Y-87264807D02* 143 | X128136820Y-87830492D01* 144 | X128361820Y-89837640D02* 145 | X128361820Y-114935000D01* 146 | X128307168Y-89782988D02* 147 | X128361820Y-89837640D01* 148 | X128307168Y-88000840D02* 149 | X128307168Y-89782988D01* 150 | X127736821Y-87664806D02* 151 | X127736821Y-88069641D01* 152 | X128136820Y-87264807D02* 153 | X127736821Y-87664806D01* 154 | X127861820Y-88194640D02* 155 | X127861820Y-114935000D01* 156 | X127736821Y-88069641D02* 157 | X127861820Y-88194640D01* 158 | X132524500Y-135884920D02* 159 | X132524500Y-137408920D01* 160 | X135336280Y-137405110D02* 161 | X135337550Y-137406380D01* 162 | X138142980Y-137408920D02* 163 | X138145520Y-137411460D01* 164 | X132532120Y-137406380D02* 165 | X132527040Y-137411460D01* 166 | X138140440Y-135879840D02* 167 | X138142980Y-135882380D01* 168 | X132524500Y-135884920D02* 169 | X135331200Y-135884920D01* 170 | X135336280Y-135879840D02* 171 | X138140440Y-135879840D01* 172 | X135342630Y-137411460D02* 173 | X135337550Y-137406380D01* 174 | X135336280Y-135879840D02* 175 | X135336280Y-137405110D01* 176 | X135925006Y-135879840D02* 177 | X136728538Y-135076308D01* 178 | X138145520Y-137411460D02* 179 | X135342630Y-137411460D01* 180 | X135819980Y-131600108D02* 181 | X135649632Y-131429760D01* 182 | X135331200Y-135884920D02* 183 | X135336280Y-135879840D01* 184 | X135819980Y-132165793D02* 185 | X135819980Y-131600108D01* 186 | X135594980Y-129592960D02* 187 | X135594980Y-104495600D01* 188 | X135649632Y-129647612D02* 189 | X135594980Y-129592960D01* 190 | X135649632Y-131429760D02* 191 | X135649632Y-129647612D01* 192 | X135336280Y-135879840D02* 193 | X135925006Y-135879840D01* 194 | X135337550Y-137406380D02* 195 | X132532120Y-137406380D01* 196 | X136219979Y-131765794D02* 197 | X136219979Y-131360959D01* 198 | X132524500Y-137408920D02* 199 | X132527040Y-137411460D01* 200 | X138142980Y-135882380D02* 201 | X138142980Y-137408920D01* 202 | X136094980Y-131235960D02* 203 | X136094980Y-104495600D01* 204 | X136219979Y-131360959D02* 205 | X136094980Y-131235960D01* 206 | X135819980Y-132165793D02* 207 | X136219979Y-131765794D01* 208 | X141794568Y-88204040D02* 209 | X141794568Y-89986188D01* 210 | X141794568Y-89986188D02* 211 | X141849220Y-90040840D01* 212 | X139301220Y-83751420D02* 213 | X139301220Y-82224880D01* 214 | X144912080Y-82227420D02* 215 | X144917160Y-82222340D01* 216 | X139298680Y-82222340D02* 217 | X142101570Y-82222340D01* 218 | X144919700Y-83748880D02* 219 | X144919700Y-82224880D01* 220 | X141624220Y-87468007D02* 221 | X141624220Y-88033692D01* 222 | X142107920Y-82228690D02* 223 | X142106650Y-82227420D01* 224 | X141849220Y-90040840D02* 225 | X141849220Y-115138200D01* 226 | X142113000Y-83748880D02* 227 | X142107920Y-83753960D01* 228 | X142106650Y-82227420D02* 229 | X144912080Y-82227420D01* 230 | X141624220Y-88033692D02* 231 | X141794568Y-88204040D01* 232 | X139301220Y-82224880D02* 233 | X139298680Y-82222340D01* 234 | X141349220Y-88397840D02* 235 | X141349220Y-115138200D01* 236 | X139303760Y-83753960D02* 237 | X139301220Y-83751420D01* 238 | X142107920Y-83753960D02* 239 | X142107920Y-82228690D01* 240 | X144919700Y-83748880D02* 241 | X142113000Y-83748880D01* 242 | X142101570Y-82222340D02* 243 | X142106650Y-82227420D01* 244 | X141519194Y-83753960D02* 245 | X140715662Y-84557492D01* 246 | X142107920Y-83753960D02* 247 | X141519194Y-83753960D01* 248 | X141224221Y-87868006D02* 249 | X141224221Y-88272841D01* 250 | X142107920Y-83753960D02* 251 | X139303760Y-83753960D01* 252 | X144919700Y-82224880D02* 253 | X144917160Y-82222340D01* 254 | X141624220Y-87468007D02* 255 | X141224221Y-87868006D01* 256 | X141224221Y-88272841D02* 257 | X141349220Y-88397840D01* 258 | X149226780Y-131286760D02* 259 | X149226780Y-104546400D01* 260 | X148469350Y-137457180D02* 261 | X145663920Y-137457180D01* 262 | X148781432Y-129698412D02* 263 | X148726780Y-129643760D01* 264 | X151274780Y-135933180D02* 265 | X151274780Y-137459720D01* 266 | X145663920Y-137457180D02* 267 | X145658840Y-137462260D01* 268 | X145656300Y-135935720D02* 269 | X145656300Y-137459720D01* 270 | X148951780Y-132216593D02* 271 | X148951780Y-131650908D01* 272 | X148726780Y-129643760D02* 273 | X148726780Y-104546400D01* 274 | X148781432Y-131480560D02* 275 | X148781432Y-129698412D01* 276 | X151277320Y-137462260D02* 277 | X148474430Y-137462260D01* 278 | X148468080Y-137455910D02* 279 | X148469350Y-137457180D01* 280 | X148463000Y-135935720D02* 281 | X148468080Y-135930640D01* 282 | X148951780Y-131650908D02* 283 | X148781432Y-131480560D01* 284 | X151274780Y-137459720D02* 285 | X151277320Y-137462260D01* 286 | X151272240Y-135930640D02* 287 | X151274780Y-135933180D01* 288 | X148474430Y-137462260D02* 289 | X148469350Y-137457180D01* 290 | X145656300Y-135935720D02* 291 | X148463000Y-135935720D01* 292 | X148468080Y-135930640D02* 293 | X148468080Y-137455910D01* 294 | X149351779Y-131816594D02* 295 | X149351779Y-131411759D01* 296 | X148468080Y-135930640D02* 297 | X149056806Y-135930640D01* 298 | X149056806Y-135930640D02* 299 | X149860338Y-135127108D01* 300 | X149351779Y-131411759D02* 301 | X149226780Y-131286760D01* 302 | X145656300Y-137459720D02* 303 | X145658840Y-137462260D01* 304 | X148468080Y-135930640D02* 305 | X151272240Y-135930640D01* 306 | X148951780Y-132216593D02* 307 | X149351779Y-131816594D01* 308 | X128629410Y-79921100D02* 309 | X128634490Y-79926180D01* 310 | X125826520Y-79921100D02* 311 | X128629410Y-79921100D01* 312 | X131439920Y-79926180D02* 313 | X131445000Y-79921100D01* 314 | X128634490Y-79926180D02* 315 | X131439920Y-79926180D01* 316 | X128602740Y-85646260D02* 317 | X128605280Y-85648800D01* 318 | X125798580Y-85646260D02* 319 | X128602740Y-85646260D01* 320 | X128610360Y-85643720D02* 321 | X128605280Y-85648800D01* 322 | X131417060Y-85643720D02* 323 | X128610360Y-85643720D01* 324 | X128861820Y-89685000D02* 325 | X128861820Y-114935000D01* 326 | X128861820Y-86905340D02* 327 | X128861820Y-89685000D01* 328 | X128605280Y-86648800D02* 329 | X128861820Y-86905340D01* 330 | X128605280Y-85648800D02* 331 | X128605280Y-86648800D01* 332 | X129361820Y-86405340D02* 333 | X128605280Y-85648800D01* 334 | X129361820Y-114935000D02* 335 | X129361820Y-86405340D01* 336 | X131417060Y-85643720D02* 337 | X131023684Y-85643720D01* 338 | X131023684Y-85643720D02* 339 | X130274763Y-84894799D01* 340 | X130696962Y-80669138D02* 341 | X131445000Y-79921100D01* 342 | X130454400Y-80669138D02* 343 | X130696962Y-80669138D01* 344 | X135327390Y-139509500D02* 345 | X135322310Y-139504420D01* 346 | X135322310Y-139504420D02* 347 | X132516880Y-139504420D01* 348 | X135354060Y-133784340D02* 349 | X135351520Y-133781800D01* 350 | X132539740Y-133786880D02* 351 | X135346440Y-133786880D01* 352 | X135351520Y-133781800D02* 353 | X135351520Y-132781800D01* 354 | X135094980Y-132525260D02* 355 | X135094980Y-129745600D01* 356 | X134594980Y-133025260D02* 357 | X135351520Y-133781800D01* 358 | X132516880Y-139504420D02* 359 | X132511800Y-139509500D01* 360 | X133259838Y-138761462D02* 361 | X132511800Y-139509500D01* 362 | X138158220Y-133784340D02* 363 | X135354060Y-133784340D01* 364 | X135346440Y-133786880D02* 365 | X135351520Y-133781800D01* 366 | X134594980Y-104495600D02* 367 | X134594980Y-133025260D01* 368 | X132539740Y-133786880D02* 369 | X132933116Y-133786880D01* 370 | X135351520Y-132781800D02* 371 | X135094980Y-132525260D01* 372 | X132933116Y-133786880D02* 373 | X133682037Y-134535801D01* 374 | X133502400Y-138761462D02* 375 | X133259838Y-138761462D01* 376 | X135094980Y-129745600D02* 377 | X135094980Y-104495600D01* 378 | X138130280Y-139509500D02* 379 | X135327390Y-139509500D01* 380 | X142090140Y-85849460D02* 381 | X142092680Y-85852000D01* 382 | X144904460Y-85846920D02* 383 | X142097760Y-85846920D01* 384 | X144927320Y-80129380D02* 385 | X144932400Y-80124300D01* 386 | X144184362Y-80872338D02* 387 | X144932400Y-80124300D01* 388 | X142116810Y-80124300D02* 389 | X142121890Y-80129380D01* 390 | X142349220Y-87108540D02* 391 | X142349220Y-89888200D01* 392 | X139285980Y-85849460D02* 393 | X142090140Y-85849460D01* 394 | X142097760Y-85846920D02* 395 | X142092680Y-85852000D01* 396 | X142849220Y-115138200D02* 397 | X142849220Y-86608540D01* 398 | X142121890Y-80129380D02* 399 | X144927320Y-80129380D01* 400 | X142092680Y-85852000D02* 401 | X142092680Y-86852000D01* 402 | X142849220Y-86608540D02* 403 | X142092680Y-85852000D01* 404 | X144904460Y-85846920D02* 405 | X144511084Y-85846920D01* 406 | X142092680Y-86852000D02* 407 | X142349220Y-87108540D01* 408 | X143941800Y-80872338D02* 409 | X144184362Y-80872338D01* 410 | X139313920Y-80124300D02* 411 | X142116810Y-80124300D01* 412 | X142349220Y-89888200D02* 413 | X142349220Y-115138200D01* 414 | X144511084Y-85846920D02* 415 | X143762163Y-85097999D01* 416 | X145671540Y-133837680D02* 417 | X148478240Y-133837680D01* 418 | X148226780Y-132576060D02* 419 | X148226780Y-129796400D01* 420 | X145648680Y-139555220D02* 421 | X145643600Y-139560300D01* 422 | X146391638Y-138812262D02* 423 | X145643600Y-139560300D01* 424 | X148485860Y-133835140D02* 425 | X148483320Y-133832600D01* 426 | X148459190Y-139560300D02* 427 | X148454110Y-139555220D01* 428 | X148454110Y-139555220D02* 429 | X145648680Y-139555220D01* 430 | X146064916Y-133837680D02* 431 | X146813837Y-134586601D01* 432 | X148483320Y-133832600D02* 433 | X148483320Y-132832600D01* 434 | X148483320Y-132832600D02* 435 | X148226780Y-132576060D01* 436 | X151262080Y-139560300D02* 437 | X148459190Y-139560300D01* 438 | X147726780Y-133076060D02* 439 | X148483320Y-133832600D01* 440 | X151290020Y-133835140D02* 441 | X148485860Y-133835140D01* 442 | X146634200Y-138812262D02* 443 | X146391638Y-138812262D01* 444 | X145671540Y-133837680D02* 445 | X146064916Y-133837680D01* 446 | X148478240Y-133837680D02* 447 | X148483320Y-133832600D01* 448 | X148226780Y-129796400D02* 449 | X148226780Y-104546400D01* 450 | X147726780Y-104546400D02* 451 | X147726780Y-133076060D01* 452 | M02* 453 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-F_Mask.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:28:47-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_GREEN,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Soldermask,Top* 6 | G04 #@! TF.FilePolarity,Negative* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:28:47* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10R,0.300000X50.000000*% 14 | %ADD11R,2.250000X1.500000*% 15 | G04 APERTURE END LIST* 16 | D10* 17 | X147726780Y-104546400D03* 18 | X148226780Y-104546400D03* 19 | X148726780Y-104546400D03* 20 | X149226780Y-104546400D03* 21 | D11* 22 | X145671540Y-133837680D03* 23 | X145656300Y-135935720D03* 24 | X151290020Y-133835140D03* 25 | X151274780Y-135933180D03* 26 | X148468080Y-135930640D03* 27 | X148483320Y-133832600D03* 28 | X151277320Y-137462260D03* 29 | X151262080Y-139560300D03* 30 | X148454110Y-139555220D03* 31 | X148469350Y-137457180D03* 32 | X145658840Y-137462260D03* 33 | X145643600Y-139560300D03* 34 | X144917160Y-82222340D03* 35 | X144932400Y-80124300D03* 36 | X144904460Y-85846920D03* 37 | X144919700Y-83748880D03* 38 | D10* 39 | X142849220Y-115138200D03* 40 | X142349220Y-115138200D03* 41 | X141849220Y-115138200D03* 42 | X141349220Y-115138200D03* 43 | D11* 44 | X139285980Y-85849460D03* 45 | X139301220Y-83751420D03* 46 | X142107920Y-83753960D03* 47 | X142092680Y-85852000D03* 48 | X142121890Y-80129380D03* 49 | X142106650Y-82227420D03* 50 | X139298680Y-82222340D03* 51 | X139313920Y-80124300D03* 52 | X135337550Y-137406380D03* 53 | X135322310Y-139504420D03* 54 | X135351520Y-133781800D03* 55 | X135336280Y-135879840D03* 56 | X132511800Y-139509500D03* 57 | X132527040Y-137411460D03* 58 | X138130280Y-139509500D03* 59 | X138145520Y-137411460D03* 60 | X132524500Y-135884920D03* 61 | X132539740Y-133786880D03* 62 | D10* 63 | X136094980Y-104495600D03* 64 | X135594980Y-104495600D03* 65 | X135094980Y-104495600D03* 66 | X134594980Y-104495600D03* 67 | D11* 68 | X138142980Y-135882380D03* 69 | X138158220Y-133784340D03* 70 | D10* 71 | X129361820Y-114935000D03* 72 | X128861820Y-114935000D03* 73 | X128361820Y-114935000D03* 74 | X127861820Y-114935000D03* 75 | D11* 76 | X125811280Y-82019140D03* 77 | X125826520Y-79921100D03* 78 | X128634490Y-79926180D03* 79 | X128619250Y-82024220D03* 80 | X131429760Y-82019140D03* 81 | X131445000Y-79921100D03* 82 | X125798580Y-85646260D03* 83 | X125813820Y-83548220D03* 84 | X128620520Y-83550760D03* 85 | X128605280Y-85648800D03* 86 | X131417060Y-85643720D03* 87 | X131432300Y-83545680D03* 88 | M02* 89 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-F_Paste.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:28:47-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_GREEN,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Paste,Top* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:28:47* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10R,0.300000X50.000000*% 14 | %ADD11R,2.250000X1.500000*% 15 | G04 APERTURE END LIST* 16 | D10* 17 | X147726780Y-104546400D03* 18 | X148226780Y-104546400D03* 19 | X148726780Y-104546400D03* 20 | X149226780Y-104546400D03* 21 | D11* 22 | X145671540Y-133837680D03* 23 | X145656300Y-135935720D03* 24 | X151290020Y-133835140D03* 25 | X151274780Y-135933180D03* 26 | X148468080Y-135930640D03* 27 | X148483320Y-133832600D03* 28 | X151277320Y-137462260D03* 29 | X151262080Y-139560300D03* 30 | X148454110Y-139555220D03* 31 | X148469350Y-137457180D03* 32 | X145658840Y-137462260D03* 33 | X145643600Y-139560300D03* 34 | X144917160Y-82222340D03* 35 | X144932400Y-80124300D03* 36 | X144904460Y-85846920D03* 37 | X144919700Y-83748880D03* 38 | D10* 39 | X142849220Y-115138200D03* 40 | X142349220Y-115138200D03* 41 | X141849220Y-115138200D03* 42 | X141349220Y-115138200D03* 43 | D11* 44 | X139285980Y-85849460D03* 45 | X139301220Y-83751420D03* 46 | X142107920Y-83753960D03* 47 | X142092680Y-85852000D03* 48 | X142121890Y-80129380D03* 49 | X142106650Y-82227420D03* 50 | X139298680Y-82222340D03* 51 | X139313920Y-80124300D03* 52 | X135337550Y-137406380D03* 53 | X135322310Y-139504420D03* 54 | X135351520Y-133781800D03* 55 | X135336280Y-135879840D03* 56 | X132511800Y-139509500D03* 57 | X132527040Y-137411460D03* 58 | X138130280Y-139509500D03* 59 | X138145520Y-137411460D03* 60 | X132524500Y-135884920D03* 61 | X132539740Y-133786880D03* 62 | D10* 63 | X136094980Y-104495600D03* 64 | X135594980Y-104495600D03* 65 | X135094980Y-104495600D03* 66 | X134594980Y-104495600D03* 67 | D11* 68 | X138142980Y-135882380D03* 69 | X138158220Y-133784340D03* 70 | D10* 71 | X129361820Y-114935000D03* 72 | X128861820Y-114935000D03* 73 | X128361820Y-114935000D03* 74 | X127861820Y-114935000D03* 75 | D11* 76 | X125811280Y-82019140D03* 77 | X125826520Y-79921100D03* 78 | X128634490Y-79926180D03* 79 | X128619250Y-82024220D03* 80 | X131429760Y-82019140D03* 81 | X131445000Y-79921100D03* 82 | X125798580Y-85646260D03* 83 | X125813820Y-83548220D03* 84 | X128620520Y-83550760D03* 85 | X128605280Y-85648800D03* 86 | X131417060Y-85643720D03* 87 | X131432300Y-83545680D03* 88 | M02* 89 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-bottom-pos.csv: -------------------------------------------------------------------------------- 1 | Ref,Val,Package,PosX,PosY,Rot,Side 2 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN-top-pos.csv: -------------------------------------------------------------------------------- 1 | Ref,Val,Package,PosX,PosY,Rot,Side 2 | "J1","Conn_01x02_Male","FFC_Male_1x02-1MP_P0.50m",148.476780,-80.196400,180.000000,top 3 | "J1","Conn_01x02_Male","FFC_Male_1x02-1MP_P0.50m",128.611820,-139.285000,0.000000,top 4 | "J1","Conn_01x02_Male","FFC_Male_1x02-1MP_P0.50m",135.344980,-80.145600,180.000000,top 5 | "J1","Conn_01x02_Male","FFC_Male_1x02-1MP_P0.50m",142.099220,-139.488200,0.000000,top 6 | "LED1","LB_T64G-V1CA-59-Z","LEDM3528X210N",125.813820,-80.970120,90.000000,top 7 | "LED1","LB_T64G-V1CA-59-Z","LEDM3528X210N",151.274780,-138.511280,270.000000,top 8 | "LED1","LB_T64G-V1CA-59-Z","LEDM3528X210N",138.142980,-138.460480,270.000000,top 9 | "LED1","LB_T64G-V1CA-59-Z","LEDM3528X210N",139.301220,-81.173320,90.000000,top 10 | "LED2","LB_T64G-V1CA-59-Z","LEDM3528X210N",142.109190,-81.178400,90.000000,top 11 | "LED2","LB_T64G-V1CA-59-Z","LEDM3528X210N",128.621790,-80.975200,90.000000,top 12 | "LED2","LB_T64G-V1CA-59-Z","LEDM3528X210N",135.335010,-138.455400,270.000000,top 13 | "LED2","LB_T64G-V1CA-59-Z","LEDM3528X210N",148.466810,-138.506200,270.000000,top 14 | "LED3","LB_T64G-V1CA-59-Z","LEDM3528X210N",132.524500,-138.460480,270.000000,top 15 | "LED3","LB_T64G-V1CA-59-Z","LEDM3528X210N",144.919700,-81.173320,90.000000,top 16 | "LED3","LB_T64G-V1CA-59-Z","LEDM3528X210N",145.656300,-138.511280,270.000000,top 17 | "LED3","LB_T64G-V1CA-59-Z","LEDM3528X210N",131.432300,-80.970120,90.000000,top 18 | "LED4","LB_T64G-V1CA-59-Z","LEDM3528X210N",139.298680,-84.800440,270.000000,top 19 | "LED4","LB_T64G-V1CA-59-Z","LEDM3528X210N",125.811280,-84.597240,270.000000,top 20 | "LED4","LB_T64G-V1CA-59-Z","LEDM3528X210N",138.145520,-134.833360,90.000000,top 21 | "LED4","LB_T64G-V1CA-59-Z","LEDM3528X210N",151.277320,-134.884160,90.000000,top 22 | "LED5","LB_T64G-V1CA-59-Z","LEDM3528X210N",142.105380,-84.802980,270.000000,top 23 | "LED5","LB_T64G-V1CA-59-Z","LEDM3528X210N",128.617980,-84.599780,270.000000,top 24 | "LED5","LB_T64G-V1CA-59-Z","LEDM3528X210N",135.338820,-134.830820,90.000000,top 25 | "LED5","LB_T64G-V1CA-59-Z","LEDM3528X210N",148.470620,-134.881620,90.000000,top 26 | "LED6","LB_T64G-V1CA-59-Z","LEDM3528X210N",131.429760,-84.594700,270.000000,top 27 | "LED6","LB_T64G-V1CA-59-Z","LEDM3528X210N",132.527040,-134.835900,90.000000,top 28 | "LED6","LB_T64G-V1CA-59-Z","LEDM3528X210N",144.917160,-84.797900,270.000000,top 29 | "LED6","LB_T64G-V1CA-59-Z","LEDM3528X210N",145.658840,-134.886700,90.000000,top 30 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/GREEN/LED_Harness_3x2_GREEN.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (5.1.5)-3} date 3/18/2021 1:28:50 PM 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2021-03-18T13:28:50-04:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.1.5)-3 6 | FMAT,2 7 | INCH 8 | T1C0.0157 9 | % 10 | G90 11 | G05 12 | T1 13 | X5.009Y-3.321 14 | X5.0448Y-3.4356 15 | X5.1289Y-3.3423 16 | X5.136Y-3.176 17 | X5.256Y-5.463 18 | X5.2631Y-5.2967 19 | X5.3472Y-5.2034 20 | X5.383Y-5.318 21 | X5.54Y-3.329 22 | X5.5758Y-3.4436 23 | X5.6599Y-3.3503 24 | X5.667Y-3.184 25 | X5.773Y-5.465 26 | X5.7801Y-5.2987 27 | X5.8642Y-5.2054 28 | X5.9Y-5.32 29 | T0 30 | M30 31 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-B_Cu.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:29:50-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_RED+BLUE,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Copper,L2,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:29:50* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10C,0.800000*% 14 | %ADD11C,0.250000*% 15 | G04 APERTURE END LIST* 16 | D10* 17 | X158072050Y-122408002D03* 18 | X162306000Y-122402600D03* 19 | X131953000Y-66929000D03* 20 | X133078220Y-62210950D03* 21 | X140462000Y-60629800D03* 22 | X144695950Y-60624398D03* 23 | X131757650Y-60725998D03* 24 | X135991600Y-60731400D03* 25 | X117340150Y-122585802D03* 26 | X113106200Y-122580400D03* 27 | X131024521Y-66557609D03* 28 | X130980180Y-62195710D03* 29 | D11* 30 | X158072050Y-122408002D02* 31 | X162300598Y-122408002D01* 32 | X131953000Y-66929000D02* 33 | X131953000Y-63336170D01* 34 | X131953000Y-63336170D02* 35 | X133078220Y-62210950D01* 36 | X144695950Y-60624398D02* 37 | X140467402Y-60624398D01* 38 | X131757650Y-60725998D02* 39 | X135986198Y-60725998D01* 40 | X135986198Y-60725998D02* 41 | X135991600Y-60731400D01* 42 | X117340150Y-122585802D02* 43 | X113111602Y-122585802D01* 44 | X113111602Y-122585802D02* 45 | X113106200Y-122580400D01* 46 | X131024521Y-66557609D02* 47 | X131024521Y-62240051D01* 48 | X131024521Y-62240051D02* 49 | X130980180Y-62195710D01* 50 | M02* 51 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-B_Mask.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:29:50-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_RED+BLUE,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Soldermask,Bot* 6 | G04 #@! TF.FilePolarity,Negative* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:29:50* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-B_Paste.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:29:50-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_RED+BLUE,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Paste,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:29:50* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-B_SilkS.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:29:50-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_RED+BLUE,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Legend,Bot* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:29:50* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | G04 APERTURE END LIST* 14 | M02* 15 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-Edge_Cuts.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:29:50-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_RED+BLUE,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Profile,NP* 6 | %FSLAX46Y46*% 7 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 8 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:29:50* 9 | %MOMM*% 10 | %LPD*% 11 | G04 APERTURE LIST* 12 | %ADD10C,0.100000*% 13 | G04 APERTURE END LIST* 14 | D10* 15 | X165100000Y-57150000D02* 16 | X165100000Y-125730000D01* 17 | X110490000Y-57150000D02* 18 | X165100000Y-57150000D01* 19 | X110490000Y-125730000D02* 20 | X110490000Y-57150000D01* 21 | X165100000Y-125730000D02* 22 | X110490000Y-125730000D01* 23 | X126507501Y-101847495D02* 24 | X135927602Y-101847495D01* 25 | X125563516Y-99393834D02* 26 | X116542610Y-105815938D01* 27 | X116437599Y-106019600D02* 28 | G75* 29 | G02X116542610Y-105815938I250001J0D01* 30 | G01* 31 | X111559000Y-117183922D02* 32 | G75* 33 | G02X111809000Y-116933922I250000J0D01* 34 | G01* 35 | X126362512Y-101893833D02* 36 | G75* 37 | G02X126507501Y-101847495I144989J-203662D01* 38 | G01* 39 | X111809000Y-116933922D02* 40 | X115959000Y-116933922D01* 41 | X116187600Y-116933922D02* 42 | X115959000Y-116933922D01* 43 | X133677602Y-99097495D02* 44 | X133677602Y-67504729D01* 45 | X111809000Y-125225535D02* 46 | X118459000Y-125225535D01* 47 | X118937599Y-107308632D02* 48 | G75* 49 | G02X119042610Y-107104970I250001J0D01* 50 | G01* 51 | X111809000Y-125225535D02* 52 | G75* 53 | G02X111559000Y-124975535I0J250000D01* 54 | G01* 55 | X111559000Y-124975535D02* 56 | X111559000Y-117183922D01* 57 | X116437600Y-116683922D02* 58 | X116437600Y-106019600D01* 59 | X136177602Y-67504729D02* 60 | X133677602Y-67504729D01* 61 | X133427602Y-99347495D02* 62 | X125708506Y-99347495D01* 63 | X118937600Y-124975535D02* 64 | X118937600Y-117183922D01* 65 | X118937600Y-124975535D02* 66 | G75* 67 | G02X118687600Y-125225535I-250000J0D01* 68 | G01* 69 | X118687600Y-125225535D02* 70 | X118459000Y-125225535D01* 71 | X133677602Y-99097495D02* 72 | G75* 73 | G02X133427602Y-99347495I-250000J0D01* 74 | G01* 75 | X125563517Y-99393833D02* 76 | G75* 77 | G02X125708506Y-99347495I144989J-203662D01* 78 | G01* 79 | X136177602Y-101597495D02* 80 | X136177602Y-67504729D01* 81 | X116437600Y-116683922D02* 82 | G75* 83 | G02X116187600Y-116933922I-250000J0D01* 84 | G01* 85 | X136177602Y-101597495D02* 86 | G75* 87 | G02X135927602Y-101847495I-250000J0D01* 88 | G01* 89 | X118937600Y-117179729D02* 90 | X118937600Y-107308632D01* 91 | X118937565Y-117179729D02* 92 | G75* 93 | G02X118937600Y-117183922I-249965J-4193D01* 94 | G01* 95 | X119042610Y-107104970D02* 96 | X126362512Y-101893834D01* 97 | X158974600Y-116506122D02* 98 | X158974600Y-105841800D01* 99 | X149049688Y-101716033D02* 100 | G75* 101 | G03X148904699Y-101669695I-144989J-203662D01* 102 | G01* 103 | X156474600Y-124797735D02* 104 | G75* 105 | G03X156724600Y-125047735I250000J0D01* 106 | G01* 107 | X139234598Y-67326929D02* 108 | X141734598Y-67326929D01* 109 | X158974601Y-105841800D02* 110 | G75* 111 | G03X158869590Y-105638138I-250001J0D01* 112 | G01* 113 | X163853200Y-117006122D02* 114 | G75* 115 | G03X163603200Y-116756122I-250000J0D01* 116 | G01* 117 | X156474600Y-117001929D02* 118 | X156474600Y-107130832D01* 119 | X163603200Y-116756122D02* 120 | X159453200Y-116756122D01* 121 | X163853200Y-124797735D02* 122 | X163853200Y-117006122D01* 123 | X149848683Y-99216033D02* 124 | G75* 125 | G03X149703694Y-99169695I-144989J-203662D01* 126 | G01* 127 | X156474601Y-107130832D02* 128 | G75* 129 | G03X156369590Y-106927170I-250001J0D01* 130 | G01* 131 | X139234598Y-101419695D02* 132 | G75* 133 | G03X139484598Y-101669695I250000J0D01* 134 | G01* 135 | X141734598Y-98919695D02* 136 | G75* 137 | G03X141984598Y-99169695I250000J0D01* 138 | G01* 139 | X148904699Y-101669695D02* 140 | X139484598Y-101669695D01* 141 | X149848684Y-99216034D02* 142 | X158869590Y-105638138D01* 143 | X141984598Y-99169695D02* 144 | X149703694Y-99169695D01* 145 | X156474635Y-117001929D02* 146 | G75* 147 | G03X156474600Y-117006122I249965J-4193D01* 148 | G01* 149 | X159224600Y-116756122D02* 150 | X159453200Y-116756122D01* 151 | X156724600Y-125047735D02* 152 | X156953200Y-125047735D01* 153 | X141734598Y-98919695D02* 154 | X141734598Y-67326929D01* 155 | X163603200Y-125047735D02* 156 | G75* 157 | G03X163853200Y-124797735I0J250000D01* 158 | G01* 159 | X156474600Y-124797735D02* 160 | X156474600Y-117006122D01* 161 | X163603200Y-125047735D02* 162 | X156953200Y-125047735D01* 163 | X139234598Y-101419695D02* 164 | X139234598Y-67326929D01* 165 | X158974600Y-116506122D02* 166 | G75* 167 | G03X159224600Y-116756122I250000J0D01* 168 | G01* 169 | X156369590Y-106927170D02* 170 | X149049688Y-101716034D01* 171 | X146398410Y-76105230D02* 172 | X153718312Y-81316366D01* 173 | X143793400Y-66526278D02* 174 | G75* 175 | G03X143543400Y-66276278I-250000J0D01* 176 | G01* 177 | X163533402Y-81612705D02* 178 | X163533402Y-115705471D01* 179 | X146293365Y-66030471D02* 180 | G75* 181 | G03X146293400Y-66026278I-249965J4193D01* 182 | G01* 183 | X146293400Y-66030471D02* 184 | X146293400Y-75901568D01* 185 | X138914800Y-66026278D02* 186 | G75* 187 | G03X139164800Y-66276278I250000J0D01* 188 | G01* 189 | X152919317Y-83816367D02* 190 | G75* 191 | G03X153064306Y-83862705I144989J203662D01* 192 | G01* 193 | X163533402Y-81612705D02* 194 | G75* 195 | G03X163283402Y-81362705I-250000J0D01* 196 | G01* 197 | X139164800Y-57984665D02* 198 | X145814800Y-57984665D01* 199 | X146293399Y-75901568D02* 200 | G75* 201 | G03X146398410Y-76105230I250001J0D01* 202 | G01* 203 | X160783402Y-83862705D02* 204 | X153064306Y-83862705D01* 205 | X161033402Y-84112705D02* 206 | G75* 207 | G03X160783402Y-83862705I-250000J0D01* 208 | G01* 209 | X146293400Y-58234665D02* 210 | G75* 211 | G03X146043400Y-57984665I-250000J0D01* 212 | G01* 213 | X146293400Y-58234665D02* 214 | X146293400Y-66026278D01* 215 | X161033402Y-84112705D02* 216 | X161033402Y-115705471D01* 217 | X163533402Y-115705471D02* 218 | X161033402Y-115705471D01* 219 | X138914800Y-58234665D02* 220 | X138914800Y-66026278D01* 221 | X153718312Y-81316367D02* 222 | G75* 223 | G03X153863301Y-81362705I144989J203662D01* 224 | G01* 225 | X143793400Y-66526278D02* 226 | X143793400Y-77190600D01* 227 | X139164800Y-57984665D02* 228 | G75* 229 | G03X138914800Y-58234665I0J-250000D01* 230 | G01* 231 | X139164800Y-66276278D02* 232 | X143314800Y-66276278D01* 233 | X153863301Y-81362705D02* 234 | X163283402Y-81362705D01* 235 | X146043400Y-57984665D02* 236 | X145814800Y-57984665D01* 237 | X143543400Y-66276278D02* 238 | X143314800Y-66276278D01* 239 | X152919316Y-83816366D02* 240 | X143898410Y-77394262D01* 241 | X143793399Y-77190600D02* 242 | G75* 243 | G03X143898410Y-77394262I250001J0D01* 244 | G01* 245 | X132910200Y-66377878D02* 246 | X133138800Y-66377878D01* 247 | X130410200Y-58086265D02* 248 | X130638800Y-58086265D01* 249 | X130055190Y-76206830D02* 250 | X122735288Y-81417966D01* 251 | X132660200Y-66627878D02* 252 | G75* 253 | G02X132910200Y-66377878I250000J0D01* 254 | G01* 255 | X112920198Y-81714305D02* 256 | X112920198Y-115807071D01* 257 | X130160235Y-66132071D02* 258 | G75* 259 | G02X130160200Y-66127878I249965J4193D01* 260 | G01* 261 | X130160200Y-66132071D02* 262 | X130160200Y-76003168D01* 263 | X137538800Y-66127878D02* 264 | G75* 265 | G02X137288800Y-66377878I-250000J0D01* 266 | G01* 267 | X123534283Y-83917967D02* 268 | G75* 269 | G02X123389294Y-83964305I-144989J203662D01* 270 | G01* 271 | X112920198Y-81714305D02* 272 | G75* 273 | G02X113170198Y-81464305I250000J0D01* 274 | G01* 275 | X137288800Y-58086265D02* 276 | X130638800Y-58086265D01* 277 | X130160201Y-76003168D02* 278 | G75* 279 | G02X130055190Y-76206830I-250001J0D01* 280 | G01* 281 | X115670198Y-83964305D02* 282 | X123389294Y-83964305D01* 283 | X115420198Y-84214305D02* 284 | G75* 285 | G02X115670198Y-83964305I250000J0D01* 286 | G01* 287 | X130160200Y-58336265D02* 288 | G75* 289 | G02X130410200Y-58086265I250000J0D01* 290 | G01* 291 | X130160200Y-58336265D02* 292 | X130160200Y-66127878D01* 293 | X115420198Y-84214305D02* 294 | X115420198Y-115807071D01* 295 | X112920198Y-115807071D02* 296 | X115420198Y-115807071D01* 297 | X137538800Y-58336265D02* 298 | X137538800Y-66127878D01* 299 | X122735288Y-81417967D02* 300 | G75* 301 | G02X122590299Y-81464305I-144989J203662D01* 302 | G01* 303 | X132660200Y-66627878D02* 304 | X132660200Y-77292200D01* 305 | X137288800Y-58086265D02* 306 | G75* 307 | G02X137538800Y-58336265I0J-250000D01* 308 | G01* 309 | X137288800Y-66377878D02* 310 | X133138800Y-66377878D01* 311 | X122590299Y-81464305D02* 312 | X113170198Y-81464305D01* 313 | X123534284Y-83917966D02* 314 | X132555190Y-77495862D01* 315 | X132660201Y-77292200D02* 316 | G75* 317 | G02X132555190Y-77495862I-250001J0D01* 318 | G01* 319 | M02* 320 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-F_Cu.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:29:50-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_RED+BLUE,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Copper,L1,Top* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:29:50* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10R,1.500000X2.250000*% 14 | %ADD11R,0.300000X25.000000*% 15 | %ADD12C,0.800000*% 16 | %ADD13C,0.250000*% 17 | G04 APERTURE END LIST* 18 | D10* 19 | X163014660Y-123705620D03* 20 | X160916620Y-123690380D03* 21 | X157294580Y-120869710D03* 22 | X159392620Y-120884950D03* 23 | X159387540Y-118074440D03* 24 | X157289500Y-118059200D03* 25 | X159387540Y-123692920D03* 26 | X157289500Y-123677680D03* 27 | X160919160Y-120883680D03* 28 | X163017200Y-120898920D03* 29 | X163012120Y-118087140D03* 30 | X160914080Y-118071900D03* 31 | D11* 32 | X141237400Y-80247200D03* 33 | X140737400Y-80247200D03* 34 | X140237400Y-80247200D03* 35 | X139737400Y-80247200D03* 36 | X163030600Y-102878600D03* 37 | X162530600Y-102878600D03* 38 | X162030600Y-102878600D03* 39 | X161530600Y-102878600D03* 40 | D10* 41 | X143413480Y-59347100D03* 42 | X145511520Y-59362340D03* 43 | X141892020Y-62160150D03* 44 | X139793980Y-62144910D03* 45 | X139788900Y-64952880D03* 46 | X141886940Y-64968120D03* 47 | X139788900Y-59334400D03* 48 | X141886940Y-59349640D03* 49 | X145516600Y-62174120D03* 50 | X143418560Y-62158880D03* 51 | X143416020Y-64965580D03* 52 | X145514060Y-64980820D03* 53 | X114498120Y-123913900D03* 54 | X112400080Y-123898660D03* 55 | X116019580Y-121100850D03* 56 | X118117620Y-121116090D03* 57 | X118122700Y-118308120D03* 58 | X116024660Y-118292880D03* 59 | X118122700Y-123926600D03* 60 | X116024660Y-123911360D03* 61 | D11* 62 | X134170800Y-80289400D03* 63 | X134670800Y-80289400D03* 64 | X135170800Y-80289400D03* 65 | X135670800Y-80289400D03* 66 | D10* 67 | X112395000Y-121086880D03* 68 | X114493040Y-121102120D03* 69 | X114495580Y-118295420D03* 70 | X112397540Y-118280180D03* 71 | D11* 72 | X113427000Y-103022400D03* 73 | X113927000Y-103022400D03* 74 | X114427000Y-103022400D03* 75 | X114927000Y-103022400D03* 76 | D10* 77 | X133073140Y-65018920D03* 78 | X130975100Y-65003680D03* 79 | X130980180Y-62195710D03* 80 | X133078220Y-62210950D03* 81 | X133073140Y-59400440D03* 82 | X130975100Y-59385200D03* 83 | X136700260Y-65031620D03* 84 | X134602220Y-65016380D03* 85 | X134604760Y-62209680D03* 86 | X136702800Y-62224920D03* 87 | X136697720Y-59413140D03* 88 | X134599680Y-59397900D03* 89 | D12* 90 | X158072050Y-122408002D03* 91 | X162306000Y-122402600D03* 92 | X131953000Y-66929000D03* 93 | X133078220Y-62210950D03* 94 | X140462000Y-60629800D03* 95 | X144695950Y-60624398D03* 96 | X131757650Y-60725998D03* 97 | X135991600Y-60731400D03* 98 | X117340150Y-122585802D03* 99 | X113106200Y-122580400D03* 100 | X131024521Y-66557609D03* 101 | X130980180Y-62195710D03* 102 | D13* 103 | X139741400Y-92861600D02* 104 | X139623800Y-92979200D01* 105 | X139623800Y-101269800D02* 106 | X139609608Y-101283992D01* 107 | X139663392Y-101283992D02* 108 | X139674085Y-101294685D01* 109 | X157082856Y-106459179D02* 110 | X157075790Y-106417192D01* 111 | X141853920Y-59296300D02* 112 | X143377920Y-59296300D01* 113 | X143377920Y-59296300D02* 114 | X143380460Y-59298840D01* 115 | X143374110Y-62108080D02* 116 | X143375380Y-62109350D01* 117 | X141848840Y-64912240D02* 118 | X141851380Y-64914780D01* 119 | X143380460Y-64917320D02* 120 | X143380460Y-62114430D01* 121 | X141848840Y-62108080D02* 122 | X141848840Y-62696806D01* 123 | X141848840Y-62108080D02* 124 | X143374110Y-62108080D01* 125 | X143375380Y-62109350D02* 126 | X143375380Y-59303920D01* 127 | X141848840Y-62108080D02* 128 | X141848840Y-64912240D01* 129 | X141851380Y-64914780D02* 130 | X143377920Y-64914780D01* 131 | X141853920Y-59296300D02* 132 | X141853920Y-62103000D01* 133 | X143380460Y-62114430D02* 134 | X143375380Y-62109350D01* 135 | X143377920Y-64914780D02* 136 | X143380460Y-64917320D01* 137 | X143375380Y-59303920D02* 138 | X143380460Y-59298840D01* 139 | X141853920Y-62103000D02* 140 | X141848840Y-62108080D01* 141 | X161526600Y-102920800D02* 142 | X161526600Y-83989800D01* 143 | X145685144Y-76573221D02* 144 | X145692210Y-76615208D01* 145 | X152997366Y-81915000D02* 146 | X153090602Y-81915000D01* 147 | X143380460Y-64917320D02* 148 | X143380460Y-65292320D01* 149 | X162026600Y-90170800D02* 150 | X162026600Y-102920800D01* 151 | X145468381Y-76356458D02* 152 | X145685144Y-76573221D01* 153 | X162001200Y-83515200D02* 154 | X162026600Y-90170800D01* 155 | X143380460Y-65292320D02* 156 | X145468380Y-67380240D01* 157 | X153363327Y-82187725D02* 158 | X161319725Y-82187725D01* 159 | X153090602Y-81915000D02* 160 | X153363327Y-82187725D01* 161 | X152653186Y-81570820D02* 162 | X152997366Y-81915000D01* 163 | X145692210Y-76615208D02* 164 | X150471481Y-80017635D01* 165 | X161526600Y-83989800D02* 166 | X162001200Y-83515200D01* 167 | X150471481Y-80017635D02* 168 | X152653186Y-81570820D01* 169 | X162026600Y-82894600D02* 170 | X162001200Y-83515200D01* 171 | X145468380Y-67380240D02* 172 | X145468381Y-76356458D01* 173 | X161319725Y-82187725D02* 174 | X162026600Y-82894600D01* 175 | X162306000Y-122402600D02* 176 | X162306000Y-123014740D01* 177 | X162306000Y-123014740D02* 178 | X163012120Y-123720860D01* 179 | X149499555Y-101575967D02* 180 | X156662954Y-106675687D01* 181 | X139674085Y-101294685D02* 182 | X149218273Y-101294685D01* 183 | X139741400Y-80111600D02* 184 | X139741400Y-92861600D01* 185 | X157294580Y-120938290D02* 186 | X157294580Y-123743720D01* 187 | X156849610Y-116586000D02* 188 | X157120180Y-116586000D01* 189 | X162300598Y-122408002D02* 190 | X162306000Y-122402600D01* 191 | X157289500Y-118130320D02* 192 | X157289500Y-120933210D01* 193 | X139609608Y-101283992D02* 194 | X139663392Y-101283992D01* 195 | X163012120Y-120914160D02* 196 | X163017200Y-120909080D01* 197 | X157289500Y-120933210D02* 198 | X157294580Y-120938290D01* 199 | X149218273Y-101294685D02* 200 | X149499555Y-101575967D01* 201 | X157289500Y-123190552D02* 202 | X158072050Y-122408002D01* 203 | X157294580Y-123743720D02* 204 | X157289500Y-123748800D01* 205 | X163012120Y-123720860D02* 206 | X163012120Y-123327484D01* 207 | X157289500Y-116755320D02* 208 | X157289500Y-118130320D01* 209 | X156849610Y-106862343D02* 210 | X156849610Y-116586000D01* 211 | X139623800Y-92979200D02* 212 | X139623800Y-101269800D01* 213 | X140241400Y-80111600D02* 214 | X140241400Y-99901408D01* 215 | X163014660Y-118102380D02* 216 | X163014660Y-120906540D01* 217 | X163014660Y-120906540D02* 218 | X163017200Y-120909080D01* 219 | X163012120Y-123720860D02* 220 | X163012120Y-120914160D01* 221 | X157289500Y-123748800D02* 222 | X157289500Y-123190552D01* 223 | X157120180Y-116586000D02* 224 | X157289500Y-116755320D01* 225 | X140241400Y-99901408D02* 226 | X139609608Y-100533200D01* 227 | X156662954Y-106675687D02* 228 | X156849610Y-106862343D01* 229 | X133075680Y-59397900D02* 230 | X133073140Y-59400440D01* 231 | X134599680Y-59397900D02* 232 | X133075680Y-59397900D01* 233 | X133079490Y-62209680D02* 234 | X133078220Y-62210950D01* 235 | X134604760Y-62209680D02* 236 | X133079490Y-62209680D01* 237 | X133075680Y-65016380D02* 238 | X133073140Y-65018920D01* 239 | X134602220Y-65016380D02* 240 | X133075680Y-65016380D01* 241 | X133073140Y-62216030D02* 242 | X133078220Y-62210950D01* 243 | X133073140Y-65018920D02* 244 | X133073140Y-62216030D01* 245 | X133078220Y-59405520D02* 246 | X133073140Y-59400440D01* 247 | X133078220Y-62210950D02* 248 | X133078220Y-59405520D01* 249 | X134599680Y-62204600D02* 250 | X134604760Y-62209680D01* 251 | X134599680Y-59397900D02* 252 | X134599680Y-62204600D01* 253 | X134604760Y-65013840D02* 254 | X134602220Y-65016380D01* 255 | X134604760Y-62209680D02* 256 | X134604760Y-65013840D01* 257 | X134604760Y-62209680D02* 258 | X134604760Y-62798406D01* 259 | X114427000Y-90272400D02* 260 | X114427000Y-103022400D01* 261 | X115133875Y-82289325D02* 262 | X114427000Y-82996200D01* 263 | X130768456Y-76674821D02* 264 | X130761390Y-76716808D01* 265 | X130985219Y-76458058D02* 266 | X130768456Y-76674821D01* 267 | X130761390Y-76716808D02* 268 | X125982119Y-80119235D01* 269 | X130985220Y-67481840D02* 270 | X130985219Y-76458058D01* 271 | X123456234Y-82016600D02* 272 | X123362998Y-82016600D01* 273 | X125982119Y-80119235D02* 274 | X123800414Y-81672420D01* 275 | X123800414Y-81672420D02* 276 | X123456234Y-82016600D01* 277 | X123090273Y-82289325D02* 278 | X115133875Y-82289325D01* 279 | X133073140Y-65018920D02* 280 | X133073140Y-65393920D01* 281 | X123362998Y-82016600D02* 282 | X123090273Y-82289325D01* 283 | X114927000Y-84091400D02* 284 | X114452400Y-83616800D01* 285 | X114927000Y-103022400D02* 286 | X114927000Y-84091400D01* 287 | X114427000Y-82996200D02* 288 | X114452400Y-83616800D01* 289 | X114452400Y-83616800D02* 290 | X114427000Y-90272400D01* 291 | X114493040Y-118297960D02* 292 | X114495580Y-118295420D01* 293 | X114498120Y-121107200D02* 294 | X114493040Y-121102120D01* 295 | X134170800Y-99220400D02* 296 | X134645400Y-99695000D01* 297 | X118336410Y-106594992D02* 298 | X123115681Y-103192565D01* 299 | X114498120Y-123913900D02* 300 | X116022120Y-123913900D01* 301 | X116024660Y-121095770D02* 302 | X116019580Y-121100850D01* 303 | X116019580Y-123906280D02* 304 | X116024660Y-123911360D01* 305 | X114493040Y-121102120D02* 306 | X114493040Y-120513394D01* 307 | X114493040Y-121102120D02* 308 | X116018310Y-121102120D01* 309 | X116024660Y-118292880D02* 310 | X116024660Y-121095770D01* 311 | X116022120Y-118295420D02* 312 | X116024660Y-118292880D01* 313 | X134670800Y-93039400D02* 314 | X134670800Y-80289400D01* 315 | X118112580Y-115829960D02* 316 | X118112581Y-106853742D01* 317 | X118112581Y-106853742D02* 318 | X118329344Y-106636979D01* 319 | X116022120Y-123913900D02* 320 | X116024660Y-123911360D01* 321 | X123115681Y-103192565D02* 322 | X125297386Y-101639380D01* 323 | X114493040Y-121102120D02* 324 | X114493040Y-118297960D01* 325 | X116018310Y-121102120D02* 326 | X116019580Y-121100850D01* 327 | X114498120Y-123913900D02* 328 | X114498120Y-121107200D01* 329 | X125297386Y-101639380D02* 330 | X125641566Y-101295200D01* 331 | X116019580Y-121100850D02* 332 | X116019580Y-123906280D01* 333 | X133963925Y-101022475D02* 334 | X134670800Y-100315600D01* 335 | X126007527Y-101022475D02* 336 | X133963925Y-101022475D01* 337 | X118329344Y-106636979D02* 338 | X118336410Y-106594992D01* 339 | X125734802Y-101295200D02* 340 | X126007527Y-101022475D01* 341 | X134170800Y-80289400D02* 342 | X134170800Y-99220400D01* 343 | X134670800Y-100315600D02* 344 | X134645400Y-99695000D01* 345 | X116024660Y-117917880D02* 346 | X118112580Y-115829960D01* 347 | X114495580Y-118295420D02* 348 | X116022120Y-118295420D01* 349 | X134645400Y-99695000D02* 350 | X134670800Y-93039400D01* 351 | X125641566Y-101295200D02* 352 | X125734802Y-101295200D01* 353 | X116024660Y-118292880D02* 354 | X116024660Y-117917880D01* 355 | X130985220Y-67481840D02* 356 | X131400160Y-67481840D01* 357 | X131400160Y-67481840D02* 358 | X131953000Y-66929000D01* 359 | X145473420Y-62094110D02* 360 | X145473420Y-59288680D01* 361 | X139753340Y-64930020D02* 362 | X139753340Y-62125860D01* 363 | X139755880Y-59311540D02* 364 | X139755880Y-59704916D01* 365 | X145478500Y-64902080D02* 366 | X145478500Y-62099190D01* 367 | X139755880Y-62118240D02* 368 | X139750800Y-62123320D01* 369 | X139753340Y-62125860D02* 370 | X139750800Y-62123320D01* 371 | X145473420Y-59288680D02* 372 | X145478500Y-59283600D01* 373 | X139755880Y-59311540D02* 374 | X139755880Y-62118240D01* 375 | X145478500Y-62099190D02* 376 | X145473420Y-62094110D01* 377 | X145478500Y-59283600D02* 378 | X145478500Y-59841848D01* 379 | X145918390Y-66446400D02* 380 | X145647820Y-66446400D01* 381 | X163144200Y-90053200D02* 382 | X163144200Y-81762600D01* 383 | X163026600Y-90170800D02* 384 | X163144200Y-90053200D01* 385 | X163158392Y-81748408D02* 386 | X163104608Y-81748408D01* 387 | X145478500Y-66277080D02* 388 | X145478500Y-64902080D01* 389 | X145647820Y-66446400D02* 390 | X145478500Y-66277080D01* 391 | X163144200Y-81762600D02* 392 | X163158392Y-81748408D01* 393 | X153549727Y-81737715D02* 394 | X153268445Y-81456433D01* 395 | X140467402Y-60624398D02* 396 | X140462000Y-60629800D01* 397 | X145478500Y-59841848D02* 398 | X144695950Y-60624398D01* 399 | X140462000Y-60629800D02* 400 | X140462000Y-60017660D01* 401 | X140462000Y-60017660D02* 402 | X139755880Y-59311540D01* 403 | X145918390Y-76170057D02* 404 | X145918390Y-66446400D01* 405 | X153268445Y-81456433D02* 406 | X146105046Y-76356713D01* 407 | X163104608Y-81748408D02* 408 | X163093915Y-81737715D01* 409 | X162526600Y-102920800D02* 410 | X162526600Y-83130992D01* 411 | X163093915Y-81737715D02* 412 | X153549727Y-81737715D01* 413 | X163026600Y-102920800D02* 414 | X163026600Y-90170800D01* 415 | X162526600Y-83130992D02* 416 | X163158392Y-82499200D01* 417 | X146105046Y-76356713D02* 418 | X145918390Y-76170057D01* 419 | X159390080Y-123736100D02* 420 | X159387540Y-123733560D01* 421 | X159393890Y-120924320D02* 422 | X159392620Y-120923050D01* 423 | X160914080Y-123736100D02* 424 | X159390080Y-123736100D01* 425 | X140741400Y-92861600D02* 426 | X140741400Y-80111600D01* 427 | X141241400Y-99042600D02* 428 | X140766800Y-99517200D01* 429 | X157299620Y-115652160D02* 430 | X157299619Y-106675942D01* 431 | X149677398Y-101117400D02* 432 | X149404673Y-100844675D01* 433 | X160919160Y-120924320D02* 434 | X159393890Y-120924320D01* 435 | X159387540Y-120917970D02* 436 | X159392620Y-120923050D01* 437 | X159392620Y-123728480D02* 438 | X159387540Y-123733560D01* 439 | X149770634Y-101117400D02* 440 | X149677398Y-101117400D01* 441 | X159387540Y-118115080D02* 442 | X159387540Y-117740080D01* 443 | X140766800Y-99517200D02* 444 | X140741400Y-92861600D01* 445 | X160919160Y-118120160D02* 446 | X160916620Y-118117620D01* 447 | X149404673Y-100844675D02* 448 | X141448275Y-100844675D01* 449 | X160919160Y-120924320D02* 450 | X160919160Y-118120160D01* 451 | X152296519Y-103014765D02* 452 | X150114814Y-101461580D01* 453 | X159387540Y-118115080D02* 454 | X159387540Y-120917970D01* 455 | X160916620Y-118117620D02* 456 | X159390080Y-118117620D01* 457 | X157299619Y-106675942D02* 458 | X157082856Y-106459179D01* 459 | X141448275Y-100844675D02* 460 | X140741400Y-100137800D01* 461 | X160914080Y-120929400D02* 462 | X160919160Y-120924320D01* 463 | X159390080Y-118117620D02* 464 | X159387540Y-118115080D01* 465 | X141241400Y-80111600D02* 466 | X141241400Y-99042600D01* 467 | X159392620Y-120923050D02* 468 | X159392620Y-123728480D01* 469 | X160919160Y-120924320D02* 470 | X160919160Y-120335594D01* 471 | X157075790Y-106417192D02* 472 | X152296519Y-103014765D01* 473 | X140741400Y-100137800D02* 474 | X140766800Y-99517200D01* 475 | X160914080Y-123736100D02* 476 | X160914080Y-120929400D01* 477 | X159387540Y-117740080D02* 478 | X157299620Y-115652160D01* 479 | X150114814Y-101461580D02* 480 | X149770634Y-101117400D01* 481 | X130975100Y-62200790D02* 482 | X130980180Y-62195710D01* 483 | X130975100Y-65003680D02* 484 | X130975100Y-62200790D01* 485 | X130980180Y-59390280D02* 486 | X130975100Y-59385200D01* 487 | X130980180Y-62195710D02* 488 | X130980180Y-59390280D01* 489 | X136700260Y-62227460D02* 490 | X136702800Y-62224920D01* 491 | X136700260Y-65031620D02* 492 | X136700260Y-62227460D01* 493 | X136697720Y-62219840D02* 494 | X136702800Y-62224920D01* 495 | X136697720Y-59413140D02* 496 | X136697720Y-62219840D01* 497 | X136697720Y-59413140D02* 498 | X136697720Y-59806516D01* 499 | X130975100Y-59385200D02* 500 | X130975100Y-59943448D01* 501 | X130975100Y-59943448D02* 502 | X131757650Y-60725998D01* 503 | X135991600Y-60119260D02* 504 | X136697720Y-59413140D01* 505 | X135991600Y-60731400D02* 506 | X135991600Y-60119260D01* 507 | X113309400Y-90154800D02* 508 | X113309400Y-81864200D01* 509 | X113295208Y-81850008D02* 510 | X113348992Y-81850008D01* 511 | X113427000Y-90272400D02* 512 | X113309400Y-90154800D01* 513 | X113309400Y-81864200D02* 514 | X113295208Y-81850008D01* 515 | X122903873Y-81839315D02* 516 | X123185155Y-81558033D01* 517 | X113427000Y-103022400D02* 518 | X113427000Y-90272400D01* 519 | X113348992Y-81850008D02* 520 | X113359685Y-81839315D01* 521 | X130348554Y-76458313D02* 522 | X130535210Y-76271657D01* 523 | X113359685Y-81839315D02* 524 | X122903873Y-81839315D01* 525 | X123185155Y-81558033D02* 526 | X130348554Y-76458313D01* 527 | X130535210Y-76271657D02* 528 | X130535210Y-66548000D01* 529 | X113927000Y-83232592D02* 530 | X113295208Y-82600800D01* 531 | X113927000Y-103022400D02* 532 | X113927000Y-83232592D01* 533 | X118122700Y-118308120D02* 534 | X118122700Y-121111010D01* 535 | X118117620Y-123921520D02* 536 | X118122700Y-123926600D01* 537 | X118117620Y-121116090D02* 538 | X118117620Y-123921520D01* 539 | X118122700Y-121111010D02* 540 | X118117620Y-121116090D01* 541 | X118749246Y-106853487D02* 542 | X118562590Y-107040143D01* 543 | X135738115Y-101472485D02* 544 | X126193927Y-101472485D01* 545 | X112400080Y-123898660D02* 546 | X112400080Y-121091960D01* 547 | X112397540Y-121084340D02* 548 | X112395000Y-121086880D01* 549 | X112400080Y-121091960D02* 550 | X112395000Y-121086880D01* 551 | X118562590Y-107040143D02* 552 | X118562590Y-116763800D01* 553 | X118292020Y-116763800D02* 554 | X118122700Y-116933120D01* 555 | X118122700Y-123926600D02* 556 | X118122700Y-123368352D01* 557 | X113106200Y-123192540D02* 558 | X112400080Y-123898660D01* 559 | X135670800Y-93039400D02* 560 | X135788400Y-93157000D01* 561 | X118122700Y-116933120D02* 562 | X118122700Y-118308120D01* 563 | X125912645Y-101753767D02* 564 | X118749246Y-106853487D01* 565 | X118562590Y-116763800D02* 566 | X118292020Y-116763800D01* 567 | X118122700Y-123368352D02* 568 | X117340150Y-122585802D01* 569 | X135170800Y-80289400D02* 570 | X135170800Y-100079208D01* 571 | X126193927Y-101472485D02* 572 | X125912645Y-101753767D01* 573 | X113106200Y-122580400D02* 574 | X113106200Y-123192540D01* 575 | X135748808Y-101461792D02* 576 | X135738115Y-101472485D01* 577 | X135788400Y-93157000D02* 578 | X135788400Y-101447600D01* 579 | X135670800Y-80289400D02* 580 | X135670800Y-93039400D01* 581 | X135170800Y-100079208D02* 582 | X135802592Y-100711000D01* 583 | X112397540Y-118280180D02* 584 | X112397540Y-121084340D01* 585 | X135802592Y-101461792D02* 586 | X135748808Y-101461792D01* 587 | X112400080Y-123898660D02* 588 | X112400080Y-123505284D01* 589 | X135788400Y-101447600D02* 590 | X135802592Y-101461792D01* 591 | X130535210Y-66548000D02* 592 | X131014912Y-66548000D01* 593 | X131014912Y-66548000D02* 594 | X131024521Y-66557609D01* 595 | M02* 596 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-F_Mask.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:29:50-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_RED+BLUE,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Soldermask,Top* 6 | G04 #@! TF.FilePolarity,Negative* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:29:50* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10R,1.500000X2.250000*% 14 | %ADD11R,0.300000X25.000000*% 15 | G04 APERTURE END LIST* 16 | D10* 17 | X163014660Y-123705620D03* 18 | X160916620Y-123690380D03* 19 | X157294580Y-120869710D03* 20 | X159392620Y-120884950D03* 21 | X159387540Y-118074440D03* 22 | X157289500Y-118059200D03* 23 | X159387540Y-123692920D03* 24 | X157289500Y-123677680D03* 25 | X160919160Y-120883680D03* 26 | X163017200Y-120898920D03* 27 | X163012120Y-118087140D03* 28 | X160914080Y-118071900D03* 29 | D11* 30 | X141237400Y-80247200D03* 31 | X140737400Y-80247200D03* 32 | X140237400Y-80247200D03* 33 | X139737400Y-80247200D03* 34 | X163030600Y-102878600D03* 35 | X162530600Y-102878600D03* 36 | X162030600Y-102878600D03* 37 | X161530600Y-102878600D03* 38 | D10* 39 | X143413480Y-59347100D03* 40 | X145511520Y-59362340D03* 41 | X141892020Y-62160150D03* 42 | X139793980Y-62144910D03* 43 | X139788900Y-64952880D03* 44 | X141886940Y-64968120D03* 45 | X139788900Y-59334400D03* 46 | X141886940Y-59349640D03* 47 | X145516600Y-62174120D03* 48 | X143418560Y-62158880D03* 49 | X143416020Y-64965580D03* 50 | X145514060Y-64980820D03* 51 | X114498120Y-123913900D03* 52 | X112400080Y-123898660D03* 53 | X116019580Y-121100850D03* 54 | X118117620Y-121116090D03* 55 | X118122700Y-118308120D03* 56 | X116024660Y-118292880D03* 57 | X118122700Y-123926600D03* 58 | X116024660Y-123911360D03* 59 | D11* 60 | X134170800Y-80289400D03* 61 | X134670800Y-80289400D03* 62 | X135170800Y-80289400D03* 63 | X135670800Y-80289400D03* 64 | D10* 65 | X112395000Y-121086880D03* 66 | X114493040Y-121102120D03* 67 | X114495580Y-118295420D03* 68 | X112397540Y-118280180D03* 69 | D11* 70 | X113427000Y-103022400D03* 71 | X113927000Y-103022400D03* 72 | X114427000Y-103022400D03* 73 | X114927000Y-103022400D03* 74 | D10* 75 | X133073140Y-65018920D03* 76 | X130975100Y-65003680D03* 77 | X130980180Y-62195710D03* 78 | X133078220Y-62210950D03* 79 | X133073140Y-59400440D03* 80 | X130975100Y-59385200D03* 81 | X136700260Y-65031620D03* 82 | X134602220Y-65016380D03* 83 | X134604760Y-62209680D03* 84 | X136702800Y-62224920D03* 85 | X136697720Y-59413140D03* 86 | X134599680Y-59397900D03* 87 | M02* 88 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-F_Paste.gbr: -------------------------------------------------------------------------------- 1 | G04 #@! TF.GenerationSoftware,KiCad,Pcbnew,(5.1.5)-3* 2 | G04 #@! TF.CreationDate,2021-03-18T13:29:50-04:00* 3 | G04 #@! TF.ProjectId,LED_Harness_3x2_RED+BLUE,4c45445f-4861-4726-9e65-73735f337832,rev?* 4 | G04 #@! TF.SameCoordinates,Original* 5 | G04 #@! TF.FileFunction,Paste,Top* 6 | G04 #@! TF.FilePolarity,Positive* 7 | %FSLAX46Y46*% 8 | G04 Gerber Fmt 4.6, Leading zero omitted, Abs format (unit mm)* 9 | G04 Created by KiCad (PCBNEW (5.1.5)-3) date 2021-03-18 13:29:50* 10 | %MOMM*% 11 | %LPD*% 12 | G04 APERTURE LIST* 13 | %ADD10R,1.500000X2.250000*% 14 | %ADD11R,0.300000X25.000000*% 15 | G04 APERTURE END LIST* 16 | D10* 17 | X163014660Y-123705620D03* 18 | X160916620Y-123690380D03* 19 | X157294580Y-120869710D03* 20 | X159392620Y-120884950D03* 21 | X159387540Y-118074440D03* 22 | X157289500Y-118059200D03* 23 | X159387540Y-123692920D03* 24 | X157289500Y-123677680D03* 25 | X160919160Y-120883680D03* 26 | X163017200Y-120898920D03* 27 | X163012120Y-118087140D03* 28 | X160914080Y-118071900D03* 29 | D11* 30 | X141237400Y-80247200D03* 31 | X140737400Y-80247200D03* 32 | X140237400Y-80247200D03* 33 | X139737400Y-80247200D03* 34 | X163030600Y-102878600D03* 35 | X162530600Y-102878600D03* 36 | X162030600Y-102878600D03* 37 | X161530600Y-102878600D03* 38 | D10* 39 | X143413480Y-59347100D03* 40 | X145511520Y-59362340D03* 41 | X141892020Y-62160150D03* 42 | X139793980Y-62144910D03* 43 | X139788900Y-64952880D03* 44 | X141886940Y-64968120D03* 45 | X139788900Y-59334400D03* 46 | X141886940Y-59349640D03* 47 | X145516600Y-62174120D03* 48 | X143418560Y-62158880D03* 49 | X143416020Y-64965580D03* 50 | X145514060Y-64980820D03* 51 | X114498120Y-123913900D03* 52 | X112400080Y-123898660D03* 53 | X116019580Y-121100850D03* 54 | X118117620Y-121116090D03* 55 | X118122700Y-118308120D03* 56 | X116024660Y-118292880D03* 57 | X118122700Y-123926600D03* 58 | X116024660Y-123911360D03* 59 | D11* 60 | X134170800Y-80289400D03* 61 | X134670800Y-80289400D03* 62 | X135170800Y-80289400D03* 63 | X135670800Y-80289400D03* 64 | D10* 65 | X112395000Y-121086880D03* 66 | X114493040Y-121102120D03* 67 | X114495580Y-118295420D03* 68 | X112397540Y-118280180D03* 69 | D11* 70 | X113427000Y-103022400D03* 71 | X113927000Y-103022400D03* 72 | X114427000Y-103022400D03* 73 | X114927000Y-103022400D03* 74 | D10* 75 | X133073140Y-65018920D03* 76 | X130975100Y-65003680D03* 77 | X130980180Y-62195710D03* 78 | X133078220Y-62210950D03* 79 | X133073140Y-59400440D03* 80 | X130975100Y-59385200D03* 81 | X136700260Y-65031620D03* 82 | X134602220Y-65016380D03* 83 | X134604760Y-62209680D03* 84 | X136702800Y-62224920D03* 85 | X136697720Y-59413140D03* 86 | X134599680Y-59397900D03* 87 | M02* 88 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-bottom-pos.csv: -------------------------------------------------------------------------------- 1 | Ref,Val,Package,PosX,PosY,Rot,Side 2 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE-top-pos.csv: -------------------------------------------------------------------------------- 1 | Ref,Val,Package,PosX,PosY,Rot,Side 2 | "J1"," ","FFC_Male_1x02-1MP_P0.50m",114.177000,-78.672400,180.000000,top 3 | "J1"," ","FFC_Male_1x02-1MP_P0.50m",140.487400,-104.597200,0.000000,top 4 | "J1"," ","FFC_Male_1x02-1MP_P0.50m",162.280600,-127.228600,0.000000,top 5 | "J1"," ","FFC_Male_1x02-1MP_P0.50m",134.920800,-104.639400,0.000000,top 6 | "LED1","LB_T64G-V1CA-59-Z","LEDM3528X210N",158.338520,-123.690380,180.000000,top 7 | "LED1","LB_T64G-V1CA-59-Z","LEDM3528X210N",132.024120,-65.016380,180.000000,top 8 | "LED1","LB_T64G-V1CA-59-Z","LEDM3528X210N",140.837920,-64.965580,180.000000,top 9 | "LED1","LB_T64G-V1CA-59-Z","LEDM3528X210N",117.073680,-118.295420,0.000000,top 10 | "LED2","LB_T64G-V1CA-59-Z","LEDM3528X210N",158.343600,-120.882410,180.000000,top 11 | "LED2","LB_T64G-V1CA-59-Z","LEDM3528X210N",132.029200,-62.208410,180.000000,top 12 | "LED2","LB_T64G-V1CA-59-Z","LEDM3528X210N",140.843000,-62.157610,180.000000,top 13 | "LED2","LB_T64G-V1CA-59-Z","LEDM3528X210N",117.068600,-121.103390,0.000000,top 14 | "LED3","LB_T64G-V1CA-59-Z","LEDM3528X210N",132.024120,-59.397900,180.000000,top 15 | "LED3","LB_T64G-V1CA-59-Z","LEDM3528X210N",117.073680,-123.913900,0.000000,top 16 | "LED3","LB_T64G-V1CA-59-Z","LEDM3528X210N",140.837920,-59.347100,180.000000,top 17 | "LED3","LB_T64G-V1CA-59-Z","LEDM3528X210N",158.338520,-118.071900,180.000000,top 18 | "LED4","LB_T64G-V1CA-59-Z","LEDM3528X210N",135.651240,-65.018920,0.000000,top 19 | "LED4","LB_T64G-V1CA-59-Z","LEDM3528X210N",144.465040,-64.968120,0.000000,top 20 | "LED4","LB_T64G-V1CA-59-Z","LEDM3528X210N",113.446560,-118.292880,180.000000,top 21 | "LED4","LB_T64G-V1CA-59-Z","LEDM3528X210N",161.965640,-123.692920,0.000000,top 22 | "LED5","LB_T64G-V1CA-59-Z","LEDM3528X210N",144.467580,-62.161420,0.000000,top 23 | "LED5","LB_T64G-V1CA-59-Z","LEDM3528X210N",135.653780,-62.212220,0.000000,top 24 | "LED5","LB_T64G-V1CA-59-Z","LEDM3528X210N",113.444020,-121.099580,180.000000,top 25 | "LED5","LB_T64G-V1CA-59-Z","LEDM3528X210N",161.968180,-120.886220,0.000000,top 26 | "LED6","LB_T64G-V1CA-59-Z","LEDM3528X210N",135.648700,-59.400440,0.000000,top 27 | "LED6","LB_T64G-V1CA-59-Z","LEDM3528X210N",113.449100,-123.911360,180.000000,top 28 | "LED6","LB_T64G-V1CA-59-Z","LEDM3528X210N",144.462500,-59.349640,0.000000,top 29 | "LED6","LB_T64G-V1CA-59-Z","LEDM3528X210N",161.963100,-118.074440,0.000000,top 30 | -------------------------------------------------------------------------------- /Hardware/Electrical/LED Harness/RED+BLUE/LED_Harness_3x2_RED+BLUE.drl: -------------------------------------------------------------------------------- 1 | M48 2 | ; DRILL file {KiCad (5.1.5)-3} date 3/18/2021 1:29:54 PM 3 | ; FORMAT={-:-/ absolute / inch / decimal} 4 | ; #@! TF.CreationDate,2021-03-18T13:29:54-04:00 5 | ; #@! TF.GenerationSoftware,Kicad,Pcbnew,(5.1.5)-3 6 | FMAT,2 7 | INCH 8 | T1C0.0157 9 | % 10 | G90 11 | G05 12 | T1 13 | X4.453Y-4.826 14 | X4.6197Y-4.8262 15 | X5.1567Y-2.4486 16 | X5.1584Y-2.6204 17 | X5.1873Y-2.3908 18 | X5.195Y-2.635 19 | X5.2393Y-2.4493 20 | X5.354Y-2.391 21 | X5.53Y-2.387 22 | X5.6967Y-2.3868 23 | X6.2233Y-4.8192 24 | X6.39Y-4.819 25 | T0 26 | M30 27 | -------------------------------------------------------------------------------- /Hardware/GelSlim Hardware Quick Start Tutorial.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/GelSlim Hardware Quick Start Tutorial.pdf -------------------------------------------------------------------------------- /Hardware/GelSlim Quick Start Tutorial-Updated.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/GelSlim Quick Start Tutorial-Updated.pdf -------------------------------------------------------------------------------- /Hardware/Mechanical/Elastomer/cutting_template.step: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | /* Generated by software containing ST-Developer 4 | * from STEP Tools, Inc. (www.steptools.com) 5 | */ 6 | /* OPTION: using custom renumber hook */ 7 | 8 | FILE_DESCRIPTION( 9 | /* description */ ('STEP AP214'), 10 | /* implementation_level */ '2;1'); 11 | 12 | FILE_NAME( 13 | /* name */ '6053769552977113f60a320c', 14 | /* time_stamp */ '2021-03-18T15:49:41+00:00', 15 | /* author */ (''), 16 | /* organization */ (''), 17 | /* preprocessor_version */ 'ST-DEVELOPER v18.1', 18 | /* originating_system */ ' ', 19 | /* authorisation */ ' '); 20 | 21 | FILE_SCHEMA (('AUTOMOTIVE_DESIGN {1 0 10303 214 3 1 1}')); 22 | ENDSEC; 23 | 24 | DATA; 25 | #10=PROPERTY_DEFINITION_REPRESENTATION(#14,#12); 26 | #11=PROPERTY_DEFINITION_REPRESENTATION(#15,#13); 27 | #12=REPRESENTATION('',(#16),#85); 28 | #13=REPRESENTATION('',(#17),#85); 29 | #14=PROPERTY_DEFINITION('pmi validation property','',#90); 30 | #15=PROPERTY_DEFINITION('pmi validation property','',#90); 31 | #16=VALUE_REPRESENTATION_ITEM('number of annotations',COUNT_MEASURE(0.)); 32 | #17=VALUE_REPRESENTATION_ITEM('number of views',COUNT_MEASURE(0.)); 33 | #18=SHAPE_REPRESENTATION_RELATIONSHIP('','',#57,#19); 34 | #19=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#55),#85); 35 | #20=PLANE('',#62); 36 | #21=PLANE('',#63); 37 | #22=ORIENTED_EDGE('',*,*,#26,.T.); 38 | #23=ORIENTED_EDGE('',*,*,#27,.F.); 39 | #24=ORIENTED_EDGE('',*,*,#26,.F.); 40 | #25=ORIENTED_EDGE('',*,*,#27,.T.); 41 | #26=EDGE_CURVE('',#28,#28,#30,.T.); 42 | #27=EDGE_CURVE('',#29,#29,#31,.T.); 43 | #28=VERTEX_POINT('',#79); 44 | #29=VERTEX_POINT('',#81); 45 | #30=CIRCLE('',#60,0.0160729880916987); 46 | #31=CIRCLE('',#61,0.0160729880916987); 47 | #32=EDGE_LOOP('',(#22)); 48 | #33=EDGE_LOOP('',(#23)); 49 | #34=EDGE_LOOP('',(#24)); 50 | #35=EDGE_LOOP('',(#25)); 51 | #36=FACE_BOUND('',#32,.T.); 52 | #37=FACE_BOUND('',#33,.T.); 53 | #38=FACE_BOUND('',#34,.T.); 54 | #39=FACE_BOUND('',#35,.T.); 55 | #40=CYLINDRICAL_SURFACE('',#59,0.0160729880916987); 56 | #41=ADVANCED_FACE('',(#36,#37),#40,.T.); 57 | #42=ADVANCED_FACE('',(#38),#20,.F.); 58 | #43=ADVANCED_FACE('',(#39),#21,.T.); 59 | #44=CLOSED_SHELL('',(#41,#42,#43)); 60 | #45=STYLED_ITEM('',(#46),#55); 61 | #46=PRESENTATION_STYLE_ASSIGNMENT((#47)); 62 | #47=SURFACE_STYLE_USAGE(.BOTH.,#48); 63 | #48=SURFACE_SIDE_STYLE('',(#51,#49)); 64 | #49=SURFACE_STYLE_RENDERING_WITH_PROPERTIES(.CONSTANT_SHADING.,#54,(#50)); 65 | #50=SURFACE_STYLE_TRANSPARENT(0.490196078431373); 66 | #51=SURFACE_STYLE_FILL_AREA(#52); 67 | #52=FILL_AREA_STYLE('',(#53)); 68 | #53=FILL_AREA_STYLE_COLOUR('',#54); 69 | #54=COLOUR_RGB('',0.901960784313726,0.901960784313726,0.901960784313726); 70 | #55=MANIFOLD_SOLID_BREP('Gel',#44); 71 | #56=SHAPE_DEFINITION_REPRESENTATION(#90,#57); 72 | #57=SHAPE_REPRESENTATION('Gel',(#58),#85); 73 | #58=AXIS2_PLACEMENT_3D('',#76,#64,#65); 74 | #59=AXIS2_PLACEMENT_3D('',#77,#66,#67); 75 | #60=AXIS2_PLACEMENT_3D('',#78,#68,#69); 76 | #61=AXIS2_PLACEMENT_3D('',#80,#70,#71); 77 | #62=AXIS2_PLACEMENT_3D('',#82,#72,#73); 78 | #63=AXIS2_PLACEMENT_3D('',#83,#74,#75); 79 | #64=DIRECTION('',(0.,0.,1.)); 80 | #65=DIRECTION('',(1.,0.,0.)); 81 | #66=DIRECTION('',(0.,-1.,0.)); 82 | #67=DIRECTION('',(0.,0.,-1.)); 83 | #68=DIRECTION('',(0.,-1.,0.)); 84 | #69=DIRECTION('',(0.,0.,-1.)); 85 | #70=DIRECTION('',(0.,-1.,0.)); 86 | #71=DIRECTION('',(0.,0.,-1.)); 87 | #72=DIRECTION('',(0.,-1.,0.)); 88 | #73=DIRECTION('',(1.,0.,0.)); 89 | #74=DIRECTION('',(0.,-1.,0.)); 90 | #75=DIRECTION('',(1.,0.,0.)); 91 | #76=CARTESIAN_POINT('',(0.,0.,0.)); 92 | #77=CARTESIAN_POINT('',(9.84186670961618E-19,0.0015,0.)); 93 | #78=CARTESIAN_POINT('',(9.84186670961618E-19,0.0015,0.)); 94 | #79=CARTESIAN_POINT('',(9.84186670961618E-19,0.0015,-0.0160729880916987)); 95 | #80=CARTESIAN_POINT('',(9.84186670961618E-19,0.,0.)); 96 | #81=CARTESIAN_POINT('',(9.84186670961618E-19,0.,-0.0160729880916987)); 97 | #82=CARTESIAN_POINT('',(0.,0.0015,0.)); 98 | #83=CARTESIAN_POINT('',(-0.01368346208073,0.,-0.01185022577363)); 99 | #84=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#45),#85); 100 | #85=( 101 | GEOMETRIC_REPRESENTATION_CONTEXT(3) 102 | GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#86)) 103 | GLOBAL_UNIT_ASSIGNED_CONTEXT((#89,#88,#87)) 104 | REPRESENTATION_CONTEXT('Gel','TOP_LEVEL_ASSEMBLY_PART') 105 | ); 106 | #86=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(5.E-6),#89, 107 | 'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); 108 | #87=( 109 | NAMED_UNIT(*) 110 | SI_UNIT($,.STERADIAN.) 111 | SOLID_ANGLE_UNIT() 112 | ); 113 | #88=( 114 | NAMED_UNIT(*) 115 | PLANE_ANGLE_UNIT() 116 | SI_UNIT($,.RADIAN.) 117 | ); 118 | #89=( 119 | LENGTH_UNIT() 120 | NAMED_UNIT(*) 121 | SI_UNIT($,.METRE.) 122 | ); 123 | #90=PRODUCT_DEFINITION_SHAPE('','',#91); 124 | #91=PRODUCT_DEFINITION('','',#93,#92); 125 | #92=PRODUCT_DEFINITION_CONTEXT('',#99,'design'); 126 | #93=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#95, 127 | .NOT_KNOWN.); 128 | #94=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#95)); 129 | #95=PRODUCT('Gel','Gel','Gel',(#97)); 130 | #96=PRODUCT_CATEGORY('',''); 131 | #97=PRODUCT_CONTEXT('',#99,'mechanical'); 132 | #98=APPLICATION_PROTOCOL_DEFINITION('international standard', 133 | 'automotive_design',2010,#99); 134 | #99=APPLICATION_CONTEXT( 135 | 'core data for automotive mechanical design processes'); 136 | ENDSEC; 137 | END-ISO-10303-21; 138 | -------------------------------------------------------------------------------- /Hardware/Mechanical/Fasteners/6659K650_OIL-EMBEDDED FLANGED SLEEVE BEARING.step: -------------------------------------------------------------------------------- 1 | ISO-10303-21; 2 | HEADER; 3 | /* Generated by software containing ST-Developer 4 | * from STEP Tools, Inc. (www.steptools.com) 5 | */ 6 | /* OPTION: using custom renumber hook */ 7 | 8 | FILE_DESCRIPTION( 9 | /* description */ ('STEP AP214'), 10 | /* implementation_level */ '2;1'); 11 | 12 | FILE_NAME( 13 | /* name */ '6053712352977113f60a0c5c', 14 | /* time_stamp */ '2021-03-18T15:26:28+00:00', 15 | /* author */ (''), 16 | /* organization */ (''), 17 | /* preprocessor_version */ 'ST-DEVELOPER v18.1', 18 | /* originating_system */ ' ', 19 | /* authorisation */ ' '); 20 | 21 | FILE_SCHEMA (('AUTOMOTIVE_DESIGN {1 0 10303 214 3 1 1}')); 22 | ENDSEC; 23 | 24 | DATA; 25 | #10=PROPERTY_DEFINITION_REPRESENTATION(#14,#12); 26 | #11=PROPERTY_DEFINITION_REPRESENTATION(#15,#13); 27 | #12=REPRESENTATION('',(#16),#157); 28 | #13=REPRESENTATION('',(#17),#157); 29 | #14=PROPERTY_DEFINITION('pmi validation property','',#162); 30 | #15=PROPERTY_DEFINITION('pmi validation property','',#162); 31 | #16=VALUE_REPRESENTATION_ITEM('number of annotations',COUNT_MEASURE(0.)); 32 | #17=VALUE_REPRESENTATION_ITEM('number of views',COUNT_MEASURE(0.)); 33 | #18=SHAPE_REPRESENTATION_RELATIONSHIP('','',#97,#19); 34 | #19=ADVANCED_BREP_SHAPE_REPRESENTATION('',(#95),#157); 35 | #20=CYLINDRICAL_SURFACE('',#105,0.00351); 36 | #21=CYLINDRICAL_SURFACE('',#107,0.002); 37 | #22=CYLINDRICAL_SURFACE('',#110,0.005); 38 | #23=ORIENTED_EDGE('',*,*,#35,.T.); 39 | #24=ORIENTED_EDGE('',*,*,#36,.F.); 40 | #25=ORIENTED_EDGE('',*,*,#37,.T.); 41 | #26=ORIENTED_EDGE('',*,*,#38,.F.); 42 | #27=ORIENTED_EDGE('',*,*,#39,.T.); 43 | #28=ORIENTED_EDGE('',*,*,#35,.F.); 44 | #29=ORIENTED_EDGE('',*,*,#36,.T.); 45 | #30=ORIENTED_EDGE('',*,*,#37,.F.); 46 | #31=ORIENTED_EDGE('',*,*,#40,.T.); 47 | #32=ORIENTED_EDGE('',*,*,#39,.F.); 48 | #33=ORIENTED_EDGE('',*,*,#40,.F.); 49 | #34=ORIENTED_EDGE('',*,*,#38,.T.); 50 | #35=EDGE_CURVE('',#41,#41,#47,.T.); 51 | #36=EDGE_CURVE('',#42,#42,#48,.T.); 52 | #37=EDGE_CURVE('',#43,#43,#49,.T.); 53 | #38=EDGE_CURVE('',#44,#44,#50,.T.); 54 | #39=EDGE_CURVE('',#45,#45,#51,.T.); 55 | #40=EDGE_CURVE('',#46,#46,#52,.T.); 56 | #41=VERTEX_POINT('',#140); 57 | #42=VERTEX_POINT('',#142); 58 | #43=VERTEX_POINT('',#145); 59 | #44=VERTEX_POINT('',#147); 60 | #45=VERTEX_POINT('',#150); 61 | #46=VERTEX_POINT('',#154); 62 | #47=CIRCLE('',#100,0.00351); 63 | #48=CIRCLE('',#101,0.002); 64 | #49=CIRCLE('',#103,0.002); 65 | #50=CIRCLE('',#104,0.005); 66 | #51=CIRCLE('',#106,0.00351); 67 | #52=CIRCLE('',#109,0.005); 68 | #53=EDGE_LOOP('',(#23)); 69 | #54=EDGE_LOOP('',(#24)); 70 | #55=EDGE_LOOP('',(#25)); 71 | #56=EDGE_LOOP('',(#26)); 72 | #57=EDGE_LOOP('',(#27)); 73 | #58=EDGE_LOOP('',(#28)); 74 | #59=EDGE_LOOP('',(#29)); 75 | #60=EDGE_LOOP('',(#30)); 76 | #61=EDGE_LOOP('',(#31)); 77 | #62=EDGE_LOOP('',(#32)); 78 | #63=EDGE_LOOP('',(#33)); 79 | #64=EDGE_LOOP('',(#34)); 80 | #65=FACE_BOUND('',#53,.T.); 81 | #66=FACE_BOUND('',#54,.T.); 82 | #67=FACE_BOUND('',#55,.T.); 83 | #68=FACE_BOUND('',#56,.T.); 84 | #69=FACE_BOUND('',#57,.T.); 85 | #70=FACE_BOUND('',#58,.T.); 86 | #71=FACE_BOUND('',#59,.T.); 87 | #72=FACE_BOUND('',#60,.T.); 88 | #73=FACE_BOUND('',#61,.T.); 89 | #74=FACE_BOUND('',#62,.T.); 90 | #75=FACE_BOUND('',#63,.T.); 91 | #76=FACE_BOUND('',#64,.T.); 92 | #77=PLANE('',#99); 93 | #78=PLANE('',#102); 94 | #79=PLANE('',#108); 95 | #80=ADVANCED_FACE('',(#65,#66),#77,.T.); 96 | #81=ADVANCED_FACE('',(#67,#68),#78,.F.); 97 | #82=ADVANCED_FACE('',(#69,#70),#20,.T.); 98 | #83=ADVANCED_FACE('',(#71,#72),#21,.F.); 99 | #84=ADVANCED_FACE('',(#73,#74),#79,.T.); 100 | #85=ADVANCED_FACE('',(#75,#76),#22,.T.); 101 | #86=CLOSED_SHELL('',(#80,#81,#82,#83,#84,#85)); 102 | #87=STYLED_ITEM('',(#88),#95); 103 | #88=PRESENTATION_STYLE_ASSIGNMENT((#89)); 104 | #89=SURFACE_STYLE_USAGE(.BOTH.,#90); 105 | #90=SURFACE_SIDE_STYLE('',(#91)); 106 | #91=SURFACE_STYLE_FILL_AREA(#92); 107 | #92=FILL_AREA_STYLE('',(#93)); 108 | #93=FILL_AREA_STYLE_COLOUR('',#94); 109 | #94=COLOUR_RGB('',0.752941176470588,0.752941176470588,0.752941176470588); 110 | #95=MANIFOLD_SOLID_BREP('Part 1',#86); 111 | #96=SHAPE_DEFINITION_REPRESENTATION(#162,#97); 112 | #97=SHAPE_REPRESENTATION('Part 1',(#98),#157); 113 | #98=AXIS2_PLACEMENT_3D('',#137,#111,#112); 114 | #99=AXIS2_PLACEMENT_3D('',#138,#113,#114); 115 | #100=AXIS2_PLACEMENT_3D('',#139,#115,#116); 116 | #101=AXIS2_PLACEMENT_3D('',#141,#117,#118); 117 | #102=AXIS2_PLACEMENT_3D('',#143,#119,#120); 118 | #103=AXIS2_PLACEMENT_3D('',#144,#121,#122); 119 | #104=AXIS2_PLACEMENT_3D('',#146,#123,#124); 120 | #105=AXIS2_PLACEMENT_3D('',#148,#125,#126); 121 | #106=AXIS2_PLACEMENT_3D('',#149,#127,#128); 122 | #107=AXIS2_PLACEMENT_3D('',#151,#129,#130); 123 | #108=AXIS2_PLACEMENT_3D('',#152,#131,#132); 124 | #109=AXIS2_PLACEMENT_3D('',#153,#133,#134); 125 | #110=AXIS2_PLACEMENT_3D('',#155,#135,#136); 126 | #111=DIRECTION('',(0.,0.,1.)); 127 | #112=DIRECTION('',(1.,0.,0.)); 128 | #113=DIRECTION('',(0.,0.,1.)); 129 | #114=DIRECTION('',(0.,-1.,0.)); 130 | #115=DIRECTION('',(0.,0.,1.)); 131 | #116=DIRECTION('',(0.,-1.,0.)); 132 | #117=DIRECTION('',(0.,0.,1.)); 133 | #118=DIRECTION('',(0.,-1.,0.)); 134 | #119=DIRECTION('',(0.,0.,1.)); 135 | #120=DIRECTION('',(0.,-1.,0.)); 136 | #121=DIRECTION('',(0.,0.,1.)); 137 | #122=DIRECTION('',(0.,-1.,0.)); 138 | #123=DIRECTION('',(0.,0.,1.)); 139 | #124=DIRECTION('',(0.,-1.,0.)); 140 | #125=DIRECTION('',(0.,0.,-1.)); 141 | #126=DIRECTION('',(0.,1.,0.)); 142 | #127=DIRECTION('',(0.,0.,1.)); 143 | #128=DIRECTION('',(0.,-1.,0.)); 144 | #129=DIRECTION('',(0.,0.,-1.)); 145 | #130=DIRECTION('',(0.,1.,0.)); 146 | #131=DIRECTION('',(0.,0.,1.)); 147 | #132=DIRECTION('',(0.,-1.,0.)); 148 | #133=DIRECTION('',(0.,0.,1.)); 149 | #134=DIRECTION('',(0.,-1.,0.)); 150 | #135=DIRECTION('',(0.,0.,-1.)); 151 | #136=DIRECTION('',(0.,1.,0.)); 152 | #137=CARTESIAN_POINT('',(0.,0.,0.)); 153 | #138=CARTESIAN_POINT('',(0.,0.,0.006)); 154 | #139=CARTESIAN_POINT('',(0.,0.,0.006)); 155 | #140=CARTESIAN_POINT('',(0.,-0.00351,0.006)); 156 | #141=CARTESIAN_POINT('',(0.,0.,0.006)); 157 | #142=CARTESIAN_POINT('',(0.,-0.002,0.006)); 158 | #143=CARTESIAN_POINT('',(0.,0.,0.)); 159 | #144=CARTESIAN_POINT('',(0.,0.,0.)); 160 | #145=CARTESIAN_POINT('',(0.,-0.002,0.)); 161 | #146=CARTESIAN_POINT('',(0.,0.,0.)); 162 | #147=CARTESIAN_POINT('',(0.,-0.005,0.)); 163 | #148=CARTESIAN_POINT('',(0.,0.,0.006)); 164 | #149=CARTESIAN_POINT('',(0.,0.,0.0015)); 165 | #150=CARTESIAN_POINT('',(0.,-0.00351,0.0015)); 166 | #151=CARTESIAN_POINT('',(0.,0.,0.006)); 167 | #152=CARTESIAN_POINT('',(0.,0.,0.0015)); 168 | #153=CARTESIAN_POINT('',(0.,0.,0.0015)); 169 | #154=CARTESIAN_POINT('',(0.,-0.005,0.0015)); 170 | #155=CARTESIAN_POINT('',(0.,0.,0.0015)); 171 | #156=MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#87),#157); 172 | #157=( 173 | GEOMETRIC_REPRESENTATION_CONTEXT(3) 174 | GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#158)) 175 | GLOBAL_UNIT_ASSIGNED_CONTEXT((#161,#160,#159)) 176 | REPRESENTATION_CONTEXT('Part 1','TOP_LEVEL_ASSEMBLY_PART') 177 | ); 178 | #158=UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(5.E-6),#161, 179 | 'DISTANCE_ACCURACY_VALUE','Maximum Tolerance applied to model'); 180 | #159=( 181 | NAMED_UNIT(*) 182 | SI_UNIT($,.STERADIAN.) 183 | SOLID_ANGLE_UNIT() 184 | ); 185 | #160=( 186 | NAMED_UNIT(*) 187 | PLANE_ANGLE_UNIT() 188 | SI_UNIT($,.RADIAN.) 189 | ); 190 | #161=( 191 | LENGTH_UNIT() 192 | NAMED_UNIT(*) 193 | SI_UNIT($,.METRE.) 194 | ); 195 | #162=PRODUCT_DEFINITION_SHAPE('','',#163); 196 | #163=PRODUCT_DEFINITION('','',#165,#164); 197 | #164=PRODUCT_DEFINITION_CONTEXT('',#171,'design'); 198 | #165=PRODUCT_DEFINITION_FORMATION_WITH_SPECIFIED_SOURCE('','',#167, 199 | .NOT_KNOWN.); 200 | #166=PRODUCT_RELATED_PRODUCT_CATEGORY('','',(#167)); 201 | #167=PRODUCT('Part 1','Part 1','Part 1',(#169)); 202 | #168=PRODUCT_CATEGORY('',''); 203 | #169=PRODUCT_CONTEXT('',#171,'mechanical'); 204 | #170=APPLICATION_PROTOCOL_DEFINITION('international standard', 205 | 'automotive_design',2010,#171); 206 | #171=APPLICATION_CONTEXT( 207 | 'core data for automotive mechanical design processes'); 208 | ENDSEC; 209 | END-ISO-10303-21; 210 | -------------------------------------------------------------------------------- /Hardware/Mechanical/Fasteners/McMasterCarr_Order.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/Mechanical/Fasteners/McMasterCarr_Order.PNG -------------------------------------------------------------------------------- /Hardware/Mechanical/Finger/Robtiq 2F-85/STL/finger_back.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/Mechanical/Finger/Robtiq 2F-85/STL/finger_back.stl -------------------------------------------------------------------------------- /Hardware/Mechanical/Finger/Robtiq 2F-85/STL/finger_body.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/Mechanical/Finger/Robtiq 2F-85/STL/finger_body.stl -------------------------------------------------------------------------------- /Hardware/Mechanical/Finger/Robtiq 2F-85/STL/finger_tip.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/Mechanical/Finger/Robtiq 2F-85/STL/finger_tip.stl -------------------------------------------------------------------------------- /Hardware/Mechanical/Finger/Weiss WSG-32/STL/finger_back.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/Mechanical/Finger/Weiss WSG-32/STL/finger_back.stl -------------------------------------------------------------------------------- /Hardware/Mechanical/Finger/Weiss WSG-32/STL/finger_body.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/Mechanical/Finger/Weiss WSG-32/STL/finger_body.stl -------------------------------------------------------------------------------- /Hardware/Mechanical/Finger/Weiss WSG-32/STL/finger_tip.stl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Hardware/Mechanical/Finger/Weiss WSG-32/STL/finger_tip.stl -------------------------------------------------------------------------------- /Hardware/README.md: -------------------------------------------------------------------------------- 1 | # CAD Models 2 | Public model files of the electrical and mechanical hardware can be found at the following [link](https://cad.onshape.com/documents/d349cbe923c6f7dbdb5a9266/w/20eed945a1a4fb3729cc1f11/e/83841e7147a77c529f63497d) 3 | or can be downloaded individually from the github repo folders. 4 | 5 | # Raspicam Spectral Response 6 | Optical transmission information for the Raspicam's OV5647 sensor can be found [here](https://github.com/scivision/raspicam-spectra/). 7 | 8 | # LED Datasheets 9 | Datasheets for LED selection can be found on the manufacturers [website](https://www.osram.com/appsn/ProductSelector/?lang=en&refinementList%5Bhbc%5D%5B0%5D=TOPLED&refinementList%5Bhbc%5D%5B1%5D=Mini%20TOPLED&refinementList%5Bhbc%5D%5B2%5D=Power%20TOPLED&refinementList%5Bcolor_emulti%5D%5B0%5D=Blue%20%28450-480%20nm%29&refinementList%5Bcolor_emulti%5D%5B1%5D=True%20Green%20%28513-545%20nm%29&refinementList%5Bcolor_emulti%5D%5B2%5D=Pure%20Green%20%28554-566%20nm%29&refinementList%5Bcolor_emulti%5D%5B3%5D=Red%20%28612-630%20nm%29&refinementList%5Bcolor_emulti%5D%5B4%5D=Super%20Red%20%28627-639%20nm%29&refinementList%5Bcolor_emulti%5D%5B5%5D=Deep%20Blue%20%28439-461%20nm%29&page=1&range%5Bbeam_angle_keyword%5D%5Bmin%5D=50&range%5Bbeam_angle_keyword%5D%5Bmax%5D=70). 10 | -------------------------------------------------------------------------------- /Ordering/LED_Driver_DigiKey_Quote.csv: -------------------------------------------------------------------------------- 1 | Digi-Key Part Number,Manufacturer,Manufacturer Part Number,Description,Customer Reference,Quantity 1,Price,Quantity 2,Price,Quantity 3,Price,Stock Status,Mfg Std Lead Time,Comments,RoHS Status,Lead Free Status,REACH Status 2 | 541-0.0XCT-ND,VISHAY DALE (VA),CRCW25120000Z0EG,RES SMD 0 OHM JUMPER 1W 2512,,1," 0.28000",10," 0.23400",100," 0.09100",IN STOCK,28 Weeks,Alternate Packaging Exists,ROHS3 Compliant,Lead free,Not Available 3 | 609-4616-1-ND,AMPHENOL FCI (VA),10118193-0001LF,CONN RCPT USB2.0 MICRO B SMD R/A,,1," 0.41000",10," 0.38800",100," 0.27100",IN STOCK,14 Weeks,Alternate Packaging Exists Import Tariff may apply to this part if shipping to the United States,RoHS Compliant,Lead free,Unaffected Jan-2021 4 | 255-5484-1-ND,PANASONIC ELECTRIC WORKS (VA),AYF530265T,CONN FPC 2POS 0.50MM R/A,,3," 1.52000",30," 1.29000",300," 1.06600",IN STOCK,10 Weeks,Alternate Packaging Exists,RoHS Compliant,Lead free,Not Available 5 | YAG5595CT-ND,YAGEO (VA),AC2512FK-0745R3L,RES SMD 45.3 OHM 1% 1W 2512,,2," 0.46000",20," 0.34400",200," 0.14500",IN STOCK,20 Weeks,Alternate Packaging Exists Import Tariff may apply to this part if shipping to the United States,ROHS3 Compliant,Lead free,Unaffected Jun-2020 6 | RMCF2512FT60R4CT-ND,STACKPOLE ELECTRONICS INC (VA),RMCF2512FT60R4,RES 60.4 OHM 1% 1W 2512,,1," 0.32000",10," 0.26900",100," 0.10500",IN STOCK,21 Weeks,Alternate Packaging Exists,ROHS3 Compliant,Lead free,Unaffected Jun-2020 7 | -------------------------------------------------------------------------------- /Ordering/LED_Driver_Digikey_Quote.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Ordering/LED_Driver_Digikey_Quote.pdf -------------------------------------------------------------------------------- /Ordering/LED_Harness_Mouser_Quote.csv: -------------------------------------------------------------------------------- 1 | ,,,,,,,,,, 2 | ,,,,,,,,,, 3 | ,,,,,,,,,, 4 | ,,,,,,,,,, 5 | ,,,,,,,,,, 6 | SHOPPING CART,,,,,,,,,, 7 | This is not an invoice,,,,,,,,,, 8 | 18-Mar-21 11:27:07,,,,,,,,,, 9 | ,Mouser #,Mfr. #,Manufacturer,Customer #,Description,RoHS,Lifecycle,Order Qty.,Price (USD),Ext.: (USD) 10 | 1,720-LBT66GV2CAA7291,LB T66G-V2CA-59-Z484,Osram Opto Semiconductor,,Standard LEDs - SMD Blue TOPLED TF,RoHS Compliant,Obsolete,100,$-.--,$-.-- 11 | 2,720-LTT66GCBEAA7293,LT T66G-CBEA-29-N424-20-R33-Z,Osram Opto Semiconductor,,Standard LEDs - SMD True Green TOPLED Black,RoHS Compliant,New Product,100,$0.324,$32.40 12 | 3,720-LRT66FAABB11Z,LR T66F-AABB-1-1-Z,Osram Opto Semiconductor,,Standard LEDs - SMD Red,RoHS Compliant,,100,$0.242,$24.20 13 | ,,,,,,,,,, 14 | ,,,,,,,,,, 15 | By submitting your order you agree to these terms and conditions.,,,,,,,,,Merchandise:,$56.60 16 | Prices are reflected at the date and time shown.,,,,,,,,,Shipping Charge:,$7.99 17 | -------------------------------------------------------------------------------- /Ordering/LED_Harness_Mouser_Quote.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Ordering/LED_Harness_Mouser_Quote.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # GelSlim 3.0 2 | **Note:** The MCube Lab at MIT has closed and no longer distributes pre-made sensors by mail upon request. 3 | Consider the latest version [GelSlim 4.0](https://www.mmintlab.com/research/gelslim-4-0/) at the University of Michigan's [MMint Lab](https://www.mmintlab.com/) for an easier to reproduce version of the sensor. 4 | 5 | ## Quick-Start 6 | Please follow the [Hardware Quick Start Guide](https://github.com/mcubelab/gelslim/blob/main/Hardware/GelSlim%20Quick%20Start%20Tutorial-Updated.pdf) instructions to build your own sensor. The step-by-step resources found below are in the process of being updated. 7 | 8 | ## Step-by-Step Instructions 9 | **Click on the pictures below for more information** 10 | 11 | | 3-D Printing | PCB Fabrication | Elastomer Fabrication | Assembly | 12 | |---|---|---|---| 13 | | | | | | 14 | 15 | ## Mechanical 16 | | Elastomer | Fasteners | Body | Shaping Lens | 17 | |---|---|---|---| 18 | | | | | | 19 | 20 | ## Electrical 21 | | LED Driver | LED Harness | Camera | Connectors and Adapters | 22 | |---|---|---|---| 23 | | | | | | 24 | 25 | ## Software 26 | | Raspberry Pi | Dependencies | GUI | Calibration | 27 | |---|---|---|---| 28 | | | | | | 29 | 30 | ## More Details 31 | | Mechanical Tools and Consumables | Electronics Components and Tools | Known Issues | Contributing | 32 | |---|---|---|---| 33 | | | | | | 34 | 35 | ## More Information 36 | [GelSlim 3.0 - Webpage](https://ianhtaylor.net/gelslim-30)
37 | [GelSlim 3.0 - Paper](https://arxiv.org/abs/2103.12269)
38 | [GelSlim 3.0 - Demo](https://www.youtube.com/watch?v=Y10XN9byO0g)
39 | [MCube Lab - YouTube Channel](https://www.youtube.com/channel/UCMYUWZTFWZjj7pUc3UPUjig)
40 | 41 | ## Notice 42 | This repo is under construction, the following files and folders are not present. 43 | - src/images/step_by_step/3d_printing.jpg 44 | - Image links to and README documentation for root sub-folders 45 | - Step-by-step Instructions 46 | - Mechanical 47 | - Electrical 48 | - Software 49 | - More Details 50 | - /Simulation and Optimization/Results 51 | - /Simulation and Optimization/Settings 52 | - /Software/GUI 53 | - Tangential Force Calculation 54 | - Normal Force Calculation 55 | 56 | ## Authors 57 | Ian Taylor 58 | 59 | ## License 60 | These design files are licensed under CC-by-NC, as found in the [LICENSE](https://github.com/mcubelab/gelslim/blob/main/LICENSE) file. 61 | -------------------------------------------------------------------------------- /Simulation and Optimization/Results/README.txt: -------------------------------------------------------------------------------- 1 | Results Table -------------------------------------------------------------------------------- /Simulation and Optimization/Settings/README.txt: -------------------------------------------------------------------------------- 1 | Settings Table -------------------------------------------------------------------------------- /Software/GUI/GelSlim/GelSlim.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tab=" --tab" 4 | options=() 5 | 6 | cmds[1]="roscore" 7 | cmds[2]="bash raspi_connect.sh" 8 | #cmds[3]="rosrun rqt_reconfigure rqt_reconfigure" 9 | 10 | options1=(--tab -- "bash -c '${cmds[1]} ; bash'") 11 | options2=(--tab -- "bash -c '${cmds[2]} ; bash'") 12 | #options3=(--tab -e "bash -c '${cmds[3]} ; bash'") 13 | 14 | gnome-terminal "${options1[@]}" 15 | sleep 5 16 | 17 | gnome-terminal "${options2[@]}" 18 | sleep 10 19 | 20 | #gnome-terminal "${options3[@]}" 21 | #sleep 5 22 | 23 | exit 0 24 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/ROS.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tab=" --tab" 4 | options=() 5 | 6 | cmds[1]="roscore" 7 | cmds[2]="bash raspi_connect.sh" 8 | #cmds[3]="rosrun rqt_reconfigure rqt_reconfigure" 9 | 10 | options1=(--tab -e "bash -c '${cmds[1]} ; bash'") 11 | options2=(--tab -e "bash -c '${cmds[2]} ; bash'") 12 | #options3=(--tab -e "bash -c '${cmds[3]} ; bash'") 13 | 14 | gnome-terminal "${options1[@]}" 15 | sleep 5 16 | 17 | gnome-terminal "${options2[@]}" 18 | sleep 10 19 | 20 | #gnome-terminal "${options3[@]}" 21 | #sleep 5 22 | 23 | exit 0 24 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/abe_corr.npz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/abe_corr.npz -------------------------------------------------------------------------------- /Software/GUI/GelSlim/calibration.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/calibration.pyc -------------------------------------------------------------------------------- /Software/GUI/GelSlim/camera.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo -n '[INFO] Showing Camera Feed ...' 3 | python gelsight_show_image.py 4 | 5 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/fast_poisson.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | # -*- coding: utf-8 -*- 3 | """ 4 | Created on Thu Oct 4 19:11:16 2018 5 | 6 | @author: siyuan 7 | """ 8 | import numpy as np 9 | from scipy.fftpack import dst 10 | from scipy.fftpack import idst 11 | #import matplotlib.pyplot as plt 12 | 13 | def fast_poisson(gx,gy): 14 | 15 | # j = 1:ydim-1; 16 | # k = 1:xdim-1; 17 | # 18 | # % Laplacian 19 | # gyy(j+1,k) = gy(j+1,k) - gy(j,k); 20 | # gxx(j,k+1) = gx(j,k+1) - gx(j,k); 21 | 22 | 23 | m,n = gx.shape 24 | gxx = np.zeros((m,n)) 25 | gyy = np.zeros((m,n)) 26 | f = np.zeros((m,n)) 27 | img = np.zeros((m,n)) 28 | gyy[1:,:-1] = gy[1:,:-1] - gy[:-1,:-1] 29 | gxx[:-1,1:] = gx[:-1,1:] - gx[:-1,:-1] 30 | f = gxx + gyy 31 | 32 | f2 = f[1:-1,1:-1].copy() 33 | 34 | f_sinx = dst(f2,norm='ortho') 35 | f_sinxy = dst(f_sinx.T,norm='ortho').T 36 | 37 | 38 | 39 | x_mesh, y_mesh = np.meshgrid(range(n-2),range(m-2)) 40 | x_mesh = x_mesh +1 41 | y_mesh = y_mesh +1 42 | denom = (2*np.cos(np.pi*x_mesh/(n-1))-2) + (2*np.cos(np.pi*y_mesh/(m-1))-2) 43 | 44 | 45 | f3 = f_sinxy/denom 46 | # plt.figure(10) 47 | # plt.imshow(denom) 48 | # plt.show() 49 | f_realx = idst(f3,norm='ortho') 50 | f_realxy = idst(f_realx.T,norm='ortho').T 51 | img[1:-1,1:-1] = f_realxy.copy() 52 | return img 53 | 54 | #%% -------------------------------------------------------------------------------- /Software/GUI/GelSlim/fast_poisson.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/fast_poisson.pyc -------------------------------------------------------------------------------- /Software/GUI/GelSlim/gelsight_show_image.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from sensor_msgs.msg import CompressedImage 4 | import numpy as np 5 | import time 6 | import rospy, math, cv2, os 7 | 8 | global count 9 | count=0 10 | class slip_detection_reaction: 11 | 12 | def __init__(self): 13 | 14 | self.image_sub = rospy.Subscriber("/raspicam_node1/image/compressed",CompressedImage,self.call_back,queue_size = 1,buff_size=2**24) 15 | 16 | def rgb2gray(self,rgb): 17 | return np.dot(rgb[...,:3], [0.5, 0.5, 0.]) 18 | 19 | def call_back(self,data): 20 | t = time.time() 21 | np_arr = np.fromstring(data.data, np.uint8) 22 | 23 | 24 | 25 | raw_imag = cv2.imdecode(np_arr, cv2.IMREAD_COLOR).astype(np.uint8) 26 | 27 | ab_array = np.load('abe_corr.npz') 28 | x_index = ab_array['x'] 29 | y_index = ab_array['y'] 30 | raw_imag = raw_imag[x_index, y_index, :] 31 | 32 | cv2.imshow('raw_image',raw_imag) 33 | #cv2.imshow('red',raw_imag[:,:,2]) 34 | #cv2.imshow('green',raw_imag[:,:,1]) 35 | #cv2.imshow('blue',raw_imag[:,:,0]) 36 | cv2.waitKey(1) & 0xFF 37 | 38 | # if the `q` key was pressed, break from the loop 39 | if cv2.waitKey(1) & 0xFF == ord('q'): 40 | cv2.destroyAllWindows() 41 | 42 | def main(): 43 | print("\n[INFO] Press Ctrl+C in terminal to exit camera live feed...") 44 | rospy.init_node('slip_detector', anonymous=True) 45 | while not rospy.is_shutdown(): 46 | 47 | slip_detector = slip_detection_reaction() 48 | rospy.spin() 49 | 50 | 51 | if __name__ == "__main__": 52 | main() 53 | 54 | #%% 55 | 56 | 57 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/gui.py: -------------------------------------------------------------------------------- 1 | from __future__ import print_function 2 | import tkSimpleDialog as simpledialog 3 | from Tkinter import * 4 | import Tkinter , Tkconstants, tkFileDialog 5 | import tkMessageBox as messagebox 6 | import os, signal, rosgraph, time, roswtf 7 | from os import path 8 | import socket 9 | import sys 10 | import fileinput 11 | import argparse 12 | from subprocess import Popen, PIPE 13 | 14 | 15 | root_calib= None 16 | root_recon= None 17 | filename = None 18 | tablename = None 19 | BallDiam = str(4.76) 20 | Pixdiam = str(80) 21 | local_ip = None 22 | raspi_ip = None 23 | res_w=str(427) 24 | res_h=str(320) 25 | ip_count=0 26 | ball_count=0 27 | funny=0 28 | 29 | ap = argparse.ArgumentParser() 30 | ap.add_argument("-a","--automatic", required=False, type=int, help="[1] find IP addresses automatically, [2] Manually input IP addresses.") 31 | args=vars(ap.parse_args()) 32 | 33 | 34 | 35 | #CONNECT TO RASPBERRY PI (FINISHED) 36 | def Connect(): 37 | global funny 38 | if rosgraph.is_master_online(): 39 | print('[INFO] Raspberry Pi is already connected...') 40 | funny += 1 41 | if funny ==10 : 42 | print ("HA HA verrry funny...") 43 | if funny ==13: 44 | print ("why") 45 | if funny ==14: 46 | print ("are") 47 | if funny ==15: 48 | print ("you") 49 | if funny ==16: 50 | print ("so") 51 | if funny ==17: 52 | print ("disrespectful") 53 | if funny ==18: 54 | print ("?") 55 | if funny ==20: 56 | print ("Goodbye") 57 | on_closing() 58 | if funny ==25: 59 | print (":P") 60 | if funny ==30: 61 | os.system("rosnode kill --all") 62 | pid=os.fork() 63 | os.kill(pid,signal.SIGSTOP) 64 | root.destroy() 65 | os.system("pkill roscore") 66 | os.system("pkill ssh") 67 | os.system("pkill -n bash") 68 | os.system("pkill bash") 69 | exit() 70 | else: 71 | unconnected() 72 | #os.system("./camera.sh") 73 | 74 | 75 | #DISPLAY CAMERA FEED (FINISHED) 76 | def CameraFeed(): 77 | if rosgraph.is_master_online(): 78 | os.system("./camera.sh") 79 | else: 80 | unconnected() 81 | os.system("./camera.sh") 82 | 83 | 84 | #SENSOR CALIBRATION 85 | def Calibration(): 86 | global root_calib 87 | try: 88 | root_calib.destroy() 89 | Calibration() 90 | except: 91 | root_calib = Tk() 92 | root_calib.title("GelSlim - Sensor Calibration") 93 | root_calib.geometry("500x250") 94 | W=59; H=2; d=50; 95 | y1=0; y2=y1+d; y3=y2+d; y4=y3+d; y5=y4+d; 96 | B1 = Button(root_calib, text="Reconfigure Camera Parameters",width=W, height=H, command =Reconfigure).place(x=0,y=y1) 97 | B2 = Button(root_calib, text="Capture New Calibration Data",width=W, height=H, command =capture_data).place(x=0,y=y2) 98 | B3 = Button(root_calib, text="Label Calibration Data",width=W, height=H, command =label_data).place(x=0,y=y3) 99 | B4 = Button(root_calib, text="Load Existing Calibration Table",width=W, height=H, command =load_data).place(x=0,y=y4) 100 | B5 = Button(root_calib, text="Change Calibration Ball Parameters",width=W, height=H, command =ball_param).place(x=0,y=y5) 101 | def Reconfigure(): 102 | if rosgraph.is_master_online(): 103 | print("[INFO] Opening rosqt_reconfigure...") 104 | os.system("./reconfigure.sh") 105 | os.system("./camera.sh") 106 | else: 107 | unconnected() 108 | print("[INFO] Opening rosqt_reconfigure...") 109 | os.system("./reconfigure.sh") 110 | os.system("./camera.sh") 111 | def capture_data(): 112 | global image_num 113 | global root_calib 114 | if rosgraph.is_master_online(): 115 | print('[INFO] Beginning data capture...') 116 | image_num = simpledialog.askstring('Calibration Image Count','Please input an integer valued number of calibration images to capture.') 117 | root_calib.destroy() 118 | os.system("python img_processor.py -i "+ image_num) 119 | else: 120 | print("[INFO] Connecting to Raspberry Pi...") 121 | os.system("./ROS.sh") 122 | print("[INFO] Connected to Raspberry Pi...") 123 | print('[INFO] Beginning data capture...') 124 | image_num = simpledialog.askstring('Calibration Image Count','Please input an integer valued number of calibration images to capture.') 125 | root_calib.destroy() 126 | os.system("python img_processor.py -i "+ image_num) 127 | #print("[INFO] Press Ctrl+C to exit") 128 | #Dialog box asking how many calibration photos to take 129 | #change calibration.py to require "enter" to move forward 130 | def label_data(): 131 | global BallDiam 132 | global Pixdiam 133 | global root_calib 134 | root_calib.destroy() 135 | os.system("python calibration.py -d "+BallDiam+ " -p "+Pixdiam) 136 | def load_data(): 137 | global tablename 138 | global root_calib 139 | global root_recon 140 | tablename = tkFileDialog.askopenfilename(initialdir = "./load",parent=root, title='Calibration File',filetypes=[("Table","*.npy")]) 141 | if tablename: 142 | print("[INFO] Loaded Calibration Table...") 143 | if root_calib != None: 144 | root_calib.destroy() 145 | else: 146 | if root_calib != None: 147 | root_calib.destroy() 148 | else: 149 | root_recon.destroy() 150 | def ball_param(): 151 | global root_calib 152 | global BallDiam 153 | global Pixdiam 154 | global ball_count 155 | ball_count+=1 156 | print('[INFO] Updating calibration ball parameters...') 157 | print('[INFO] To change default parameters edit gui.py lines 16-17') 158 | print('[INFO] Printing Current Parameters...') 159 | print('[INFO] Calibration Ball Diameter: '+str(BallDiam)+' mm') 160 | print('[INFO] Calibration Ball Diameter: '+str(Pixdiam)+' px') 161 | if ball_count<=1: 162 | BallDiam_new=simpledialog.askstring('self.BallDiam','Please input the diameter of the calibration ball in millimeters') 163 | if BallDiam_new == '' or BallDiam_new ==None: 164 | print('[INFO] Value update cancelled') 165 | print('[INFO] Calibration Ball Diameter: '+str(BallDiam)+' mm') 166 | else: 167 | BallDiam=BallDiam_new 168 | print('[INFO] Value update cancelled') 169 | print('[INFO] Calibration Ball Diameter: '+str(BallDiam)+' mm') 170 | Pixdiam_new=simpledialog.askstring('self.Pixmm','Please input the diameter of the calibration ball in pixels') 171 | if Pixdiam_new =='' or Pixdiam_new ==None: 172 | print('[INFO] Value update cancelled') 173 | print('[INFO] Calibration Ball Diameter: '+str(Pixdiam)+' px') 174 | else: 175 | Pixdiam=Pixdiam_new 176 | print('[INFO] Value update complete') 177 | print('[INFO] Calibration Ball Diameter: '+str(Pixdiam)+' px') 178 | print('[INFO] Parameter update complete...') 179 | try: 180 | ball_count=0 181 | root_calib.destroy() 182 | except: 183 | ball_count=0 184 | print('[INFO] Closing dialog windows...') 185 | else: 186 | print('[INFO] A dialog window is already open...') 187 | 188 | #3D RECONSTRUCTION 189 | def Reconstruction(): 190 | global root_recon 191 | try: 192 | root_recon.destroy() 193 | Reconstruction() 194 | except: 195 | root_recon = Tk() 196 | root_recon.title("GelSlim - 3D Reconstruction") 197 | root_recon.geometry("500x150") 198 | W=59; H=2; d=50; 199 | y1=0; y2=y1+d; y3=y2+d; y4=y3+d 200 | B1 = Button(root_recon, text="Capture New Reconstruction Images",width=W, height=H, command =recon_cap).place(x=0,y=y1) 201 | B2 = Button(root_recon, text="Select a file to reconstruct",width=W, height=H, command =file_select).place(x=0,y=y2) 202 | B3 = Button(root_recon, text ="Realtime Depth Plot", width=W, height=H, command=realtime).place(x=0, y=y3) 203 | def recon_cap(): 204 | global root_recon 205 | if rosgraph.is_master_online(): 206 | print('[INFO] Beginning data capture...') 207 | root_recon.destroy() 208 | image_num = simpledialog.askstring('Reconstruction Image Count','Please input an integer valued number of reconstruction images to capture.') 209 | os.system("python recon_jpg.py -i "+ image_num) 210 | else: 211 | print("[INFO] Connecting to Raspberry Pi...") 212 | os.system("./ROS.sh") 213 | print("[INFO] Connected to Raspberry Pi...") 214 | print('[INFO] Beginning data capture...') 215 | root_recon.destroy() 216 | image_num = simpledialog.askstring('Reconstruction Image Count','Please input an integer valued number of reconstruction images to capture.') 217 | os.system("python recon_jpg.py -i "+ image_num) 218 | def file_select(): 219 | global root_recon 220 | global filename 221 | global tablename 222 | if tablename !=None: 223 | filename = tkFileDialog.askopenfilename(initialdir = "./reconstruction/images/",parent=root,title='3D Reconstruction Image',filetypes=[("JPG Image","*.jpg")]) 224 | if filename: 225 | print("[INFO] Plotting 3D Reconstruction...") 226 | exe_str=str("python test_poisson.py -n "+filename +" -c"+tablename +" -d "+BallDiam +" -p "+Pixdiam) 227 | root_recon.destroy() 228 | os.system(exe_str) 229 | else: 230 | root_recon.destroy() 231 | else: 232 | print("[INFO] Calibration Table is not loaded...") 233 | if path.exists("./load/table_3.npy"): 234 | tablename=("./load/table_3.npy") 235 | print("[INFO] Default Loading table_3.npy...") 236 | file_select() 237 | elif path.exists("./load/table_3_smooth.npy"): 238 | tablename =("./load/table_3_smooth.npy") 239 | print("[INFO] Default Loading table_3_smooth.npy...") 240 | file_select() 241 | else: 242 | load_data() 243 | file_select() 244 | def realtime(): 245 | global tablename 246 | global root_recon 247 | if tablename != None: 248 | if rosgraph.is_master_online(): 249 | root_recon.destroy() 250 | os.system("python depth_realtime.py -c "+tablename) 251 | else: 252 | print("[INFO] Connecting to Raspberry Pi...") 253 | os.system("./ROS.sh") 254 | print("[INFO] Connected to Raspberry Pi...") 255 | print("[INFO] Opening Realtime 3D Reconstruction...") 256 | os.system("python depth_realtime.py -c" +tablename) 257 | else: 258 | print("[INFO] Calibration Table is not loaded...") 259 | if path.exists("./load/table_3.npy"): 260 | tablename=("./load/table_3.npy") 261 | print("[INFO] Default Loading table_3.npy...") 262 | root_recon.destroy() 263 | realtime() 264 | elif path.exists("./load/table_3_smooth.npy"): 265 | tablename =("./load/table_3_smooth.npy") 266 | print("[INFO] Default Loading table_3_smooth.npy...") 267 | root_recon.destroy() 268 | realtime() 269 | else: 270 | load_data() 271 | root_recon.destroy() 272 | realtime() 273 | 274 | 275 | #INCIPIENT SLIP (FINISHED) 276 | def SlipDetector(): 277 | if rosgraph.is_master_online(): 278 | print("[INFO] Opening Slip Detector...") 279 | print("[INFO] Press Ctrl+C to exit") 280 | os.system("python slip_detector_both.py") 281 | else: 282 | print("[INFO] Connecting to Raspberry Pi...") 283 | os.system("./ROS.sh") 284 | print("[INFO] Connected to Raspberry Pi...") 285 | print("[INFO] Opening Slip Detector...") 286 | print("[INFO] Press Ctrl+C to exit") 287 | os.system("python slip_detector_both.py") 288 | 289 | 290 | #HELPER FUNCTIONS 291 | def unconnected(): 292 | global local_ip 293 | global raspi_ip 294 | if local_ip != None and raspi_ip !=None: 295 | print('[INFO] Local IP Address : '+local_ip) 296 | print('[INFO] Raspberry Pi IP Address : ' +raspi_ip) 297 | print("[INFO] Setting Raspberry Pi IP Address...") 298 | file_data=('#!/bin/bash\ncd\nssh -tt raspi@'+raspi_ip+' << EOF\nroslaunch raspberry_new.launch\nEOF') 299 | read_obj =open('./raspi_connect.sh','w') 300 | read_obj.writelines(file_data) 301 | read_obj.close() 302 | 303 | read_obj=open('./reboot.sh','r') 304 | file_data_reboot=read_obj.readlines() 305 | file_data_reboot[4]=(('ssh -tt raspi@'+raspi_ip+' << EOF\n')) 306 | read_obj =open('./reboot.sh','w') 307 | read_obj.writelines(file_data_reboot) 308 | read_obj.close() 309 | print("[INFO] Connecting to Raspberry Pi...") 310 | launch_write() 311 | env_write() 312 | os.system("./ROS.sh") 313 | print("[INFO] Verifying Connection...") 314 | error_handler() 315 | elif local_ip != None and raspi_ip== None: 316 | print("[INFO] No Raspberry Pi Detected...") 317 | print("[INFO] Please try again or exit the program") 318 | elif local_ip == None and raspi_ip == None: 319 | host_name=socket.gethostname() 320 | local_ip=socket.gethostbyname(host_name) 321 | os.system(' nmap -sP 192.168.1.0/24') 322 | open('./load/arp_cache.txt','w').close() 323 | os.system("arp -a >>./load/arp_cache.txt") 324 | print("[INFO] Searching for Raspberry Pi...") 325 | with open('./load/arp_cache.txt','r') as read_obj: 326 | for line in read_obj: 327 | if 'raspi' in line: 328 | print("\n[INFO] Raspberyy Pi detected...") 329 | s=line 330 | raspi_ip=s[s.find('(')+1:s.find(')')] 331 | unconnected() 332 | def on_closing(): 333 | if messagebox.askokcancel("Quit", "Do you want to quit?"): 334 | if rosgraph.is_master_online(): 335 | os.system("rosnode kill --all") 336 | pid=os.fork() 337 | os.kill(pid,signal.SIGSTOP) 338 | root.destroy() 339 | os.system("pkill roscore") 340 | os.system("pkill ssh") 341 | os.system("pkill -n bash") 342 | os.system("pkill bash") 343 | exit() 344 | else: 345 | pid=os.fork() 346 | os.kill(pid,signal.SIGSTOP) 347 | root.destroy() 348 | os.system("pkill roscore") 349 | os.system("pkill ssh") 350 | os.system("pkill -n bash") 351 | os.system("pkill bash") 352 | exit() 353 | def flag(): 354 | flag_auto='{}'.format(args["automatic"]) 355 | global local_ip 356 | global raspi_ip 357 | #print (flag_auto) 358 | if flag_auto == '1': 359 | local_ip = None 360 | raspi_ip = None 361 | elif flag_auto =='2': 362 | local_ip = simpledialog.askstring('Local IP Address','Please input the Local IP Address') 363 | raspi_ip = simpledialog.askstring('Local IP Address','Please input the Raspberry Pi IP Address') 364 | else: 365 | local_ip = '192.168.1.83' 366 | raspi_ip = '192.168.1.219' 367 | print('[INFO] Default Local IP Address: '+local_ip) 368 | print('[INFO] Default Raspberry Pi Address: '+raspi_ip) 369 | print('[INFO] Change default IP Addresses in gui.py line 21-22') 370 | print('[INFO] gui.py -a 1 [Finds IP Addresses automatically]') 371 | print('[INFO] gui.py -a 2 [Set IP Addresses manually]') 372 | print('[INFO] gui.py -h [Help]') 373 | def error_handler(): 374 | global ip_count 375 | try: 376 | time.sleep(10) 377 | master=rosgraph.Master("") 378 | master.lookupNode('raspicam_node1') 379 | print("[INFO] raspicam_node1 exists...") 380 | stdout = Popen('roswtf', shell=True, stdout=PIPE).stdout 381 | output = stdout.read() 382 | verify=(output.split("\n")[-2]) 383 | sys.stdout.flush() 384 | if verify !='No errors or warnings': 385 | print("================================================================================\n") 386 | print("[INFO] ERROR: unable to communicate with raspicam_node1") 387 | raise Exception() 388 | else: 389 | print('[INFO] Node connection verified...') 390 | print('[INFO] Connected to Raspberry Pi...') 391 | except: 392 | print('[INFO] ERROR: unable to establish connection with Raspberry Pi...') 393 | print('[INFO] ERROR: connection timeout exception...') 394 | print('[INFO] Please see troubleshooting guide for further assistance...') 395 | print('[INFO] Forcing roscore Exit...') 396 | if ip_count ==3: 397 | print('[INFO] ERROR: unable to establish connection with Raspberry Pi...') 398 | print('[INFO] ERROR: connection timeout exception...') 399 | print('[INFO] Please see troubleshooting guide for further assistance...') 400 | print('[INFO] Forcing roscore Exit...') 401 | print('[INFO] ERROR: Boot Loop Exception...') 402 | disconnect() 403 | if rosgraph.is_master_online(): 404 | ip_count+=1 405 | os.system("rosnode kill --all") 406 | pid=os.fork() 407 | os.kill(pid,signal.SIGSTOP) 408 | os.system("pkill roscore") 409 | os.system("pkill ssh") 410 | os.system("pkill -n bash") 411 | os.system("pkill bash") 412 | print("[INFO] Rebooting Raspberry Pi and re-trying connection...") 413 | print("[INFO] Waiting for reboot, this may take a minute...") 414 | os.system('./reboot.sh') 415 | for i in xrange(200,0,-1): 416 | line=('[INFO] Reboot Time Left: '+str(i)+' seconds ') 417 | print(line, end='\r') 418 | time.sleep(1) 419 | sys.stdout.flush() 420 | sys.stdout.flush() 421 | unconnected() 422 | else: 423 | pid=os.fork() 424 | os.kill(pid,signal.SIGSTOP) 425 | os.system("pkill roscore") 426 | os.system("pkill ssh") 427 | os.system("pkill -n bash") 428 | os.system("pkill bash") 429 | def launch_write(): 430 | global res_w 431 | global res_h 432 | print('[INFO] Writing updated .launch file to Raspberry Pi...') 433 | read_obj=open('./load/raspberry_new.launch','r') 434 | file_data=read_obj.readlines() 435 | file_data[3]= '\n' 436 | file_data[23]=(' \n') 437 | file_data[24]=(' \n') 438 | print('[INFO] Camera Resolution set to '+res_w+'x'+res_h) 439 | #print(*file_data) 440 | read_obj =open('./load/raspberry_new.launch','w') 441 | read_obj.writelines(file_data) 442 | read_obj.close() 443 | command_str="scp ./load/raspberry_new.launch raspi@"+raspi_ip+":/home/raspi/" 444 | os.system(command_str) 445 | #os.system("exit") 446 | def env_write(): 447 | global local_ip 448 | global raspi_ip 449 | print('[INFO] Writing updated environment file to Raspberry Pi...') 450 | read_obj=open('./load/suction_env.sh','r') 451 | file_data=read_obj.readlines() 452 | file_data[3]=("export ROS_MASTER_URI=http://"+local_ip+":11311/\n") 453 | file_data[4]=("export ROS_IP="+raspi_ip+"\n") 454 | file_data[5]=("export ROS_HOSTNAME="+raspi_ip+"\n") 455 | #print(*file_data) 456 | read_obj =open('./load/suction_env.sh','w') 457 | read_obj.writelines(file_data) 458 | read_obj.close() 459 | command_str=("scp ./load/suction_env.sh raspi@"+raspi_ip+":/home/raspi/") 460 | os.system(command_str) 461 | #os.system("exit") 462 | def disconnect(): 463 | print('[INFO] Disconnecting from Raspberry Pi...') 464 | print('[INFO] Forcing roscore Exit...') 465 | if rosgraph.is_master_online(): 466 | os.system("rosnode kill --all") 467 | pid=os.fork() 468 | os.kill(pid,signal.SIGSTOP) 469 | os.system("pkill roscore") 470 | os.system("pkill ssh") 471 | os.system("pkill -n bash") 472 | os.system("pkill bash") 473 | else: 474 | pid=os.fork() 475 | os.kill(pid,signal.SIGSTOP) 476 | os.system("pkill roscore") 477 | os.system("pkill ssh") 478 | os.system("pkill -n bash") 479 | os.system("pkill bash") 480 | 481 | #MAIN 482 | if __name__ == '__main__': 483 | 484 | root = Tk() 485 | root.title("GelSlim") 486 | root.geometry("500x300") 487 | W=59; H=2; d=50; 488 | y1=0; y2=y1+d; y3=y2+d; y4=y3+d; y5=y4+d; y6=y5+d; 489 | B1 = Button(root, text="Connect to Raspberry Pi",width=W, height=H, command =Connect).place(x=0,y=y1) 490 | B1 = Button(root, text="Display Camera Feed",width=W, height=H, command =CameraFeed).place(x=0,y=y2) 491 | B2 = Button(root, text ="Sensor Calibration", width=W, height=H, command=Calibration).place(x=0, y=y3) 492 | B3 = Button(root, text ="3D Reconstruction", width=W, height=H, command=Reconstruction).place(x=0, y=y4) 493 | B4 = Button(root, text ="Incipient Slip", width=W, height=H, command=SlipDetector).place(x=0, y=y5) 494 | B5 = Button(root, text ="Disconnect from Raspberry Pi", width=W, height=H, command=disconnect).place(x=0, y=y6) 495 | flag() 496 | root.protocol("WM_DELETE_WINDOW", on_closing) 497 | root.mainloop() 498 | 499 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/gui.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/gui.pyc -------------------------------------------------------------------------------- /Software/GUI/GelSlim/img_processor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from sensor_msgs.msg import CompressedImage 4 | import numpy as np 5 | import time 6 | import rospy, math, cv2, os, sys 7 | global count; 8 | import tkSimpleDialog as simpledialog 9 | from Tkinter import * 10 | import Tkinter , Tkconstants, tkFileDialog 11 | import argparse 12 | 13 | ap = argparse.ArgumentParser() 14 | ap.add_argument("-i","--images", required=True, help="Number of calibration images to caputre") 15 | args=vars(ap.parse_args()) 16 | global count; 17 | count=0; 18 | 19 | print('[INFO] Capturing '+'{}'.format(args["images"])+' images...') 20 | num=int('{}'.format(args["images"])) 21 | print('[INFO] Do not press the calibration ball to the sensor for the first image (ref.jpg)...') 22 | print('[INFO] '+'{}'.format(args["images"])+' images will be captured at a regular time interval...') 23 | print('[INFO] Beginning calibration image capture...') 24 | time.sleep(2) 25 | class slip_detection_reaction: 26 | 27 | def __init__(self): 28 | 29 | self.image_sub = rospy.Subscriber("/raspicam_node1/image/compressed",CompressedImage,self.call_back,queue_size = 1,buff_size=2**24) 30 | 31 | def rgb2gray(self,rgb): 32 | return np.dot(rgb[...,:3], [0.5, 0.5, 0.]) 33 | 34 | def call_back(self,data): 35 | t = time.time() 36 | np_arr = np.fromstring(data.data, np.uint8) 37 | raw_imag = cv2.imdecode(np_arr, cv2.IMREAD_COLOR).astype(np.uint8) 38 | 39 | cv2.imshow('raw_image',raw_imag) 40 | #cv2.imshow('red',raw_imag[:,:,2]) 41 | #cv2.imshow('green',raw_imag[:,:,1]) 42 | #cv2.imshow('blue',raw_imag[:,:,0]) 43 | #time.sleep(2) 44 | cv2.waitKey(1) 45 | 46 | global count 47 | global end 48 | count+=1 49 | if count %100 == 0 and count/100==1: 50 | cv2.imwrite('./test_data/ref.jpg',raw_imag) 51 | print('[INFO] Saved reference image to ~/test_data') 52 | if count %100 == 0 and count/100>1 and count/100<=(num+1): 53 | cv2.imwrite(('./test_data/sample_'+str((count/100)-1)+'.jpg'),raw_imag) 54 | print('[INFO] Saved sample '+str((count/100)-1)+' to ~/test_data') 55 | if count/100 >=(num+1): 56 | cv2.destroyAllWindows() 57 | print('[INFO] Calibration image capture complete...') 58 | print('[INFO] Please remove empty images from ./test_data') 59 | print('[INFO] Press Ctrl+C in terminal to exit camera and return to GUI...') 60 | time.sleep(100) 61 | else: 62 | exit(0) 63 | 64 | def main(): 65 | rospy.init_node('slip_detector', anonymous=True) 66 | while not rospy.is_shutdown(): 67 | 68 | slip_detector = slip_detection_reaction() 69 | rospy.spin() 70 | 71 | 72 | 73 | 74 | if __name__ == "__main__": 75 | main() 76 | 77 | #%% 78 | 79 | 80 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/load/arp_cache.txt: -------------------------------------------------------------------------------- 1 | ? (192.168.1.209) at on enp61s0 2 | ? (192.168.1.84) at on enp61s0 3 | ? (192.168.1.235) at on enp61s0 4 | ? (192.168.1.110) at on enp61s0 5 | ? (192.168.1.229) at on enp61s0 6 | ? (192.168.1.120) at on enp61s0 7 | ? (192.168.1.114) at on enp61s0 8 | ? (192.168.1.9) at on enp61s0 9 | ? (192.168.1.140) at on enp61s0 10 | ? (192.168.1.3) at on enp61s0 11 | ? (192.168.1.134) at on enp61s0 12 | ? (192.168.1.29) at on enp61s0 13 | ? (192.168.1.144) at on enp61s0 14 | ? (192.168.1.23) at on enp61s0 15 | ? (192.168.1.170) at on enp61s0 16 | ? (192.168.1.33) at on enp61s0 17 | ? (192.168.1.164) at on enp61s0 18 | ? (192.168.1.59) at on enp61s0 19 | ? (192.168.1.190) at on enp61s0 20 | ? (192.168.1.53) at on enp61s0 21 | ? (192.168.1.200) at on enp61s0 22 | ? (192.168.1.79) at on enp61s0 23 | ? (192.168.1.194) at on enp61s0 24 | ? (192.168.1.89) at on enp61s0 25 | ? (192.168.1.220) at on enp61s0 26 | Yuvals-MBP (192.168.1.107) at 80:e6:50:02:53:6c [ether] on enp61s0 27 | ? (192.168.1.101) at on enp61s0 28 | ESP_B75818 (192.168.1.42) at dc:4f:22:b7:58:18 [ether] on enp61s0 29 | ? (192.168.1.62) at on enp61s0 30 | ? (192.168.1.72) at on enp61s0 31 | JohnsAppleWatch (192.168.1.207) at on enp61s0 32 | ? (192.168.1.116) at on enp61s0 33 | ? (192.168.1.202) at on enp61s0 34 | ? (192.168.1.222) at on enp61s0 35 | ? (192.168.1.111) at on enp61s0 36 | ? (192.168.1.121) at on enp61s0 37 | ? (192.168.1.115) at on enp61s0 38 | Apple-TV-2 (192.168.1.145) at 1c:1a:c0:6c:d7:8b [ether] on enp61s0 39 | ? (192.168.1.46) at on enp61s0 40 | Johns-phone (192.168.1.56) at 88:19:08:bb:d8:ef [ether] on enp61s0 41 | ? (192.168.1.215) at on enp61s0 42 | ? (192.168.1.106) at on enp61s0 43 | ? (192.168.1.15) at on enp61s0 44 | CSMAJMARCUS03 (192.168.1.130) at 08:d2:3e:1c:76:d6 [ether] on enp61s0 45 | ? (192.168.1.45) at on enp61s0 46 | ? (192.168.1.206) at on enp61s0 47 | c13389jbisogna (192.168.1.95) at 88:e9:fe:86:0b:8e [ether] on enp61s0 48 | ? (192.168.1.210) at on enp61s0 49 | ? (192.168.1.105) at on enp61s0 50 | ? (192.168.1.119) at on enp61s0 51 | Jeremys-iPhone (192.168.1.30) at 4a:c2:f6:74:13:fc [ether] on enp61s0 52 | ? (192.168.1.199) at on enp61s0 53 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/load/count_map.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/load/count_map.npy -------------------------------------------------------------------------------- /Software/GUI/GelSlim/load/count_map_3.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/load/count_map_3.npy -------------------------------------------------------------------------------- /Software/GUI/GelSlim/load/raspberry_new.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/load/suction_env.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "[INFO] Environment executed..." 3 | . ~/suction_ws/devel/setup.bash 4 | export ROS_MASTER_URI=http://192.168.1.83:11311/ 5 | export ROS_IP=192.168.1.219 6 | export ROS_HOSTNAME=192.168.1.219 7 | export ROSLAUNCH_SSH_UNKNOWN=1 8 | 9 | PROMPT_COMMAND='history -a' 10 | history -a 11 | 12 | # sorting in old style 13 | LC_COLLATE="C" 14 | export LC_COLLATE 15 | ulimit -c unlimited 16 | export HISTTIMEFORMAT="%d/%m/%y %T " 17 | 18 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/load/table_3.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/load/table_3.npy -------------------------------------------------------------------------------- /Software/GUI/GelSlim/load/table_3_smooth.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/load/table_3_smooth.npy -------------------------------------------------------------------------------- /Software/GUI/GelSlim/raspi_connect.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cd 3 | ssh -tt raspi@192.168.1.219 << EOF 4 | roslaunch raspberry_new.launch 5 | EOF -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reboot.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | tab=" --tab" 3 | options=() 4 | cmds[1]="cd 5 | ssh -tt raspi@192.168.1.219 << EOF 6 | echo raspi | sudo -S reboot 7 | EOF" 8 | options1=(--tab -e "bash -c '${cmds[1]} ; bash'") 9 | gnome-terminal "${options1[@]}" 10 | sleep 5 -------------------------------------------------------------------------------- /Software/GUI/GelSlim/recon_jpg.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | 4 | from sensor_msgs.msg import CompressedImage 5 | import numpy as np 6 | import time 7 | import rospy, math, cv2, os 8 | 9 | global count; 10 | import argparse 11 | 12 | ap = argparse.ArgumentParser() 13 | ap.add_argument("-i","--images", required=True, help="Number of calibration images to caputre") 14 | args=vars(ap.parse_args()) 15 | print('[INFO] Capturing '+'{}'.format(args["images"])+' images...') 16 | num=int('{}'.format(args["images"])) 17 | print('[INFO] '+'{}'.format(args["images"])+' images will be captured at a regular time interval...') 18 | print('[INFO] Beginning reconstruction image capture...') 19 | time.sleep(2) 20 | count=0; 21 | 22 | class slip_detection_reaction: 23 | 24 | def __init__(self): 25 | 26 | self.image_sub = rospy.Subscriber("/raspicam_node1/image/compressed",CompressedImage,self.call_back,queue_size = 1,buff_size=2**24) 27 | 28 | def rgb2gray(self,rgb): 29 | return np.dot(rgb[...,:3], [0.5, 0.5, 0.]) 30 | 31 | def call_back(self,data): 32 | t = time.time() 33 | np_arr = np.fromstring(data.data, np.uint8) 34 | raw_imag = cv2.imdecode(np_arr, cv2.IMREAD_COLOR).astype(np.uint8) 35 | 36 | cv2.imshow('raw_image',raw_imag) 37 | #cv2.imshow('red',raw_imag[:,:,2]) 38 | #cv2.imshow('green',raw_imag[:,:,1]) 39 | #cv2.imshow('blue',raw_imag[:,:,0]) 40 | cv2.waitKey(1) 41 | 42 | global count 43 | count+=1 44 | #if count %100 == 0 and count/100==1: 45 | #cv2.imwrite(os.path.join(os.path.expanduser('~'),'gelsight_heightmap_reconstruction-master/python_version/test_data','ref.jpg'),raw_imag) 46 | #print('Saved reference image to ~/test_data') 47 | if count %100 == 0 and count/100>=1 and count/100<=(num+1): 48 | cv2.imwrite(('./reconstruction/images/'+'reconstruct_'+str((count/100)-1)+'.jpg'),raw_imag) 49 | print('Saved sample '+str((count/100)-1)+' to ./reconstruction/images') 50 | else: 51 | exit(0) 52 | 53 | # if not cv2.imwrite(os.path.join(os.path.expanduser('~'),'/home/ian/Documents/gelsight_heightmap_reconstruction-master/python_version/test_data','ref.jpg'),raw_imag): 54 | # raise Exception("could not write image") 55 | 56 | def main(): 57 | print "[INFO] Press Ctrl+C to exit and return to GUI..." 58 | rospy.init_node('slip_detector', anonymous=True) 59 | while not rospy.is_shutdown(): 60 | 61 | slip_detector = slip_detection_reaction() 62 | rospy.spin() 63 | 64 | 65 | if __name__ == "__main__": 66 | main() 67 | 68 | #%% 69 | 70 | 71 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconfigure.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | tab=" --tab" 4 | options=() 5 | 6 | cmds[1]="rosrun rqt_reconfigure rqt_reconfigure" 7 | 8 | options1=(--tab -e "bash -c '${cmds[1]} ; bash'") 9 | 10 | gnome-terminal "${options1[@]}" 11 | 12 | exit 0 13 | -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_0.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_0.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_1.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_10.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_2.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_3.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_5.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_6.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_7.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_8.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/reconstruct_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/reconstruct_9.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/sample.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/sample.zip -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/images/updated_reconstruction.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/images/updated_reconstruction.zip -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/plots/Figure_1-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/plots/Figure_1-1.png -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/plots/Figure_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/plots/Figure_1.png -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/plots/sample_plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/plots/sample_plot.png -------------------------------------------------------------------------------- /Software/GUI/GelSlim/reconstruction/plots/sample_realtime_depth.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/reconstruction/plots/sample_realtime_depth.mp4 -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/ref.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/ref.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample.zip -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_10.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_13.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_14.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_15.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_17.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_18.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_19.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_20.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_21.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_22.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_23.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_25.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_26.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_27.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_28.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_29.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_3.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_30.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_31.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_32.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_33.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_35.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_37.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_38.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_39.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_4.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_40.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_41.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_41.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_42.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_42.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_43.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_43.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_44.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_46.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_46.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_48.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_48.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_49.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_49.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_5.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_6.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_7.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_8.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/sample_9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/sample_9.jpg -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_data/updated_calib.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/Software/GUI/GelSlim/test_data/updated_calib.zip -------------------------------------------------------------------------------- /Software/GUI/GelSlim/test_poisson.py: -------------------------------------------------------------------------------- 1 | import numpy as np 2 | from scipy.io import loadmat 3 | from mpl_toolkits.mplot3d import Axes3D 4 | import matplotlib 5 | from matplotlib import cm 6 | from matplotlib.ticker import LinearLocator, FormatStrFormatter 7 | from fast_poisson import fast_poisson 8 | import cv2 9 | import matplotlib.pyplot as plt 10 | #from fast_poisson import poisson_reconstruct. 11 | from calibration import image_processor, calibration 12 | import time 13 | import pdb 14 | import sys 15 | import argparse 16 | 17 | 18 | scale=3 19 | crop_factor=0 20 | title_pad=4 21 | 22 | matplotlib.rcParams["savefig.directory"] = "./reconstruction/plots/" 23 | 24 | ap = argparse.ArgumentParser() 25 | ap.add_argument("-d","--diameter", required=False, help="diameter of the calibration ball in millimeters") 26 | ap.add_argument("-p","--pixdiam", required=False, help="diameter of the calibration ball in pixels") 27 | ap.add_argument("-n","--name", required=False, help="file path of 3D reconstruction file") 28 | ap.add_argument("-c","--calibration", required=False, help="file path of calibration table") 29 | args=vars(ap.parse_args()) 30 | 31 | Pixmm=float('{}'.format(args["diameter"]))/float('{}'.format(args["pixdiam"]))#4.76/80#.02975 32 | print('[INFO] Plotting graphs...') 33 | print('[INFO] Ball Diameter: '+('{}'.format(args["diameter"]))+ 'mm') 34 | print('[INFO] Ball Diameter: '+('{}'.format(args["pixdiam"]))+ 'px') 35 | def matching(test_img, ref_blur,cali,table): 36 | diff = test_img - ref_blur 37 | 38 | diff[:,:,0] = np.clip((diff[:,:,0] - cali.blue_range[0])*cali.ratio, 0, cali.blue_bin-1) 39 | diff[:,:,1] = np.clip((diff[:,:,1] - cali.green_range[0])*cali.ratio, 0, cali.green_bin-1) 40 | diff[:,:,2] = np.clip((diff[:,:,2] - cali.red_range[0])*cali.ratio, 0, cali.green_bin-1) 41 | diff = diff.astype(int) 42 | grad_img = table[diff[:,:,0], diff[:,:,1],diff[:,:,2], :] 43 | return grad_img 44 | 45 | def matching_v2(test_img, ref_blur,cali,table, blur_inverse): 46 | 47 | diff_temp1 = test_img - ref_blur 48 | diff_temp2 = diff_temp1 * blur_inverse 49 | diff_temp2[:,:,0] = (diff_temp2[:,:,0] - cali.zeropoint[0])/cali.lookscale[0] 50 | diff_temp2[:,:,1] = (diff_temp2[:,:,1] - cali.zeropoint[1])/cali.lookscale[1] 51 | diff_temp2[:,:,2] = (diff_temp2[:,:,2] - cali.zeropoint[2])/cali.lookscale[2] 52 | diff_temp3 = np.clip(diff_temp2,0,0.999) 53 | diff = (diff_temp3*cali.bin_num).astype(int) 54 | 55 | # pdb.set_trace() 56 | # _ = plt.hist(np.ndarray.flatten(r), bins='auto') 57 | # plt.show() 58 | # plt.figure() 59 | # plt.imshow((diff_temp1-np.min(diff_temp1)).astype(np.uint8)) 60 | # plt.figure(0) 61 | # plt.imshow(ref_blur.astype(np.uint8)) 62 | # plt.figure(1) 63 | # plt.imshow(test_img.astype(np.uint8)) 64 | # plt.figure(2) 65 | # plt.imshow(((diff_temp2 - np.min(diff_temp2))/100).astype(np.uint8)) 66 | # plt.show() 67 | grad_img = table[diff[:,:,0], diff[:,:,1],diff[:,:,2], :] 68 | return grad_img 69 | 70 | 71 | def show_depth(depth, figure_num): 72 | # fig = plt.figure(figure_num) 73 | # ax = fig.gca(projection='3d') 74 | # # ax.set_aspect('equal') 75 | # X = np.arange(0, depth.shape[1], 1)*4.76/80 76 | # Y = np.arange(0, depth.shape[0], 1)*4.76/80 77 | # X, Y = np.meshgrid(X, Y) 78 | # ax.plot_surface(X, Y, depth, cmap=cm.jet) 79 | # # fig.colorbar(surf, shrink=0.5, aspect=5) 80 | # # plt.show() 81 | fig = plt.figure(figsize=(20,2.5)) 82 | ax=fig.add_subplot(1,6,6, projection='3d') 83 | fig.suptitle('GelSight Plots: Raw_Image Dimensions:'+str(width)+'x'+str(height)+' px / Crop Factor: '+str(pad)+' px / Z-Axis Relative Scaling: '+str(scale)+'X', fontsize=8, y=0.999) 84 | X = np.arange(0, depth.shape[1], 1) 85 | Y = np.arange(0, depth.shape[0], 1) 86 | X, Y = np.meshgrid(X, Y) 87 | X=X*Pixmm 88 | Y=Y*Pixmm 89 | surf=ax.plot_surface(X, Y, depth, cmap=cm.jet) 90 | #fig.colorbar(surf, shrink=0.5, aspect=5) (LEGEND BAR) 91 | max_range = np.array([X.max()-X.min(), Y.max()-Y.min(), depth.max()-depth.min()]).max() / 2.0 92 | mid_x = (X.max()+X.min()) * 0.5 93 | mid_y = (Y.max()+Y.min()) * 0.5 94 | mid_z = (depth.max()+depth.min()) * 0.5 95 | ax.set_xlim(mid_x - max_range, mid_x + max_range) 96 | ax.set_ylim(mid_y - max_range, mid_y + max_range) 97 | ax.set_zlim(mid_z , mid_z + (max_range*2/scale)) 98 | ax.tick_params(axis="x", labelsize=6, pad=-5) 99 | ax.tick_params(axis="y", labelsize=6, pad=-5) 100 | ax.tick_params(axis="z", labelsize=6, pad=-5) 101 | ax.set_xlabel('Length (mm)',fontsize=6, labelpad=-8) 102 | ax.set_ylabel('Width (mm)',fontsize=6, labelpad=-8) 103 | ax.set_zlabel('Height (mm)',fontsize=6, labelpad=-8) 104 | ax.set_title('3D Depth Map',fontsize=8, pad=13) 105 | plt.subplots_adjust(wspace=0) 106 | 107 | 108 | def contact_detection(raw_image, ref_blur,marker_mask, kernel): 109 | diff_img = np.max(np.abs(raw_image.astype(np.float32) - ref_blur),axis = 2) 110 | contact_mask = (diff_img> 25).astype(np.uint8) #*(1-marker_mask) 111 | contact_mask = cv2.dilate(contact_mask, kernel, iterations=1) 112 | contact_mask = cv2.erode(contact_mask, kernel, iterations=1) 113 | return contact_mask 114 | 115 | def marker_detection(raw_image_blur): 116 | m, n = raw_image_blur.shape[1], raw_image_blur.shape[0] 117 | raw_image_blur = cv2.pyrDown(raw_image_blur).astype(np.float32) 118 | ref_blur = cv2.GaussianBlur(raw_image_blur, (25, 25), 0) 119 | diff = ref_blur - raw_image_blur 120 | diff *= 16.0 121 | # cv2.imshow('blur2', blur.astype(np.uint8)) 122 | # cv2.waitKey(1) 123 | diff[diff < 0.] = 0. 124 | diff[diff > 255.] = 255. 125 | 126 | # diff = cv2.GaussianBlur(diff, (5, 5), 0) 127 | # cv2.imshow('diff', diff.astype(np.uint8)) 128 | # cv2.waitKey(1) 129 | # mask = (diff[:, :, 0] > 25) & (diff[:, :, 2] > 25) & (diff[:, :, 1] > 130 | # 120) 131 | mask_b = diff[:, :, 0] > 150 132 | mask_g = diff[:, :, 1] > 150 133 | mask_r = diff[:, :, 2] > 150 134 | mask = (mask_b*mask_g + mask_b*mask_r + mask_g*mask_r)>0 135 | # cv2.imshow('mask', mask.astype(np.uint8) * 255) 136 | # cv2.waitKey(1) 137 | mask = cv2.resize(mask.astype(np.uint8), (m, n)) 138 | return mask 139 | 140 | def make_kernal(n,k_type): 141 | if k_type == 'circle': 142 | kernal = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(n,n)) 143 | else: 144 | kernal = cv2.getStructuringElement(cv2.MORPH_RECT,(n,n)) 145 | return kernal 146 | # 147 | 148 | if __name__ == '__main__': 149 | table2 = np.load('{}'.format(args["calibration"]))#('table_smooth.npy') 150 | abe_array = np.load('abe_corr.npz') 151 | x_index, y_index = abe_array['x'], abe_array['y'] 152 | kernel1 = make_kernal(3,'circle') 153 | kernel2 = make_kernal(25,'circle') 154 | 155 | imp = image_processor() 156 | cali = calibration() 157 | pad = 20 158 | ref_img = cv2.imread('./test_data/ref.jpg') 159 | ref_img = ref_img[x_index, y_index, :] 160 | height = ref_img.shape[0] 161 | width = ref_img.shape[1] 162 | test_img = cv2.imread('{}'.format(args["name"]))#('./test_data/reconstruct_10.jpg') 163 | test_img = test_img[x_index, y_index, :] 164 | disp_img_e = cv2.imread('{}'.format(args["name"])) 165 | ab_array = np.load('abe_corr.npz') 166 | x_index = ab_array['x'] 167 | y_index = ab_array['y'] 168 | disp_img = disp_img_e[x_index, y_index, :] 169 | 170 | # ref_img = test_img.copy() 171 | ref_img = imp.crop_image(ref_img, pad) 172 | disp_img = imp.crop_image(disp_img, pad) 173 | marker = cali.mask_marker(ref_img) 174 | keypoints = cali.find_dots(marker) 175 | marker_mask = cali.make_mask(ref_img, keypoints) 176 | marker_image = np.dstack((marker_mask, marker_mask, marker_mask)) 177 | ref_img = cv2.inpaint(ref_img,marker_mask,3,cv2.INPAINT_TELEA) 178 | red_mask = (ref_img[:,:,2] > 12).astype(np.uint8) 179 | ref_blur = cv2.GaussianBlur(ref_img.astype(np.float32), (3, 3), 0) + 1 180 | # pdb.set_trace() 181 | # ref_blur_small = cv2.pyrDown(ref_blur).astype(np.float32) 182 | blur_inverse = 1 + ((np.mean(ref_blur)/ref_blur)-1)*2; 183 | test_img = imp.crop_image(test_img, pad) 184 | test_img = cv2.GaussianBlur(test_img.astype(np.float32), (3, 3), 0) 185 | # t1 = time.time() 186 | marker_mask = marker_detection(test_img) 187 | marker_mask = cv2.dilate(marker_mask, kernel1, iterations=1) 188 | contact_mask = contact_detection(test_img, ref_blur,marker_mask, kernel2) 189 | 190 | # mask_2_show = np.dstack((np.zeros_like(marker_mask), marker_mask, np.zeros_like(marker_mask)))*40 + test_img.astype(np.uint8) 191 | # plt.figure(20) 192 | # plt.imshow(mask_2_show) 193 | # plt.figure(21) 194 | # plt.imshow(contact_mask) 195 | # plt.show() 196 | 197 | grad_img2 = matching_v2(test_img, ref_blur, cali, table2, blur_inverse) 198 | 199 | grad_img2[:,:,0] = grad_img2[:,:,0] * (1-marker_mask) * red_mask 200 | grad_img2[:,:,1] = grad_img2[:,:,1] * (1-marker_mask) * red_mask 201 | 202 | # depthgx = np.array(gx.ImGradX)1 = fast_poisson(grad_img1[:,:,0], grad_img1[:,:,1]) 203 | depth2 = fast_poisson(grad_img2[:,:,0], grad_img2[:,:,1]) 204 | # depth1[depth1<0] = 0 205 | depth2[depth2<0] = 0 206 | # show_depth(depth1,99) 207 | show_depth(depth2,100) 208 | # print(time.time()-t1) 209 | # plt.figure(0) 210 | # plt.imshow(grad_img2[:,:,0]) 211 | # plt.figure(1) 212 | # plt.imshow(grad_img2[:,:,1]) 213 | # plt.figure(2) 214 | # plt.imshow(depth2) 215 | # # plt.figure(3) 216 | # # plt.imshow((ref_blur)/255.) 217 | # # plt.figure(5) 218 | # # plt.imshow(cv2.cvtColor((test_img-ref_blur)/70, cv2.COLOR_BGR2RGB)) 219 | # plt.show() 220 | # cv2.imshow('diff',(((test_img-ref_blur)+150)/400*255).astype(np.uint8)) 221 | # cv2.waitKey(0) 222 | #%% 223 | # cv2.imshow('test_image', test_img.astype(np.uint8)) 224 | # cv2.waitKey() 225 | 226 | 227 | ax3 = plt.subplot(164) 228 | plt.title('Gradient ('+r'$\nabla_Y$'+')', fontsize=8, pad=title_pad) 229 | plt.xticks(fontsize=6) 230 | plt.yticks(fontsize=6) 231 | plt.axis('off') 232 | plt.imshow(grad_img2[:,:,0]) 233 | 234 | ax2 = plt.subplot(163) 235 | plt.title('Gradient ('+r'$\nabla_X$'+')', fontsize=8, pad=title_pad) 236 | plt.xticks(fontsize=6) 237 | plt.yticks(fontsize=6) 238 | plt.axis('off') 239 | plt.imshow(grad_img2[:,:,1]) 240 | 241 | ax4 = plt.subplot(165) 242 | plt.title('2D Depth Map', fontsize=8, pad=title_pad) 243 | plt.xticks(fontsize=6) 244 | plt.yticks(fontsize=6) 245 | plt.axis('off') 246 | plt.imshow(depth2) 247 | 248 | ax1 = plt.subplot(162) 249 | plt.title('$img_{target}-img_{ref}$', fontsize=8 , pad=title_pad) 250 | plt.xticks(fontsize=6) 251 | plt.yticks(fontsize=6) 252 | plt.axis('off') 253 | plt.imshow(cv2.cvtColor((test_img-ref_blur)/70, cv2.COLOR_BGR2RGB)) 254 | 255 | ax6 = plt.subplot(161) 256 | plt.title('$img_{target}$', fontsize=8 , pad=title_pad) 257 | plt.xticks(fontsize=6) 258 | plt.yticks(fontsize=6) 259 | plt.axis('off') 260 | plt.imshow(cv2.cvtColor((disp_img), cv2.COLOR_BGR2RGB)) 261 | plt.show() -------------------------------------------------------------------------------- /Software/GUI/README.md: -------------------------------------------------------------------------------- 1 | # GelSlim 2 | 3 | ## System Requirements 4 | - Ubuntu 18.04 Bionic Beaver 5 | - Python 2.7 6 | - ROS Melodic 7 | * *http://wiki.ros.org/melodic/Installation/Ubuntu* 8 | - Python OpenCV 3.4.4 9 | * *pip install opencv-python==3.4.4* 10 | - Arp Scan 11 | * *sudo apt-get install -y arp-scan* 12 | - NMap 13 | * *sudo apt-get install nmap* 14 | - Matplotlib 15 | * *pip install matplotlib* 16 | - Scipy 17 | * *pip install scipy* 18 | 19 | ## Raspberry Pi Settings 20 | - Turn on SSH in Ubuntu Mate 21 | * *sudo systemctl enable ssh* 22 | 23 | - Set Raspi IP Manually 24 | * *IPV4 IP Address: 192.168.1.XXX* 25 | * *Net Mask: 255.255.255.0* 26 | * *DNS 8.8.4.4.,8.8.8.8* 27 | 28 | ## Installation 29 | 30 | - Download the GelSlim folder and unzip 31 | 32 | - cd to ./GelSlim in terminal 33 | 34 | - run python gui.py 35 | 36 | ## IP Address 37 | 38 | ### To change the IP Address used for ROS Master and Raspberry Pi use the included arguments for gui.py 39 | #### Note the default IP Addresses are currently set to be "NONE" valued so the script will automatically locate them for you. 40 | 41 | - python gui.py -a 1 *Finds IP Addresses automatically using **arp** terminal command* 42 | 43 | - python gui.py -a 2 *Set IP Addresses manually* 44 | 45 | - change the default IP Address in line 21-22 of gui.py 46 | 47 | - **NOTE:** the local name and password for the raspberry pi must be "raspi" for the automatic login of ssh to work 48 | if this is not the case you must change the local name and password within "raspberry_new.launch" 49 | 50 | ## Error Log 51 | 52 | https://docs.google.com/document/d/1r3EBdHhFpfCTQFS_eKzmCBGyteXqJAIMatUEwNnOWO8/edit 53 | -------------------------------------------------------------------------------- /Software/README.txt: -------------------------------------------------------------------------------- 1 | SOFTWARE README -------------------------------------------------------------------------------- /Software/Raspberry Pi/README.txt: -------------------------------------------------------------------------------- 1 | RASPBERRY PI - Setup 2 | 3 | 1) Purchase a Raspberry Pi 3 with microSD card (>=64gb) 4 | 2) Flash Ubuntu Mate on to the microSD card 5 | -https://ubuntu-mate.org/ 6 | -https://www.balena.io/etcher/ 7 | 3) Install ROS Melodic on the Raspberry Pi 8 | -http://wiki.ros.org/melodic/Installation/Ubuntu 9 | 4) Download the Raspberry Pi Image Files 10 | -https://drive.google.com/file/d/1tJJFsddHKVC8RBUEtGawACZJs3rvnD6q/view?usp=sharing 11 | 5) Copy the files to the Raspberry Pi and unzip them in the home directory 12 | 6) Follow the instructions in the GUI README to setup video streaming connection with computer over ethernet 13 | -------------------------------------------------------------------------------- /_layouts/default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | {% seo %} 9 | 10 | {% include head-custom.html %} 11 | 12 | 13 |

{{ site.title }}

14 | {% endif %} 15 | 16 | {{ content }} 17 | 18 | {% if site.github.private != true and site.github.license %} 19 | 22 | {% endif %} 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /docs/extrinsic.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/docs/extrinsic.mp4 -------------------------------------------------------------------------------- /docs/gelslim.mp4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/docs/gelslim.mp4 -------------------------------------------------------------------------------- /docs/gelslim1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/docs/gelslim1.PNG -------------------------------------------------------------------------------- /docs/gelslim2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/docs/gelslim2.png -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | GelSlim 9 | 10 | 11 | 12 | 13 | 14 |
15 | 22 |
23 | 24 |

Introduction

25 |

26 | This website is the entry point to the resources for the GelSlim tactile-sensing finger. 27 |

28 | 29 |

Videos

30 |
31 | 35 | 39 |

40 | More videos are available on our YouTube channel.
42 |

43 | 44 |
45 | 46 |

Build your own sensor

47 | All the hardware and software has been open sourced under the CC-by-NC license so the sensors 48 | can easily be reproduced by other research laboratories. We also manufacture and deliver sensors upon request. 49 |

All the sources are hosted on the GelSlim Github site

50 | 51 |

End-Users

52 |

We have provided GelSlim 3.0 sensors in collaboration with a variety of industry leading robotics research laboratories including: The Everyday Robot Project - X, Mistubishi Electric Research Labs, ABB Group and Magna International Inc. If you are interested in collaborating please contact us at themcubelab@gmail.com. 53 |

54 | 55 |

Referencing the project

56 | You can reference the project with the following citation:

57 | @misc{gelslim},
58 | title={GelSlim3.0: High-Resolution Measurement of Shape, Force and Slip in a Compact Tactile-Sensing Finger},
59 | author={I. {Taylor} and S. {Dong} and A. {Rodriguez}},
60 | year={2021},
61 | arXiv = {arXiv:2103.12269}}

62 |
63 |
64 | The pdf of the paper is available here 65 | 66 |
67 | 68 | MCube Manipulations and Mechanisms Lab 69 |
70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /docs/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/docs/logo.png -------------------------------------------------------------------------------- /docs/style.css: -------------------------------------------------------------------------------- 1 | header 2 | { 3 | display: none; 4 | } 5 | 6 | body 7 | { 8 | background-color:white; 9 | font-family:"lucida grande",tahoma,verdana,arial,sans-serif; 10 | font-size:14px; 11 | text-align:justify; 12 | } 13 | 14 | #mainframe 15 | { 16 | margin-top:0px; 17 | margin-left:auto; 18 | margin-right:auto; 19 | margin-bottom:50px; 20 | width: 800px; 21 | background-color:white; 22 | } 23 | 24 | #header 25 | { 26 | margin-top:30px; 27 | margin-left:auto; 28 | margin-right:auto; 29 | margin-bottom:50px; 30 | } 31 | 32 | #talk-title 33 | { 34 | margin-top: 0px; 35 | margin-left: 0px; 36 | } 37 | 38 | #talk-name 39 | { 40 | margin-top: 30px; 41 | } 42 | 43 | /***** Headers, text *****/ 44 | 45 | h1 46 | { 47 | clear:left; 48 | color:#000000; 49 | font-size:280%; 50 | margin-top:0 px; 51 | margin-bottom: -10px; 52 | text-align:center; 53 | } 54 | 55 | 56 | h2 57 | { 58 | color:#000000; 59 | font-size:160%; 60 | text-align:left; 61 | margin-top: 40px; 62 | margin-bottom: 10px; 63 | } 64 | 65 | 66 | h3 67 | { 68 | color:#000000; 69 | font-size:160%; 70 | text-align:center; 71 | 72 | } 73 | 74 | h4 75 | { 76 | font-size:50%; 77 | text-align:center; 78 | } 79 | 80 | a:link 81 | { 82 | color:#900000; 83 | text-decoration:none; 84 | } 85 | 86 | a:active 87 | { 88 | color:#900000; 89 | text-decoration:none; 90 | } 91 | 92 | a:visited 93 | { 94 | color:#900000; 95 | text-decoration:none; 96 | } 97 | 98 | a:hover 99 | { 100 | text-decoration:underline; 101 | } 102 | 103 | ul 104 | { 105 | list-style-position:inside; 106 | padding:0; 107 | margin-left:0; 108 | } 109 | 110 | ul li 111 | { 112 | padding:0; 113 | margin:0; 114 | margin-bottom:1em; 115 | } 116 | 117 | ol 118 | { 119 | list-style-position:inside; 120 | padding:0; 121 | margin-left:0; 122 | } 123 | 124 | ol li 125 | { 126 | padding:0; 127 | margin:0; 128 | margin-bottom:1em; 129 | } 130 | 131 | 132 | .flushright { 133 | text-align:right; 134 | } 135 | 136 | .shifted{ 137 | margin-left:1em; 138 | } 139 | 140 | 141 | /***** Table *****/ 142 | 143 | 144 | .withborder{ 145 | border-collapse:collapse; 146 | 147 | } 148 | 149 | .withborder th { 150 | border:solid 1px black; 151 | text-align:center; 152 | padding:5px; 153 | } 154 | 155 | .withborder td { 156 | border:solid 1px black; 157 | padding:5px; 158 | } 159 | 160 | .red { 161 | font-weight:bold; 162 | color:red; 163 | } 164 | 165 | 166 | .green { 167 | font-weight:bold; 168 | color:green; 169 | } 170 | 171 | .blue { 172 | font-weight:bold; 173 | color:DarkBlue; 174 | } 175 | 176 | 177 | .big { 178 | font-size:150%; 179 | text-align:center; 180 | } 181 | 182 | img{ 183 | border:0; 184 | margin-left:auto; 185 | margin-right:auto; 186 | 187 | } 188 | 189 | .centered{ 190 | text-align:center; 191 | } 192 | 193 | .alert { 194 | font-weight:bold; 195 | color:#E41B17; 196 | } 197 | 198 | 199 | -------------------------------------------------------------------------------- /src/images/alcohol.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/alcohol.JPG -------------------------------------------------------------------------------- /src/images/body_1.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/body_1.JPG -------------------------------------------------------------------------------- /src/images/calibration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/calibration.png -------------------------------------------------------------------------------- /src/images/cover_plate.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/cover_plate.JPG -------------------------------------------------------------------------------- /src/images/electrical/camera.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/electrical/camera.JPG -------------------------------------------------------------------------------- /src/images/electrical/connectors_and_adapters.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/electrical/connectors_and_adapters.JPG -------------------------------------------------------------------------------- /src/images/electrical/led_driver.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/electrical/led_driver.JPG -------------------------------------------------------------------------------- /src/images/electrical/led_harness.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/electrical/led_harness.JPG -------------------------------------------------------------------------------- /src/images/flex_pcb.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/flex_pcb.JPG -------------------------------------------------------------------------------- /src/images/hot_plate.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/hot_plate.JPG -------------------------------------------------------------------------------- /src/images/knife.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/knife.JPG -------------------------------------------------------------------------------- /src/images/mechanical/body.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/mechanical/body.JPG -------------------------------------------------------------------------------- /src/images/mechanical/elastomer.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/mechanical/elastomer.JPG -------------------------------------------------------------------------------- /src/images/mechanical/fasteners.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/mechanical/fasteners.JPG -------------------------------------------------------------------------------- /src/images/mechanical/shaping_lens.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/mechanical/shaping_lens.JPG -------------------------------------------------------------------------------- /src/images/more_details/contributing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/more_details/contributing.jpg -------------------------------------------------------------------------------- /src/images/more_details/electronics.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/more_details/electronics.jpg -------------------------------------------------------------------------------- /src/images/more_details/hot_plate.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/more_details/hot_plate.JPG -------------------------------------------------------------------------------- /src/images/more_details/known_issues.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/more_details/known_issues.jpg -------------------------------------------------------------------------------- /src/images/more_details/known_issues.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/more_details/known_issues.png -------------------------------------------------------------------------------- /src/images/more_details/mechanical-01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/more_details/mechanical-01.jpg -------------------------------------------------------------------------------- /src/images/more_details/mechanical.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/more_details/mechanical.jpg -------------------------------------------------------------------------------- /src/images/more_details/screwdrivers.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/more_details/screwdrivers.JPG -------------------------------------------------------------------------------- /src/images/pop_primer.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/pop_primer.JPG -------------------------------------------------------------------------------- /src/images/psilpoxy.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/psilpoxy.JPG -------------------------------------------------------------------------------- /src/images/screwdrivers.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/screwdrivers.JPG -------------------------------------------------------------------------------- /src/images/software/calibration.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/software/calibration.jpg -------------------------------------------------------------------------------- /src/images/software/calibration.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/software/calibration.png -------------------------------------------------------------------------------- /src/images/software/dependencies.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/software/dependencies.jpg -------------------------------------------------------------------------------- /src/images/software/dependencies.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/software/dependencies.png -------------------------------------------------------------------------------- /src/images/software/gui.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/software/gui.jpg -------------------------------------------------------------------------------- /src/images/software/gui.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/software/gui.png -------------------------------------------------------------------------------- /src/images/software/raspberrypi_pcb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/software/raspberrypi_pcb.jpg -------------------------------------------------------------------------------- /src/images/software/raspberrypi_pcb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/software/raspberrypi_pcb.png -------------------------------------------------------------------------------- /src/images/software/raspberrypi_pcb.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 19 | 20 | 21 | 22 | 24 | 26 | 37 | 39 | 44 | 49 | 52 | 56 | 60 | 64 | 68 | 69 | -------------------------------------------------------------------------------- /src/images/solder_paste.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/solder_paste.JPG -------------------------------------------------------------------------------- /src/images/step_by_step/3d_printing.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/step_by_step/3d_printing.jpg -------------------------------------------------------------------------------- /src/images/step_by_step/3d_printing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/step_by_step/3d_printing.png -------------------------------------------------------------------------------- /src/images/step_by_step/3d_printing.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 34 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /src/images/step_by_step/assembly.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/step_by_step/assembly.JPG -------------------------------------------------------------------------------- /src/images/step_by_step/elastomer_fabrication.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/step_by_step/elastomer_fabrication.JPG -------------------------------------------------------------------------------- /src/images/step_by_step/pcb.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/step_by_step/pcb.JPG -------------------------------------------------------------------------------- /src/images/tweezers.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mcubelab/gelslim/51953e685e923c0c1f6e24ff031f22bb49b4bf19/src/images/tweezers.JPG --------------------------------------------------------------------------------