0% found this document useful (0 votes)
283 views40 pages

PicoCNC User Manual

Uploaded by

Christian Osorio
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
283 views40 pages

PicoCNC User Manual

Uploaded by

Christian Osorio
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 40

grblHAL PicoCNC Motion Controller Breakout Board

User Manual

Document Version 1.04


Applicable PCB Revisions: 1.5, 1.51, 1.52, 1.52eth, 1.53eth

1 Copyright © 2023 Brookwood Design


2 Copyright © 2023 Brookwood Design
The PicoCNC PCB is a CNC controller board designed to run grblHAL.

Features:
 Compatible with Raspberry PI Pico and Pico W.
 4 Axis control outputs.
◦ 5V compatible.
◦ Screw Terminal and Pin Header.
◦ Independent enables for each axis.
 Spindle Control.
◦ PMM (5V).
◦ Direction (5V).
◦ 0-10V speed control.
◦ 12V PWM supported (open collector output).
 Limit Inputs for all 4 axes.
◦ Opto-isolated
◦ Support switches or powered proximity sensors
◦ 12V for better EMI immunity
◦ Separate power input for full isolation
 Opto-isolated inputs standard Grbl controls (Cycle Start, Feed Hold, Estop and Safety Door).
 Opto-isolated Probe input.
 Relay Support
◦ Directly drive up to 7 relay coils via open collector outputs.
◦ Relay Coil voltage selectable between +5V or +12V.
◦ Drive up to 11 SSR or Logic Level relays.
 Dust Extraction support.
◦ Activated by spindle enable.
◦ Directly drive relay coil, powered relay board or SSR
◦ Separate control of Dust Extraction via pin header/external switch.
 Screw Terminals for reliable connections available for most I/O.
 Communication
◦ USB, via Pico, Pico W
◦ WiFi, via Pico W
◦ Ethernet, via Wiz850io module (V1.52eth or later).
 LED Indicators
◦ 12V Power (both inputs)
◦ 5V Power
◦ Spindle On
 Requires 12V supply.
 On-board 5V regulator.
 Flexible 12V power for isolated inputs. May be powered separately for isolation or off main board 12V.
 microSD Card socket
 I2C header with daughter card mounting holes.
 SPI header with daughter card mounting holes.
 UART header with daughter card mounting holes. Supports 5V or 3.3V.
 EEPROM footprint. Supports EEPROM or FRAM.

3 Copyright © 2023 Brookwood Design


Stepper Driver outputs.
There are 4 sets of standard Grbl stepper driver outputs: X, Y, Z and B axes. Each has 4 pins: step, direction, enable and
Gnd. Each are 5V compatible and capable of driving opto-isolated stepper driver inputs. Each axis has a set of screw
terminals as well as pin headers (0.1”/2.54 mm spacing).

Limit Pins.
There are 4 limit inputs: X, Y, Z and A. All are opto-isolated and available via screw terminals. Powered by 12V and
compatible with numerous limit sensors and switches. Fully compatible with mechanical switches or 12V powered
proximity switches. When powered via an isolated 12VDC supply, they are fully isolated from the main processor and
associated logic.

Control Input Pins.


Standard Grbl control input pins are supported via screw terminals: Feed/Hold, Cycle/Start, Halt/Stop and Safety Door
open. These are opto-isolated. When powered via an isolated 12VDC supply, they are fully isolated from the main
processor and associated logic.

Probe Input
Probe input is opto-isolated and available via screw terminals. When powered via a separate 12VDC supply, it is fully
isolated from the main processor and associated logic.

Spindle Control.
Outputs for Spindle Enable, Spindle Direction and PWM signals available via screw terminal and pin header. These are
5V TTL logic compatible. There are relay outputs for the spindle (direct relay coil and 5V TTL). See Relay section for
more details. Standard 0-10V output for spindle control is provided via a screw terminal. One auxilary output can be set
up to support 12V PWM output, open collector.

Relay outputs.
Standard Grbl Flood and Mist relay coil outputs are supported via screw terminals. Spindle relay output via a screw
terminal is supported and controlled by Spindle Enable. In addition, a separate screw terminal relay output for Dust
Collection is activated by either the Spindle Enable output or a separate pin header.

3 auxiliary relay coil outputs, Aux0 - Aux2 are supported via screw terminals and used via M62-M65 grblHAL pin
control.

All relay coil outputs are configured as open collector drivers and capable of directly driving relay coils. Each relay
driver is capable of up to 100 mA. All 7 are limited to 500 mA in total. Above 250 mA, forced air cooling is
recommended.

All relay coil drivers have open collector outputs.

Each relay also has a 5V TTL output that can be used to drive solid state relays, separate relay boards or other low
voltage activated devices. In addition, there are 5 TTL/SSR outputs, Aux3 - Aux7.

Relay coil voltage is selectable between 5 and 12V/24V via the pinheader labeled Relay Voltage in the upper left corner
of the PCB or, alternatively, via a solder jumper on the bottom the PCB.

One auxillary output (Aux 2) may be connected to the spindle PWM signal to drive 12V devices. It can be used as an
open collector driver or with an optional pull up resistor.

