Skip to the content
PCBKitNew board
2 layers90 × 45 mmLayouts, the printed circuit board in 3D

This folder is intentionally a planning workspace only. The next hardware build will be created from scratch in Atopile.

Size
90 × 45 mm
Copper layers
2
Thickness
1.6 mm
Parts
64
Nets
66
Pads
274
Tracks, vias
0, 0
Routed
Not yet
KiCad
KiCad 0.15.7 (file 20241229)
Created
2 Jun 2026
Updated
8 Jun 2026

Overview

Layouts is an open-source printed circuit board by nejcokorn, from the nejcokorn/flysys_test repository on GitHub. It is a 2-layer board of 90 × 45 mm with 64 parts on 66 nets.

Its parts include 28 resistors, 14 capacitors, 6 diodes, 5 ICs and 5 transistors.

README

README.md

FlySys Hardware Plan

Updated: 2026-06-08

This folder is intentionally a planning workspace only. The next hardware build will be created from scratch in Atopile. Old EasyEDA, KiCad, generated production files, and JLC-specific draft outputs are not part of the active design.

Goal

Build a compact FlySys variometer board with:

  • BLE-first telemetry and configuration.
  • Accurate pressure-based vertical-speed sensing.
  • 6-axis inertial sensing for filtering/orientation support.
  • LiPo charging and battery operation.
  • Loud firmware-controlled audio output.
  • USB mass-storage device access for logs/configuration.
  • Power button, hidden BOOT/RESET recovery controls, green power LED, blue BLE pairing LED, USB, and software-first firmware update access without debug pads.

Selected Components

FunctionSelectionSupplier note
MCU/BLE/Wi-Fi/USBMSDEspressif ESP32-S3-WROOM-1U-N8Use ESP32-S3 because USBMSD needs configurable USB device support. N8 provides 8 MB flash and has no PSRAM. The 1U variant uses the module U.FL/I-PEX MHF1 connector for an off-board antenna.
External antennaPulse ANTX200P001B24003Off-board 2.4 GHz adhesive flat patch antenna for the WROOM-1U U.FL/I-PEX MHF1 connector. It is a DigiKey order item, not a PCB footprint.
Pressure sensors2 x Bosch BMP581Dual altitude/variometer pressure sensors on the same I2C bus. U5 uses address 0x46; U6 uses address 0x47.
6-axis IMUBosch BMI323Primary accelerometer/gyro.
MagnetometerNot fittedKeep unpopulated I2C pads or optional footprint for future magnetometer.
Charger / power pathTI BQ24075RGTR1S LiPo charger with power-path management.
3.3 V regulatorTI TLV75533PDBVRReplaces AP2112K-3.3TRG1 because AP2112 was 0 stock in the DigiKey.si audit. Recheck current and thermal margin with ESP32-S3 peaks. Add local bulk capacitance near the module.
USBGCT USB4105-GF-A + ST USBLC6-2SC6YUSB-C 2.0 receptacle and automotive/AEC-Q101 USB ESD for charging, ESP32-S3 native USB, USBMSD, logs, and flashing.
AudioSame Sky CSS-J4D20-SMT-TR + AO3400A N-MOSFETExternally driven SMD magnetic transducer from the old device BOM. Drive from the 1S battery/SYS rail; keep firmware tone, carrier-duty, and envelope control.
User inputC&K KMR211NG LFSMomentary active-low tactile switch for power/user input plus hidden BOOT and RESET service switches. Final actuator and pinhole geometry still depends on enclosure height.
IndicatorsLite-On LTST-C190GKT + LTST-C190TBKT0603 LEDs: green always-on +3V3 power-present indicator, blue firmware-controlled BLE pairing/advertising indicator. The blue LED is driven from SYS with a GPIO-controlled low-side MOSFET.
BatteryJST S2B-PH-SM4-TB2-pin JST-PH right-angle SMD header. Confirm protected pack and cable polarity.
Firmware updateApplication-level updater + hidden ESP32-S3 BOOT/RESET recoveryNormal users update through firmware while USB or another supported link is connected. Debug pads are not fitted; hidden BOOT+RESET remains the recovery fallback for the ESP32-S3 ROM USB bootloader.

DigiKey.si Availability Audit

Initial audit checked: 2026-05-31. Audio and LED changes rechecked: 2026-06-01. Stock changes quickly; recheck before ordering.

