X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com Message-ID: <53C5521F.8090506@sonic.net> Date: Tue, 15 Jul 2014 09:09:03 -0700 From: Dave Curtis User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:16.0) Gecko/20121028 Thunderbird/16.0.2 MIME-Version: 1.0 To: geda-user AT delorie DOT com Subject: Re: [geda-user] thermal flag in footprint? References: <53C5441E DOT 4090502 AT sonic DOT net> <201407151520 DOT s6FFKY9Q006882 AT envy DOT delorie DOT com> In-Reply-To: <201407151520.s6FFKY9Q006882@envy.delorie.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Sonic-ID: C;ppW+VjoM5BGOx02zUc16mQ== M;MGrYVjoM5BGOx02zUc16mQ== X-Spam-Flag: No X-Sonic-Spam-Details: 0.0/5.0 by cerberusd Reply-To: geda-user AT delorie DOT com On 07/15/2014 08:20 AM, DJ Delorie wrote: >> Is is legal to set the thermal flag in a footprint? > > Probably, but it's a bad idea design-wise to do so - a user of the > footprint might get a short if they don't realize the thermal is > there. > I'm looking at an HSSOP package, which is an SO-20 with a thermal slug. My current footprint prototype is attached. The SO pins are totally normal. For the heat slug, I've broken it down as: 1. A Pad[] with no mask that defines the comp-side copper. 2. A Pad[] overlaid with the above pad that defines the comp-side mask aperture. Of course, that could be done with one pad if the mask inset was equal all around, but I'm doing this with a script so I wanted something easy to generalize to other similar parts. 3. A bunch of Pin[]'s for the via drills. Currently, the pad is there just to remind you where they are, and there is enough clearance so that it is obvious if they haven't been thermal'ed into the solder-side copper. I'm assuming the user draws the solder-side copper as a polygon, and none of that is included in the footprint, except for the pin pads which allow the thermal vias to be thermaled into the back-side polygon. So I think the options are: 1. Stop. It's good enough. Let the user click on every via to connect the ground plane. 2. Set the "hole" flag on the Pin[]'s so that they become bare drills. Assume the user is paying attention and draws the ground plane on the back, and plating will happen. I suspect that you lose PCB's connectivity checking if you were to be so daft as to draw some other signal on top of one of the holes by accident. 3. Set the thermal flag in the footprint itself. Element["" "" "" "" 1000 1000 0 0 0 100 ""] ( Pad[-30019 -22500 -26870 -22500 2362 1600 3162 "1" "1" "square"] Pad[-30019 -17500 -26870 -17500 2362 1600 3162 "2" "2" "square"] Pad[-30019 -12500 -26870 -12500 2362 1600 3162 "3" "3" "square"] Pad[-30019 -7500 -26870 -7500 2362 1600 3162 "4" "4" "square"] Pad[-30019 -2500 -26870 -2500 2362 1600 3162 "5" "5" "square"] Pad[-30019 2499 -26870 2499 2362 1600 3162 "6" "6" "square"] Pad[-30019 7500 -26870 7500 2362 1600 3162 "7" "7" "square"] Pad[-30019 12500 -26870 12500 2362 1600 3162 "8" "8" "square"] Pad[-30019 17500 -26870 17500 2362 1600 3162 "9" "9" "square"] Pad[-30019 22500 -26870 22500 2362 1600 3162 "10" "10" "square"] Pad[26870 -22500 30019 -22500 2362 1600 3162 "20" "20" "square"] Pad[26870 -17500 30019 -17500 2362 1600 3162 "19" "19" "square"] Pad[26870 -12500 30019 -12500 2362 1600 3162 "18" "18" "square"] Pad[26870 -7500 30019 -7500 2362 1600 3162 "17" "17" "square"] Pad[26870 -2500 30019 -2500 2362 1600 3162 "16" "16" "square"] Pad[26870 2499 30019 2499 2362 1600 3162 "15" "15" "square"] Pad[26870 7500 30019 7500 2362 1600 3162 "14" "14" "square"] Pad[26870 12500 30019 12500 2362 1600 3162 "13" "13" "square"] Pad[26870 17500 30019 17500 2362 1600 3162 "12" "12" "square"] Pad[26870 22500 30019 22500 2362 1600 3162 "11" "11" "square"] # # comp cu polygon # Pt(-5 mm,-7 mm) # Pt(-5 mm,7 mm) # Pt(5 mm,7 mm) # Pt(5 mm,-7 mm) Pad[0 7874 0 -7874 39370 800 0 "THRM" "21" "square"] # comp anti-mask polygons # mask clearance polygon 1 # Pt(-3.2 mm,-5.85 mm) # Pt(-3.2 mm,5.85 mm) # Pt(3.2 mm,5.85 mm) # Pt(3.2 mm,-5.85 mm) Pad[0 10433 0 -10433 25196 0 25196 "THRM" "21" "square"] # Drills # Pt(-3.33333 mm,-5.83333 mm) , 0.3 mm Pin[-13123 22965 3181 800 0 1181 "" "21" ""] # Pt(-3.33333 mm,-3.5 mm) , 0.3 mm Pin[-13123 13779 3181 800 0 1181 "" "21" ""] # Pt(-3.33333 mm,-1.16667 mm) , 0.3 mm Pin[-13123 4593 3181 800 0 1181 "" "21" ""] # Pt(-3.33333 mm,1.16667 mm) , 0.3 mm Pin[-13123 -4593 3181 800 0 1181 "" "21" ""] # Pt(-3.33333 mm,3.5 mm) , 0.3 mm Pin[-13123 -13779 3181 800 0 1181 "" "21" ""] # Pt(-3.33333 mm,5.83333 mm) , 0.3 mm Pin[-13123 -22965 3181 800 0 1181 "" "21" ""] # Pt(4.44089e-16 mm,-4.66667 mm) , 0.3 mm Pin[0 18372 3181 800 0 1181 "" "21" ""] # Pt(4.44089e-16 mm,-2.33333 mm) , 0.3 mm Pin[0 9186 3181 800 0 1181 "" "21" ""] # Pt(4.44089e-16 mm,8.88178e-16 mm) , 0.3 mm Pin[0 0 3181 800 0 1181 "" "21" ""] # Pt(4.44089e-16 mm,2.33333 mm) , 0.3 mm Pin[0 -9186 3181 800 0 1181 "" "21" ""] # Pt(4.44089e-16 mm,4.66667 mm) , 0.3 mm Pin[0 -18372 3181 800 0 1181 "" "21" ""] # Pt(3.33333 mm,-5.83333 mm) , 0.3 mm Pin[13123 22965 3181 800 0 1181 "" "21" ""] # Pt(3.33333 mm,-3.5 mm) , 0.3 mm Pin[13123 13779 3181 800 0 1181 "" "21" ""] # Pt(3.33333 mm,-1.16667 mm) , 0.3 mm Pin[13123 4593 3181 800 0 1181 "" "21" ""] # Pt(3.33333 mm,1.16667 mm) , 0.3 mm Pin[13123 -4593 3181 800 0 1181 "" "21" ""] # Pt(3.33333 mm,3.5 mm) , 0.3 mm Pin[13123 -13779 3181 800 0 1181 "" "21" ""] # Pt(3.33333 mm,5.83333 mm) , 0.3 mm Pin[13123 -22965 3181 800 0 1181 "" "21" ""] # ^^ end thermal sink ElementLine[23114 -31496 23114 31496 1000] ElementLine[23114 31496 -23114 31496 1000] ElementLine[-23114 31496 -23114 -31496 1000] ElementLine[-23114 -31496 23114 -31496 1000] )