All relay coil outputs have an optional pull up resistor pad.

Ethernet I/O.
Standard 10/100 mbit Ethernet is available via the SPI header interface via a WizNet Wiz850io module. Only available
with version 1.53eth of the PicoCNC PCB. See the Ethernet section below.

4 Copyright © 2023 Brookwood Design


Digital Outputs

Name Open Collector TTL/SSR Notes


Screw Terminal Pin Header*
Spindle   TTL* signal also available via Screw Terminal
Dust Extraction/Vacuum   Triggered via Spindle or Pin Header
Mist  
Flood  
Aux 0  
Aux 1  
Aux 2   Assignable as a 5V or 12V spindle PWM output
Aux 3  
Aux 4  
Aux 5  
Aux 6  
Aux 7  
* A note on TTL. Technically, this should be referred to as “Logic Level” but we use TTL as a
convenient, if imprecise, shorthand.

I2C Header
An I2C header is provided. 3.3V only, there is no translation to/from 5V and the inputs are not 5V tolerant. A strobe line
is provided on the header. In addition, a line for an E-Stop signal is routed directly to the Grbl Halt input. Currently,
only a limited number of devices are supported. Check the grblHAL github site for more details.

SPI Header
An SPI header is provided. 3.3V only, there is no translation to/from 5V and the inputs are not 5V tolerant. The header
pins are also connected to a microSD socket. It is not recommended that the header is used when a microSD card is
inserted in the socket. Note that V1.53eth has a different SPI header to accommodate the Wiz850io Ethernet module.
Note that use of the Wiz850io module preempts other use of the SPI header.

UART Header
A UART header is provided. RX, TX and an enable pin are available. Supports 3.3V/5V translation, the interface
voltage is selected via the UART Voltage pin header.

5 Copyright © 2023 Brookwood Design


External Connections
12V, Input, main power.
Supply for relays, 0-10V output amplifier and 5V regulator.

12V, Input, isolated power.


Supply for opto-isolated input switches.

Stepper motor, Output


5V Logic Signals.

Pin Signal
G Ground
Stp Step Pulse. Positive.
Dir Direction
En Enable

Limit Switches, Input


One input for each axis. Opto-isolated, 12V.

Halt, Door, Cycle/Start and Feed/Hold, Input


Opto-isolated, 12V.

Probe
Opto-isolated, 12V.

Spindle Group, Output.


PWM, Direction, Enable. 5V compatible.
0-10V.

Relay Coil Group, Output


These are open collector sinks. They run at the selected relay voltage.
Flood, Mist, Spindle, Vac/Dust Collector, Aux0, Aux1, Aux2

Relay TTL Group, Output.


These are 5V, TTL compatible outputs suitable for SSR, powered relay modules or any 5V compatible logic.
Spindle, Flood, Mist, Vac/Dust Collector, Aux0, Aux1, Aux2, Aux3, Aux4, Aux5, Aux6, Aux7.
Note: Enable in the Spindle Group is capable of driving an SSR, powered relay modules or 5V compatible logic.

Vac/DC trigger.
External Switch to activate a vacuum or dust collector.

Auxiliary +5V Header.


+5V and Gnd are available via this header. Maximum current is 50mA.

6 Copyright © 2023 Brookwood Design


I2C Header, Input/Output.

Pin Signal
G Ground
SC I2C SCL
SD I2C SDA
St Strobe, used for signaling outside of I2C
3V 3.3VDC, sourced by Pico
Hlt Halt Signal. Connected to the Halt input
Pico pin.

SPI Header Input/Output

Pin Signal
Gnd Ground
RX SPI Device output, MISO
CK SPI Clock
TX SPI Device input, MOSI
CS Component (Device) Select
RST Reset. Specific to the Wiz850io module
INT Interrupt. Specific to the Wiz850io module
3V3 3.3VDC, sourced by Pico
The Wiz850io Module takes over the SPI header.

UART Header Input/Output

Pin Signal
Gnd Ground
V+ 3.3V or 5V, selected via UART Voltage
header
RX Receive, 3.3V or 5V
TX Transmit, 3.3V or 5V
EN Enable, 3.3V or 5V can be used for
signaling or switching half duplex logic

7 Copyright © 2023 Brookwood Design


8 Copyright © 2023 Brookwood Design
PCB Assembly
The PicoCNC board is provided with all standard surface mount components soldered in place. You are responsible for installing
the through-hole components, either from the option assembly kit or sourced yourself (See BOM section). Assemble the PCB in
the following order:

1. Install 1x2 and 1x3 pin headers: Vac/DC Trigger, 5/12V selection, 12V Iso (V1.52 and later) and UART Voltage.
Carefully snap each one off the longer pin-header strip. The headers should snap into place but if they are loose, use
tape (painter's tape works well) to hold them in place. Solder 1 pin and then verify the alignment. Each header should
be perpendicular to the board. If it is not, reheat the soldered pin and gently press it into place (watch the heat on the
short headers!). Be sure to be gentle with heating headers as the plastic spacer softens quickly.
2. Install longer 1x headers : Spindle (1x4), I2C (1x6), SPI (1x6) and 4 Axis Headers (1x4). Use same technique as in 1).
3. Install 2X headers: TTL Relay 3X 2x4 headers. Isolated 12V header 2x2. Use same technique as in 1).
4. If you bought a Pico or Pico W without headers, install pin headers. A solderless breadboard makes a great way to
stabilize the pin headers while soldering the 0.1” header strips.