FunctionMPNDigiKey cut-tape partObserved availabilityStatus
MCU/BLE/Wi-Fi/USBMSDESP32-S3-WROOM-1U-N81965-ESP32-S3-WROOM-1U-N8CT-NDRecheck before orderingSelected external-antenna module
External antennaANTX200P001B24003311-1553-NDRecheck before orderingOff-board U.FL/I-PEX MHF1 adhesive 2.4 GHz antenna
Pressure sensorsBMP581828-BMP581CT-NDRecheck before orderingQty 2 selected
6-axis IMUBMI323828-BMI323CT-ND663 in stockSelected
Charger / power pathBQ24075RGTR296-38874-1-ND3,702 in stockSelected
3.3 V LDOTLV75533PDBVR296-50411-1-ND110,688 in stockSelected
USB-C receptacleUSB4105-GF-A2073-USB4105-GF-ACT-ND126,702 in stockSelected
USB ESDUSBLC6-2SC6Y497-11882-1-ND35,783 in stockSelected automotive/AEC-Q101 part; LCSC C2969755
Battery connectorS2B-PH-SM4-TB455-S2B-PH-SM4-TBCT-ND71,350 in stockSelected
Loud SMD buzzerCSS-J4D20-SMT-TR102-1198-1-ND2,332 in stockSelected old-device buzzer: externally driven magnetic transducer, 90 dB at 3.6 V, 5 cm, 80 mA, 3.1 kHz
N-MOSFETsAO3400A785-1000-1-ND168,023 in stockLow-side drivers for buzzer PWM, blue BLE pairing LED switching, and power-latch control
Battery switch P-MOSFETDMP3098L-7DMP3098LDICT-NDRecheck before orderingHigh-side hard-off switch between battery connector and internal BAT rail
Power-start diodes1N4148W-7-F1N4148W-FDICT-NDRecheck before orderingDiode isolation for power button, battery switch gate, and charger SYSOFF
User buttonKMR211NG LFSCKN10243CT-ND44,917 in stockSelected
Power LEDLTST-C190GKT160-LTST-C190GKTCT-ND1,068,260 in stockSelected 0603 green LED, 2.1 V typical Vf
BLE LEDLTST-C190TBKT160-1646-1-ND92,246 in stockSelected 0603 blue LED for BLE pairing/advertising indication, 3.3 V typical Vf
ResistorsYageo RC0603FR 1% 0603 familyValue-specificRC0603FR-0710KL observed at 9,468,329 in stockUse same family for 100R, 1k, 3k, 5.1k, 10k, 100k, 1M as needed
100 nF decoupling capacitorSamsung CL10B104KB8NNNC1276-1000-1-ND9,953,497 in stockSelected family
Other ceramicsSamsung CL-series MLCCsValue-specificNot individually locked yetSelect exact 1 uF, 10 uF, and 220 nF parts during Atopile binding

Main audit result: all selected active semiconductors, sensors, connector choices, audio parts, button, LED, and common passives are available from DigiKey.si.

Baseline Electrical Architecture

  • USB_VBUS: USB-C 5 V input to charger and USB VBUS sense divider/comparator.
  • SYS: BQ24075 system output.
  • BAT_RAW: protected 1S LiPo positive terminal at the connector.
  • BAT: switched internal battery rail after the hard-off P-MOSFET.
  • +3V3: TLV75533 output powering ESP32-S3, both BMP581 sensors, BMI323, and optional magnetometer pads.
  • I2C_SCL, I2C_SDA: shared sensor bus for BMP581 U5, BMP581 U6, BMI323, and DNP magnetometer option.
  • USB_OTG_DP, USB_OTG_DM: USB full-speed pair to ESP32-S3 native USB pins (GPIO20 D+, GPIO19 D-).
  • BUZZER_VM: battery/SYS-powered audio rail feeding the buzzer; no boost in the baseline.
  • BUZZER_PWM: ESP32-S3 PWM-capable GPIO to the MOSFET gate.
  • PWR_SW_N: raw active-low power switch node.
  • PWR_BTN_N: diode-isolated active-low button input to ESP32-S3.
  • BOOT_USER_BTN_N: ESP32-S3 GPIO0 boot strap, pulled low by the hidden BOOT service button for ROM bootloader recovery.
  • BAT_SENSE: high-value divider from switched BAT to ESP32-S3 ADC-capable GPIO; it has no DC path to BAT_RAW when the hard-off switch is open.
  • POWER_LED: low-current green +3V3 rail indicator with series resistor. It is on whenever +3V3 is up and is not firmware-controlled.
  • BLE_LED: low-current blue indicator for BLE pairing/advertising mode only. Firmware should drive BLE_LED_PWM active only while connectable BLE advertising/pairing is active and keep it low or high-Z otherwise. Because the blue LED has high forward voltage, prefer SYS plus a current-limit resistor and a small GPIO-controlled low-side switch instead of direct +3V3 GPIO drive.
  • EN, BOOT: hidden physical RESET and BOOT service controls for ESP32-S3 ROM bootloader recovery only.

