

Afc
Open-Source Pick and Place Autofeeder
- Size
- 50 × 30 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 49
- Nets
- 61
- Pads
- 197
- Tracks, vias
- 306, 24
- Pours
- 3
- Routed
- Yes
- KiCad
- KiCad 8.0 (file 20240108)
- Created
- 18 Sep 2024
- Updated
- 2 Dec 2024
Overview
Afc is an open-source printed circuit board by machdyne, from the machdyne/af repository on GitHub, published under the CERN-OHL-P-2.0 licence. It is a 2-layer board of 50 × 30 mm with 49 parts on 61 nets, routed with 306 tracks and 24 vias.
It is built around the RP2040, W25Q32JVSSIQ and ZXCT1107SA. Its parts include 17 capacitors, 14 resistors, 4 ICs, 3 connectors and 2 diodes. It belongs with the RP2040 boards of this library.
Main components
3RP2040
LQFN-56(7x7)12bit 133MHz 30 LQFN-56(7x7) Microcontrollers (MCU/MPU/SOC) ROHSRaspberry PiMicrocontrollers (MCU/MPU/SOC)W25Q32JVSSIQ
SOIC-8-208mil-40℃~+85℃ 100,000 cycles 133MHz 1uA 2.7V~3.6V 20 Years 32Mbit 3ms SPI SOIC-8-208mil NOR FLASH ROHSWinbondNOR FLASHZXCT1107SA
SOT-23-40℃~+125℃ 0V~0.5V 19nA 2.5V~36V 2.5V~36V 3uA 650kHz High-side detection、Analog output interface SOT-23 Current Sense Amplifiers ROHSDiodes IncorporatedCurrent Sense Amplifiers
README
README.mdMachdyne AF
Overview
Machdyne AF is an open-source project for a PNP autofeeder system1.
The autofeeder design is a closed-loop system that uses an infrared LED and phototransistor array2 to precisely detect the tape position. The tape is moved forward using a geared DC motor and a sprocket. The cover tape is partially separated and advanced with the tape.
The autofeeders can be chained together with 4 wires and communicate with the system controller using the I2C protocol.
The system uses two custom printed circuit board designs. An autofeeder controller PCB (Essen) includes the tape detection and motor driver circuitry for each autofeeder. A system controller PCB (Koch) provides power and allows a chain of feeders to communicate with the OpenPnP software over a USB-C port.
Autofeeder 3D parts (AF1)
| Model | Image | Description |
|---|---|---|
| af | ![]() | The autofeeder body guides the tape and holds the Essen PCB in place |
| af_sprocket | ![]() | The sprocket advances the tape |
| af_motor_lock | ![]() | The motor lock holds the motor in place |
| af_blade | ![]() | The blade partially peels the clear film from the top of the tape to the side |
| af_led_block | ![]() | The LED block holds the LED in place |
| af_lid | ![]() | The lid closes the autofeeder and guides the tape |
Bill of Materials
| Part | Quantity | Description | Example P/N |
|---|---|---|---|
| Worm gear motor | 1 | Right-angle N20 DC 12V 16 RPM | JGY-N20 |
| LED | 1 | 3mm 940nm 1.3Vf Infrared LED | DY-FIR204C |
| M3 bolt 12mm + nut | 1 | for blade | - |
| M3 screw 20mm countersunk | 1 | for LED block | - |
| M3 bolt 20mm countersunk + nut | 3 | for lid | - |
| M3 bolt 25mm | 1 | to connect LED block to rail | |
| M3 T3 nut | 1 | to connect LED block to rail |
You will also need dupont jumper wires to connect the motor and LED to Essen.
Assembly Instructions
Cut, strip and solder one end of the jumper wires to the motor leads and each lead of the LED. Press the LED into the LED block, and run the wires through the large LED block hole.
Attach the blade using an M3 bolt and nut.
Press the sprocket onto the motor axle. Press the motor into the motor cavity.
Run the LED wires through the rear autofeeder hole and connect to Essen LED_A and LED_K. Connect the motor wires to Essen MOT1 and MOT2.
Push the PCB onto the PCB notches so that it locks into place.
Attach the LED block using the screw.
Place the motor lock on top of the motor.
Attach the lid.
Connect Essen to Koch or other Essens using a 4-pin female-female 2.54mm dupont cable.
Attach the LED block to a 2020 rail with an M3 bolt and T-nut.
The assembled autofeeder (without lid):

Autofeeder controller PCB (Essen)
Also see the firmware and usage instructions.

Pinout (Rear)
9 7 5 3 1
10 8 6 4 2| Pin | Signal | Notes |
|---|---|---|
| 9/10 | 12V | System power input |
| 7/8 | GND | Ground |
| 5/6 | SDA | I2C data |
| 3/4 | SCL | I2C clock |
| 2 | TRIGGER | Optional external tape advance signal |
| 1 | SWDIO | MCU SWD signal for firmware updates / serial debugging output |
Pinout (Top)
| Pin | Signal | Notes |
|---|---|---|
| 1 | MOT1 | Motor driver output #1 |
| 2 | GND | Ground |
| 3 | MOT2 | Motor driver output #2 |
| 4 | GND | Ground |
| 5 | ELED_A | External (IR) LED anode |
| 6 | ELED_K | External (IR) LED cathode |
The motor driver can drive one bidirectional motor or two unidirectional motors.
System controller PCB (Koch)
Also see the firmware and usage instructions.