5. Install the 3 pin potentiometer. You can bend the leads to ensure it stays in place. But, also follow the the above
approach of soldering 1 pin first, verifying alignment and then finishing.
6. Install the Pico. Place the sockets on the pin headers you just soldered onto the Pico.

Now, gently insert the socketed Pico assembly into the indicated holes on the breakout board. Verify that all socket pins
are correctly in place. Secure the entire assembly with tape on the component side of the board and then solder one pin
on each of the two sockets and verify alignment. Once you are sure that the alignment is correct, solder the other pins,
leaving the pins you initially soldered to last.
7. Mount and solder screw terminals. Assemble a complete row before soldering. The terminals lock together but are
sometimes hard to get completely aligned. If that is the case, place them upside down (with the pins pointing up) on a
hard surface and press each terminal in place with a screwdriver or similar. When you are satisfied that the tops are
flush, insert the assembly into the holes on the board. The fit can be a bit tight so you may need to use a bit of force to
9 Copyright © 2023 Brookwood Design
get them full inserted. Solder one pin one each end. Make sure the row is properly aligned; reheat and adjust if not. It is
sometimes helpful to solder the pin of middle a middle terminal while moving the row into proper alignment. Then
solder remaining terminals while ensuring that the row is straight. Be sure to install the 2 power terminals.

Note: In V1.53eth and later, the potentiometer is soldered on the PCB and discontinued from the assembly kit.

Ethernet Header
On V1.53eth and later, 2 1x6 sockets allow the
Wiz850io module to be plugged in. To install them,
insert the sockets on the Wiz850io pin headers, insert
the assembly into the holes adjacent to the box
labeled SPI/ETH and solder them in place. Use the
same technique above – solder 1 pin on each socket
and check for proper alignment. Note the box labeled
“front” on the silkscreen. When pluging in the
Wiz850io, make sure the RJ45 connector is aligned
with it. Check for bent pins on the Wiz850io module
and straighten them out before inserting.

Relay Voltage

Relay Coil Voltage source is selectable between 5V and 12V. Use a “suitcase jumper” as indicated on the PCB to select the
desired voltage.

The user is responsible for ensuring that all relays are rated for the voltage they select.

Note: it is recommended to not use the stepper motor supply for the relay supply. It could be a source of EMI and cause erratic
operation of the system.

Dust Collector/Vacuum Control

An additional driver is provided for a dust collector relay. It is activated whenever the spindle is turned on (M3). In addition,
this relay output can be independently activated by a switch that connects to the pin header labeled Vac/DC Trigger. This
makes it easy to do clean up with the same Vacuum or Dust Collector used for dust extraction while running your CNC
machine.

10 Copyright © 2023 Brookwood Design


Wiz850io Ethernet Module
A kit that contains the Wiz850io module and 6x1 sockets is available. However, the module is widely available if you wish to
purchase it separately. There is a fair amount of confusion around the name of the module. Some vendors call it Wiz820io
compatible. In the Web Builder, you will select WIZ550io (W5500). The WIZ550io uses the same chip but has a different
pin out and is not compatible with the PicoCNC. The WIZ820io uses a different chip set and is not compatible with the
PicoCNC. The key to getting the right one is that it must have the W5500 chip on it and have two sets of 6 pins. Most
vendors do list the chip.

11 Copyright © 2023 Brookwood Design


Board Level Configuration Options

There are several options to modify the behavior of the PicoCNC board.

Open Collector Output Pull Up Resistor.

The relay outputs use an open collector to drive


relay coils. Pads for pull up resistors are available
if needed. They are located on the bottom of the
PCB and are labeled for their associated output.
Use an 805 SMD resistor. 10K ohms is a common
pullup value but it is up to the user to determine
the appropriate resistor value. Refer to the
diagram to understand how the output works. Note
that the attached device needs to share a common
ground with the PicoCNC board.

Aux2 Spindle PWM Output

Spindle PWM can be directed to Aux2 output. The voltage used for PWM is
selected by the relay jumper – 5V or 12V depending on your selection.This is
controlled by R39 and R40. The default is to have Aux2 controlled by M62-M65 G
Codes (technically, M Codes...). To have the Aux2 output controlled by the spindle
PWM signal, you need to move the 0 ohm resistor on the R39 pad to the R40 pad.
A small piece wire can be used if the 0R resistor is lost when desoldering. Note that
a maximum PWM frequency of 50K is supported. Maximum current draw is 250
mA. Aux2 can not be used for M62-M65 control when configured for PWM.

This allows a higher voltage and higher current PWM output. It is also an open
collector output.

I2C Pullup Resistors

