« Panels » are a combination of a LCD screen, and some sort of input method ( encoder wheel, or buttons ).
They are used to control your machine without having to use a host computer and a USB or Ethernet connection.
To use a Panel, you need to wire it to your Smoothieboard, and to set it up in your configuration file.
This page describes the wiring and configuration for the currently supported panel types.
The following panels are currently supported by Smoothie :
Supported SPI chips:- ST7565, ST7920, SSD1306
universal_adapter driver : - old Viki lcd I2C - Most reprap style parallel LCD - Parallel - Panelolu2 probably works but not tested - I2C
Here are all the configuration options available for the Panel module :
| V1 Setting | V2 Setting | Description |
|---|---|---|
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
viki2, mini_viki2, and st7565_glcd. Adjust this value if the display appears too faint or too dark.
|
||
true, reverse the screen orientation. Use this if your panel is mounted upside down.
|
||
1. This is a number of lines to offset the menu lines by on screen. Adjust if menu items don't align properly on your display.
|
||
nc if you use no encoder. The ^ modifier defines menu move direction. Use ! for pull-up/pull-down and ^ to invert.
|
||
nc if you use no encoder. The ^ modifier defines menu move direction. Use ! for pull-up/pull-down and ^ to invert.
|
||
|
|
||
! modifier inverts the signal polarity (use for active-low buttons).
|
||
|
|
||
! modifier inverts the signal polarity.
|
||
! modifier inverts the signal polarity.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
universal_adapter, this pin can be connected to the adapter to ask if it is busy or not. The universal adapter uses this for daisy-chaining multiple devices.
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
true if your panel has an external SD card slot, or if you want to connect a second SD card slot to one of your Smoothieboard's SPI ports. Enables additional SD card interface beyond the onboard SD slot.
|
||
|
|
||
|
|
||
nc if you don't use an SD card detect signal. This pin detects when an SD card is inserted or removed.
|
||
|
|
||
true, create a new custom menu entry for the panel with the name {name}. You can create any number of custom entries as long as they have different names. Replace {name} with your menu identifier.
|
||
_) are converted to spaces when displayed. This is what the user sees when browsing the menu.
|
||
_ character gets converted to space in the menu and commands (and must be used instead of the space character), and the | character is used to separate multiple commands that should be executed in sequence.
|
Menu entries can be added from the config file for simple commands, for instance the following adds a Power on and Power off menu entry.
Note that _ will be converted to a space when displayed in the Menu. Commands can be seperated with a |. If you want to add a menu entry that probes your z-axis you will have to use a command like
V1 Configuration:
custom_menu.power_on.enable true #
custom_menu.power_on.name Power_on #
custom_menu.power_on.command M80 #
custom_menu.power_off.enable true #
custom_menu.power_off.name Power_off #
custom_menu.power_off.command M81 #
Another example for filament change:
custom_menu.filament_change_c.enable true #
custom_menu.filament_change_c.name Change Filament #
custom_menu.filament_change_c.command G91|G1_Z0.6_F12000|G90|G1_X0_Y0|G91|G1_Z-0.6|G90|M25 #
custom_menu.filament_change_r.enable true #
custom_menu.filament_change_r.name Resume #
custom_menu.filament_change_r.command M24 #
V2 Configuration:
[custom_menu.power_on]
enable = true
name = Power_on
command = M80
[custom_menu.power_off]
enable = true
name = Power_off
command = M81
Another example for filament change:
[custom_menu.filament_change_c]
enable = true
name = Change Filament
command = G91|G1_Z0.6_F12000|G90|G1_X0_Y0|G91|G1_Z-0.6|G90|M25
[custom_menu.filament_change_r]
enable = true
name = Resume
command = M24
For the RRD GLCD it CANNOT share the same SPI as the LCD so it must be hooked up to the onboard sdcard SPI and use a spare pin for the sdcs. Also note that an external SDcard sharing the SPI port with the onboard/internal sdcard must be ejected before rebooting as the bootloader does not like the external card. NOTE Smoothie will not boot if the external sdcard is inserted in the RRD LCD sdcard slot at boot time, it must be inserted after it has booted.
If the lcd panel has an sdcard reader it can be enabled with the following config:
# setup for external sd card on the viki2 which shares the lcd spi port with the sdcard
panel.external_sd true # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel 0 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin 0.27 # set spi chip select for the sdcard
panel.external_sd.sdcd_pin 0.28!^ # sd detect signal (set to nc if no sdcard detect)
# setup for external sd card on the RRD GLCD which shares the onboard sdcard SPI port
panel.external_sd true # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel 1 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin 0.27 # set spi chip select for the sdcard (or any spare pin)
panel.external_sd.sdcd_pin 0.28!^ # sd detect signal (set to nc if no sdcard detect) (or any spare pin)
The button on the glcd and Viki2 can be wired as a Kill button by following This guide. In that case the
should be commented out.
The Reprapdiscount GLCD is a black and white graphical display with an encoder control button that allows you to control your Smoothieboard.
It is one of the most popular options for panel controllers.
R-78E5.0-**1.0** instead - it will supply 1 amp (vs 0.5 amps for the normally recommended regulator).On the back of the GLCD EXP1 is to left and EXP2 is to right, pin 1 is bottom left, pin 2 is top left etc. 5v is EXP1 pin 10, Gnd is EXP1 pin 9
V1 Configuration:
# config settings
panel.enable true # set to true to enable the panel code
panel.lcd reprap_discount_glcd # set type of panel
panel.spi_channel 0 # spi channel to use ; GLCD EXP1 Pins 3,5 (MOSI, SCLK)
panel.spi_cs_pin 0.16 # spi chip select ; GLCD EXP1 Pin 4
panel.encoder_a_pin 3.25!^ # encoder pin ; GLCD EXP2 Pin 3
panel.encoder_b_pin 3.26!^ # encoder pin ; GLCD EXP2 Pin 5
panel.click_button_pin 1.30!^ # click button ; GLCD EXP1 Pin 2
panel.buzz_pin 1.31 # pin for buzzer ; GLCD EXP1 Pin 1
panel.back_button_pin 2.11!^ # 2.11 menu back ; GLCD EXP2 Pin 8
# setup for external sd card on the GLCD which uses the onboard sdcard SPI port
panel.external_sd true # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel 1 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin 0.28 # set spi chip select for the sdcard (or any spare pin)
panel.external_sd.sdcd_pin 0.27!^ # sd detect signal (set to nc if no sdcard detect) (or any spare pin)
V2 Configuration:
[panel]
enable = true
lcd = reprap_discount_glcd
spi_channel = 0
spi_cs_pin = PG7
encoder_a_pin = PJ3
encoder_b_pin = PJ4
click_button_pin = PJ5
buzz_pin = PJ6
back_button_pin = PJ7
[panel.external_sd]
enable = true
spi_channel = 1
spi_cs_pin = PC1
sdcd_pin = PC0
Note: V2 uses STM32 pin naming (e.g., PG7 instead of 0.16).
You can find a list of pins on the Smoothieboard to connect to the panel here and here.
Be aware that RRD does not follow proper conventions for pin numbering. The pin 1 indicator on the ribbon is actually pin 10 in the RRD schematic. The image above is numbered according to the RRD inset schematics.
This interface board is simple to install, eliminates custom cables, frustration, and wire mess.
It is compatible with Azteeg X5 Mini v1.1 motion controller and is available from www.UltiBots.com. Source files are on our GitHub.
This wiring harness uses three 2x10, one 1x2 .100” crimp housings and one heat shrinked female pin to connect the RRD GLCD to an Azteeg X5 Mini.
Note: This information is compatible with Azteeg X5 Mini v1.0 motion controllers.
Viki2 wires to an Azteeg X5 mini with a flat cable as it has 1:1 pin mapping. The ConfigSample for the Azteeg mini has the config settings required, just uncomment them,
The config for Azteeg X5 is different to smoothieboard and is shown in the file here.
Here is an example config for a 4 driver smoothieboard
NOTE a 5 driver does not have enough free pins to use all the features
# For 4 driver Smoothie board NOT azteeg X5 or 5 driver smoothie
panel.enable true # set to true to enable the panel code
panel.lcd viki2 # set type of panel
panel.spi_channel 0 # set spi channel to use P0_18,P0_15 MOSI,SCLK
panel.spi_cs_pin 0.16 # set spi chip select
panel.encoder_a_pin 3.25!^ # encoder pin
panel.encoder_b_pin 3.26!^ # encoder pin
panel.click_button_pin 1.30!^ # click button
panel.a0_pin 2.11 # st7565 needs an a0
#panel.contrast 8 # some panels need contrast set, this is for viki2
#panel.encoder_resolution 4 # number of clicks to move 1 item
panel.buzz_pin 1.31 # pin for buzzer
panel.red_led_pin 1.22 # pin for red led on viki2 (5 driver can't use this)
panel.blue_led_pin 1.23 # pin for blue led on viki2 (5 driver can't use this)
#panel.back_button_pin 1.30!^ # optionally using the red buttin as a back button
# setup for external sd card on the viki2
panel.external_sd true # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel 0 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin 2.8 # set spi chip select for the sdcard (NOTE 5 drvier can't use this)
panel.external_sd.sdcd_pin 2.13!^ # sd detect signal (set to nc if no sdcard detect) (NOTE 5 drvier can't use this)
Using the suggested firmware above the wiring for the Viki 2.0 on a 4 driver smoothieboard is as follows:
SDCD to P0.27
BTN to P1.30
SDCS to P2.8
LCS to P0.16
SCK to P0.15
GND to 5v power supply's ground or a ground pin on the smoothieboard
ENCB to P3.26
ENCA to P3.25
MISO to P0.17
A0 to P2.11
MOSI to P0.18
=Vin to 5v power supply
BTN to None, Viki 2.0 has 2 Blue BTN wires that do the same thing
Buzzer to P1.31
Blue-LED to P1.23
Red-LED to P1.22
This wiring uses this smoothie pin map and this Viki 2.0 wiring guide.
5 driver smoothieboard, disables buzzer and uses red led instead
# For 5 driver Smoothie board NOT azteeg X5
panel.enable true # set to true to enable the panel code
panel.lcd viki2 # set type of panel
panel.spi_channel 0 # set spi channel to use P0_18,P0_15 MOSI,SCLK
panel.spi_cs_pin 0.16 # set spi chip select
panel.encoder_a_pin 3.25!^ # encoder pin
panel.encoder_b_pin 3.26!^ # encoder pin
panel.click_button_pin 1.30!^ # click button
panel.a0_pin 2.11 # st7565 needs an a0
#panel.contrast 8 # some panels need contrast set, this is for viki2
#panel.encoder_resolution 4 # number of clicks to move 1 item
#panel.buzz_pin 1.31 # pin for buzzer (use red led OR buzzer not both)
panel.red_led_pin 1.31 # pin for red led on viki2
#panel.blue_led_pin 1.23 # pin for blue led on viki2 (5 driver can't use this)
#panel.back_button_pin 1.30!^ # optionally using the red button as a back button (NOT available on 5 driver)
# setup for external sd card on the viki2
panel.external_sd true # set to true if there is an extrernal sdcard on the panel
panel.external_sd.spi_channel 0 # set spi channel the sdcard is on
panel.external_sd.spi_cs_pin 0.27 # set spi chip select for the sdcard
panel.external_sd.sdcd_pin 0.28!^ # sd detect signal (set to nc if no sdcard detect)
Works with the Reprapdiscount GLCD driver and is available for around 7¬ or 10$. Just wire