Skip to the content
PCBKitNew board
4 layers100 × 124 mmIndex, the printed circuit board in 3D

G350-inspired Linux handheld carrier designed in tscircuit, with Pi Zero 2 W host and integrated power/audio/front controls

Size
100 × 124 mm
Copper layers
4
Thickness
1.6 mm
Parts
157
Nets
52
Pads
298
Tracks, vias
689, 148
Pours
10
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
1 Oct 2026
Updated
17 Oct 2026

Overview

Index is an open-source printed circuit board by Abse2001, from the Abse2001/g350-linux-handheld repository on GitHub, published under the MIT licence. It is a 4-layer board of 100 × 124 mm with 157 parts on 52 nets, routed with 689 tracks and 148 vias.

It belongs with the computers and single-board computers boards of this library.

README

README.md

G350-style Linux handheld

The current requirement is a Linux computer built directly on the handheld PCB. Revision B is an external-Pi carrier and does not meet that requirement. Do not order its files for the integrated-computer design. That redesign is not fabrication-ready; see docs/INTEGRATED_HOST.md. Revision B's checks below apply only to the existing carrier.

Custom tscircuit handheld PCB, revision B. A complete Raspberry Pi Zero 2 W is the Linux/GPU host, connected through a hand-drawn J8 interface and mechanical layout in lib/PiZero2W.tsx. The Pi's proprietary computer circuitry is not recreated here. No complete SBC PCB design is imported.

The four-layer, 100 × 124 mm carrier includes eleven front switches, an MCP23017, a MAX98357A speaker amplifier, a BQ24074 battery charger with load sharing, a TPS61023 5 V boost supply, a MAX17048 fuel gauge and an AP2112 3.3 V display regulator. It has no analog sticks or rear buttons. J_LCD is assembled on top and faces the display interior for ribbon insertion. Individual active devices, switches, the USB-C and FPC connectors, the display regulator and the inductor were imported using tsci import --use-exact-footprint from JLCPCB.

This is a G350-inspired custom handheld, not a replacement PCB that fits the stock G350 shell. The selected SPI display is 480 × 320 in landscape, rather than the stock G350's 640 × 480 display. The Raspberry Pi provides its CPU, GPU, RAM, Wi-Fi and microSD boot storage.

Revision B PCB preview

Download the Revision B Gerbers, order status and schematic preview.

Build and checks

The project pins the latest tscircuit version found on 2026-10-02: 0.0.2715. Always use the local CLI:

sh
npm ci
npm run typecheck
npx --no-install tsci check source index.circuit.tsx
npx --no-install tsci check pin_specification index.circuit.tsx
npx --no-install tsci check netlist index.circuit.tsx
npx --no-install tsci check schematic-placement index.circuit.tsx
npx --no-install tsci check placement index.circuit.tsx
npx --no-install tsci check routing-difficulty index.circuit.tsx
npx --no-install tsci build index.circuit.tsx --autorouter-debug --autorouter-dump-srj all --pcb-png --schematic-png --kicad-project > checks/build.log 2>&1
npm run compact:circuit
npx --no-install tsci check shorts dist/index/circuit.json --mode gerber --layer all > checks/shorts.log
npm run check:kicad
npm run fabrication

The wide manual power feeds use the outer layers; the autorouter can use all four copper layers. Manual SPI/display-control and selected button tracks use inner1, with MISO, I2C clock and charging-status branches on inner2; ground pours surround them on all four layers. Routing uses the local tscircuit autorouter with explicit CONTROLS, POWER and DISPLAY_AUDIO phases, reserving I2C/control escapes before broad supplies and then display/audio signals. The switching-node route, charger exposed-pad ground connection, charger setting/status escapes, USB and battery feeds, battery thermistor connection, boost feedback/enable connections, amplifier/button-controller/fuel-gauge bypass connections, Pi and button-controller supply branches, wide amplifier/boost input feeds, button-controller reset, amplifier mode/enable connections, LCD supply/select/reset/backlight/touch-IRQ and inner-layer SPI/control connections, I2C clock, UP/SELECT/MENU paths and LEFT input escape, charging indication, status pull-up feeds, gauge I2C branches and I2S clock/data connections are drawn manually. Check results and release limitations are recorded in checks/ and fabrication/STATUS.md.

lib/PhasedAutorouter.ts uses the installed tscircuit package's latest local solver in each phase, treats completed earlier phases as fixed copper obstacles and makes through-hole terminals accessible from all four layers. Inner signal paths retain their actual layers in the routing obstacles, with blind/buried vias disabled and full-depth via spans checked before release. ConservativeTraceObstacles.ts compacts overlapping trace samples into conservative envelopes; pads, holes, vias and fine-pitch escapes stay unchanged, and the original obstacle coverage is verified in checks/router-obstacles.log. ThroughSignalVia.ts adds the inner access ports omitted when core 0.0.2043 constructs a via before its board parent; the physical vias remain full-depth and their spans are checked in the exported board. Ground returns use filled zones and stitching vias. Short copper contacts inside GND pads explicitly identify the plane net to tscircuit's trace connectivity check; independent KiCad connectivity verifies the physical ground return. Width transitions are explicitly encoded so the native clearance checker and KiCad export evaluate the same segment widths. The helper rejects failed routes; final connectivity and shorts checks qualify the resulting copper. The top assembly side has three fiducials with copper keepouts around their mask openings. All carrier components, including every harness header and the USB-C/FPC connectors, are fitted on top. Bottom copper remains available for routing; it has no component placements. Component reference text is retained in the assembly data; the PCB silk uses clear connector and control labels. The USB connector silk outline is inset from the routed board edge; its imported copper footprint is unchanged.

The release exporter requires a successful three-phase build, a fresh all-layer shorts result and an independent KiCad report with zero violations, zero warnings and zero unconnected items. prepare-kicad-library.py exports the exact project footprints through KiCad’s native serializer into a local tscircuit.pretty library and writes fp-lib-table. It checks that all physical board records are unchanged while assigning distinct library identities. The final DRC validates those local footprints. The checks use KiCad 10 and its pcbnew Python module; the installed macOS runtime is detected automatically. Set G350_KICAD_PYTHON for a different interpreter with that module. prepare-kicad.mjs restores the fiducial keepouts' declared placement allowance, which the current converter drops. The keepouts still exclude tracks, vias and copper pours. It restores the full through-via span declared in Circuit JSON when the converter duplicates inner-layer transitions, removes the resulting identical duplicate vias and assigns distinct priorities to touching ground-zone outlines and asks KiCad to discard disconnected copper islands when refilling zones. The switching-node pour keeps priority over the surrounding ground.

Production Gerbers are plotted from the independently checked and refilled KiCad conversion of the tscircuit board. Gerbers, separate plated/non-plated drills and supplier-verified CPL placements all use the lower-left bounding corner as their origin. The release verifier compares actual Gerber pad flashes, plated/non-plated drills and every exported KiCad track with the tscircuit model. fabrication/SHA256SUMS identifies the released files. See fabrication/STATUS.md before ordering.

The tscircuit registry limits individual uploads, so large STEP models are distributed there as lossless .step.gz files. Run npm run restore:models after downloading that repository to restore the local KiCad and imported component models; the command verifies the original release checksums. GitHub also includes the uncompressed models. Circuit JSON is compacted before final checks without changing any parsed values. The Gerbers and assembly files are identical in both repositories.

Manufacturing targets green solder mask, 1 oz outer copper and standard 0.5 oz inner copper. Pad-sized mask openings follow JLCPCB's current 1:1 mask capability; fiducials retain their larger explicit openings. Visible labels are at least 1 mm high. Through-hole spacing is checked against a conservative 0.45 mm minimum. These limits follow the JLCPCB rigid-board capabilities.

SavedRouting.ts retains the actual three-phase Pipeline 9 routes after manual clearance corrections to the DOWN fanout, A-button bridge and CC1 path. It reuses a phase only when the SHA256 of its complete routing input and both pinned tool versions match; changed designs run the live autorouter. Earlier-phase routes and ground contacts remain preserved. routing/initial-autorouter-run.log records the original solver run and its subsequently corrected geometry errors; checks/build.log and the final independent checks qualify the release. The manual reset and I2S frame-clock paths also include clearance corrections. No draft route-cache bypass remains.

Assembly

The qualified release includes bom-jlcpcb.csv and pnp-jlcpcb.csv for SMD assembly, plus bom-manual.csv for the through-hole headers, external modules, cables and mounting hardware. Fit all unshrouded harness headers on the top side.

  • Raspberry Pi Zero 2 W with its microSD holder and a populated GPIO header; mount the module on top-side insulating standoffs, keeping access to the microSD slot. Use a microSD card sized for the selected Linux image; use a numbered, straight-through 40-wire GPIO ribbon. Do not use a cable that swaps pin rows. J_PI numbering is interleaved exactly like J8.
  • Waveshare 3.5inch Capacitive Touch LCD, ST7796S + FT6336U, with its 18-pin, 0.5 mm FPC host port. This is a different product from RPi LCD (G). J_LCD is an imported XUNPU FPC-05F-18PH20 bottom-contact connector (C2856802). Use an 18-conductor, 0.5 mm, 0.3 mm-thick FFC; verify continuity pin 1 to pin 1 before applying power. Cable contact-side selection depends on the module connector orientation; do not infer it from the ribbon color.
  • Protected 1S 4.2 V Li-ion/LiPo battery with a 10 kΩ 103AT-2-compatible NTC attached to the cell. J_BAT pin 1 is battery positive, pin 2 is negative and pin 3 is NTC. NTC returns to battery negative. Unprotected cells and 4.35 V charge-voltage cells are unsuitable.
  • 8 Ω speaker rated at least 2 W between J_SPEAKER pins 1 and 2. Both pins are driven; neither is ground.
  • External slide switch across J_OFF: closing it disables the boost output. Shut Linux down before moving this switch to OFF.
  • J_USB_LINK is a top-side, data-only connection to the Pi's USB micro-B port. Pin 1 is D− (micro-B pin 2), pin 2 is D+ (micro-B pin 3), and pin 3 is ground/shield (micro-B pin 5). Use a nominal 100 mm shielded pigtail with a twisted D+/D− pair, allowing plug and bend clearance. The straight-line gap from the module's USB port to this header is about 57 mm in the drawn orientation, so a 50 mm lead is too short. Leave micro-B pin 4 ID open. Disconnect and insulate micro-B pin 1 VBUS; a normal four-wire power/data cable would join the charger input to the Pi's boost output. Verify this isolation before connecting a computer. Do not connect to the Pi's PWR IN port.
  • Hand-fit the through-hole harness headers. Imported SMD components may be assembled by JLCPCB subject to availability. Verify the supplier's placement viewer, rotations and polarity before submitting an assembly order.

The LCD and Pi share the top assembly side. Select insulating standoff heights from the actual Pi, carrier components, GPIO headers and display stack; leave microSD insertion/removal and USB pigtail access. The Pi mounting pattern is 58 × 23 mm, with four 2.75 mm holes. Use insulating M2.5 nylon hardware and a numbered GPIO ribbon. The custom enclosure, stacked-part clearances and antenna performance require a physical fit check. Keep battery wiring short and use wire rated for at least 3 A. Power the Pi through the carrier GPIO header. The carrier's back has no component bodies; through-hole solder joints and copper remain there.

Display ribbon

The selected module is 92.44 × 61 mm in landscape, with a 480 × 320 active display. The carrier width is 100 mm to accommodate it. Its host supply is a separate 3.3 V rail from AP2112; this keeps the module's input logic and I2C pull-ups at Pi-compatible levels. Typical manufacturer-stated module current is about 63 mA; the LDO dissipates about 0.11 W at that load. This does not qualify the enclosure's thermal behavior.

