protoserve: Add ALio layout
This commit is contained in:
parent
9ffc96cbe5
commit
73a48f1dcb
2 changed files with 69 additions and 5 deletions
|
|
@ -100,7 +100,7 @@ def deserialize(obj, unit):
|
|||
via_dia = mil(float(obj['via_dia']))
|
||||
trace_width = mil(float(obj['trace_width']))
|
||||
# Force 1mm margin to avoid shorts when adjacent to planes such as that one in the RF THT proto.
|
||||
return pb.PatternProtoArea(pitch, pitch, pb.PoweredProto(pitch, hole_dia, clearance, via_size=via_drill, power_pad_dia=via_dia, trace_width=trace_width, unit=unit), margin=1.0, unit=unit)
|
||||
return pb.PatternProtoArea(pitch, pitch, pb.PoweredProto(pitch, hole_dia, clearance, via_size=via_drill, power_pad_dia=via_dia, trace_width=trace_width, unit=unit), margin=unit(1.0, MM), unit=unit)
|
||||
|
||||
case 'flower':
|
||||
pitch = mil(float(obj.get('pitch', 2.54)))
|
||||
|
|
@ -111,6 +111,22 @@ def deserialize(obj, unit):
|
|||
case 'spiky':
|
||||
return pb.PatternProtoArea(2.54, 2.54, pb.SpikyProto(), unit=unit)
|
||||
|
||||
case 'alio':
|
||||
pitch = mil(float(obj.get('pitch', 2.54)))
|
||||
drill = mil(float(obj.get('hole_dia', 0.9)))
|
||||
clearance = mil(float(obj.get('clearance', 0.3)))
|
||||
link_pad_width = mil(float(obj.get('link_pad_width', 1.1)))
|
||||
link_trace_width = mil(float(obj.get('link_trace_width', 0.5)))
|
||||
via_size = mil(float(obj.get('via_hole_dia', 0.4)))
|
||||
return pb.PatternProtoArea(pitch, pitch, pb.AlioCell(
|
||||
pitch=pitch,
|
||||
drill=drill,
|
||||
clearance=clearance,
|
||||
link_pad_width=link_pad_width,
|
||||
link_trace_width=link_trace_width,
|
||||
via_size=via_size
|
||||
), margin=unit(1.5, MM), unit=unit)
|
||||
|
||||
case 'rf':
|
||||
pitch = float(obj.get('pitch', 2.54))
|
||||
hole_dia = float(obj['hole_dia'])
|
||||
|
|
|
|||
|
|
@ -360,10 +360,11 @@ input {
|
|||
<a href="#" data-placeholder="smd">SMD area</a>
|
||||
<a href="#" data-placeholder="tht" class="double-sided-only">THT area</a>
|
||||
<a href="#" data-placeholder="manhattan">Manhattan area</a>
|
||||
<a href="#" data-placeholder="flower"class="double-sided-only">THT Flower area</a>
|
||||
<a href="#" data-placeholder="powered"class="double-sided-only">Powered THT area</a>
|
||||
<a href="#" data-placeholder="rf"class="double-sided-only">RF THT area</a>
|
||||
<a href="#" data-placeholder="spiky"class="double-sided-only">Spiky hybrid area</a>
|
||||
<a href="#" data-placeholder="flower" class="double-sided-only">THT Flower area</a>
|
||||
<a href="#" data-placeholder="powered" class="double-sided-only">Powered THT area</a>
|
||||
<a href="#" data-placeholder="rf" class="double-sided-only">RF THT area</a>
|
||||
<a href="#" data-placeholder="spiky" class="double-sided-only">Spiky hybrid area</a>
|
||||
<a href="#" data-placeholder="alio" class="double-sided-only">ALio hybrid area</a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -615,6 +616,53 @@ input {
|
|||
This area has a fixed 100 mil / 2.54 mm pitch.
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template id="tpl-g-alio">
|
||||
<div data-type="alio" class="group alio">
|
||||
<h4>ALio hybrid area</h4>
|
||||
<div>
|
||||
Layout by arief ibrahim adha (<a href="https://hackaday.io/project/28570-alio-new-hardware-prototyping-platform">hackaday.io</a>).
|
||||
Top and bottom have opposed orientation of the SMD pads.
|
||||
</div>
|
||||
<span class="content area-controls">(<a href="#" class="area-remove">Remove</a><a href="#" class="area-move">Move</a>)</span>
|
||||
<label class="proportion">Proportion
|
||||
<input type="text" name="layout_prop" value="1">
|
||||
</label>
|
||||
|
||||
<h5>Area Settings</h5>
|
||||
<label>Pitch
|
||||
<input type="text" name="pitch" placeholder="length" value="2.54">
|
||||
<span class="unit metric">mm</span>
|
||||
<span class="unit us">mil</span>
|
||||
</label>
|
||||
<label>Hole diameter
|
||||
<input type="text" name="hole_dia" placeholder="length" value="0.9">
|
||||
<span class="unit metric">mm</span>
|
||||
<span class="unit us">mil</span>
|
||||
</label>
|
||||
<label>Link trace width
|
||||
<input type="text" name="link_trace_width" placeholder="length" value="0.5">
|
||||
<span class="unit metric">mm</span>
|
||||
<span class="unit us">mil</span>
|
||||
</label>
|
||||
<label>Via pad width
|
||||
<input type="text" name="link_pad_width" placeholder="length" value="0.8">
|
||||
<span class="unit metric">mm</span>
|
||||
<span class="unit us">mil</span>
|
||||
</label>
|
||||
<label>Via drill
|
||||
<input type="text" name="via_hole_dia" placeholder="length" value="0.4">
|
||||
<span class="unit metric">mm</span>
|
||||
<span class="unit us">mil</span>
|
||||
</label>
|
||||
<label>Clearance
|
||||
<input type="text" name="clearance" placeholder="length" value="0.3">
|
||||
<span class="unit metric">mm</span>
|
||||
<span class="unit us">mil</span>
|
||||
</label>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
document.querySelectorAll('.expand').forEach((elem) => {
|
||||
const checkbox = elem.querySelector(':first-child > input');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue