shibosoftwaredev/f1c100s-linux-nema17-stepper-controller
Compact four-layer NEMA 17 carrier PCB combining an F1C100S Linux SoC, USB-C PD power and buck regulation, W5500 10/100 Ethernet, STM32 safety/motion control, and DRV8825 stepper-driver hardware with protection, sensing, connectors, and dual-sided SMT assembly.
- Version
- 0.4.15
- License
- unset
- Stars
- 0
footprints/index.tsx
import { Fragment } from 'react'
import jst6 from './jst6.json'
import jst4 from './jst4.json'
import so8 from './so8.json'
import flash from './flash.json'
import reset from './reset.json'
import rgb from './rgb.json'
// Preserve cached KiCad pads and outlines; omit library placeholder text.
const render = (data: any[]) => <footprint>{data.map((e,i) => <Fragment key={i}>{(() => {
const xy={pcbX:e.x,pcbY:e.y}
if(e.type==='pcb_smtpad') return <smtpad {...xy} shape="rect" width={e.width} height={e.height}
cornerRadius={e.corner_radius} portHints={e.port_hints} layer={e.layer} />
if(e.type==='pcb_plated_hole' && e.shape==='pill') return <platedhole {...xy} shape="pill"
outerWidth={e.outer_width} outerHeight={e.outer_height} holeWidth={e.hole_width} holeHeight={e.hole_height}
pcbRotation={e.ccw_rotation??0} portHints={e.port_hints} />
if(e.type==='pcb_plated_hole' && e.shape==='circular_hole_with_rect_pad') return <platedhole {...xy}
shape="circular_hole_with_rect_pad" holeDiameter={e.hole_diameter} rectPadWidth={e.rect_pad_width}
rectPadHeight={e.rect_pad_height} rectBorderRadius={e.rect_border_radius} portHints={e.port_hints} />
if(e.type==='pcb_silkscreen_path') return <silkscreenpath route={e.route} strokeWidth={e.stroke_width} layer={e.layer} />
if(e.type==='pcb_courtyard_outline') return <courtyardoutline outline={e.outline} layer={e.layer} />
if(e.type==='pcb_courtyard_rect') return <courtyardrect pcbX={e.center.x} pcbY={e.center.y}
width={e.width} height={e.height} layer={e.layer} />
return null
})()}</Fragment>)}</footprint>
export const footprints={jst6:render(jst6),jst4:render(jst4),so8:render(so8),flash:render(flash),reset:render(reset),rgb:render(rgb)}