If you are using an I2C device, you may need pullup resistors on the
communication lines. There are pads on the bottom of the board to allow you to use
805 SMD resistors. In most cases these are not needed.

12 Copyright © 2023 Brookwood Design


Firmware.
The grblHAL Web Builder site is used to create the proper firmware for your PicoCNC board.

Select PR2040 (Pi Pico and Pi Pico W) in the Driver box and PicoCNC in the Board box.
In the General panel, select the Number of axes and the appropriate axis configurations for your CNC machine. A moving gantry
maching will typically use Ganged Motors for Y.

In the Plugins panel, select Enable or Ymodem in the SD card option. Ymodem will speed up transmission of large files.

If you have a Pico W or a Wiz850io Ethernet module, see the Setting up Networking with the PicoCNC section below.

Then press the Generate and Download button. Save the firmware file for use in the next section. Also, press the Save board
button so that you will have the configuration if you need to later make changes.

13 Copyright © 2023 Brookwood Design


Installing the firmware is very easy! Once you have a firmware file
(.uf2 extension), connect a USB cable from your computer to the
Pico installed on your PicoCNC board. Then:
1. Press and hold the Pico reset button* on the PicoCNC
board.
2. Press and hold the Bootsel button on the Pico board.
3. Release the Pico reset button on the PicoCNC board.
4. Release the Bootsel button on the Pico board.

On Windows
The first time you do this, a USB configuration notification will come up. For options, select “Open File Explorer
Window”. After that, all subsequent Reset/Bootsel operations will cause a file explorer window to open. Drag and drop
your firmware file onto the window. You will see a progress indicator as the firmware file is uploaded to the Pico.
When done, you can start your GCode sender application and connect to the com port associated with the Pico. Use the
Device Manager to determine which one it is if you are having difficulty finding it.

On Mac OS
A drive called RPI-RP2 will appear on your desktop. Double click on RPI-RP2 and a finder window will open. Drag
and drop the firmware document onto the window. When done, you can start your GCode sender and connect to the
Pico.

* On the PicoCNC, pressing the Pico Reset button may cause the spindle to run while pressed. You may want to disconnect the
spindle during the set up period.

If you are interested in building grblHAL from source, you can download the source code at https://github.com/grblHAL Note
that there are multiple projects and libraries that you will need to download. A complete discussion of installing and building the
source code is beyond the scope of this document. Start with the core wiki to understand how to build grblHAL –
https://github.com/grblHAL/core/wiki/Compiling-grblHAL.

Running grblHAL on your machine


Once you have finished board assembly and installed the firmware, your grblHAL PicoCNC based Motion Controller is ready to
be tested in your CNC machine. Attach it to a PC via a USB cable and run a compatible GCode sender application on the PC.
We recommend this one: https://github.com/terjeio/ioSender/releases/tag/2.0.42. Check for the most recent release. Next, you
will need to set up Grbl to reflect your hardware. We will use ioSender for our examples. Actual Grbl setting values are also
shown. Follow these steps:
1. Hook up your control buttons: Feed Hold, Cycle Start and EStop.
2. Open the Settings: Grbl panel. You will see a list of parameters that control grblHAL.
3. In the Spindle section, $16, Invert spindle signals, check the PWM box. $16=4.
4. In the Stepper section, $4, Invert stepper enable pins (s), Check all boxes. $4=7 for a 3 Axis machine. $4=15 for a 4
Axis machine.
5. In the Control signals section, $14, Invert control pins. Check Feed Hold, Cycle Start, EStop and Safety Door (if
present). $14 = 15.
6. Press the save button and return to the main tab (Grbl panel, you should see the DRO section).
7. Press the Red Reset button if an ALARM state is showing.
8. Open the Jog panel and click on any of the jog direction buttons. The DRO should show movement. If you have drivers
and motors hooked up, they should show movement.
9. If you have any control buttons attached, test them. It should show activity. Note the associated “LED” in ioSender
when you press a button. If nothing happens, you should verify your connections.
10. If everything works to your satisfaction, you should now proceed to full testing of your machine.

14 Copyright © 2023 Brookwood Design


Note, you must have 12V connected to the Iso 12V terminal (or installed jumpers on the headers next to the terminal)
for the input signals (limit switches, probe and control inputs) to work. You will see a lit LED near the Iso 12V screw
terminal if 12 is connected.

There is a lot more information in the grblHAL wiki at https://github.com/grblHAL/core/wiki. In particular, we recommend you
check the First Run Grbl Settings section.

Some Initial Grbl Settings

Grbl settings are dependent on your hardware so you might have to experiment a bit. Here are some key settings that will help
you get going faster.

$ID Name/meaning Suggested Comments