USBMSD / Storage Plan

USBMSD is now a baseline requirement. Use ESP32-S3 native USB OTG device mode with the ESP-IDF TinyUSB MSC class.

Route the USB-C D+/D- pair to ESP32-S3 GPIO20/GPIO19, keep the ESD part near the connector, and add a USB VBUS monitor path because this is a battery-powered, self-powered USB device.

Initial storage options:

  • Internal flash FAT partition for small configuration import/export and short log files.
  • External SPI flash, SPI NAND, or microSD if host-visible logs need materially more capacity or write endurance.

Do not let firmware and the USB host write the same mounted filesystem at the same time. Define a mode switch or mount arbitration before implementing firmware.

Firmware Update UX

Normal firmware update is software-first. When USB is connected, application firmware should expose an update path such as USB MSC drag-and-drop firmware copy, a USB CDC update tool, BLE DFU, or OTA. The image must be validated before activation, and firmware should use OTA partitions with rollback so a failed image can revert automatically.

USB attach is allowed to power the ESP32-S3 electrically. If USB_VBUS_SENSE shows USB present and the user has not pressed POWER, firmware enters USB-attached idle mode instead of starting the vario application. In this mode, do not start vario sensing, BLE advertising, buzzer output, logging, or normal flight behavior. Only minimal charging/status indication, the firmware update endpoint, and an optional command to start normal mode should run.

Pressing POWER while USB is connected records user intent and starts the normal application. The hidden BOOT (GPIO0) and RST (EN) controls remain behind service access only. Recovery sequence: connect USB-C, hold hidden BOOT, press and release hidden RST, release BOOT, then flash with the ESP32-S3 native USB ROM bootloader tool.

Audio Plan

The buzzer must be loud enough for a paragliding vario used in open air with wind noise. Treat acoustic output as a primary requirement, not a secondary indicator.

Use an externally driven passive SMD transducer so firmware keeps control over pitch, cadence, envelope, mute profiles, and sink/climb tone patterns. Do not use an internally driven active buzzer.

Selected audio path:

  • Transducer: CSS-J4D20-SMT-TR, externally driven magnetic SMD transducer from the old device BOM, 90 dB at 3.6 V, 5 cm, 3.1 kHz, about 80 mA at rated drive.
  • Driver: AO3400A low-side N-MOSFET, with the buzzer powered from the 1S battery/SYS rail and the MOSFET gate driven by one ESP32-S3 PWM GPIO.

This matches the old MX270_MiniUP firmware model: one output-compare PWM channel generated the audio carrier, beep->volume changed the carrier duty, and the vario queue changed the beep envelope/cadence. Port that control model to ESP32-S3 LEDC or MCPWM.

Use the battery/SYS rail, not raw USB VBUS. A normal 1S Li-ion/LiPo pack is 4.2 V full and about 3.6-3.7 V nominal; that fits the buzzer's 3-5 V operating range. Confirm BQ24075 SYS behavior so the buzzer never sees an out-of-range USB-derived rail.

Drive the buzzer near its 3.1 kHz rated frequency for maximum SPL. For lower volume, prefer carrier-duty control and audible envelope control; avoid detuning far from resonance just to reduce volume. The old firmware's tone table can be reused as a behavioral reference, but final tones should be revalidated against this buzzer in the enclosure.

Add a gate resistor, gate pulldown, local bulk capacitance near the buzzer supply, and a footprint option for coil clamp/snubber parts. Keep the buzzer current loop compact and scope the first PCB for ringing and EMI while the buzzer is running.

The enclosure must include a real acoustic outlet or sound channel. Verify SPL after the PCB is installed in the actual enclosure, because the port, chamber volume, venting, clothing, helmet, and mounting orientation can dominate the result.

