abse/museair-usb

USB-C–powered ESP32-C3 controller board with AP63203 buck conversion, AP2112K 3.3V regulation, I²C SEN62 sensor interface, status LED, buttons, UART/I²C headers, and extensive decoupling.

Version
0.5.7
License
unset
Stars
0

assembly.circuit.tsx

PCBPCB preview for assembly.circuit.tsx
SchematicSchematic preview for assembly.circuit.tsx
import { assembly } from 'tscircuit'
import React from 'react'
import model0 from "./assembly-assets/pcb"
import model1 from "./assembly-assets/sensor"
import model2 from "./assembly-assets/carrier"
import model3 from "./assembly-assets/ties"
import model4 from "./assembly-assets/pcb-hardware"
import model5 from "./assembly-assets/holder-hardware"
import model6 from "./assembly-assets/sensor-cable"
import model7 from "./assembly-assets/usb-cable"
import model8 from "./assembly-assets/enclosure-base"
import model9 from "./assembly-assets/enclosure-lid"
import model10 from "./assembly-assets/display"
import model11 from "./assembly-assets/display-glass"
import model12 from "./assembly-assets/display-flex"
import model13 from "./assembly-assets/speaker"
import model14 from "./assembly-assets/speaker-cone"
import model15 from "./assembly-assets/speaker-gasket"
import model16 from "./assembly-assets/speaker-factory-lead"
import model17 from "./assembly-assets/microphone-gasket"
import model18 from "./assembly-assets/ask-button"

import purchasedLightPipe from "./assembly-assets/bivar-vlp-350-f"

// Base, lid and ASK cap have independent CAD IDs for viewer Hide/Show.
// Mounting geometry and cable audit: mechanical/HORIZONTAL-ASSEMBLY.md.
export default ({showBase=true,showLid=true,showButton=true,showTies=false}:{showBase?:boolean,showLid?:boolean,showButton?:boolean,showTies?:boolean}={}) => <assembly.device name="MuseAir top-service assembly"><group name="Assembly" subcircuit>
  <chip footprint={<footprint/>} name="PCB_COMPLETE" cadModel={{gltfUrl:model0,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="SEN62_UNDER_PCB" cadModel={{glbUrl:model1,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="SENSOR_HOLDER" cadModel={{glbUrl:model2,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  {showTies && <chip footprint={<footprint/>} name="SENSOR_RETENTION" cadModel={{glbUrl:model3,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>}
  <chip footprint={<footprint/>} name="PCB_INTERNAL_SCREWS" cadModel={{glbUrl:model4,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="HOLDER_INTERNAL_SCREWS" cadModel={{glbUrl:model5,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="GH6_SENSOR_HARNESS" cadModel={{glbUrl:model6,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="USB_POWER_CABLE" cadModel={{glbUrl:model7,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  {showBase && <chip footprint={<footprint/>} name="ENCLOSURE_BASE" cadModel={{glbUrl:model8,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>}
  {showLid && <chip footprint={<footprint/>} name="REMOVABLE_TOP_LID" cadModel={{glbUrl:model9,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>}
  <chip footprint={<footprint/>} name="BUYDISPLAY_PANEL" cadModel={{glbUrl:model10,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="DISPLAY_GLASS" cadModel={{glbUrl:model11,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="DISPLAY_FLEX" cadModel={{glbUrl:model12,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip manufacturerPartNumber="CMS-28588N-L152A" footprint={<footprint/>} name="ENCLOSURE_SPEAKER" cadModel={{glbUrl:model13,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="SPEAKER_CONE" cadModel={{glbUrl:model14,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="SPEAKER_RIM_GASKET" cadModel={{glbUrl:model15,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  <chip footprint={<footprint/>} name="PICOBLADE_FACTORY_LEAD" cadModel={{glbUrl:model16,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
  {showLid && <chip footprint={<footprint/>} name="LID_MICROPHONE_GASKET" cadModel={{glbUrl:model17,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>}
  {showButton && <chip footprint={<footprint/>} name="ASK_BUTTON_CAP" cadModel={{glbUrl:model18,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>}
  <chip manufacturerPartNumber="VLP-350-F" footprint={<footprint/>} name="BIVAR_VLP_350_F_LIGHT_PIPE" cadModel={{glbUrl:purchasedLightPipe,rotationOffset:{x:0,y:0,z:0},positionOffset:{x:0,y:0,z:0},modelOriginPosition:{x:0,y:0,z:0}}}/>
</group></assembly.device>