// // File: bosch_tph_sensor_geom.txt // // Date: 10-Aug-2023 Start work on the initial version // // // // Bosch BME280 temperature, pressure, humidity sensor // --------------- // // This Bosch sensor appears to have a custom foot print and // note that it's pinout is numbered CW when viewed from // the top, i.e. opposite from the normal CCW numbering. // // This layout is based on the Bosch BME280 datasjeet recommended // land pattern on page 43 of that datasheet. I will make this // geometry exactly match the Bosch recommendation. // // This geometry has pin 1 in the NE corner and numbers go CW. // // This geometry includes its own SMD pad. // // In the land pattern the pads are placed: // // 2.05 mm c to c in X and 0.65 mm c to c in Y // $abort_enable = @false; $$lock_windows(@on) ; $$snap_diagonal(@off) ; $$snap_orthogonal(@off) ; //---------------------------------------------------------------------------- // // SMD Pad for the Bosch BME280 TPH Sensor // // This pad is 0.50 mm in X by 0.35 mm in Y $$create_pin("bme280_pad", @replace); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$bme280_pad'] ); $$point_mode(@vertex); $$polygon( "PAD", , [ -0.250, -0.175, 0.250, -0.175, 0.250, 0.175, -0.250, 0.175 ] ); $$polygon( "SOLDER_MASK", , [ -0.300, -0.225, 0.300, -0.225, 0.300, 0.225, -0.300, 0.225 ] ); $$polygon( "PASTE_MASK", , [ -0.250, -0.175, 0.250, -0.175, 0.250, 0.175, -0.250, 0.175 ] ); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- $$create_component("Bosch_BME280", @replace); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'CO$Bosch_BME280'] ); $$point_mode(@vertex); $$attribute( "COMPONENT_LAYOUT_TYPE", "surface"); $$attribute( "COMPONENT_LAYOUT_SURFACE", "both"); $$attribute( "COMPONENT_HEIGHT", "", , @scale , , [ 1.5, 0.0 ]); // // Real physical size placement outline // // $$template_line_style( @Solid ); $$initial([ 1.35, 1.25 ], , @nosnap ); $$terminal([ -1.35, 1.25 ] ); $$terminal([ -1.35, -1.25 ] ); $$terminal([ 1.35, -1.25 ] ); $$terminal([ 1.35, 1.25 ] ); $$attribute( "COMPONENT_PLACEMENT_OUTLINE", "", @mark, @scale ); // // Silkscreen - a rectangle just outside the perimeter // $$template_line_style( @Solid ); $$path( "SILKSCREEN", 0.20, , [ -1.53, 1.40, 1.53, 1.40 ]); $$path( "SILKSCREEN", 0.20, , [ -1.53, -1.40, 1.53, -1.40 ]); $$path( "SILKSCREEN", 0.20, , [ 1.53, 1.40, 1.53, -1.40 ]); $$path( "SILKSCREEN", 0.20, , [ -1.53, 1.40, -1.53, -1.40 ]); // Pin #1 Marker $$circle( "SILKSCREEN_1", 2.10, 2.00, 0.4, 0.20 ); $$circle( "SILKSCREEN_1", 2.10, 2.00, 0.6, 0.20 ); $$circle( "SILKSCREEN_1", 2.10, 2.00, 0.7, 0.20 ); $$circle( "SILKSCREEN_1", 2.10, 2.00, 0.8, 0.20 ); // Reference Designator is on SILKSCREEN Layer. $$text( "SILKSCREEN", "^$ref", 0.0, 2.7, 2.0, @BC, 0, 0.7, 0.20, "std", "None", 0.0, 0.0 ); // // Define the 8 pins on the Bosch BME280 // // pin #1 is in the Upper Righthand corner. // // Pins are numbered in the NOT normal CW rotation. // $$attribute( "COMPONENT_PIN_DEFINITION", "1", , @scale , , [ 1.025, 0.975 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "1, bme280_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "2", , @scale , , [ 1.025, 0.325 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "2, bme280_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "3", , @scale , , [ 1.025, -0.325 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "3, bme280_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "4", , @scale , , [ 1.025, -0.975 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "4, bme280_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "5", , @scale , , [ -1.025, -0.975 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "5, bme280_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "6", , @scale , , [ -1.025, -0.325 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "6, bme280_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "7", , @scale , , [ -1.025, 0.325 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "7, bme280_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "8", , @scale , , [ -1.025, 0.975 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "8, bme280_pad");