Sensor Plan

Use two BMP581 barometers and one BMI323 as the fitted sensor stack.

U5 straps SDO to GND for BMP581 I2C address 0x46; U6 straps SDO to +3V3 for address 0x47. Both sensors strap CSB high for I2C mode and have separate interrupt nets, BMP581_1_INT and BMP581_2_INT.

Do not fit a magnetometer for the first Atopile board. The core variometer behavior depends on pressure and vertical-motion filtering, not absolute compass heading. Without a magnetometer, yaw/heading can drift; that is acceptable for this baseline.

Keep an unpopulated future magnetometer option with:

  • +3V3
  • GND
  • I2C_SCL
  • I2C_SDA
  • Optional MAG_INT

Place the optional magnetometer pads away from USB shield, charger, buzzer, battery current loops, steel screws, and magnets.

Layout Constraints

  • Put the ESP32-S3-WROOM-1U-N8 so its U.FL/I-PEX MHF1 connector is accessible for the off-board antenna cable. Provide coax strain relief and keep the antenna away from battery metal, buzzer metal, enclosure metal, and the user's body as much as the enclosure allows.
  • Put both BMP581 sensors near the pressure vent and away from heat, board flex, adhesive, conformal coating, and direct buzzer airflow.
  • Put BMI323 near the board center in a mechanically stable area and document axis orientation.
  • Keep sensor supply decoupling close to each VDD/VDDIO pin.
  • Keep USB D+/D- short, impedance-conscious, protected by ESD near the connector, and routed to ESP32-S3 GPIO20/GPIO19.
  • Include USB VBUS monitoring suitable for self-powered USB device behavior.
  • Give the buzzer a clear acoustic outlet; do not bury the port in a sealed or foam-covered enclosure pocket.
  • Keep buzzer switching current and charger return currents away from sensor ground return.
  • Avoid assigning functional loads to ESP32-S3 boot strapping pins, USB pins, and flash/PSRAM-reserved pins until boot behavior and the exact module variant are checked.

Firmware Impact

  • Port board support from Arduino Nano 33 BLE Sense Rev2 / nRF52840 assumptions to ESP32-S3.
  • Use ESP32-S3 BLE stack and keep transmission duty cycle low in production.
  • Add USBMSD using ESP-IDF TinyUSB MSC over ESP32-S3 native USB OTG.
  • Define the USBMSD storage backend and host-visible filesystem.
  • Prevent concurrent writes between firmware logging/config code and the mounted USB host filesystem.
  • Decide whether USB presents MSC only, CDC+MSC composite, or a boot/mode-selected function.
  • Add software-first firmware update handling with image validation and OTA partition rollback.
  • On USB attach from off state, enter USB-attached idle mode until PWR_BTN_N is pressed or a supported start command is received.
  • In USB-attached idle mode, keep vario sensing, BLE normal operation, buzzer output, and logging inactive.
  • Add direct dual-BMP581 driver support for I2C addresses 0x46 and 0x47, including separate BMP581_1_INT and BMP581_2_INT handling.
  • Add direct BMI323 driver support.
  • Remove required magnetometer reads from the baseline firmware path.
  • Rework GPIO mapping for ESP32-S3, including BUZZER_PWM, PWR_BTN_N, PWR_HOLD, BAT_SENSE, BLE_LED_PWM, I2C, USB, EN, and BOOT.
  • Add configurable audio profiles for vario use: climb cadence, sink alarm, mute, startup check, and volume/power-saving modes.
  • Port the old single-PWM buzzer model, then retune frequency and volume tables around the CSS-J4D20-SMT-TR response on the new PCB.
  • Revalidate sensor axis mapping and calibration on the actual PCB.

Open Decisions

  • Protected LiPo pack and cable polarity.
  • USBMSD storage backend: internal flash FAT partition vs external flash/NAND/microSD.
  • USB device mode policy: MSC only, CDC+MSC composite, boot/mode-selected function, and the exact software update endpoint.
  • Final volume-control policy: envelope levels, quiet mode, and startup volume.
  • Enclosure acoustic outlet, port orientation, and measured SPL after installation.
  • Button actuator/enclosure mechanics.
  • Final ESP32-S3 GPIO map after strapping-pin, USB-pin, and reserved-pin review.
  • Whether ESP32-S3-WROOM-1U-N8 without PSRAM is sufficient for the final USBMSD firmware.
  • RF/EMC certification path for the selected 4.4 dBi external antenna. Espressif's module certification guidance recommends antennas no higher than the certified antenna gain, so this antenna choice may require additional testing.
  • TLV75533 current and thermal margin with ESP32-S3 RF peaks and USB-attached operation.
  • Whether charger status pins need LEDs or only test pads.
  • Final Atopile package/footprint sources and exact passive values.