Value
0 Step Pulse time in 5 Default is 10 but 3 or 5 should work ok. Using the default may cause problems for
uS step rates above 80 kHz.
4 Step Enable bit 7 (3 motors) A 1 bit means invert. A 3 axis machine would have 7 as the value, a 4 axis machine
mask, one per axis or 15 (4 would have 15. Bit 0 is X, 1 is Y, 2 is Z and A is 3.
motors)
14 Control pin 15 A 1 bit means invert. Reset is bit 0, Feed Hold – 1, Cycle Start – 2, Safety Door – 3.
inversion bit mask, This assumes you are using NO switches for input.
one per pin.
16 PWM Inversion 4 Inversion required for PWM and 0-10V. Note Spindle Indicator LED will be lit if
not inverted.
30 Max spindle speed 1000 or VFD Default is 1000. If you have a VFD, you will need to set this to the spindle max. In
in RPM max. G-Code, the Sxxx parameter controls speed and to get full speed, you will need to
have xxx match this parameter (S1000, in the case of the default).
100, Steps/mm. varies Set these based on your hardware – lead screw/belt ratios, microstepping. The Grbl
101, One for each Axis. defaults are likely wrong for your machine but you will still get movement. On a
102, 100 – X, per axis basis, determine the number of steps (including microsteps) it will take to
103 101 – Y, make one full rotation of the lead screw. Determine how many mm that axis will
and so on. move with one full rotation of the lead screw, pinion gear or belt driver pulley.
Divide the first number by the second to get the value you will use.
110, Max Rate 2500 This is a reasonable starting point for a hobby machine. Higher performance
111, mm/Min machines can easily support 5000 or higher.
112,
113
120, Acceleration in 500 mm/Sec2 This is a reasonable starting point for a hobby machine. High performance stepper
121, mm/Sec2 motors and servos can support significantly higher acceleration.
122,
123

You should spend some time studying all the Grbl settings. We suggest you start conservatively and tune your machine to higher
performance one parameter at a time.

Compatible G-Code Senders


Most senders will work with grblHAL. If your preferred sender is having problems, it may need to use a version of grblHAL
built with compatibility settings. Use the grblHAL Web Builder interface described in the Firmware section above. Compatibility
Level is set in the Advanced features panel. [note: this is increasingly becoming unnecessary.]

15 Copyright © 2023 Brookwood Design


Setting up Networking with the PicoCNC

If you are using a Pico W or the Wiz850io Ethernet module, follow all the above steps in the Firmware section. When using the
the web builder to create the firmware, select the correct option on the Network/WebUI panel, Networking box. For WiFi
wusing the Pico W, select WiFi, For Ethernet using the Wiz850io, select WIX550io (W5500). In both cases, check Telnet,
WebSocket and FTP.

Currently, it is not possible to select both WiFi and Ethernet at the same time.

Note that your screen may differ slightly from the one pictured here.

For Wifi

16 Copyright © 2023 Brookwood Design


For Ethernet via Wiz850io

Generate and download the firmware file. Install it as directed above.

17 Copyright © 2023 Brookwood Design


Once you are able to connect to the PicoCNC board via USB, configure WiFi or Ethernet by the following steps.

1. In ioSender, open the Settings: Grbl panel.


2. In the Networking section, click on the Network Services entry ($70). Make sure that Telnet, Winsocket and FTP boxes
are checked ($70=7).
3. To configure your network:
1. If using WiFi, open the WiFi section and fill out the WiFi network name/SSID ($74) and password ($75) for your
WiFi network and make sure that the Wifi Mode ($73) is set to Station.
2. If using Ethernet with a router or Ethernet switch, make sure that IP Mode ($301) is set to dynamic ($301=1)
3. If using a direct PC to PicoCNC connection, see Ethernet without Routers. (https://www.grbl.org/single-
post/ethernet-without-routers-for-grblhal)
4. Press the Save button, close ioSender and press and release the Pico Reset button on the PicoCNC board.
5. Close and Restart ioSender. Click on the Console panel. Look for the following lines:

[WIFI MAC:xx:xx:xx:xx:xx:xx]
[IP:xxx.xxx.xxx.xxx]

Where x is a digit or letter. If IP is 0.0.0.0, then you are not connected, otherwise the PicoCNC is now connected to your
WiFi network. Write down the IP address numbers, you will use them shortly.

18 Copyright © 2023 Brookwood Design


To set up communication via WiFi or Ethernet (rather than the current USB connection),
1. Close ioSender
2. Press and hold the Pico Reset button* on the PicoCNC board (alternatively, disconnect the USB cable from the Pico).
3. Restart ioSender. It will put up a dialog asking you to configure the connection.

4. Release the Pico Reset button. (alternatively, plug the USB cable back into the Pico)
5. Click on the Network tab.

6. Enter the IP address numbers you wrote down in place of 192.168.5.1. Click on Ok and you should be rewarded with
ioSender running and connected via WiFi to the PicoCNC.

* On the PicoCNC, pressing the Pico Reset button will cause the spindle to run while pressed. You may want to
disconnect the spindle during the set up period.

19 Copyright © 2023 Brookwood Design


To verify you are connected via WiFi, open the console panel and look for a line that reads [NETCON:Telnet].

20 Copyright © 2023 Brookwood Design


0-10V Spindle output setup

The 0-10V circuit works by using an opamp to filter a 5V PWM signal and amplify it to 10V. As such it needs 12V or
higher input which the user must provide via the 12V screw terminals. A second order filter with an aggressive low
pass cut off frequency is used to provide a stable signal for the spindle controller.

