AnasSarkiz/muse-voice-remote

Muse Voice Remote — bare ESP32-S3R8, 155 TOP JLCPCB parts with real supplier CAD, native 3D assembly and GLB exports. Revised 17 mm case allocation; 0.30 mm via drill /0.45 mm pad. Checked prototype PCB; mechanical, RF and MUSE qualification pending.

Version
1.3.2
License
unset
Stars
0

MuseVoiceRemoteAssembly.circuit.tsx

PCBPCB preview for MuseVoiceRemoteAssembly.circuit.tsx
SchematicSchematic preview for MuseVoiceRemoteAssembly.circuit.tsx
import { assembly } from "@tscircuit/core"
import MuseVoiceRemote from "./MuseVoiceRemote.circuit"
import { assemblyEnvelopes } from "./design/assembly-stack"

// Mechanical envelopes are explicitly named ENV_. They have no footprint or
// electrical ports and do not replace any of the JLCPCB-imported components.
export function MechanicalEnvelopes() {
  return <assembly.subassembly name="MECHANICAL_ENVELOPES_UNQUALIFIED">
    {assemblyEnvelopes.map(e => <assembly.part key={e.name} name={e.name} displayName={e.label}
      cadModel={{
        jscad: { type: "colorize", color: [...e.color, e.kind === "case" ? 0.1 : 1], shape:
          e.kind === "motor" ? { type: "cylinder", radius: e.size[0] / 2, height: e.size[2], segments: 64 } :
          { type: "cuboid", size: [...e.size] } },
        positionOffset: { x: e.x, y: e.y, z: e.z },
        showAsTranslucentModel: e.kind === "case",
      }} />)}
  </assembly.subassembly>
}

export default function MuseVoiceRemoteAssembly() {
  return <assembly.device name="MUSE_VOICE_REMOTE_ASSEMBLY">
    <MuseVoiceRemote />
    <MechanicalEnvelopes />
  </assembly.device>
}