J_LCD FPC pinModule signalPi BCM GPIO / connection
1VCCV_LCD3V3, 3.3 V only
2LCD_BL23
3GNDGND
4SCLK11
5MOSI10
6MISO9
7LCD_D/C22
8LCD_RST27
9LCD_CS8
10SD_CS3.3 V, unused card deselected
11NCOpen
12Reserved, marked NC in module schematicOpen
13TP_SCL3 / shared I2C
14TP_SDA2 / shared I2C
15TP_INT25
16–18NCOpen
Connector anchorsMechanical shellGND

Do not use a stock display setup that assigns backlight to GPIO18: this design uses GPIO18 for I2S BCLK. Install a display driver supporting ST7796S and the above custom pin assignments. FT6336U touch shares the I2C bus at address 0x38; the button and battery daemon does not implement touch. The manufacturer's schematic marks host FPC pin 12 NC, so it stays open; touch uses the module's power-on reset. Display and touch driver bring-up have not been tested on hardware. The module's microSD slot is not used; boot storage remains on the Pi. Full-frame SPI transfers limit refresh rate: 480 × 320 × 16-bit pixels require 2.46 Mbit per frame, giving a theoretical 13 frames/s at a 32 MHz SPI clock before overhead. Measure the chosen driver and games during bring-up.

Install Linux using the same USB-C port

Boot storage is the microSD card in the Pi Zero 2 W's existing holder. It is part of the external Pi module; the carrier does not duplicate an electrically unavailable SDIO interface on J8. Keep that holder accessible in the enclosure. The display module's separate card holder remains unused.

For the first installation, fit a blank microSD card, a charged protected battery and the verified data-only Pi USB pigtail. With the handheld off, connect the carrier USB-C to a computer using a data-capable cable. Start Raspberry Pi's official rpiboot on the computer with its mass-storage-gadget64 image, then switch the handheld on. The Pi's USB device boot runs a temporary installer in RAM and exposes the card to the computer. Use Raspberry Pi Imager to select Raspberry Pi Zero 2 W, the desired compatible Linux image and that exposed card; check the target size before writing. After verification, eject the card/device, power the handheld off and then restart to boot the installed card.

The Pi normally tries the SD card first. A bootable installed card therefore prevents this blank-card USB provisioning path from being selected. For recovery, shut down, remove the card and reimage it in a card reader, or make its boot partition unbootable before a USB reinstallation. There is no dedicated forced-USB-recovery input on this Pi module. Never export the running root filesystem as writable USB mass storage.

After building the official usbboot tools on the computer, run this from their source directory before switching the handheld on:

sh
sudo ./rpiboot -d mass-storage-gadget64

On the installed Pi, enable dtoverlay=dwc2,dr_mode=peripheral under [all] in /boot/firmware/config.txt, then reboot. Install python3-gpiozero, copy software/usb-gadget.sh to /usr/local/sbin/g350-usb-gadget with executable permissions and software/usb_power.py to /usr/local/lib/g350/. Copy the two g350-usb-*.service files into /etc/systemd/system/, run systemctl daemon-reload, and enable both services plus serial-getty@ttyGS0.service. The shared connector then provides a USB serial login and controlled USB500 charging. The prototype gadget identifiers and software must be reviewed for a production product. Display, audio and button setup are separate from OS flashing.

These procedures follow Raspberry Pi USB device boot and the official USB provisioning tool. They have not been exercised on an assembled G350 prototype.

Linux interfaces

Enable I2C and I2S on the Pi. MCP23017 uses address 0x20, MAX17048 uses 0x36. Pi J8 already provides I2C pull-ups to 3.3 V. The buttons use GPA0–GPA6 and GPB0–GPB3; Y is GPB3. GPA7/GPB7 stay unconnected and are configured as outputs, following the current Microchip datasheet. software/handheld.py provides a Linux uinput gamepad from the eleven front controls; it also reads battery voltage and charge state. Run it as a system service only after initial bring-up. Do not enable a competing kernel MCP23017 driver while using this daemon.

