mohan-bee/rc-link-breakaway-panel

A four-layer RC link panel combining an STM32/E28 2.4‑GHz transmitter with USB-RP2040 socket and an STM32/E28 receiver providing six buffered PWM servo outputs, regulated 3.3‑V power, headers, controls, and protection/decoupling.

Version
0.1.5
License
unset
Stars
0

circuits/transmitter/XiaoSocket.tsx

// XIAO RP2040, component side, USB-C toward +Y. Two 1x7 sockets.
// Module is installed above the carrier on sockets, not reflowed onto it.
const labels = {
  pin1: ["D0", "GP26"], pin2: ["D1", "GP27"],
  pin3: ["D2", "GP28"], pin4: ["D3", "GP29"],
  pin5: ["D4", "GP6"], pin6: ["D5", "GP7"],
  pin7: ["D6", "GP0", "TX"], pin8: ["D7", "GP1", "RX"],
  pin9: ["D8", "GP2"], pin10: ["D9", "GP4"],
  pin11: ["D10", "GP3"], pin12: ["V3V3"],
  pin13: ["GND"], pin14: ["VBUS"],
} as const;

export function XiaoSocket() {
  return <chip name="U_TX_USB" manufacturerPartNumber="Seeed XIAO RP2040 socket carrier"
    doNotPlace layer="top" pcbStyle={{silkscreenTextVisibility:"hidden"}} pcbX={-18} pcbY={19.5}
    pinAttributes={{pin1:{isInput:true},pin2:{isInput:true},pin3:{isOutput:true},pin6:{isOutput:true},pin7:{isOutput:true},pin8:{isInput:true},pin12:{providesPower:true,providesVoltage:"3.3V"},pin13:{requiresGround:true},pin14:{requiresPower:true,providesPower:true,providesVoltage:"5V"}}}
    schX={0} schY={0} schWidth={1.77} schHeight={1.6}
    schSectionName="USB controller" schSheetName="TX_usb" pinLabels={labels}
    schPinArrangement={{ leftSide: { direction: "top-to-bottom", pins: [1,2,3,4,5,6,7] },
      rightSide: { direction: "bottom-to-top", pins: [8,9,10,11,12,13,14] } }}
    footprint={<footprint>
      {Array.from({length: 14}, (_, index) => {
        const pin = index + 1;
        return <platedhole key={pin} portHints={[`pin${pin}`]}
          shape="circle" holeDiameter={1} outerDiameter={1.8}
          pcbX={pin <= 7 ? -7.62 : 7.62}
          pcbY={pin <= 7 ? 7.62 - index * 2.54 : -7.62 + (index - 7) * 2.54} />;
      })}
      <silkscreenrect pcbX={0} pcbY={0} width={17.8} height={21} strokeWidth={0.15} />
      <courtyardrect pcbX={0} pcbY={0} width={18.4} height={21}/>
      <silkscreentext pcbX={0} pcbY={5} text="USB-C" fontSize={1.2} />
      <silkscreentext pcbX={0} pcbY={1} text="XIAO" fontSize={1.2} />
      <silkscreentext pcbX={0} pcbY={-1} text="RP2040" fontSize={1} />
    </footprint>} />;
}