Atopile Build Order

  1. Create Atopile project scaffold.
  2. Add verified packages for ESP32-S3-WROOM-1U-N8, two BMP581 sensors, BMI323, BQ24075, TLV75533, USB-C, USB ESD, LiPo connector, CSS-J4D20 buzzer, MOSFET driver, button, green power LED, blue BLE pairing LED, passives, and the BOM-only external antenna.
  3. Capture power path and 3.3 V rail.
  4. Capture ESP32-S3 native USB OTG, USB VBUS sense, EN, BOOT, and hidden service bootloader buttons.
  5. Capture both BMP581 sensors and BMI323 on shared I2C.
  6. Add unpopulated magnetometer I2C pads or optional footprint.
  7. Add the selected USBMSD storage backend if external storage is selected.
  8. Capture loud audio and user I/O.
  9. Assign supplier/manufacturer metadata for audit.
  10. Run electrical/package checks before PCB routing.

Atopile Project Status

Atopile is now the active project source in this repo:

  • ato.yaml: Atopile 0.15.7 project config.
  • main.ato: FlySysVario schematic source and Atopile RectangularBoardShape board outline.
  • parts/: generated and local part definitions, including local draft footprints for battery, buzzer, MOSFETs, signal diodes, buttons, and optional magnetometer pads.
  • layouts/default/default.kicad_pcb: Atopile-generated layout artifact used by the Atopile Autolayout panel.
  • docs/components-and-placement.md: component map, passive explanations, and placement intent.

Current modeled nets include USB-C, USB ESD, BQ24075 power path, P-MOS battery hard-off switch, TLV75533 3.3 V rail, ESP32-S3 native USB, I2C sensor bus, two BMP581 barometers, BMI323, battery connector, switched battery/USB sense dividers, buzzer MOSFET driver, always-on green power LED, blue BLE pairing LED low-side switch, power/user button, hidden BOOT and RESET service buttons, and optional future magnetometer pads. See docs/firmware-update-ux.md for the software-first update flow and recovery fallback.

ato --non-interactive build --standalone main.ato:FlySysVario completes the current Atopile source workflow. The default layout build still needs a layout artifact migration after the WROOM-1U swap; ato --non-interactive build passes electrical verification but fails while loading layouts/default/default.kicad_pcb. The 90 mm x 45 mm board outline is defined in main.ato with RectangularBoardShape, so the Atopile Autolayout panel has a board boundary to place and route against. The remaining warnings are expected for local or DigiKey-only parts because the current picker support is not covering those local packages. Before production, verify the local draft footprints for ESP32-S3-WROOM-1U-N8, S2B-PH-SM4-TB, CSS-J4D20-SMT-TR, AO3400A, DMP3098L, 1N4148W, KMR211NG LFS, and optional magnetometer pads against manufacturer land patterns and enclosure mechanics.

Source Links

Parts