I2S: GPIO18 BCLK, GPIO19 LRCLK, GPIO21 data output. GPIO26 enables the amplifier; the amplifier uses its left channel at 6 dB gain. software/asound.conf mixes both input channels equally into the left output. Copy it only after identifying the I2S ALSA device on the Pi.

Power limits and prototype bring-up

One USB-C connector carries both 5 V charging power and USB 2.0 data. Its two independent 5.1 kΩ CC resistors identify a sink; no USB PD is negotiated. The data lines use the exact JLCPCB USBLC6-2SC6 ESD footprint and connect to the Pi through J_USB_LINK. USB VBUS powers only the charger and the ESD reference, not the Pi USB plug. The carrier's boost supplies the Pi through J8.

BQ24074 EN1 and EN2 have external pull-downs, selecting USB100 (at most 100 mA) at power-on. GPIO24/J8 pin 18 controls EN1; GPIO16/J8 pin 36 controls EN2. The included USB serial gadget advertises 500 mA, and software/usb_power.py selects USB500 only after that gadget reaches the configured state. It selects input suspend on a suspended connection. Because the Pi's USB VBUS is isolated, the service uses USB_GOOD_N on GPIO12/J8 pin 32 to bind the gadget only when actual USB input power is present and unbind it when that power disappears. Without these services, including initial rpiboot installation or connection to a wall charger with no data enumeration, the input remains limited to 100 mA. Charging is nominally 270 mA when the input/system budget permits; a nominal 9.07-hour timer remains. The battery may discharge while playing or during installation, so begin USB provisioning with a charged, protected battery. USB enumeration, disconnect detection, suspend timing, signal integrity and charging behavior still require hardware validation.

The boost target is 4.992 V (0.6 × (1 + 732k/100k)). Begin with a 1 A total 5 V load ceiling, an 8 Ω speaker and restrained volume. Validate regulator ripple, load transients, temperature, charging behavior and battery protection before increasing loads. The fuel gauge is a monitor; the battery pack must provide hardware over-discharge/over-current protection.

Bring up with a current-limited bench supply and no Pi or LCD connected. Check for resistance between rails, verify 5 V and charge current, then test a dummy load and OFF control. Connect the Pi next, verify 3.3 V and I2C addresses, then add display, buttons and speaker. No assembled prototype has been tested.

References

Original project source is MIT licensed. Vendor component models and drawings retain their respective rights.

Parts

