/PicoBOB

Low-cost and simple GRBLHAL to MACH3 BOB bridge for Raspberry Pi Pico

OtherNOASSERTION

PicoBOB for GRBLHAL

Logo

Expatria Technologies PicoBOB GRBLHAL module

Currently available in our online store:

https://expatria.myshopify.com/products/picobob

We have also built some with Elecrow using their partner seller service:
https://www.elecrow.com/picobob-cnc-control-module-for-grblhal.html

Please consider buying a board to support our open-source designs.

The PicoBOB allows you to use the high performance GRBLHAL motion control system with a traditional Mach3/LinuxCNC parallel-port breakout board. It is intended to be simple and low cost. It uses a Raspberry Pi RP2040 MCU and the widely available 5 axis Mach3 breakout board. It can also be used with the Gecko G540. The PicoBOB can be easily sourced from JLCPCB. The complete BOM and fabrications files are in the CAM_OUTPUTS folder for upload. The design is free to use by all parties, including commercial parties, under the CERN-OHL-S V2 license. It is our hope that the community finds the design useful and that it may be carried forward to help advance the PrintNC and broader CNC hobby community.

The PicoBOB closely tracks the features of the Mach3 BOB:

  1. Up to 5 axes of step/direction control.
  2. 10A Spindle relay control.
  3. 0-10V analog spindle speed control.
  4. 5 general purpose inputs
  5. One general purpose output.

The default GRBLHAL builds for the PicoBOB include the following features that are implemented in the RP2040 port of GRBLHAL:

  1. Backlash Compensation.
  2. Stress-free Autosquaring for the ganged axis
  3. Ganged axis offsets to correct for offset homing switches
  4. Step rates tested up to 180 KHz on 5 simultaneous axes.

In addition, the board has a USB micro connector for the 5V that is required for the BOB. There is also a push button to reset the Pi Pico without disconnecting power.

Gerber output files are in the CAM_OUTPUTS folder, along with BOM and Pick and Place files to facilitate easy ordering from JLCPCB. Now available as a chip-down design in revision B1. Older A1 revision for Pi Pico module is still hosted in case you want to do the final soldering by hand. The two designs are functionally identical.

PicoBOB Overview

Usage notes:

Communication with GRBLHAL on the PicoBOB is accomplished via the USBC connection on the PicoBOB (not connected in above images). A short USB cable is used to provide the required 5V for the BOB. In addition, the BOB requires an external 12-24V supply.

The Mach3 BOB shares the B axis direction signal with a spindle relay enable signal - only one can be used at a time. Also on the PicoBOB, the stepper enable signal is modified in the GRBLHAL default map file so that it is used as the coolant output signal. All of this is configurable by re-building the GRBLHAL firwmare.

Above shows the PicoBOB A1 with a Pi Pico installed and connected to the Mach3/LinuxCNC parallel BOB.

Above shows the PicoBOB B1 connected to the Mach3/LinuxCNC parallel BOB.

YGANG pinout is as below:

To build mainline GRBLHAL firmware, PicoBOB is fully supported by the Web Builder from TerjeIO

http://svn.io-engineering.com:8080/?driver=RP2040&board=PicoBOB

Gecko Drive G540 support Overview

By using a common "mini gender changer" the PicoBOB can be adapted for use with a G540 4-AXIS Digital Step Drive.

The updated GRBLHAL map file has the following pinout:

DB25 Pin G540 Function GRBLHAL Function RP2040 GPIO
Pin 1 OUTPUT 2 SPINDLE ENABLE GPIO14
Pin 2 X STEP X STEP GPIO17
Pin 3 X DIR X DIR GPIO9
Pin 4 Y SETP Y SETP GPIO18
Pin 5 Y DIR Y DIR GPIO10
Pin 6 Z STEP Z STEP GPIO19
Pin 7 Z DIR Z DIR GPIO11
Pin 8 A STEP A/M3 STEP GPIO20
Pin 9 A DIR A/M3 DIR GPIO12
Pin 10 INPUT 1 LIMIT XYZ GPIO3
Pin 11 INPUT 2 PROBE GPIO4
Pin 12 INPUT 3 LIMIT A/M3 GPIO2
Pin 13 INPUT 4 HOLD GPIO1
Pin 14 VFD PWM SPINDLE PWM GPIO16
Pin 15 FAULT (INPUT 5) HALT GPIO5
Pin 16 CHARGE PUMP N/A GPIO21
Pin 17 OUTPUT 1 COOLANT GPIO13
Pin 18-25 GND

For custom builds using the above pinout, you can use this variant from the Web Builder:

http://svn.io-engineering.com:8080/?driver=RP2040&board=PicoBOB_G540

Flashing Firmware to your PicoBOB

To upgrade or install firmware onto your PicoBOB, simply hold the BOOT button while pulsing the RUN buttton. This will put the RP2040 into UF2 programming mode and it will appear on the USB port as a flash drive (RPI-RP2). Simply drag the firmware UF2 file onto the drive and it will flash automatically. If your PicoBOB is unprogrammed, it will appear as a flash drive without having to press the BOOT button.