// // File: st_accel_mag_sensor_geom.txt // // Date: 10-Aug-2023 Start work on the initial version // // // // ST ISM303DAC accelerometer & magnetometer sensor // --------------- // // This ST Micro sensor appears to have a LGA-12 foot print // and it uses a normal CCW pin number scheme. // // This layout is based on the ST ISM303DAC datasheet that // only shows the LGA-12 2m x 2mm package itself - not a // recomended land pad layout. // // This geometry has pin 1 in the NW corner. // // This geometry includes its own SMD pads // // The package itself is: 2mm x 2mm x 1mm // // // This package has 12 pins. // // The Pads for Pins: 1, 2, 3, 4, 7, 8, 9, 10 // // are: 0.275 mm in X by 0.250 mm in Y // // The Pads for Pins: 5, 6, 11, 11 // // are: 0.250 mm in X by 0.275 mm in Y // // Vertically the C to C pad spacing is 0.500 mm // for the 8 pads in the 2 vertical columns, i.e. // pins 1, 2, 3, 4 7, 8, 9, 10. // // Horizontally the C to C pad spacing of the pair of // pads adjacent to the center Y axis is 0.500 mm. // // Horizontally the C to C pad spacing of a pad adjacent // to the Vertical Y axis and a pad in the vertical column // of pads is 0.5125 mm. // // It says, "the LGA land pattern should be an idential // mirror image of the bottom pattern on the LGA package". // // $abort_enable = @false; $$lock_windows(@on) ; $$snap_diagonal(@off) ; $$snap_orthogonal(@off) ; //---------------------------------------------------------------------------- // // SMD Horizontal Pad for the ST ISM303DAC Accel & Mag Sensor // // This pad is 0.275 mm in X by 0.250 mm in Y $$create_pin("LGA_Horz_pad", @replace); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$LGA_Horz_pad'] ); $$point_mode(@vertex); $$polygon( "PAD", , [ -0.1375, -0.125, 0.1375, -0.125, 0.1375, 0.125, -0.1375, 0.125 ] ); $$polygon( "SOLDER_MASK", , [ -0.1875, -0.175, 0.1875, -0.175, 0.1875, 0.175, -0.1875, 0.175 ] ); $$polygon( "PASTE_MASK", , [ -0.1375, -0.125, 0.1375, -0.125, 0.1375, 0.125, -0.1375, 0.125 ] ); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- //---------------------------------------------------------------------------- // // SMD Vertical Pad for the ST ISM303DAC Accel & Mag Sensor // // This pad is 0.250 mm in X by 0.275 mm in Y $$create_pin("LGA_Vert_pad", @replace); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'PI$LGA_Vert_pad'] ); $$point_mode(@vertex); $$polygon( "PAD", , [ -0.125, -0.1375, 0.125, -0.1375, 0.125, 0.1375, -0.125, 0.1375 ] ); $$polygon( "SOLDER_MASK", , [ -0.175, -0.1875, 0.175, -0.1875, 0.175, 0.1875, -0.175, 0.1875 ] ); $$polygon( "PASTE_MASK", , [ -0.125, -0.1375, 0.125, -0.1375, 0.125, 0.1375, -0.125, 0.1375 ] ); $$attribute( "TERMINAL_SURFACE_DEFINITION", ""); //---------------------------------------------------------------------------- $$create_component("ST_LGA_12", @replace); $$page(0.0, 0.0, 0.0, @mm, 0.0, 0.0, [0.0,0.0,'CO$ST_LGA_12'] ); $$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.00, 1.00 ], , @nosnap ); $$terminal([ -1.00, 1.00 ] ); $$terminal([ -1.00, -1.00 ] ); $$terminal([ 1.00, -1.00 ] ); $$terminal([ 1.00, 1.00 ] ); $$attribute( "COMPONENT_PLACEMENT_OUTLINE", "", @mark, @scale ); // // Silkscreen - a rectangle just outside the perimeter // $$template_line_style( @Solid ); $$path( "SILKSCREEN", 0.20, , [ -1.20, 1.20, 1.20, 1.20 ]); $$path( "SILKSCREEN", 0.20, , [ -1.20, -1.20, 1.20, -1.20 ]); $$path( "SILKSCREEN", 0.20, , [ 1.20, 1.20, 1.20, -1.20 ]); $$path( "SILKSCREEN", 0.20, , [ -1.20, 1.20, -1.20, -1.20 ]); // Pin #1 Marker $$circle( "SILKSCREEN_1", -1.80, 1.70, 0.4, 0.20 ); $$circle( "SILKSCREEN_1", -1.80, 1.70, 0.6, 0.20 ); $$circle( "SILKSCREEN_1", -1.80, 1.70, 0.7, 0.20 ); $$circle( "SILKSCREEN_1", -1.80, 1.70, 0.8, 0.20 ); // Reference Designator is on SILKSCREEN Layer. $$text( "SILKSCREEN", "^$ref", 0.0, 2.5, 2.0, @BC, 0, 0.7, 0.20, "std", "None", 0.0, 0.0 ); // // Define the 8 pins on the ST ISM303DAC // // pin #1 is in the Upper Left-hand corner. // // Pins are numbered in the normal CCW rotation. // $$attribute( "COMPONENT_PIN_DEFINITION", "1", , @scale , , [ -0.7625, 0.750 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "1, LGA_Horz_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "2", , @scale , , [ -0.7625, 0.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "2, LGA_Horz_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "3", , @scale , , [ -0.7625, -0.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "3, LGA_Horz_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "4", , @scale , , [ -0.7625, -0.750 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "4, LGA_Horz_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "5", , @scale , , [ -0.250, -0.7625 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "5, LGA_Vert_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "6", , @scale , , [ 0.250, -0.7625 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "6, LGA_Vert_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "7", , @scale , , [ 0.7625, -0.750 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "7, LGA_Horz_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "8", , @scale , , [ 0.7625, -0.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "8, LGA_Horz_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "9", , @scale , , [ 0.7625, 0.250 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "9, LGA_Horz_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "10", , @scale , , [ 0.7625, 0.750 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "10, LGA_Horz_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "11", , @scale , , [ 0.250, 0.7625 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "11, LGA_Vert_pad"); $$attribute( "COMPONENT_PIN_DEFINITION", "12", , @scale , , [ -0.250, 0.7625 ]); $$attribute( "COMPONENT_PADSTACK_OVERRIDE", "12, LGA_Vert_pad");