64
QtyValueFootprintReferences
7100nF ±10%YAGEO_CC0603KRX7R9BB104:C0603C2, C4, C5, C6, C10, C11, C12
61MΩ ±1%UNI_ROYAL_0603WAF1004T5E:R0603R1, R2, R22, R23, R25, R28
510kΩ ±1%UNI_ROYAL_0603WAF1002T5E:R0603R6, R13, R15, R16, R19
4Alpha_Omega_AO3400A:AO3400AQ1, Q2, Q3, Q5
410µF ±10%Samsung_Electro_Mechanics_CL10A106KP8NNNC:C0603C1, C3, C9, C13
3Diodes_Inc_1N4148W:1N4148WD2, D3, D4
3100kΩ ±1%UNI_ROYAL_0603WAF1003T5E:R0603R3, R7, R26
3100Ω ±1%UNI_ROYAL_0603WAF1000T5E:R0603R4, R8, R27
31µF ±10%Samsung_Electro_Mechanics_CL10A105KB8NNNC:C0603C7, C8, C14
34.7kΩ ±1%UNI_ROYAL_0603WAF4701T5E:R0603R17, R18, R24
21kΩ ±1%UNI_ROYAL_0603WAF1001T5E:R0603R5, R20
25.1kΩ ±1%UNI_ROYAL_0603WAF5101T5E:R0603R9, R10
1Bosch_Sensortec_BMI323:LGA-14_L3.0-W2.5-P0.50-TL_QMI8658AU2
1Lite_On_LTST_C190GKT:LED0603-RDLED2
1GCT_USB4105_GF_A:TYPE-C-SMD_SBC-160S1A-20-S412USB1
1JST_S2B_PH_SM4_TB:S2B-PH-SM4-TBJ1
1Same_Sky_CSS_J4D20_SMT_TR:CSS-J4D20-SMT-TRBZ1
1STMicroelectronics_USBLC6_2SC6:SOT-23-6_L2.9-W1.6-P0.95-LS2.8-BLD1
1Espressif_Systems_ESP32_S3_MINI_1_N8:BULETM-SMD_ESP32-S3-MINI-1-N8U4
1CK_KMR211NG_LFS:KMR211NG_LFSSW1
1Texas_Instruments_BQ24075RGTR:QFN-16_L3.0-W3.0-P0.50-TL-EP1.7U1
1Bosch_Sensortec_BMP581:BMP581_LGA10_2x2mmU5
1Diodes_Inc_DMP3098L:DMP3098LQ4
1CK_KMR211NG_LFS:KMR211NG_LFS_RSTSW3
1CK_KMR211NG_LFS:KMR211NG_LFS_BOOTSW2
1Texas_Instruments_TLV75533PDBVR:SOT-23-5_L3.0-W1.7-P0.95-LS2.8-BRU3
1Lite_On_LTST_C190TBKT:LED0603-RDLED1
11.1kΩ ±1%UNI_ROYAL_0603WAF1101T5E:R0603R11
12kΩ ±1%UNI_ROYAL_0603WAF2001T5E:R0603R12
1330kΩ ±1%UNI_ROYAL_0603WAF3303T5E:R0603R21
147kΩ ±1%UNI_ROYAL_0603WAF4702T5E:R0603R14

Questions

How big is the Layouts PCB?

It measures 90 × 45 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Layouts use?

64 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 Layouts KiCad files?

From the nejcokorn/flysys_test repository on GitHub, at the commit this page was made from: the board is layouts/default/default.kicad_pcb and its schematic kicad/flysys_vario.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Layouts design in my own project?

Its repository states no licence, so its author keeps all rights: ask nejcokorn before reusing the design.

Similar boards

  • 2 layers76.5 × 120 mmNumpad project, the printed circuit board in 3D

    Numpad project

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    64 parts915
  • 2 layers160 × 99.1 mmFlat hierarchy, the printed circuit board in 3D

    Flat hierarchy

    drandyhaas/KiCadRoutingTools

    A set of Python/Rust tools to aid routing in KiCad

    64 parts744MIT
  • 2 layers49 × 53.2 mmDB25 External, the printed circuit board in 3D

    DB25 External

    BlueSCSI/BlueSCSI-v2

    BlueSCSI v2/Ultra - an open source, open hardware, SCSI emulator using the Pi Pico PR2040 and Pico 2 RP2350

    64 parts459GPL-3.0
  • 2 layers90 × 71 mmTd hv, the printed circuit board in 3D

    Td hv

    tdaede/td-crt

    tubes

    64 parts373
  • 2 layers28 × 30 mmOtterIron Devkit, the printed circuit board in 3D

    OtterIron Devkit

    Jana-Marie/Otter-Iron-PRO

    USB-PD soldering station for JBC C245 handles.

    64 parts321
  • 2 layers192.9 × 59.5 mmAlpha pro micro, the printed circuit board in 3D

    Alpha pro micro

    PyrooL/Alpha

    A 28-key semi-ortholinear mechanical keyboard designed by PyroL

    64 parts298MIT
  • 2 layers128 × 88 mmFireball revD, the printed circuit board in 3D

    Fireball revD

    ugcs/ddc

    Drone Show Software is software designed for drone shows, allowing flight path planning as well as control of dozens of drones simultaneously in a synchronized manner.

    64 parts223
  • 2 layers78 × 81 mmEncoder, the printed circuit board in 3D

    Encoder

    eddyem/stm32samples

    Code samples and ready projects based on bare-metal STM32

    64 parts208