157
QtyValueFootprintReferences
1tscircuit:g350_mechanical_7dc12d8002e68cbf7c71b9020436013d
1tscircuit:g350_mechanical_502d20f643c49f16375c1d362af39b56
1tscircuit:g350_mechanical_4c136e803344d7414d62e2fe31f562c3
1tscircuit:g350_mechanical_173ad2003efebb616ac7b73e148e29dd
1tscircuit:g350_mechanical_3cca962849331808559b99e862041bc8
1tscircuit:g350_mechanical_774ae8c02e44d95f2c2b648279645d9d
1tscircuit:g350_mechanical_59c6ecc04fff85df063a07825c7394e3
1tscircuit:g350_mechanical_2cd810204299229f585a351e6e1b479d
1tscircuit:g350_mechanical_4b33d1c05591a7615fef7d026a4d52a3
1tscircuit:g350_mechanical_5e31fa7a009337fa5d0b8a864555b2fa
1tscircuit:g350_mechanical_271ac4681a4219f85b9ef85863042948
1tscircuit:g350_mechanical_1c41598039f833e16fce3ebe1994b15d
1tscircuit:g350_mechanical_64d7726c2a306ef446c7afac484031b4
1tscircuit:g350_mechanical_08d713c0768132010a26883e7531bd83
1tscircuit:g350_mechanical_7ae5c08078b1bda06c493bc05fe0b9e0
1tscircuit:g350_mechanical_16f4a6202cb5b89f4276cb1e5837dd9d
1tscircuit:g350_mechanical_0bd7a2e07380a2e10d27175e72312e63
1tscircuit:g350_mechanical_28f5ac0057b20e3f27a63782590182bd
1tscircuit:g350_mechanical_4e553ad80cf85c78346481e875c16048
1tscircuit:g350_mechanical_5ad291002485b4c15c22057e23364043
1tscircuit:g350_mechanical_658cea601b1acfdf643d75e21c6a445d
1tscircuit:g350_mechanical_2b4594c437ae16a444169884507f1a64
1tscircuit:g350_mechanical_1ea571c02903476133611d023dbef2a3
1tscircuit:g350_mechanical_79ac686006fb51df785cf3e2084ac65d
1tscircuit:g350_mechanical_6f83ba72280c478e4063b672572c4b8e
1tscircuit:g350_mechanical_2e1d96183a8617f846ee99d853571bb8
1tscircuit:g350_mechanical_4a0a79003faca35f354ecdbe2af0f81d
1tscircuit:g350_mechanical_54a590c005caad21603aeb024554d71d
1tscircuit:g350_mechanical_12f762ea55789b16421766ea26589716
1tscircuit:g350_mechanical_535e87403d9d74c127dc6242121b4fc3
1tscircuit:g350_mechanical_5309ee6c5f72704c6bdaf22c7843740c
1tscircuit:g350_mechanical_24488a20763cd4df37cee0621a256a5d
1tscircuit:g350_mechanical_330a3f404d9d7aff31bacac24eecef7d
1tscircuit:g350_mechanical_405e3ac04abc10615519e6025f77bba3
1tscircuit:g350_mechanical_67bfaee018e80b5f66703a621a377fdd
1tscircuit:g350_mechanical_68c15ecc399fdeb423fee3cc7e6259b4
1tscircuit:g350_mechanical_6c6d168e78d5986e7ac1e5b26e5963d2
1tscircuit:g350_mechanical_4590e672043408123d28d64e7e85b4ae
1tscircuit:g350_mechanical_6d22d3da60ba51fa5451d01a47e94e3a
1tscircuit:g350_mechanical_38ed92627a4a70c24458b0de02fbd27e
1tscircuit:g350_mechanical_4fddb506189248fa7efdb906168dbb06
1tscircuit:g350_mechanical_7965eb340db578f45dfaf94c36549474
1tscircuit:g350_mechanical_7a8b3ee0201b00ff3a553ce26b3a853d
1tscircuit:g350_mechanical_0b9949921801cb72246a4d5230d2cf32
1tscircuit:g350_mechanical_5be1d5e024c5e45f5a926162261558dd
1tscircuit:g350_mechanical_2c5d6e4021ff989f17a1c2fe0d43ed5d
1tscircuit:g350_mechanical_42c3ca406b47eb011953a04238a0aa7d
1tscircuit:g350_mechanical_504f5d741b6114cc78ee78f40d3e06b4
1tscircuit:g350_mechanical_3de9924042be27ff3c9a1dc2440d9c7d
1tscircuit:g350_mechanical_48e4b000534285a15da05b4267fe30e3
1tscircuit:g350_mechanical_4b08715809ab92f837b14b68790e29c8
1tscircuit:g350_mechanical_04a51060110d92401d76142029de9600
1tscircuit:g350_mechanical_318a99804f1d20bf303b2502506c953d
1tscircuit:g350_mechanical_34a222265a65bf3a16925f66787581fa
1tscircuit:g350_mechanical_5db7e3c00347a5df572898024e672a1d
1tscircuit:g350_mechanical_6e134a64263c435c45742ee44edb5edc
1tscircuit:g350_mechanical_4cc2cd32559e704e08005232659f14b2
1tscircuit:g350_mechanical_26ba992868177788568baa18152ecbb8
1tscircuit:g350_mechanical_188f7ca459ec5b0464b6c69c2359e83c
1tscircuit:g350_mechanical_342a7a08602513b80b8b5e88773bd0c8
1tscircuit:g350_mechanical_08b5d53e03b2aca2101b2e821c83b062
1tscircuit:g350_mechanical_5640e24449d860643d6fde8431075ca4
1tscircuit:g350_mechanical_765b7ac07f46af9f74e8d9fe6a8b045d
1tscircuit:g350_mechanical_157764801fd53a212a330fc23490e563
1tscircuit:g350_mechanical_35717a446cefc33c0f5100bc4e4dc1c4
1tscircuit:g350_mechanical_7cf5d8e0114566a05a6b0ba039e48220
1tscircuit:g350_mechanical_140d345c2075b63c2cde381c3946b9fc
1tscircuit:g350_mechanical_00cc84886ae3edb8296ba0084244d238
1tscircuit:g350_mechanical_1710d3a0684772211860481e66f7fda3
1tscircuit:g350_mechanical_33b335985b54abc815a372d879646e88
1tscircuit:g350_mechanical_3a4ca1b8235220c87f0f1cb821705a38
1tscircuit:g350_mechanical_05ea26200fd6ec5f2597fede3b59115d
1tscircuit:g350_mechanical_480707603245f4e11c84e26206c3cfe3
1tscircuit:g350_mechanical_519150505df9d2306a62541076cad5f0
1tscircuit:g350_mechanical_312e9d54102e410c518b1f6c6d180234
1tscircuit:g350_mechanical_66a129e070feff817b5cd5227a45553d
1tscircuit:g350_mechanical_46829eae782082f236c3a4920a9939ce
1tscircuit:g350_mechanical_775c9dc02e33245f2c3d19827952a89d
1tscircuit:g350_mechanical_694cd88c5ce456ac507bd4cc441352ec
1tscircuit:g350_mechanical_75fdcc8869954aa85d2cc8c850c446e8

