// // file: /home2/designs/boards/Hub_0/Work/Geometries/hub_0_pcb // // date: Original Rev. 17-Apr-2014 // Current Rev. 6-Jul-2015 // // // // Notes: // // The ATCA specification does not dimension things wrt // the lower left-hand corner of the card. Rather the // ATCA dimensions are wrt the center of a required hole // that is located in the lower left-hand corner of the // card. The center of this hole is at X = 3.57 Y = 5.55 // wrt the lower left-hand corner of the card. // // All dimensions in the Mentor design of the Hub-Module // will be wrt the lower left-hand corner of the card. // // 7-Feb-2015 Add the "bump out" at the rear of the // card in zone 3. This is to make the Hub-Module PCB // match the Rutherford Appleton drawing: // // 1-TE-0183-012-00-B from March-2015. // // Note that this does not exactly match the Zone 3 // bump out shown on page 2-10 of the ATCA specification // PICMG 3.0 Rev 3.0 // $$lock_windows(@on); $$create_board("hub_0_pcb"); $$page(0.0, 0.0, 0.75, @mm, 0.0, 0.0, [0.0,0.0,'BO$hub_0_pcb'] ); $$point_mode(@vertex); $$attribute( "MILLING_ORIGIN", "MILLING 0 0.0 0 ", , @scale , , [0.0, 0.0]); $$attribute( "DRILL_ORIGIN", "0.0", , @scale , , [0.0, 0.0]); $$template_line_style( @Solid ); // // For the outlines given in the "Initial - Terminal" // format we will begin at 0,0 and proceed CCW. // // // Board Outline // $$initial([ 0.00, 0.00 ], , @nosnap ); $$terminal([ 280.00, 0.00 ]); $$terminal([ 280.00, 210.65 ]); $$terminal([ 315.00, 210.65 ]); $$terminal([ 315.00, 317.25 ]); $$terminal([ 280.00, 317.25 ]); $$terminal([ 280.00, 322.25 ]); $$terminal([ 0.00, 322.25 ]); $$terminal([ 0.00, 0.00 ]); $$path( "BOARD_OUTLINE", 0.20 ); // // Board Routing Outline // $$initial([ 0.00, 0.00 ], , @nosnap ); $$terminal([ 280.00, 0.00 ]); $$terminal([ 280.00, 210.65 ]); $$terminal([ 315.00, 210.65 ]); $$terminal([ 315.00, 317.25 ]); $$terminal([ 280.00, 317.25 ]); $$terminal([ 280.00, 322.25 ]); $$terminal([ 0.00, 322.25 ]); $$terminal([ 0.00, 0.00 ]); $$attribute( "BOARD_ROUTING_OUTLINE", "", @mark, @scale ); // // Board Placement Ooutline // $$initial([ 0.00, 0.00 ], , @nosnap ); $$terminal([ 280.00, 0.00 ]); $$terminal([ 280.00, 210.65 ]); $$terminal([ 315.00, 210.65 ]); $$terminal([ 315.00, 317.25 ]); $$terminal([ 280.00, 317.25 ]); $$terminal([ 280.00, 322.25 ]); $$terminal([ 0.00, 322.25 ]); $$terminal([ 0.00, 0.00 ]); $$attribute( "BOARD_PLACEMENT_OUTLINE", "", @mark, @scale ); $$attribute( "BOARD_DEFINITION_IDENTIFIER", ""); $$attribute( "BOARD_ROUTING_LAYERS", "", , , , [12, 0]); $$attribute( "POWER_NET_NAMES", "GROUND"); $$attribute( "DIAGONAL_ROUTING_ALLOWED", "yes"); $$attribute( "TJUNCTIONS_ALLOWED", "yes"); $$attribute( "BOARD_DEFAULT_PADSTACK", "TERM_60"); $$attribute( "BOARD_DEFAULT_VIA", "via_0mm65"); $$attribute( "DEFAULT_PAD_SIZE", "", , @scale , , [ 1.50, 0.0 ]); $$attribute( "BOARD_PLACEMENT_GRID", "", , @scale , , [ 0.10, 0.0 ]); $$attribute( "BOARD_PLACEMENT_CLEARANCE", "", , @scale , , [ 0.10, 0.0 ]); $$attribute( "BOARD_MATERIAL", ""); $$attribute( "BOARD_THICKNESS", "", , @scale , , [ 0.0, 0.0 ]); $$attribute( "BOARD_INTERNAL_COPPER", "", , @scale , , [ 0.0, 0.0 ]); $$attribute( "BOARD_EXTERNAL_COPPER", "", , @scale , , [ 0.0, 0.0 ]); $$text( "SILKSCREEN_1", "Hub Module", 261.7, 302.5, 4.00, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); $$text( "SILKSCREEN_1", "ATLAS L1Calo", 261.7, 295.0, 3.50, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); $$text( "SILKSCREEN_1", "July-2015", 261.7, 284.0, 3.50, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); $$text( "SILKSCREEN_1", "GTH Fanout 2x74", 228.0, 186.0, 2.50, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); // // Label the Layers // $$text( "DRAWING_1", "MSU Physics April 2014", 50.0, -13.0, 3.0, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); // $$text( "SIGNAL_1", "Trace Layer TOP Positive Data", 50.0, -7.5, 3.0, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); // $$text( "POWER_1", "GROUND Plane BOTTOM Negative Data", 50.0, -7.5, 3.0, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); //$$text( "SILKSCREEN_1", "Silkscreen on TOP", 50.0, -7.5, 3.0, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); $$text( "SOLDER_MASK_1", "Solder Mask TOP", 50.0, -7.5, 3.0, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); $$text( "SOLDER_MASK_2", "Solder Mask BOTTOM", 50.0, -7.5, 3.0, @BC, 0, 0.90, 0.20, "std", "None", 0.0, 0.0 ); // // End of the Layer Labels // // // Mechanical Drill Holes: // // All of these holes are 2.70 mm diameter non-plated. // Some of these holes are for mounting the Face Plate. // Some of these holes are for mounting the Cover Plate(s). // // I don't yet understand the correct positions for the // middle hole along the front edge or for the hole // in about the center of the card. I just made up // rough locations for these 2 holes. // // Note that the bottom front panel mounting hole, in // the SW cornet of the PCB, is no longer in the PCB // geometry itself. This hole is now in the ESD Strip // geometry. This holes is at X = 3.57 mm Y = 5.55 mm. // // Recall that in the Hub PCB Mentor design that the // lower left-hand corner of the PCB, its SW corner // of the PCB, is the 0,0 coordinate of this layout. // // The mechanical hole in the card's South-West corner // is now included in the ESD Strip geometry where // this hole is the official connection to the front // panel from the card's Shelf Ground. // // NOTE: I have currently removed the mechanical drill hole // at 3.57, 161.1 which is presumably for front // panel mounting. The Hub needs this front panel // space for front panel components. It's clear // anyway that the Hub will need custom front panel // atachment hardware. // // NOTE: I'm now 6-July-2015 removing the side 2 cover // mounting holes at: 127.70, 161.10 (verify location) // and 251.80, 55.10 and 251.80, 196.10. These // are clearly right in the middle of where we need // to place big components and the Hub will need a // custom side 2 cover anyway. // // // $$attribute( "DRILL_DEFINITION_UNPLATED", "2.70", , @scale , , [ 3.57, 316.70 ]); $$attribute( "DRILL_DEFINITION_UNPLATED", "2.70", , @scale , , [ 251.80, 311.70 ]); $$circle( "POWER", 3.57, 316.70, 2.90, 0.0); $$circle( "POWER", 251.80, 311.70, 2.90, 0.0); // Currently Removed Mechanical Holes: // e.g. side 2 cover mounting and front panel mounting //$$attribute( "DRILL_DEFINITION_UNPLATED", "2.70", , @scale , , [ 3.57, 5.55 ]); //$$circle( "POWER", 3.57, 5.55, 2.90, 0.0); //$$attribute( "DRILL_DEFINITION_UNPLATED", "2.70", , @scale , , [ 3.57, 161.10 ]); // verify location //$$circle( "POWER", 3.57, 161.10, 2.90, 0.0); //$$attribute( "DRILL_DEFINITION_UNPLATED", "2.70", , @scale , , [ 251.80, 196.10 ]); //$$circle( "POWER", 251.80, 196.10, 2.90, 0.0); //$$attribute( "DRILL_DEFINITION_UNPLATED", "2.70", , @scale , , [ 251.80, 55.10 ]); //$$circle( "POWER", 251.80, 55.10, 2.90, 0.0); //$$attribute( "DRILL_DEFINITION_UNPLATED", "2.70", , @scale , , [ 127.70, 161.10 ]); // verify location //$$circle( "POWER", 127.70, 161.10, 2.90, 0.0); // // Front Panel // ------------- // // The following are some optional lines on layer // CONFORMAL_MASK_1 that indicate the location // of the Front Panel. Recall that ATCA has a "U" // shaped front panel that wraps around and covers // part of the card. The "U" shap is for the // RF caskets. // // Front Panel Dimension References: // // Front edge of the PCB to the inner surface // of the front of the front panel: 2.54 mm pg 2-12 // // Recommended thickness of the front panel // material: 1.0 mm pg 2-22 // // Front edge of the PCB to the center of the // holes along the front edge of the PCB: 3.57 mm pg 2-8 // // Distace from the top to bottom mounting holes // along the front edge of the PCB: 311.15 mm pg 2-8 // // Width of the lip that covers part of the PCB, i.e. // from the inner surface of the front of the front // panel to the edge of the front panel lip that // covers part of PCB side 1: 9.98 mm pg 2-23 // But I measure this to be about: 11.0 mm // // From the inner surface of the front of the front // panel to the center of the mounting screw hole // along the front edge of the PCB: 6.11 mm pg 2-23 // // In the vertical dimension the distace from the // center of the holes along the front edge of the // PCB to the top edge or the bottom edge of the // front panel is: 19.89 mm pg 2-24 // // The above point together with the 4th point // implies that the total vertical heigth of the // front panel is: 350.93 mm and it is symmetric // above and below the top edges of the PCB. // // The vertical heigth of the front panel lip that // covers part of side 1 of the PCB is: 320.8 mm pg 2-24 // and is symmetric above and below the top and // bottom PCB edge. // // The vertical distance center to center of the // front panel jack screws holes and alignment pin // is: 336.30 mm pg 2-24 // // // // Lines to show the inner and outer surfaces of the front // surface of the front panel. In Mentor coordinates the Y // dimension of the front panel is from -14.34 mm to 336.59 mm. // This is a total front panel height of: 350.93 mm. // $$path( "CONFORMAL_MASK_1", 0.20, , [ -2.54, -14.34, -2.54, 336.59 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -3.54, -14.34, -3.54, 336.59 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -3.54, 336.59, -2.54, 336.59 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -3.54, -14.34, -2.54, -14.34 ]); // // Lines to show how much of the PCB is covered by // the wrap around "U" shap. In Mentor coordinates the Y // dimension of the front panel lip over the PCB side 1 // is from 0.73 mm to 321.52 mm. The total height // of the lip over the PCB is: 320.80 mm. // $$path( "CONFORMAL_MASK_1", 0.20, , [ 8.00, 1.73, 8.00, 320.52 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ 8.00, 1.73, 7.00, 0.73 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ 8.00, 320.53, 7.00, 321.52 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -2.54, 321.52, 7.00, 321.52 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -2.54, 0.73, 7.00, 0.73 ]); // // Lines to show the Jack Screws on the // front panel (drawn at Y 329.28 mm -7.03 mm): // $$path( "CONFORMAL_MASK_1", 0.20, , [ -7.54, 326.28, -3.54, 326.28 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -7.54, 332.28, -3.54, 332.28 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 324.48, -7.54, 324.48 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 334.08, -7.54, 334.08 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 325.68, -7.54, 325.68 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 326.88, -7.54, 326.88 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 328.08, -7.54, 328.08 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 329.28, -7.54, 329.28 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 330.48, -7.54, 330.48 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 331.68, -7.54, 331.68 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 332.88, -7.54, 332.88 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, 324.48, -14.54, 334.08 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -7.54, 324.48, -7.54, 334.08 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -2.54, 327.78, 10.00, 327.78 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -2.54, 330.78, 10.00, 330.78 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ 10.00, 327.78, 12.40, 329.28 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ 10.00, 330.78, 12.40, 329.28 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -7.54, -4.03, -3.54, -4.03 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -7.54, -10.03, -3.54, -10.03 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -2.23, -7.54, -2.23 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -11.83, -7.54, -11.83 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -3.43, -7.54, -3.43 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -4.63, -7.54, -4.63 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -5.83, -7.54, -5.83 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -7.03, -7.54, -7.03 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -8.23, -7.54, -8.23 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -9.43, -7.54, -9.43 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -10.63, -7.54, -10.63 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.54, -2.23, -14.54, -11.83 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -7.54, -2.23, -7.54, -11.83 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -2.54, -5.53, 10.00, -5.53 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -2.54, -8.53, 10.00, -8.53 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ 10.00, -5.53, 12.40, -7.03 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ 10.00, -8.53, 12.40, -7.03 ]); // // Lines to hint at the Handles at the top and // bottom of the card. Total handle length is // drawn at about 50 mm: // $$path( "CONFORMAL_MASK_1", 0.20, , [ -9.50, 324.48, -9.50, 300.00 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -4.50, 316.00, -4.50, 296.50 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -4.50, 316.00, -3.54, 317.00 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -9.50, 300.00, -15.00, 277.00 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -4.50, 296.50, -10.80, 275.60 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -15.00, 277.00, -14.70, 276.00 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.70, 276.00, -14.00, 275.20 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.00, 275.20, -12.70, 274.70 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -12.70, 274.70, -11.50, 275.00 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -11.50, 275.00, -10.80, 275.60 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -9.50, -2.23, -9.50, 22.25 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -4.50, 6.25, -4.50, 25.75 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -4.50, 6.25, -3.54, 5.25 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -9.50, 22.25, -15.00, 45.25 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -4.50, 25.75, -10.80, 46.65 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -15.00, 45.25, -14.70, 46.25 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.70, 46.25, -14.00, 47.05 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -14.00, 47.05, -12.70, 47.55 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -12.70, 47.55, -11.50, 47.25 ]); $$path( "CONFORMAL_MASK_1", 0.20, , [ -11.50, 47.25, -10.80, 46.65 ]); // // Now some temporary lines to mark out the // Locations of the Front Panel LEDs // // These marks will act as keep outs during // the rest of the PCB component layout work. // // // Y with 0 // @ Corner // ----------- // Mandatory LED_1 257.39 mm // // Optional LED_2 245.39 mm // // Optional LED_3 233.39 mm // // reserved for specific LEDs 223.39 mm // reserved for specific LEDs 74.86 // // Mandatory Blue 64.85 mm // // LED_1 Mandatory $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 260.39, 8.00, 260.39 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 8.00, 260.39, 8.00, 254.39 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 254.39, 8.00, 254.39 ]); // LED_2 Optional $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 248.39, 8.00, 248.39 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 8.00, 248.39, 8.00, 242.39 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 242.39, 8.00, 242.39 ]); // LED_3 Optional $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 236.39, 8.00, 236.39 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 8.00, 236.39, 8.00, 230.39 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 230.39, 8.00, 230.39 ]); // LED_4 Mandatory $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 67.85, 8.00, 67.85 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 8.00, 67.85, 8.00, 61.85 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 61.85, 8.00, 61.85 ]); // LEDs Specific Placement Range $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 223.39, 8.00, 223.39 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 8.00, 223.39, 8.00, 74.86 ]); $$path( "CONFORMAL_MASK_2", 0.20, , [ 0.00, 74.86, 8.00, 74.86 ]); // // A line in Side 2 Silk to show the // fully Closed position of the switch // actuation boss on the front panel handle // $$path( "SILKSCREEN_2", 0.20, , [ 4.50, 28.57, 6.50, 28.57 ]); // // Add a Circle in Side 1 Silkscreen // to show the coil of slack Fiber Optic // Ribbon cable from the ROD to the MP0 // mid-board optical connector. The // center of this one turn coil is though // to be at X = 261.7 mm Y = 262.9 mm. // The diameter of the coil is about 61.5 mm. $$circle( "SILKSCREEN_1", 261.7, 262.9, 61.5, 0.20 ); $$circle( "SILKSCREEN_1", 261.7, 262.9, 61.0, 0.20 ); // // Add a 2nd Circle in Side 1 Silkscreen // to show the coil of slack Fiber Optic // Ribbon cable from the ROD to the MP0 // mid-board optical connector. The // center of this one turn coil is though // to be at X = 261.7 mm Y = 268.65 mm. // The diameter of the coil is about 73.0 mm. $$circle( "SILKSCREEN_1", 261.7, 268.65, 73.0, 0.20 ); $$circle( "SILKSCREEN_1", 261.7, 268.65, 72.5, 0.20 );