Because source voltage level can vary, the amplifier must be adjusted. You can do this by turning on your spindle in
GCode (via M3Sxxxx) to full speed and adjusting RV1 (the blue box with the screw) until the voltage on the 0-10V
terminal reads 10V. Here is a step-by-step method you can use:
 Disconnect your spindle or VFD.
 In the Settings: Grbl tab, set $30, Maximum Spindle Speed, to 1000.
 Send the following command to grblHAL: M3 S1000. This turns on the spindle and causes the speed to be
set to 100%.
 With a digital multimeter, measure the voltage between the 0-10V output and G terminals.
 With a screwdriver, adjust the RV1, labeled “0-10V Adjust”, until the voltage is as close to 10V as you can
get. Anything in the range 9.990V to 10.010V is acceptable.
 Send the following command to grblHAL: M5. This turns off the spindle and you should read 0V.
 Reconnect your spindle or VFD and test.
 Change the max spindle speed setting, $30, to something more appropriate for your spindle.

You may want to repeat the above process with the spindle connected and running to fine tune the maximum speed.
Most VFDs will show you the actual spindle speed.

21 Copyright © 2023 Brookwood Design


Powering the PicoCNC.

The PicoCNC requires 12V input. It will draw up to approximately 500 mA though any directly driven relay coils or
other devices will add to that.

Warning
 Do not use a PSU that may go above 12V. Unregulated wall adapters (aka “wall warts”) can go quite high.
These can damage the PicoCNC. Use a regulated PSU that outputs 12V even with no load.
 Do not reverse polarity. Connect plus (+) on the PSU to (+) on the PicoCNC board. Connect minus (-) (or
Gnd) on the PSU to Gnd on the PicoCNC board.

There are 3 ways to power the PicoCNC board.

1) Dual PSUs, recommended.

This provides separate power for the relay and


spindle sections and isolated power for the limit
sensors/switches. The digital section – the Pico
board itself and all the digital logic on the PicoCNC
board – are powered by an on-board 5V regulator
fed from the 12V relay input. 1 Amp PSUs are
acceptable for both supplies. If you have other 12V
items to power, use the relay section PSU and size
accordingly to the additional load.

2) Single PSU.

For budget conscious builders, there is the option to use a


single PSU. The 2 2 pin headers near the 12V Iso input can
be jumJumppered to join the two 12V sections together and
thus have one 12V PSU power the entire board. This does not
provide true isolation for the limit, probe and control input
section but may be acceptable, especially if good EMI
practices are followed. The opto-isolators provide some EMI
protection even without a fully isolated PSU. See “EMI
Considerations” below.

WARNING. PCB V1.51 jumpers must be oriented


vertically. PCB version V1.52 and later have 2 separate1x2
headers that need to be jumped, rather than a 2x2 pin header.

3) Logic Powered from USB

The core digital section of the PicoCNC can be


powered via USB power. This is acceptable if you
do not power any relays or other devices. However,
the Limit, Probe and Input section requires 12V
power to function. If you do not supply 12V to the
PicoCNC board, grblHAL may boot up in an error
state. See the First Run Settings in the wiki for how
to deal with that.
22 Copyright © 2023 Brookwood Design
Connecting Stepper Drivers to the PicoCNC

Using stepper motors with the PicoCNC is fairly simple. Typically, a Stepper Motor Driver is used to turn the
PicoCNC's Step and Direction signals into voltage and current that cause the desired step motions of the stepper
motor. Servo drivers do a similar operation so, for simplicity, we will just talk about steppers here but the following
applies to servos as well.

Most stepper drivers use opto-isolators for input so you will see a plus (+) and minus (-) terminal for each signal. In
our case, we will connect the minus (-) inputs to ground on the PicoCNC board and the plus inputs (+) to the named
signals (Step, Direction and Enable) on the PicoCNC board. Typically the Step terminals on drivers are labeled PUL
(pulse), the Direction terminals are labeled DIR (direction) and the Enable terminals are labeled ENA (enable). Other
stepper drivers may have variations on these names.

Using servos with the PicoCNC board.

The connection are similar to the above diagram. Servos also have an error output, often labeled ER or similar. This
signal indicates when the servo has failed to operate as directed, usually due to lost steps. Typically, it is an open
collector signal. You can connect it to the Halt input on the PicoCNC board in parallel to an Estop switch. This will
cause your GCode program to stop when an error condition occurs. It is also possible to connect it in parallel with an
NO switch on the associated axis limit input. You will need to configure your Grbl Settings to use hard limits and
have correct inversion on the limit input.

23 Copyright © 2023 Brookwood Design


Connecting to a spindle

There are several different ways you can connect the PicoCNC board to control a spindle:
 On/Off control via spindle enable (En) or Relay.
 PWM control of a speed controller or VFD.
 0-10V control of a VFD.
 Modbus/RS485.

On/Off control

There are 3 places to control spindle On/Off: the En screw terminal in the spindle group (a 5V logic level output), the
Spdl in the TTL/SSR pin header group (a 5V logic level output) or the SPDL screw terminal (an Open Collector
output). Any of these can be used to control a relay to turn a spindle on or off. This is how you would use a router as
the spindle.

