Skip to the content
PCBKitNew board
6 layers138 × 191 mmHandyplc, the printed circuit board in 3D

stm32f411-based PLC board

Size
138 × 191 mm
Copper layers
6
Thickness
1.56 mm
Parts
517
Nets
366
Pads
1,419
Tracks, vias
2,941, 471
Pours
46
Routed
Yes
KiCad
KiCad 9.0 (file 20241229)
Created
17 Feb 2026
Updated
8 Mar 2026

Overview

Handyplc is an open-source printed circuit board by djmdjm, from the djmdjm/handyplc repository on GitHub, published under the ISC licence. It is a 6-layer board of 138 × 191 mm with 517 parts on 366 nets, routed with 2,941 tracks and 471 vias.

It is built around the R-78E5.0-0.5, SPB09B-05 and NSI50010Y, with the AP2125KS-3.3TRG1, SM4007 and KT-0603R among its other parts. Its parts include 205 resistors, 95 diodes, 67 capacitors, 48 transistors and 40 ICs. It belongs with the STM32 boards of this library.

Main components

9

README

README.md

HandyPLC

This is a small PLC-like device based around a STM32F411 microcontroller. It mostly exists because I wanted a PLC that I could program in Rust and without vendor toolchains or closed-source libraries.

Features and specifications

As the name suggests, HandyPLC is fairly general-purpose.

  • Power supply: 24VDC nominal, 2A (worst-case). MCU power is isolated.
  • Inputs: 16x isolated inputs. 5-36V
  • General-purpose outputs: 16x isolated open-drain outputs. Can sink 33mA at 24V
  • High-speed outputs: 4x isolated 5V logic outputs. Max 10mA.
  • 3x signalling LEDs
  • 3x micro-switches for UI
  • USB-C interface (USB 2.0 only). Can be used for DFU.
  • Spare GPIO brough out to IDC connectors and/or headers.

Firmware

There is no standard firmware for this device. The intent is that you fork this repository and write your own. The firmware/ sub-directory contains the Rust firmware that I use, but that is completely specific for my needs.

Mechanical

The carrier/ subdirectory contains CAD files for the holder/carrier that I used to attach a HandyPLC to a DIN rail.

Bugs

Probably plenty. I'm not an Electrical Engineer and have no training or experience designing industrial devices.

Notice in particular that I have no provided any specification around the isolation properties of this device.

Use this completely at your own risk.

History

2026/02 - initial release (DVT 0.1)

Parts

517
QtyValueFootprintReferences
56220Resistor_SMD:R_0402_1005MetricR13, R102, R104, R108, R110, R114, R116, R120, R124, R129, R134, R139, R144, R149, R154, R159 +40
47100nFCapacitor_SMD:C_0402_1005MetricC1, C10, C18, C21, C23, C24, C25, C26, C27, C28, C29, C30, C31, C32, C33, C34 +31
40SM4007Diode_SMD:D_SOD-123D10, D11, D14, D16, D18, D20, D22, D24, D26, D28, D30, D32, D34, D36, D38, D40 +24
39KT-0603RLED_SMD:LED_0603_1608MetricD1, D2, D3, D13, D15, D17, D19, D21, D23, D25, D27, D29, D31, D33, D35, D37 +23
36TLP2395Package_SO:SO-5-6_4.55x3.7mm_P1.27mmU2, U10, U11, U12, U13, U14, U15, U16, U17, U18, U19, U20, U21, U22, U23, U24 +20
3410Resistor_SMD:R_0402_1005MetricR122, R123, R127, R128, R132, R133, R137, R138, R142, R143, R147, R148, R152, R153, R157, R158 +18
342.2kResistor_SMD:R_0402_1005MetricR15, R100, R106, R112, R118, R126, R131, R136, R141, R146, R151, R156, R161, R166, R171, R176 +18
33100kResistor_SMD:R_0402_1005MetricR18, R103, R109, R115, R121, R125, R130, R135, R140, R145, R150, R155, R160, R165, R170, R175 +17
322N7002Package_TO_SOT_SMD:SOT-23Q1, Q3, Q10, Q12, Q14, Q16, Q18, Q20, Q22, Q24, Q26, Q28, Q30, Q32, Q34, Q35 +16
2510kResistor_SMD:R_0402_1005MetricR1, R2, R3, R4, R5, R14, R19, R33, R39, R45, R51, R57, R63, R105, R111, R117 +9
16470Resistor_SMD:R_0402_1005MetricR16, R35, R41, R47, R53, R59, R65, R71, R77, R83, R89, R95, R101, R107, R113, R119
16NSI50010YDiode_SMD:D_SOD-123D12, D46, D49, D52, D55, D58, D61, D64, D67, D70, D73, D76, D79, D82, D85, D88
16ZXMS6004FFQPackage_TO_SOT_SMD:SOT-23Q2, Q5, Q7, Q9, Q11, Q13, Q15, Q17, Q19, Q21, Q23, Q25, Q27, Q29, Q31, Q33
9MountingHoleMountingHole:MountingHole_2.7mm_M2.5H1, H2, H3, H4, H5, H6, H7, H8, H9
82.2uFCapacitor_SMD:C_1206_3216MetricC2, C3, C9, C14, C15, C19, C20, C22
610uHInductor_SMD:L_0805_2012MetricL1, L2, L3, L4, L5, L6
41kResistor_SMD:R_0402_1005MetricR10, R11, R12, R20
4GNDdjm:Testpoint_THTPadTP4, TP5, TP6, TP7
4GND1djm:Testpoint_THTPad_AltTP8, TP9, TP10, TP11
32.2uF 100VCapacitor_SMD:C_1206_3216MetricC11, C12, C13
21500pF 2KVCapacitor_SMD:C_1812_4532MetricC16, C17
21uFCapacitor_SMD:C_1206_3216MetricC59, C60
25.1kResistor_SMD:R_0402_1005MetricR26, R27
26pFCapacitor_SMD:C_0402_1005MetricC6, C7
27pFCapacitor_SMD:C_0402_1005MetricC4, C5
115kResistor_SMD:R_0402_1005MetricR204
124VDCConnector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ39
14.7uFCapacitor_SMD:C_1206_3216MetricC58
19HT12-32.768KDZY-Tdjm:Crystal_9HT12-32.768KDZY-TY1
1AP2125KS-3.3TRG1Package_TO_SOT_SMD:SOT-353_SC-70-5U4
1BOOTLDRButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW1
1DEBUGConnector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ25
1GPIO1Connector_IDC:IDC-Header_2x06_P2.54mm_VerticalJ22
1GPIO2Connector_IDC:IDC-Header_2x08_P2.54mm_VerticalJ23
1GPIO3Connector_IDC:IDC-Header_2x08_P2.54mm_VerticalJ24
1I2C1Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ2
1IN1Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ6
1IN10Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ15
1IN11Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ16
1IN12Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ17
1IN13Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ18
1IN14Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ19
1IN15Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ20
1IN16Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ21
1IN2Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ7
1IN3Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ8
1IN4Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ9
1IN5Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ10
1IN6Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ11
1IN7Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ12
1IN8Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ13
1IN9Connector_Kefa:Connector_KF142V_5.08_1x02_VerticalJ14
1LOGIC_OUTConnector_IDC:IDC-Header_2x04_P2.54mm_VerticalJ29
1MCO1TestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmTP1
1MCO2TestPoint:TestPoint_THTPad_D1.0mm_Drill0.5mmTP2
1MCU_PWRConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ38
1OUT1-8Connector_Kefa:Connector_KF142V_5.08_1x08_VerticalJ4
1OUT7-16Connector_Kefa:Connector_KF142V_5.08_1x08_VerticalJ5
1R-78E5.0-0.5Converter_DCDC:Converter_DCDC_RECOM_R-78E-0.5_THTU3
1RESETButton_Switch_SMD:SW_SPST_CK_RS282G05A3SW2
1SPB09B-05Meanwell_SPB:SPB09U5
1SPI2Connector_PinHeader_2.54mm:PinHeader_1x06_P2.54mm_VerticalJ3
1STM32F411VETxPackage_QFP:LQFP-100_14x14mm_P0.5mmU1
1SX20Y025000B61T002Crystal:Crystal_SMD_2016-4Pin_2.0x1.6mmY2
1UNISOLATEDConnector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_VerticalJ37
1USART1Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ1
1USB_C_Receptacle_USB2.0_16PConnector_USB:USB_C_Receptacle_HRO_TYPE-C-31-M-12J40
1USER1/BOOT1Button_Switch_SMD:SW_SPST_CK_RS282G05A3SW3
1USER2Button_Switch_SMD:SW_SPST_CK_RS282G05A3SW4
1USER3Button_Switch_SMD:SW_SPST_CK_RS282G05A3SW5

