G-code controller for Siemens S (Schultz) feeders. This controller is mainly designed to be integrated into OpenPnP, but since it is G-Code based through USB interface, it will fit just about any pick and place project.
This firmware was created as part of Eilbek Research's open source electronics manufacturing project.
We are working on setting up our own electronics production line in Hamburg and open-sourcing what we learn in the process.
If you want to learn about our project, you can find us talking about it:
- At Kicon Europe 2025: https://www.youtube.com/watch?v=X8QIjjPPQEY
- At Chaos Communication Congress 2025 (39c3): https://events.ccc.de/congress/2025/hub/en/event/detail/in-house-electronics-manufacturing-from-scratch-how-hard-can-it-be
This guide/project is still quite early as we fund our work through engineering freelance and consulting projects.
If you came here from congress: This repository contains electronics design files, firmware code (arduino-based), and information about our efforts reverse-engineering Siemens S series feeders.
If you own some of these feeders and you need help or information, don't hesitate to contact us at eilbek-research.de/contact
The controller board distributes power to the feeders and provides the communication interface for 20 feeder units (40 lanes of components). There are two versions of the controller board. The KiCad files are in this folder.
- The 4 pin version has 20 individual 4 pin connectors. One for each feeder unit.
- the 96 pin version has one 96 pin DIN connector compatible with the connector on the Siemens Communication Unit connector board. This board is Siemens 1710470-Y1032-C1-01-86 and is inside of 00316265S05.
The board uses a Arduino Nano Every. This is a low cost arduino which can easily be soldered to the control board. Edit the config.h file in the arduino sketch to select the type of board you are using, then upload the sketch to the board.
This repository is a fork of https://github.com/bilsef/SchultzController, the original creator of the SchultzController.
Our work adds onto this by providing updated hardware, and support for Gen 2 feeders, as well as all error codes that will enable proper error-handling and feeder usage flow in OpenPnP.