STB RepRap Graphic LCD Controller with Fan Output

From RepRapWiki
Jump to: navigation, search

Crystal Clear action run.png
STB

Release status: working

STB GLCD Overall-1.jpg
Description Release Version 0.9
License GPL 2.0
Author STB
Contributors
Based-on Sanguinololu
Categories Electronics interface with display, STB Electronics
CAD Models
External Link Indiegogo campaign


Contents

Abstract

Indiegogo campaign RepRap Graphic LCD Controller with Fan Output

This is an easy to use expansion board for the popular Sanguinololu, Melzi & RAMPS electronics. It adds the most of the available addons for the Sanguinololu/Melzi/RAMPS in one board.

Details

STB GLCD Overall-1.jpg

The Controller features

  • Automatically controlled stepper driver cooling-fan output
  • Hotend fan control (importatant for PLA printing)
  • Stand alone printing from micro-SD card
  • 128x64 dots graphic LCD display
  • Beeper
  • Plug and Play installation

Simply plug the adapter to the Sanguinololu expansion connector and connect the controller board with the included ribbon cable.

Available LCD Colors

STB Menu color Impressions.jpg

Easy user interface

Status screen with animated icons. These icons give a quick overview of the status of the printer. It shows an animated fan icon, when the hotend fan is operating. Heating of the hotends and the heatbed is indicated with small dots inside the icons. Printing progress and the actual extruder position on the bed is displayed via progress bar / coordinates. Communication with the user via a nice graphical user interface which allows to set most of the relevant parameters by turning and clicking the menu-wheel.

STB GLCD main screen.jpg

Impressions of the User Menu

STB Menu Impressions.jpg

Required firmware

To make use of the graphics LCD, Erik Zalm's Marlin is recommendet. It can be downloaded from GitHub (https://github.com/ErikZalm/Marlin), all other functions are compatible with most of the other firmwares for the Sanguinololu.

Others

All pictures show the prototype design. The final design comes with a totally black PCB and micro SD-connector. On Melzi the fan switch output is disabled because Melzi has an on board fan switch output.

RAMPS Adapter

A RAMPS adapter will also supplied.

STB RAMPS Adapter 3D model-1.png

Source files

File:STB GLCD shield.pdf

Marlin Firmware Adaption

RAMPS

Step by Step tutorial (Marlin release from 30.08.2013)


Download Arduino 023 Download Marlin (Download ZIP)

Open Archive

Copy Folder "Marlin" into arduino-0023 folder

Copy Marlin-Marlin_v1\ArduinoAddons\Arduino_0.xx\Sanguino -> arduino-0023_GLCD_blank\hardware

Copy Marlin-Marlin_v1\ArduinoAddons\Arduino_0.xx\libraries\U8glib -> arduino-0023\libraries

Copy Marlin\ArduinoAddons\Arduino_0.xx\hardware\tools\avr\etc -> arduino-0023\hardware\tools\avr\etc


Edit \arduino-0023\Marlin\Configuration.h


Edit line 58

#define MOTHERBOARD 33

Uncomment line 398, 399, 403

#define ULTRA_LCD  //general lcd support, also 16x2
#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
#define ULTIMAKERCONTROLLER //as available from the ultimaker online store.

Modify line 532

#  define DEFAULT_LCD_CONTRAST 80 // Contrast can be tweaked good values are 1...127


Pins.h

/* On some broken versions of the Sanguino libraries the pin definitions are wrong, which then needs SDSS as pin 24. But you better upgrade your Sanguino libraries! See #368. */
//#define SDSS               24
#ifdef ULTRA_LCD
  #ifdef NEWPANEL
    //we have a buzzer installed
    #define BEEPER 37
    //LCD Pins
           #ifdef DOGLCD
                 // Pins for DOGM SPI LCD Support
                 #define DOGLCD_A0      23    // RAMPS AUX-4 Pin 16
                 #define DOGLCD_CS      17    // RAMPS AUX-4 Pin 17
                 // GLCD features
                 #define LCD_CONTRAST 1
                 // Uncomment screen orientation
                // #define LCD_SCREEN_ROT_0
                // #define LCD_SCREEN_ROT_90
                 #define LCD_SCREEN_ROT_180
                // #define LCD_SCREEN_ROT_270
                 #else // standard Hitachi LCD controller
                 #define LCD_PINS_RS        4
                 #define LCD_PINS_ENABLE    17
                 #define LCD_PINS_D4        30
                 #define LCD_PINS_D5        29
                 #define LCD_PINS_D6        28
                 #define LCD_PINS_D7        27
        #endif
    //The encoder and click button
    #define BTN_EN1 31  // RAMPS Aux-4 Pin 12 must be a hardware interrupt pin
    #define BTN_EN2 33  // RAMPS Aux-4 Pin 11 must be hardware interrupt pin
    #define BTN_ENC 35  // RAMPS Aux-4 Pin 10 the switch
    //not connected to a pin
    #define SDCARDDETECT 49 // RAMPS Aux-3 Pin 2
    
    //from the same bit in the RAMPS Newpanel define
    //encoder rotation values
    #define encrot0 0
    #define encrot1 2
    #define encrot2 3
    #define encrot3 1
    
    #define BLEN_C 2
    #define BLEN_B 1
    #define BLEN_A 0
  #endif //Newpanel
#endif //Ultipanel
#endif

//RAMPS Aux-3 Pin 18 is the output for a fan switch
#define FAN_PIN   16

Sanguinololu

Step by Step tutorial (Marlin release from 30.08.2013)


Download Arduino 023 Download Marlin (Download ZIP)

Open Archive

Copy Folder "Marlin" into arduino-0023 folder

Copy Marlin-Marlin_v1\ArduinoAddons\Arduino_0.xx\Sanguino -> arduino-0023_GLCD_blank\hardware

Copy Marlin-Marlin_v1\ArduinoAddons\Arduino_0.xx\libraries\U8glib -> arduino-0023\libraries

Copy Marlin\ArduinoAddons\Arduino_0.xx\hardware\tools\avr\etc -> arduino-0023\hardware\tools\avr\etc


Sanguinololu:


Edit \arduino-0023\Marlin\Configuration.h


Edit line 58

#define MOTHERBOARD 62

Uncomment line 398, 399, 403

#define ULTRA_LCD  //general lcd support, also 16x2
#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
#define ULTIMAKERCONTROLLER //as available from the ultimaker online store.

Modify line 532

#  define DEFAULT_LCD_CONTRAST 80 // Contrast can be tweaked good values are 1...127


Edit Edit \arduino-0023\Marlin\pins.h

Modify line 903

#define FAN_PIN            4


Modify line 996

#define SDCARDDETECT       31

Start Arduino IDE

Load Marlin.pde

In the Arduino IDE choose

Tools/Board/Sanguino /W ATmega1284p 16Mhz Select the COM-Port of the Sanguinololu PCB

Upload the firmware

Melzi

Apply all Sanguinololu changes plus the following:

Edit \arduino-0023\Marlin\Configuration.h

Modify line 58

#define MOTHERBOARD 63

Edit \arduino-0023\Marlin\pins.h

Modify line 903

#define FAN_PIN            -1

Modify line 961

#define BEEPER 16

Modify line 965, 966

#define DOGLCD_A0  29
#define DOGLCD_CS  28


Modify line 983, 984

#define BTN_EN1 10 
#define BTN_EN2 11

Modify line 993

#define BTN_ENC 17  //the click switch

Modify line 996

#define SDCARDDETECT 27

If you would like to use the SD-Cardreader on the GLCD change Line 953

#define SDSS   30

Contact

Contact STB