Questions

How big is the Handyplc PCB?

It measures 138 × 191 mm and has 6 copper layers, 1.56 mm thick.

What parts does the Handyplc use?

517 parts, built around the R-78E5.0-0.5, SPB09B-05, NSI50010Y and AP2125KS-3.3TRG1. 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 Handyplc KiCad files?

From the djmdjm/handyplc repository on GitHub, at the commit this page was made from: the board is hardware/handyplc.kicad_pcb and its schematic hardware/gp_input.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Handyplc design in my own project?

Its repository publishes it under the ISC 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

  • 2 layers148 × 84.5 mmPanel daisy, the printed circuit board in 3D

    Panel daisy

    ohmtech-rdi/eurorack-blocks

    Software to Hardware Prototyping for Eurorack using C++, Max/Gen~ or Faust

    259 parts410
  • 2 layers63 × 58 mmOPNpool r5, the printed circuit board in 3D

    OPNpool r5

    cvonk/OPNpool

    Integrates the functionality of a Pentair pool controller into the smart home using ESP32 SoC.

    17 parts102
  • 2 layers68.6 × 53.3 mmProtogasm Board V2, the printed circuit board in 3D

    Protogasm Board V2

    Edging-Machines/Edging-Machines

    This repository is intended to contain as much information as possible about building, designing, prototyping, and using automated edging machines.

    14 parts67MIT
  • 4 layers231 × 67 mmBESC G2, the printed circuit board in 3D

    BESC G2

    galpavlin/BESC-G2

    BESC second generation

    300 parts58
  • 2 layers127 × 114.3 mmNes, the printed circuit board in 3D

    Nes

    dkonigsberg/nestronic

    Nestronic Game Music Synthesizer Alarm Clock

    144 parts38
  • 4 layers58.4 × 101.9 mmUp5k osc, the printed circuit board in 3D

    Up5k osc

    emeb/up5k_osc

    The brute-force approach is to synthesize these analog waveforms at sufficiently high sample rates that the timing jitter becomes imperceptible.

    137 parts36MIT
  • 2 layers70 × 70 mmMicroNet Teensy4, the printed circuit board in 3D

    MicroNet Teensy4

    Rodemfr/MicronetToNMEA

    A NMEA 0183 converter for Raymarine's wireless instruments ... and much more !

    13 parts34GPL-3.0
  • 4 layers19 × 111.1 mmGliss main, the printed circuit board in 3D

    Gliss main

    BelaPlatform/gliss-hardware

    You can find the source KiCad files for the Gliss module in this repository. This project is open hardware and under the Creative Commons Share Alike license 4.0.

    107 parts18