OpenPnP Feeder Types and How the Machine Talks to Them
OpenPnP's feeder list runs from a cut strip of tape held down with double-sided tape up to a motorised feeder that answers on an RS-485 bus. Everything between those two ends uses a different class, and the class decides how the machine finds the feeder, how it moves the tape, and which numbers you will tune when pick positions drift.
Two questions sort the list: who moves the tape, and how OpenPnP knows the feeder is mounted at all. The hardware answers both, and the class follows.
Feeders with no motor
ReferenceStripFeeder holds a cut length of SMT tape on the bed. You pull the cover film by hand before the job, and OpenPnP walks the pick location down the tape after each pick. It can use the tape's sprocket holes for setup and part centring, and the docs start you at 8 mm tape width with 4 mm part pitch for anything above 0402.
BlindsFeeder is a printed array of tape positions with a sliding cover the nozzle tip opens and closes, set up with vision and fiducials.
ReferenceTrayFeeder handles 2D part arrays aligned to X and Y with incremental picks and no vision. ReferenceTubeFeeder picks from one fixed spot for vibratory tube feeders. ReferenceHeapFeeder keeps loose parts in bins roughly 3 cm² per part, leans on vision, and runs slowly by design.
Feeders the head actuates
ReferenceDragFeeder advances tape with a pin on a solenoid. ReferenceLeverFeeder has the head press a lever, repeating the press for pitches larger than one lever stroke. OpenPnP's own documentation notes that ReferencePushPullFeeder covers both cases with more features, and that is where most machines without feeder electronics land.
The push-pull class is worth reading up on before you touch settings, because its moving parts are all software:
- Tape position comes from the sprocket holes, since the camera sees holes far more reliably than parts sitting in pockets. Pick locations are then derived from EIA-481 tape geometry given the width and pitch you entered.
- The Normalize? option snaps your captured pick location onto the geometry, so a hand-captured point only has to be within ±1 mm.
- Snap to Axis? aligns the calibrated hole positions to X or Y within ±10°, which trusts the squareness of the machine, mount and tape guide.
- 2 mm pitch tape (0402 and 0201 reels) works by advancing on every second feed.
- An OCR/QR stage can read the part label on a feeder, and settings clone to the next feeder, which turns setup of the second and later feeders into a one-click operation.
- Auto-setup is a first-pass tool. It overwrites hand-tuned values and the UI asks for confirmation, so do not run it on a feeder that already picks cleanly.
Feeders that move the tape themselves
ReferenceAutoFeeder calls a list of Actuators in sequence to perform a feed. ReferenceSlotAutoFeeder adds a slot table on top, so feeders can be swapped between slots without redoing pickup positions.
PhotonFeeder is the powered feeder from the LumenPnP project. OpenPnP scans the RS-485 bus and populates the feeder list by itself, which is the part that surprises people coming from a manual setup. Each slot carries a 1-Wire EEPROM programmed with the slot address, and a feeder reads that address when it is mounted, so the same feeder keeps its part assignment wherever it goes. Photon ships a wizard for programming slot addresses with a single feeder. On the host side Photon currently needs Marlin, using the M485 command, per the OpenPnP wiki.
Two other networked families appear in the same list: SchultzFeeder and SlotSchultzFeeder for Siemens Siplace electric feeders, and the Rapid Feeder from Deltaprintr.
What Photon puts on the wire
The interesting part of a powered feeder is that a feed is a real conversation. From Opulo's protocol documentation:
- Only the host starts a transaction. Every interaction is a command packet plus a response packet, and both carry the same five header bytes: to address, from address, packet ID, payload length, CRC.
- A payload always holds at least one byte, which is a command ID from the host and a status from the feeder.
- Address
0x00belongs to the host and0xFFis broadcast. A feeder answers to both a slot address and a 12-byte UUID.
| Command | ID | What it does |
|---|---|---|
GET_FEEDER_ID | 0x01 | Returns a feeder's 12-byte UUID from a known slot |
INITIALIZE_FEEDER | 0x02 | Enables the rest of the command set for that UUID |
GET_VERSION | 0x03 | Reports the protocol version |
MOVE_FEED_FORWARD | 0x04 | Feeds a distance and returns the expected feed time |
MOVE_FEED_BACKWARD | 0x05 | Feeds backwards, same payload shape |
MOVE_FEED_STATUS | 0x06 | Reports whether the last feed finished |
VENDOR_OPTIONS | 0xBF | Space for vendor-specific commands |
GET_FEEDER_ADDRESS | 0xC0 | Broadcast, finds a feeder's slot from its UUID |
UNINITIALIZED_FEEDERS_RESPOND | 0xC3 | Broadcast, finds feeders still waiting to be initialised |
MOVE_FEED_FORWARD carries the distance in tenths of a millimetre, so a 4 mm feed travels as 40, or 0x28, which is the value in the documented example packet. An 8 mm feed is 80 (0x50) and a 2 mm feed is 20 (0x14). The reply carries the expected feed time in milliseconds as two big-endian bytes, which tells the host how long to wait.
Feeding blocks. The host probes MOVE_FEED_STATUS until the feeder reports the result of the last feed, and the status codes cover the cases you would otherwise misread as motion problems: COULDNT_REACH, FEEDING_IN_PROGRESS, UNINITIALIZED_FEEDER, plus OK and FAIL. A feed that never completes looks like a stalled job with no error dialog, so a job that hangs near a feeder is worth reading as a feeder conversation first.
When the advance is wrong, check in this order
- Is the feeder in the list at all? If OpenPnP never saw it, no pitch setting will help. Our feeder overview walks through the bus scan and the button mode check. The classic address symptom is specific: one feeder works and the other is silently absent, with no error anywhere.
- Part pitch against feed pitch. Push-pull feeders hold these as two numbers. When part pitch is larger than feed pitch, OpenPnP actuates the feeder several times per pick. When it is smaller, OpenPnP skips actuation and steps between pick locations. A 2 mm pitch reel on a 4 mm feed setting lands one pocket off on every pick, and the fix is a number, not a screwdriver.
- Actuator mapping. Step the feeder with its own buttons. Advance from the buttons but not from a job points at the actuator configuration, and the feeder itself is fine.
- The tape reference the vision uses. Pick locations are derived from the sprocket holes, so a low-contrast background behind the holes or shiny cover tape costs you accuracy. Auto-setup is the fastest way to see what the pipeline currently sees.
- Mechanics last. Tape tension, the peel point and the cover film sit at the bottom of this list for a reason. They are real, and they are the two complaints we hear most about 0816-style feeders: parts jumping at the cover-tape peel point, and awkward tape loading.
Where the PikkoBot range sits on these layers
A Vertex 4 is $1,499, assembled and calibrated before shipping, with a dual Juki-compatible head, a 500 × 400 mm work area, and one set of manual tape feeders in the box. It has 50 feeder slots, and 8 mm and 12 mm feeders take one slot each while 16 mm and 24 mm feeders take two. A worked layout from our own overview page:
| Tape width | Feeders | Slots used |
|---|---|---|
| 8 mm | 20 | 20 |
| 12 mm | 8 | 8 |
| 16 mm | 6 | 12 |
| 24 mm | 2 | 4 |
| Total | 36 | 44 of 50 |
Two 24 mm feeders cost the same rail space as four 8 mm feeders, so tape width is a capacity decision before it is a price decision.

For a powered feeder, the steel-plate powered feeder four-pack runs $299 for 8 mm and 12 mm, $319 for 16 mm and $329 for 24 mm, with the narrow widths shipping in 3 to 5 business days and the wide ones made to order at around 15 days. The AS2 servo feeder four-pack is $199, or $219 as an 8 mm starter kit that adds the FD_USB_HUB tool board and an AS_FCB_V1.0 16-channel control board.
The AS2 line follows the 0816-style feeder design and command set, and it drops onto LumenPnP-platform machines without drilling or new brackets. Since it runs its own controller rather than Photon firmware, it will not turn up in a Photon bus scan, and it needs its own driver and actuator configuration in OpenPnP. That is the practical version of the layer diagram at the top of this page: same tape, same slots, different software path.
Related pages
- Feeder overview: Photon feeder buttons, drive and peel modes, and the 50-slot budget
- Loading tape and mounting feeders
- How to choose a feeder: tape width, protocol and slot planning for a new build
- Installing OpenPnP: getting the config loaded before any feeder work
- Photon feeder UUID setup: what to do when two feeders disagree about their address