PWM control

Some spindle controllers take 5V PWM control. This is common in DC motor controllers. You can use the PWM
screw terminal output for this. If your DC motor controller requires a different output voltage, Aux2 can be
configured to drive 12V PWM. See the 12V Spindle PWM section. If other than 5V or 12V are needed, an external
voltage can be used in conjunction with Aux2 – see the General Purpose Open Collector section.

VFD Control via 0-10V output

VFDs may be controlled via 0-10V output. A typical connection is shown below. The VFD must be configured to
take an external voltage for control and set to 0-10V. Some VFDs will also take PWM control. The actual
configuration steps for a VFD are beyond the scope of this manual. Consult with your VFD's user manual.

Modbus/RS485

Not directly supported on the PicoCNC board but you may use a serial to Modbus adaptor with the UART header.
24 Copyright © 2023 Brookwood Design
Using relay outputs with the PicoCNC board

There are several ways to use the relay outputs of the PicoCNC board:
 To directly drive external 5V or 12V relay coils.
 Drive solid state relays (SSR).
 Drive powered relay boards (PRB) with 5V control inputs.
 Drive 5V logic (TTL) devices.
 As a general purpose open collector (OC) driver.

A note on using relays and other devices to switch 110/220 VAC: Please be aware of the risks associated with using
relays to control high voltage devices like motors. If you are not familiar with high voltage, we recommend you
consult a professional electrician for help in selecting the right devices and proper wiring techniques.

Directly driving external relay coils.

The relay screw terminal outputs of the PicoCNC board are used to drive relay coils. Automotive and DIN Rail
mountable relays are commonly available. The relay coil is wired across the two terminals as shown below. Relay
coil current up to 100 mA is supported. If only one relay is connected, up to 300 mA coil current is acceptable. The
12V relay section PSU supplies the current for relay coils. Add up total relay current draw plus 100 mA. Make sure
that your PSU is capable of delivering that amount of current.

Driving solid state relays.

SSRs are driven from the TTL/SSR Relay section pin headers. The output voltage level is +5V which is compatible
with most SSRs but verify that yours is as well. DIN rail mountable SSRs are readily available.

Driving powered relay boards.

Powered relay boards are driven from the TTL/SSR Relay section pin headers. The output voltage level is +5V –
make sure that your PRB is compatible. PRB modules are readily available. Be aware that some cheaper modules
use optimistically specified relays. We recommend derating relays contact ratings by at least 20% for safety.

Driving 5V logic devices.

The TTL/SSR Relay output pin headers are usable for general 5V logic signaling. For Aux0-7, use the M62-M65
commands. They can be issued from GCode, a macro in a GCode Sender or from direct GCode input via a GCode
sender.

25 Copyright © 2023 Brookwood Design


General Purpose Open Collector driver.

The open collector outputs of the relay screw terminals are available for general use. The current is limited to a sum
total of 300 mA through all terminals at a 100% duty cycle. The v+ terminals supply either +5V or +12V, determined
by the jumper on the Relay Voltage header. A common ground may be needed. Any unused ground terminal on the
relay or stepper output section the PicoCNC can be used. Do not use a ground pin from the Limit or Control input
sections.

If you need a pull up resistor for your application, there are pads on the bottom of the PCB for user surface mounts
pull up resistors.

26 Copyright © 2023 Brookwood Design


EMI Considerations

Electro Magnetic Interference can cause significant disruptions to your CNC machine. It is best to build your system
using good practices. Often your wiring can act as antennas for EMI and conduct it back into your electronics box.
In designing the PicoCNC board, we used good practices to avoid EMI but further precautions are recommended.
High voltage electrical devices are often a source of EMI and you should take additional steps to ensure that these
sources are managed. Finding the source of EMI later can be difficult – we recommend that you design your system
with EMI avoidance it in mind.

These are general recommendations, you don't need to follow all of them but the more you do the better chance you
stand of having EMI free operations.
 Do not power 5V relay coils from the USB voltage supplied by to the Pico. Relays can produce EMI and
power fluctuations. Use external power (see above).
 Do not power relay coils directly from the Stepper Motor power supply. It can be a significant source of
EMI.
 Use shielded wires for signals. Make sure the shields are grounded in a star configuration at the controller
box or other common ground.
 Use ferrite filters on all wires entering or exiting the PicoCNC.
 Avoid routing wires near EMI sources such as a VFD, Stepper motors, electrical motors or power supplies.
Avoid co-routing unshielded wires with wires that are connected to those devices as well.
 If you are connecting to the PicoCNC via a USB cable, use one with a ferrite filter on it or add a clamp-on
one close to the electronics box end of the cable.

Ferrules

We recommend that all stranded wires have ferrules crimped on the end that goes into a screw terminal. This is a
good practice. It ensures the best possible contact and helps to avoid stray “cat whiskers” - strands of wire that could
cause errors. Kits with ferrules and a crimper are readily available for $20 to 30 USD. It is a worthwhile investment.
Use 22 Ga ferrules for the assembly kit screw terminals on the PicoCNC. Larger ones may not fit. You may need to
slightly flatten the tip of the ferrule to get it to initially go into the screw terminal.

