Skip to content

Penta Stepper Board

Bas Laarhoven edited this page Nov 14, 2013 · 3 revisions

5-Axis stepper driver board

2013-11-13 Updated and added pictures.

2013-10-23 Initial version of this page.

Although the BeBoPr can seat four Pololu compatible stepper modules, the board was designed with signals for five axes. With the PEPPER (PE nta-ste PPER) board, all these 5 axes can be used. The board attaches simply to the J5 connector on the BeBoPr.

pepper top view

Pepper board complete, with heat-sink and short flat-cable to (invisible) BeBoPr


The PEPPER board has the following features:

  • on-board TI DRV8825 drivers for 5 stepper motors.
  • 2.5 A peak stepper current per motor.
  • completely jumper-less.
  • all configuration via software, stored in on-board EEPROM.
  • plugs directly into the BeBoPr, or connects via a 16-wire flatcable.
  • two connectors for one axis (Z) to operate two motors in parallel.
  • BeBoPr IO_ENABLE status LED (the missing one on the BeBoPr).
  • two motor enable state LEDs.
  • micro stepping mode set via software instead of DIP switches.
  • motor current programmable via software instead of trimmers.
  • current decay setting configured via software instead of jumpers.
  • allow configuration of individual axes that need power to hold position.
  • one disable and up to three enable states with separate settings for each state.
  • configured via SPI by the BeagleBone without using a BeagleBone SPI device.
  • compatible with all BeBoPr board versions, with or without bridge.


  • extra features because of on-board stepper drivers.
  • board design allows one or more heatsinks to attach to the top of the PCB.
  • similar cost as 5 separate DRV8825 based Pololu modules (estimate, actual cost TBD)
  • works without hardware modifications to the BeBoPr board (R2 and up).


  • does not accept (Pololu) plugin style stepper modules.


The PEPPER board is compatible with all BeBoPr board versions, R0, R1, R2, R3, (all with or without Bridge), the BeBoPr+ and the coming BeBoPr++.

To connect the PEPPER to a R3 BeBoPr (the boards manufactured by Circuitco and sold via various webstores), one needs to mount the 'forgotten' J5 connector. A straightforward, double-row 16-pin 2.54 mm pitch pin-header will do.

Jumper J21 needs to be shorted on the BeBoPr. This is the default configuration, so unless it has been removed to use the BeBoPr with external stepper drivers, this should require no action. R0 and R1 boards do not have J21, these boards need an extra wire for use with the penta-stepper board. Contact modmaker if you have one of these (rare) boards.


Configuration changes to the board are non-volatile (i.e. automatically stored in EEPROM when needed). The CNC application can either configure the PEPPER at startup, or use the previously stored configuration. Currently the BeBoPr software sends it's configuration at startup. LinuxCNC may need a separate utility to configure the board.

The global BeBoPr IO_ENABLE signal still acts as global override (can be used as emergency stop). Once IO_ENABLE is active, two of the stepper signals are used to select one of four 'enable-states'. The first state with both signals negated (00) is the idle / default state. The other three combinations of these enable signals (01, 10 and 11) can be used to select different motor current settings. Often only one enable state will do:

Some examples:

A Prusa 3D printer: In most cases, the X, Y and Z axes do not need hold current. But the extruder(s) can benefit from a hold current. During long idle periods when not a single axis is stepping, (e.g. when waiting for a temperature change), the motors are normally turned off. The PEPPER board can be configured to keep some axes enabled in this situation (without changes to the software on the BeagleBone!). A reduced current and slow decay setting will give optimum holding torque and minimum switching noise.

An imaginary router: For high speed (e.g. G0) moves, a different decay setting and motor current can be programmed than for normal operation. When using ball-screws, a holding current can be programmed to keep position when idle.

More pictures

pepper top view

Top view of the penta-stepper board (before mounting the heat-sink)

pepper bottom view

All work is done on the bottom side! .

5 stepper drivers, an I/O expander, LDO regulator, some glue logic, 3 LEDs and a lot of passive components do all the work. This allows for heatsinks to be mounted on the top side of the board.

pepper on bebopr

This is how the PEPPER attaches to a BeBoPr when plugged directly on J5. .

pepper mounting

Firmly mounted to the BeBoPr using existing holes. .

The stepper power connector J18 on the BeBoPr is no longer used. Plug the power cable into J3 on the PEPPER. The same way, all stepper motors plug into the PEPPER instead of into te BeBoPr. Same connector order, and almost the same positions, so there's probably no need to modify the cabling.

The pin headers at location J1 can also be used to connect a 1:1 flatcable to J5 on the BeBoPr. This might be an option if space constraints don't allow mounting as shown.

Note that the BeBoPr (#219003) used here is an old R1 board that has horizontal stepper motor connectors. All production boards have other, vertical connectors. The PEPPER board was designed to fit even the highest vertical connector used.

You can’t perform that action at this time.