Skip to content

projects/ janelia/ Mouse Joystick/

mouse-joystick-pcb — Design Blocks

Every block the board places, documented from the library it came from: 15 placements from board-manifest.yaml and board.yaml.

Single-axis mouse joystick: RP2040 with GPIO isolation, one TMC5130A, torque bridge, brake current sink, analog angle output, InstrumentPort-Digital-50 taps, 36 V protected input with 12 V and 5 V regulators; v1.0 as built.

# Instance Block Parent Lifecycle Family Summary Placed sheet Netlist check
15 instrument_port_digital_50_dut_ffc_boundary_vertical orb_weaver_private:instrument_port_digital_50_dut_ffc_boundary_vertical /instrument_port routed DUT-side InstrumentPort-Digital-50 with integrated read-only buffering, on a VERTICAL, top-entry 50-contact ZIF connector: Hirose FH12-50S-0.5SVA(54), OW-CONN-FH12-50S-0-5SVA-54, LCSC C597991, 0.5mm pitch, symbol Conn_01x50, footprint orb_weaver_connectors:Hirose_FH12-50S-0.5SVA_1x50-4MP_P0.5mm_Vertical; the four mechanical lands are unnumbered pads and carry no net. matches the brief: its 46 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 46 identity records differ, the board's own instances
9 rp2040_with_gpio_isolation_sn74cb3q3245 orb_weaver_private:rp2040_with_gpio_isolation_sn74cb3q3245 /mcu routed RP2040 controller core and its GPIO isolation in one block: the full rp2040 core - W25Q128JVPIQ QSPI flash, 12 MHz ABM8 crystal, decoupling, BOOTSEL and RUN switches - plus four SN74CB3Q3245RGYR 8-channel bidirectional FET bus switches, with all 29 MCU-to-switch connections made inside the block so that routing is placed once instead of re-drawn per board. matches the brief: its 35 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 40 identity records differ, the board's own instances
11 5v_to_3v3_tps73733_1 orb_weaver_private:5v_to_3v3_tps73733 /mcu routed Clean 3.3 V linear regulator from a 5 V input rail using the TI TPS73733 fixed 3.3 V 1 A LDO. matches the brief: its 3 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 4 identity records differ, the board's own instances
5 pycontrol_behavior_port_rj45_boundary_vertical orb_weaver_private:pycontrol_behavior_port_rj45_boundary_vertical / routed pyControl behavior-port boundary on a VERTICAL, top-entry SHIELDED 8P8C RJ-45 jack: Molex 855085001, OW-CONN-RJ45-8P8C-THT-VERT, Cat5e, 16.5 mm tall, 1.5 A per contact, through-hole signal contacts plus two through-hole shell legs and two locator pegs. matches the brief: its 9 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 12 identity records differ, the board's own instances
12 5v_to_3v3_tps73733_2 orb_weaver_private:5v_to_3v3_tps73733 / routed Clean 3.3 V linear regulator from a 5 V input rail using the TI TPS73733 fixed 3.3 V 1 A LDO. matches the brief: its 3 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 4 identity records differ, the board's own instances
10 usb2_vertical orb_weaver_private:usb2_vertical / routed USB-C USB2 device-port front end on a VERTICAL, top-entry receptacle: GCT USB4145-03-0070-C, OW-CONN-USB-C-USB2-SMD-VERT, 16P USB2-only, SMT contacts plus four through-hole shell legs, 7.46 mm tall. matches the brief: its 6 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 9 identity records differ, the board's own instances
13 analog_output_0_3v3_dac80501 orb_weaver_private:analog_output_0_3v3_dac80501 /motor_encoder_switch routed Single-channel buffered 0-1.650 V precision analog voltage output, safe on a Neuropixels OneBox ADC channel or an unprotected 3.3 V MCU pin: a DAC80501ZDGSR at 3.3 V on I2C at address 0x48 on its internal 2.5 V reference, a 2-pole 987 Hz Sallen-Key reconstruction filter, an OPA197 on a ferrite-filtered 5 V rail at a non-inverting DC gain of 1.32 that is also the filter's active element, a /2 output divider, a 249 ohm series output resistor, an ESD clamp and a separately isolated monitor tap. matches the brief: its 28 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 33 identity records differ, the board's own instances
2 quadrature_encoder_input_5v_sn74lvc2g17 orb_weaver_private:quadrature_encoder_input_5v_sn74lvc2g17 /motor_encoder_switch routed Single-ended 5 V quadrature encoder input: per-channel series/RC conditioning plus an SN74LVC2G17 dual Schmitt-trigger buffer that translates an encoder's 5 V push-pull A/B outputs into clean 3.3 V logic. matches the brief: its 14 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 16 identity records differ, the board's own instances
3 limit_switch_debounced_input_vertical orb_weaver_private:limit_switch_debounced_input_vertical /motor_encoder_switch routed Debounced limit-switch input with its own 2-position 3.5 mm VERTICAL, top-entry pluggable screw terminal — Phoenix MCV 1,5/2-G-3,5, OW-CONN-TBH-1X02-3P5-VERT, on the local orb_weaver_tht copy of the MCV footprint — plus a MAX6816 single switch debouncer and local Vcc decoupling. matches the brief: its 5 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 5 identity records differ, the board's own instances
7 tmc5130 orb_weaver_tmc5130:tmc5130_spi_r150 /motor_encoder_switch routed tmc5130 r150 (spi) TMC5130A motion-controller core with paired external current-sense resistors matches the brief: its 27 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 27 identity records differ, the board's own instances
6 hv_to_5v_tpsm365r6 orb_weaver_tpsm365r6_fixed:tpsm365r6_fixed_5v / routed tpsm365r6_fixed 5v (buck) High-voltage input to a fixed 5 V or 3.3 V rail: TI TPSM365R6V5 or V3 600 mA buck module, one family source with the regulator part and the second output capacitor as the variant matches the brief: its 9 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 10 identity records differ, the board's own instances
8 torque_bridge_0_3v3_ina821 orb_weaver_private:torque_bridge_0_3v3_ina821 /brake_torque_sensor routed RTS-5 bridge front end: 10 V excitation, INA821 gain 191.734, filtered full-scale ADC path and separate half-scale analog output. matches the brief: its 63 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 70 identity records differ, the board's own instances
14 brake_current_sink_0_49ma_dac80501 orb_weaver_private:brake_current_sink_0_49ma_dac80501 /brake_torque_sensor routed DAC-programmed linear constant-current sink delivering 0-48.78 mA into a 24 V magnetic particle brake coil from a 36 V rail: a DAC80501ZDGSR at 3.3 V on I2C feeding a 0.19512 precision divider, an OPA197 integrating error amplifier on a ferrite-filtered 12 V rail driving a BUK7D36-60EX pass device over a 10 ohm Kelvin shunt, a second OPA197 as an independent 56.4 mA current ceiling that clamps the gate through a Schottky, a third as a 0-1.006 V ground-referenced current monitor behind a /2 output divider, an SN74LVC2G17 buffering the ceiling event out as active-low ~{BRAKE_FAULT}, and an S115Q flyback across the in-block 2-position 3.5 mm vertical coil terminal. matches the brief: its 54 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 63 identity records differ, the board's own instances
1 hv_input_36V_terminal_2pos_5p08_protected_vertical orb_weaver_private:hv_input_36V_terminal_2pos_5p08_protected_vertical / routed Protected and electronically switched 36 V high-voltage input front end on a VERTICAL, top-entry 2-position 5.08 mm pluggable terminal block — Phoenix MSTBVA 2,5/2-G-5,08, OW-CONN-TBH-1X02-5P08-VERT, on the local orb_weaver_tht copy of the MSTBVA footprint — with a SBRT15U50SP5 reverse-polarity series diode and a TPS1HTC100-Q1 smart high-side switch providing adjustable current limit, inrush/soft-start control, analog load-current sense, thermal shutdown, and an integrated inductive discharge clamp. matches the brief: its 18 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 21 identity records differ, the board's own instances
4 hv_to_12v_tpsm365r6 orb_weaver_tpsm365r6_adjustable:tpsm365r6_adjustable_12v /brake_torque_sensor routed tpsm365r6_adjustable 12v (buck) High-voltage input to an adjustable 12 V or 7 V rail: TI TPSM365R6F 600 mA buck module, one family source with the FB top leg, the PGOOD bottom leg and the second output capacitor as the variant. matches the brief: its 13 parts by internal part, every port by name and shape; the file is the board's copy under its own designators ok on 2026-10-15: every pin on the brief's net; 14 identity records differ, the board's own instances

The numbers are the board view's, which shows the blocks on the model and on the top render.

A placed sheet is the library's published sheet byte for byte, or the board's copy under its own designators, which is compared with the brief in pure text: the parts by internal part and count, the ports by name and shape. The netlist check is the brief check run on the sheet with kicad-cli (--brief-check), recorded in brief-checks.json beside these pages.