The 80 most common of 157 parts.

Questions

How big is the Index PCB?

It measures 100 × 124 mm and has 4 copper layers, 1.6 mm thick.

What parts does the Index use?

157 parts. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Index KiCad files?

From the Abse2001/g350-linux-handheld repository on GitHub, at the commit this page was made from: the board is fabrication/kicad/index.kicad_pcb and its schematic fabrication/kicad/index.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Index design in my own project?

Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

Similar boards

  • 4 layers86 × 34 mmBsl drv v1, the printed circuit board in 3D

    Bsl drv v1

    jackw01/scanlight

    A better light source for scanning color negative film

    157 parts397CERN-OHL-W-2.0
  • 4 layers98 × 75 mmPiFinder4, the printed circuit board in 3D

    PiFinder4

    brickbots/PiFinder

    A plate solving telescope finder based around a Raspberry PI and RPI HQ Camera

    157 parts257GPL-3.0
  • 4 layers63.1 × 63.5 mmAIO, the printed circuit board in 3D

    AIO

    ErBWs/CH32-Bike-Overland

    十八届智能车单车越野

    157 parts36GPL-3.0
  • 4 layers39 × 39 mmShutterEye, the printed circuit board in 3D

    ShutterEye

    will127534/ShutterEye

    A simple camera board using SC910GS 1" 4K@30fps global shutter sensor

    157 parts26MIT
  • 4 layers100 × 64 mmCorevus m++, the printed circuit board in 3D

    Corevus m++

    calithameridi/corevus

    High-flexibility, low-cost mechatronics controller for 3D printers

    157 parts25
  • 4 layers36.1 × 32.7 mmKitspace tri panel 4up r0.1, the printed circuit board in 3D

    Kitspace tri panel 4up r0.1

    PCBench/PCBench

    resolution = [0.5, 0.5] pcbfolder = '../PCBs/' pcbnames = ["1Bitsy1bitsy"] iters = 30 env = PCBRoutingEnv(resolution=resolution, pcbfolder=pcbfolder, pcbnames=pcbnames) obs, info = env.reset() for in range(iters): act =…

    157 parts21MIT
  • 4 layers97.1 × 26 mmDiveCAN Head2, the printed circuit board in 3D

    DiveCAN Head2

    QuickRecon/DiveCANHead

    An open source rebreather head controller

    157 parts13MIT