Pinout
1 2 3 4| Pin | Signal | Notes |
|---|---|---|
| 1 | 12V | System power output (2.5mm positive tip) |
| 2 | GND | System ground |
| 3 | SDA | I2C data |
| 4 | SCL | I2C clock |
Funding
This project is being partially funded through the NGI0 Entrust Fund, a fund established by NLnet with financial support from the European Commission's Next Generation Internet programme.
License
This project is released under the CERN-OHL-P license.
Footnotes
Parts
49| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 100nF | Capacitor_SMD:C_0603_1608Metric | C4, C5, C6, C7, C8, C12, C13, C14 |
| 4 | 1uF | Capacitor_SMD:C_0603_1608Metric | C3, C10, C15, C18 |
| 4 | MountingHole_Pad | MountingHole:MountingHole_3.2mm_M3_ISO14580_Pad | H1, H2, H3, H4 |
| 3 | 5K1 | Resistor_SMD:R_0603_1608Metric | R2, R6, R12 |
| 2 | 15pF | Capacitor_SMD:C_0603_1608Metric | C1, C2 |
| 2 | 1K | Resistor_SMD:R_0603_1608Metric | R5, R8 |
| 2 | 27R | Resistor_SMD:R_0603_1608Metric | R3, R4 |
| 2 | 4K7 | Resistor_SMD:R_0603_1608Metric | R9, R10 |
| 2 | 536R | Resistor_SMD:R_0603_1608Metric | R1, R14 |
| 1 | 10K | Resistor_SMD:R_0603_1608Metric | R7 |
| 1 | 10pF50v | Capacitor_SMD:C_0603_1608Metric | C11 |
| 1 | 2.6A HOLD 5A TRIP 24V | Fuse:Fuse_1210_3225Metric | F1 |
| 1 | 22uF16v | Capacitor_SMD:C_0805_2012Metric | C16 |
| 1 | 4.7uF | Capacitor_SMD:C_0603_1608Metric | C17 |
| 1 | 4K7 | Resistor_SMD:R_1206_3216Metric | R13 |
| 1 | 50mOhm | Resistor_SMD:R_1206_3216Metric | R11 |
| 1 | BOOT | Button_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx39-2LFS | SW3 |
| 1 | Barrel_Jack | Connector_BarrelJack:BarrelJack_GCT_DCJ200-10-A_Horizontal | J3 |
| 1 | Conn_01x04_Pin | Connector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_Horizontal | J2 |
| 1 | ECS-80-12-33-JGN-TR-12MHZ | LD-CRYSTALS:XTAL_ECS-240-8-33-AGN-TR | Y1 |
| 1 | Ferrite_Bead | Resistor_SMD:R_0603_1608Metric | FB1 |
| 1 | LEDG | LED_SMD:LED_0603_1608Metric | D1 |
| 1 | LEDR | LED_SMD:LED_0603_1608Metric | D2 |
| 1 | NCP115 | Package_SO:TSOP-5_1.65x3.05mm_P0.95mm | U3 |
| 1 | RP2040 | LD-MCUS:RP2040-QFN-56-OFFICIAL | U1 |
| 1 | TYPE-C-31-M-12-FIXED | LD-CONNECTORS:USB_C_Receptacle_HRO_TYPE-C-31-M-12-BIG-PADS | J1 |
| 1 | W25Q32JVSS | Package_SO:SOIC-8_3.9x4.9mm_P1.27mm | U2 |
| 1 | ZXCT1107 | Package_TO_SOT_SMD:SOT-23 | U4 |
The 48 most common of 49 parts.
More from machdyne/af
1- 2 layers50 × 14 mm

Similar boards
- 4 layers69 × 39 mm

JPBms2
jakepoz/jpbms
JPBms is a simple BMS for solar charging and balancing a 3-cell lithium ion battery.
132 parts2 - 2 layers86.4 × 97.2 mm

- 4 layers51 × 34.3 mm

- 2 layers78 × 60 mm

- 4 layers22.9 × 61 mm

- 4 layers59.8 × 41.1 mm

SmartPowerBoard
murexrobotics/electrical
Highly integrated electronics design and printed circuit boards (PCBs) for the MATE ROV Competition. Attempt the impossible.
117 parts192MIT - 2 layers30 × 16 mm

- 2 layers120 × 60 mm

Overglade Badges
KaiPereira/Overglade-Badges
NFC hackathon badges for the Overglade game jam in Singapore!
69 parts126
Questions
How big is the Afc PCB?
It measures 50 × 30 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Afc use?
49 parts, built around the RP2040, W25Q32JVSSIQ and ZXCT1107SA. 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 Afc KiCad files?
From the machdyne/af repository on GitHub, at the commit this page was made from: the board is pcb/koch/afc.kicad_pcb and its schematic pcb/essen/af.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Afc design in my own project?
Its repository publishes it under the CERN-OHL-P-2.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).