27 Copyright © 2023 Brookwood Design


Location of Key Items

28 Copyright © 2023 Brookwood Design


Errata

V1.51 PicoCNC
5V Indicator LED incorrectly tied to 5V, not VBUS. Fixed in V1.52.

29 Copyright © 2023 Brookwood Design


Schematics:

30 Copyright © 2023 Brookwood Design


31 Copyright © 2023 Brookwood Design
32 Copyright © 2023 Brookwood Design
33 Copyright © 2023 Brookwood Design
34 Copyright © 2023 Brookwood Design
35 Copyright © 2023 Brookwood Design
36 Copyright © 2023 Brookwood Design
37 Copyright © 2023 Brookwood Design
Board and mounting hole dimensions

38 Copyright © 2023 Brookwood Design


Assembly Kit Bill of Materials.

Item Number Description Part nums


Pico sockets 2 1x20 pin 2.54mm pitch socket Various Suppliers. Mouser: 571-1-535541-8
Screw terminals 29 3.5mm pitch screw terminals KF350-3.5-2P Various Suppliers. LCSC: C474892
2x4 pin header 3 2x4 2.54mm pitch header Various suppliers. Mouser 538-70287-1051
2x2 pin header 1 2x2 2.54mm pin header Various suppliers. Mouser: 571-826656-2
1x40 pin header 1 1x40 2.54mm pitch header Various suppliers. Mouser: 571-9-146280-0
10K Trim Pot 1 10K trim potentiometer Bochen 3296W-1-103, LCSC: C118954 *
Shorting Jumper 4 Shorting Jumper 2.54mm pitch. Various suppliers. Mouser: 855-M7581-05

* Trim Pot added to base board in V 1.53eth.

Pico Ethernet Kit Bill of Materials.

Item Number Description Part nums


Wiz850io sockets 2 1x6 pin 2.54mm pitch socket Various Suppliers.
Wiz850io Module 1 3.5mm pitch screw terminals KF350-3.5-2P Various Suppliers. LCSC: C474892

39 Copyright © 2023 Brookwood Design


BOM for PCB mounted components.

Designator Package Quant Designation


A,A stencil_align_1mm 2 stencil_align_1mm
C1,C2 CP_Elec_4x5.3 2 10u
C3,C9,C10,C5,C6,C7,C4,C11 C_0805 8 100n
C8 C_0805 1 1uF
D1,D2,D4,D3 CHIPLED_0603 4 LED
J1,J7 1X03 2 Conn_01x03
J10,J14,J13 2X04 3 Conn_02x04_Odd_Even
J11 GS2 1 GS2
J12,J6,J4,J3,J5 1X04 5 Conn_01x04
J15,J17 1X02 2 Conn_01x02
J2 sdcard_sofng_c111196 1 MicroSD-MGnd
J8 Serial_header_mountin_holes 1 async_daughter
J9 1X02-1mm 1 Conn_01x02
JP1 1X02 1 PINHD-1X2
M1 I2C_Header 1 i2c_daughter
M2 wiz820io 1 WIZ820io
Q1 SOT-23 1 DMG2305UX-7
Q2,Q3,Q4 SOT-23 3 BSS138
Q5 SOT-23 1 MMBT3904
R1,R2 R_0805 2 2K7
R18 R_0805 1 100K
R25,R26,R27,R22,R23,R24 R_0805 6 100
R28,R29,R30,R31,R3,R4,R6,R7,R21,R5,R8,R
45,R46,R47,R48 R_0805 15 10K
R32,R33,R49,R51 R_0805 4 1K
R36,R34,R35,R41,R42,R43,R44 R_0805_HandSoldering 7 DNP
R39,R50 R_0805 2 0
R40,R37,R38 R_0805 3 DNP
R52 r_0805 1 4K7
R9,R14,R16,R20,R11,R12,R10,R17,R13,R19,
R15 R_0805 11 2K2
RV1 Trimmer_generic_2.54mm 1 10K
SW1 TA-1088R-02026 1 SW_SPST
TR6,TR7,TR8,TR9,TR10,TR11,TR12,TR1,TR24
,TR2,TR3,TR4,TR5,TR13,TR14,TR15,TR16,TR
17,TR18,TR19,TR20,TR21,TR22,TR23,TR25,T
R26,TR27,TR28,TR29 T35-2-5milh 29 pterm3.5-2
U1 SOT-223-3_TabPin2 1 AMS1117CD-5.0
U11 SOT-353_SC-70-5 1 74LVC1G32
U12 SO16 1 ULN2003AD
U13 RaspBerry_PI_Pico_no_prog 1 Pico_no_prog
U14,U15,U16 HTSSOP-16_4.4x5mm_P0.65 3 74HCT595
U17 SO08 1 LM358D
U18 SO08 1 FM24CLxxx
U7,U8,U9,U10,U2,U6,U4,U5,U3 EL3H7-G 9 EL3H7-G

40 Copyright © 2023 Brookwood Design

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy