Smoothieboard has a RJ45 connector, which can be used to connect the board to your local Ethernet network, and talk to it over TCP/IP.
This works the same way you would access your 2D printer or other network devices.
Overview of settings and hardware requirements for Smoothieboard's network interface :
Smoothie supports Ethernet access.
It must be enabled in the configuration file.
To enable network, set network.enable to «true».
The IP address can be set statically or set to use DHCP.
Here is an example of a setup using DHCP ( meaning that the router automatically assigns an IP address to the Smoothieboard ) :
# network settings network.enable true # enable the ethernet network services network.webserver.enable true # enable the webserver network.telnet.enable true # enable the telnet server network.plan9.enable true # enable the plan9 network filesystem network.ip_address auto # use dhcp to get ip address
And an example of how to setup with a static IP
# network settings network.enable true # enable the ethernet network services network.webserver.enable true # enable the webserver network.telnet.enable true # enable the telnet server network.plan9.enable true # enable the plan9 network filesystem network.ip_address 192.168.3.222 # the IP address network.ip_mask 255.255.255.0 # the ip mask network.ip_gateway 192.168.3.1 # the gateway address
The basic network configuration options can be seen at the end of the Config Sample.
If your configuration file does not contain the network section, it probably means the version of Smoothie that shipped with your board is too old. You need to use the latest edge firmware, and use the latest configuration file.
See Flashing Smoothie Firmware and Configuring Smoothie.
|network.enable||false||If set to true, enable the Ethernet network services|
|network.webserver.enable||true||If set to true, enable the web server service, on port 80, which provides a control and upload web interface|
|network.telnet.enable||true||If set to true, enable the telnet service, on port 23, which behaves much like a Serial interface|
|network.plan9.enable||false||If set to true, enable the plan9 network filesystem on port 564 which allows mounting the Smoothieboard|
|network.ip_address||auto||If set to auto, use DHCP to request an IP address. If set to an IP address, use that address as a static IP.|
|network.ip_mask||255.255.255.0||If using a static IP, define the mask for the network.|
|network.ip_gateway||192.168.3.1||If using a static IP, define the gateway for the network.|
|network.mac_override||AB.AB.AB.AB.AB.AB||If set, override the MAC adress for the Ethernet interface. Only set this if you have a conflict on your network.|
|network.hostname||shapeoko17||Some DHCP servers accept a hostname for the machine, which then allows you to connect to it using that name instead of it's IP.|
To access your Smoothieboard, you need to connect it to your network.
To do so, you plug an Ethernet cable into the Smoothieboard at one end, and into your Ethernet router at the other end.
Please note that you can't connect a Smoothieboard directly to your computer ( not unless you use a special type of cable and a special type of configuration on your computer ). You want to use a router for this.
Once configured and plugged in, reset the Smoothieboard and wait for it to connect to the network.
To access Smoothie over the network, you first need to know its IP address.
If you are not sure what IP address Smoothie has been assigned you can use one of the following methods :
- If you have a panel connected to the Smoothieboard, the panel should display the IP address.
- If you have access to your network’s main router’s administration interface, it should tell you the IP address of all peripherals connected to it.
- If you are connected to the board via USB, you should be able to use a program like Pronterface to send the @net command, which gives you the current IP address.
- If you are running linux, you can use a command like nmap -sn 192.168.0.0/24 to find all accessible peripherals on the network.
- NOTE if the IP address shows 22.214.171.124 then it means that DHCP did not get an IP address assigned. (Try a static IP instead).
You can access Smoothie by using its network services:
- Telnet (port 23) to run commands, stream gcode to Smoothie or connect from Pronterface (see below)
- HTTP web server (port 80) allows control from your web browser
- Simple File Transfer Protocol (port 115) allows uploading of files from an SFTP client.
- Plan9 (9P/Styx) (port 564) provides remote access to the file system from compatible clients (typically Linux)
Telnet (port 23)
You can use a terminal to connect to your board via telnet, simply type in a terminal :
Pronterface can also connect to Smoothie over the network by using telnet - just enter ip_of_smoothie:23 instead of the serial port before clicking 'Connect'. Where ip_of_smoothie is the IP address of your Smoothie. You must check the box under Settings Menu that says
TCP streaming mode.
Web Server (port 80)
You can access the default user interface (see image) by going to this address in your web browser:
Custom web pages can be accessed from the SD card, for example:
Better web interface
Smoothie ships with a very basic web interface, however, you can install better ones by following these instructions : Installing the new web interface.
Acessing while printing
For Smoothieboards v1, make sure you never access or refresh the web interface while the machine is executing a Gcode file. This can result in a crash. Just make sure you don't do it, load the page while it's not running, then use the page but do not refresh or re-load it. This is a limitation of the current firmware, we expect it to be possible to fix in v2.
Simple File Transfer Protocol (port 115)
Note: http://en.wikipedia.org/wiki/Simple_File_Transfer_Protocol NOT secure file transfer!) allows uploading of files, see the smoothie-upload.py example
Plan9 network filesystem (port 564)
NOTE plan9 is not built into smoothie by default, to include it rebuild smoothie with make PLAN9=1. See Compiling Smoothie.
The plan9 network file system can be used on Linux to directly mount the Smoothieboard over the network. At first activate the option "network.plan9.enable" and restart your Smoothie. After that you can mount with:
mount -t 9p 192.168.2.120 -o dfltuid=1000,dfltgid=1000 /mnt/smoothie
Now you can access the SD card of the Smoothieboard like a normal filesystem!
The dfltuid/dfltgid are the uid/gid of the user which owns the files in the mount. It is recommended to set these to the uid/gid of the user which will write to the filesystem.
If you want you can also add the filesystem to your /etc/fstab as follows:
# /etc/fstab # <file system> <mount point> <type> <options> <dump> <pass> ... your other stuff ... 192.168.1.6 /mnt/smoothie 9p user,noauto,dfltuid=1000,dfltgid=1000 0 0
Using a hosts file
If IP addresses are getting you down, you can address your smoothie by name if you add a line to your computer's hosts file. For example, assuming your Smoothie's address is 192.168.2.120, you could add:
And then simply use smoothie:23 in the Port field of Pronterface, and simply http://smoothie in your web-browser.
This only works from the computer you edit the hosts file on, and requires smoothie to have a constant IP address, either through configuring smoothie as static IP, or by configuring your DHCP server to always assign Smoothie the same IP address.
To use the network capabilities of the smoothieboard (4X and 5X, note the 3X board does not have ethernet capabilities ) a RJ45 Magnetic Modular Jacks aka RJ45 network transformer like the Hanrun HR911105A needs to be soldered onto the board.
They are, for example, available from RobotSeed.
Soldered by default
Versions of Smothieboard starting August 2014 have the Ethernet connector soldered by default.
Note it must be a Mag ( Magnetic ) Jack, a standard Rj45 connector will not work.
The only officially supported connector is the Hanrun HR911105A
You can configure a hostname for the DHCP server as such :
network.ip_address auto # use dhcp to get IP address network.hostname smoothie1 # optionally set this hostname for dhcp
Note the network.hostname is optional. (see section 3.14 https://www.ietf.org/rfc/rfc2132.txt)