Welcome! Log In Create A New Profile

Advanced

Help with a 12864 RepRapDiscount Full Graphic Smart Controller

Posted by infinity234 
Help with a 12864 RepRapDiscount Full Graphic Smart Controller
December 31, 2015 01:54AM
Hello fellow printers!

I have a delema I need some help with. I recently obtained a 12864 RepRapDiscount Full Graphic Smart Controller to hook up to my printer. I am currently using Marlin, Arduino V1.6.6 with a Mega2560, and U8glib V1.18.1. I got it set up correctly (to the extent of my knowledge) with the wires connected properly to my Ramps board (EXP 1 connected to EXP 1 and EXP 2 to EXP 2) and uploaded my firmware modified according to instructions I have found across various sources (I will post the sections of code I modified down below incase I did something stupid there).

My problem is that when I plug in my printer, my Controller's display light turns on but nothing is displayed giving me a blank screen. I let it sit for a couple minutes in case there was just some delay and the screen started to flash a bit. Additionally, what confuses me more is that when I press down on the navigation dial, I still get a click from the buzzer confirming I pressed it.

Various troubleshooting I have done already is switching the two wires and research in various coding problems I could have.

If anyone can give me any help as to how I can get my controller to display what it is supposed to it would be an immense help.

Thanks and Don't Forget To Be Awesome!

Modified Code (this does compile)

Main Marlin
#include "U8glib.h"
#include "Configuration.h"
#include "pins.h"

#ifdef ULTRA_LCD
  #if defined(LCD_I2C_TYPE_PCF8575)
    #include "Wire.h"
    #include "LiquidCrystal_I2C.h"
  #elif defined(LCD_I2C_TYPE_MCP23017) || defined(LCD_I2C_TYPE_MCP23008)
    #include "Wire.h"
    #include "LiquidTWI2.h"
  #elif defined(DOGLCD)
    #include "U8glib.h" // library for graphics LCD by Oli Kraus (https://code.google.com/p/u8glib/)
  #else
    #include "LiquidCrystal.h" // library for character LCD
  #endif
#endif

#if HAS_DIGIPOTSS
  #include "SPI.h"
#endif

#if defined(DIGIPOT_I2C)
  #include "Wire.h"
#endif

Code for lcd configuration (#include "U8glib.h" is at the top of the configuration tab)
// @section lcd

// Define your display language below. Replace (en) with your language code and uncomment.
// en, pl, fr, de, es, ru, it, pt, pt-br, fi, an, nl, ca, eu, kana, kana_utf8, test
// See also language.h
#define LANGUAGE_INCLUDE GENERATE_LANGUAGE_INCLUDE(en)

// Choose ONE of these 3 charsets. This has to match your hardware. Ignored for full graphic display.
// To find out what type you have - compile with (test) - upload - click to get the menu. You'll see two typical lines from the upper half of the charset.
// See also documentation/LCDLanguageFont.md
  #define DISPLAY_CHARSET_HD44780_JAPAN        // this is the most common hardware
  //#define DISPLAY_CHARSET_HD44780_WESTERN
  //#define DISPLAY_CHARSET_HD44780_CYRILLIC

//LCD and SD support
//#define ULTRA_LCD  //general LCD support, also 16x2
//#define DOGLCD  // Support for SPI LCD 128x64 (Controller ST7565R graphic Display Family)
#define SDSUPPORT // Enable SD Card Support in Hardware Console
//#define SDSLOW // Use slower SD transfer mode (not normally needed - uncomment if you're getting volume init error)
//#define SD_CHECK_AND_RETRY // Use CRC checks and retries on the SD communication
#define ENCODER_PULSES_PER_STEP 4 // Increase if you have a high resolution encoder
#define ENCODER_STEPS_PER_MENU_ITEM 1 // Set according to ENCODER_PULSES_PER_STEP or your liking
//#define ULTIMAKERCONTROLLER //as available from the Ultimaker online store.
//#define ULTIPANEL  //the UltiPanel as on Thingiverse
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000   // this is the tone frequency the buzzer plays when on UI feedback. ie Screen Click
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100 // the duration the buzzer plays the UI feedback sound. ie Screen Click

// The MaKr3d Makr-Panel with graphic controller and SD support
// [reprap.org]
//#define MAKRPANEL

// The RepRapDiscount Smart Controller (white PCcool smiley
// [reprap.org]
//#define REPRAP_DISCOUNT_SMART_CONTROLLER

// The GADGETS3D G3D LCD/SD Controller (blue PCcool smiley
// [reprap.org]
//#define G3D_PANEL

// The RepRapDiscount FULL GRAPHIC Smart Controller (quadratic white PCcool smiley
// [reprap.org]
//
// ==> REMEMBER TO INSTALL U8glib to your ARDUINO library folder: [code.google.com]
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

// The RepRapWorld REPRAPWORLD_KEYPAD v1.1
// [reprapworld.com]
//#define REPRAPWORLD_KEYPAD
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // how much should be moved when a key is pressed, eg 10.0 means 10mm per click

// The Elefu RA Board Control Panel
// [www.elefu.com]
// REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: [github.com]
//#define RA_CONTROL_PANEL

//automatic expansion
#if defined (MAKRPANEL)
 #define DOGLCD
 #define SDSUPPORT
 #define ULTIPANEL
 #define NEWPANEL
 #define DEFAULT_LCD_CONTRAST 17
#endif

#if defined (REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
 #define DOGLCD
 #define U8GLIB_ST7920
 #define REPRAP_DISCOUNT_SMART_CONTROLLER
#endif

#if defined(ULTIMAKERCONTROLLER) || defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL)
 #define ULTIPANEL
 #define NEWPANEL
#endif

#if defined(REPRAPWORLD_KEYPAD)
  #define NEWPANEL
  #define ULTIPANEL
#endif
#if defined(RA_CONTROL_PANEL)
 #define ULTIPANEL
 #define NEWPANEL
 #define LCD_I2C_TYPE_PCA8574
 #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
#endif

//I2C PANELS

//#define LCD_I2C_SAINSMART_YWROBOT
#ifdef LCD_I2C_SAINSMART_YWROBOT
  // This uses the LiquidCrystal_I2C library ( [bitbucket.org] )
  // Make sure it is placed in the Arduino libraries directory.
  #define LCD_I2C_TYPE_PCF8575
  #define LCD_I2C_ADDRESS 0x27   // I2C Address of the port expander
  #define NEWPANEL
  #define ULTIPANEL
#endif

// PANELOLU2 LCD with status LEDs, separate encoder and click inputs
//#define LCD_I2C_PANELOLU2
#ifdef LCD_I2C_PANELOLU2
  // This uses the LiquidTWI2 library v1.2.3 or later ( [github.com] )
  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
  // (v1.2.3 no longer requires you to define PANELOLU in the LiquidTWI2.h library header file)
  // Note: The PANELOLU2 encoder click input can either be directly connected to a pin
  //       (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).
  #define LCD_I2C_TYPE_MCP23017
  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD
  #define NEWPANEL
  #define ULTIPANEL

  #ifndef ENCODER_PULSES_PER_STEP
   #define ENCODER_PULSES_PER_STEP 4
  #endif

  #ifndef ENCODER_STEPS_PER_MENU_ITEM
   #define ENCODER_STEPS_PER_MENU_ITEM 1
  #endif


  #ifdef LCD_USE_I2C_BUZZER
   #define LCD_FEEDBACK_FREQUENCY_HZ 1000
   #define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
  #endif

#endif

// Panucatt VIKI LCD with status LEDs, integrated click & L/R/U/P buttons, separate encoder inputs
//#define LCD_I2C_VIKI
#ifdef LCD_I2C_VIKI
  // This uses the LiquidTWI2 library v1.2.3 or later ( [github.com] )
  // Make sure the LiquidTWI2 directory is placed in the Arduino or Sketchbook libraries subdirectory.
  // Note: The pause/stop/resume LCD button pin should be connected to the Arduino
  //       BTN_ENC pin (or set BTN_ENC to -1 if not used)
  #define LCD_I2C_TYPE_MCP23017
  #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander
  #define LCD_USE_I2C_BUZZER //comment out to disable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later)
  #define NEWPANEL
  #define ULTIPANEL
#endif

// Shift register panels
// ---------------------
// 2 wire Non-latching LCD SR from:
// [bitbucket.org] 

//#define SAV_3DLCD
#ifdef SAV_3DLCD
   #define SR_LCD_2W_NL    // Non latching 2 wire shiftregister
   #define NEWPANEL
   #define ULTIPANEL
#endif


#ifdef ULTIPANEL
//  #define NEWPANEL  //enable this if you have a click-encoder panel
  #define SDSUPPORT
  #define ULTRA_LCD
  #ifdef DOGLCD // Change number of lines to match the DOG graphic display
    #define LCD_WIDTH 20
    #define LCD_HEIGHT 5
  #else
    #define LCD_WIDTH 20
    #define LCD_HEIGHT 4
  #endif
#else //no panel but just LCD
  #ifdef ULTRA_LCD
  #ifdef DOGLCD // Change number of lines to match the 128x64 graphics display
    #define LCD_WIDTH 20
    #define LCD_HEIGHT 5
  #else
    #define LCD_WIDTH 16
    #define LCD_HEIGHT 2
  #endif
  #endif
#endif

// default LCD contrast for dogm-like LCD displays
#ifdef DOGLCD
# ifndef DEFAULT_LCD_CONTRAST
#  define DEFAULT_LCD_CONTRAST 32
# endif
#endif

Edited 2 time(s). Last edit at 01/01/2016 07:44PM by infinity234.
Re: Help with a 12864 RepRapDiscount Full Graphic Smart Controller
January 01, 2016 04:33AM
Couldn't find any obvious mistakes in the code, so I ask if the smart controller is meant for Mega2560 ( 5V) or arduino Doe ( 3.3V )?
-Olaf
Re: Help with a 12864 RepRapDiscount Full Graphic Smart Controller
January 01, 2016 05:23PM
Is there a way to find out on the controller? I recently bought it and it did not mention whether it was 5V or 3.3V, just that it was designed to compatible for ramps 1.4. Here are some pictures of the kind of controller I have (both turned off and on with my blank screen) if they will help.






Re: Help with a 12864 RepRapDiscount Full Graphic Smart Controller
January 09, 2016 07:41PM
This is exactly the same issue I am having the same issue.

I have a post on the Robo form.

My board looks like yours
[www.banggood.com]

I have no solution yet but if I get one will post it..
Re: Help with a 12864 RepRapDiscount Full Graphic Smart Controller
January 11, 2016 11:15AM
Could the problem be related to the contrast setting? See here for more info on this.
Re: Help with a 12864 RepRapDiscount Full Graphic Smart Controller
March 07, 2016 07:33PM
I had the same issue, the only way I found to have it working was to mess with the pot on the back of the lcd (that's in the back of the actual screen, the green board, not the red pcb) since I couldn't turn it from the side, I drilled a hole and was able to fix it, now it's working fine and animated! winking smiley
You might be able to bend it a bit in order to move it but pay attention to the screen as the pot on the back is very very sensitive and you can actually miss when it shows up, then with the one on the front you can set it a bit better.
Re: Help with a 12864 RepRapDiscount Full Graphic Smart Controller
March 08, 2016 03:15AM
Isn't it funny, that the 12864 graphic LCD now sells cheaper than the oldscool LCD2004?
Probably the word has spread, that this fancy graphic LCD is too much to handle for ATmega2560 in many cases? Or because it is a crippled design, not being able to adjust contrast?
Re: Help with a 12864 RepRapDiscount Full Graphic Smart Controller
May 23, 2016 09:56PM
Electronic parts:

Ramps 1.4 and Mega2560
128x64 RepRapDiscount Full Graphic Smart Controller with SD card reader
Black pololu stepper drivers

Software:

I am currently using Marlin_Prusa_i3_Einstein, Arduino IDE V1.7.10 with a Mega2560, and U8glib V1.18.1

Symptoms:

Exactly the same as user infinity234 describes.

Evaluation:

The fact that the lcd unit seemed to be responding even though there was no display bothered me.
During the evauation I accidently noticed that the lcd display did indeed have an extremely low contrast output
... but only visible while the Arduino 2560 was connected to my laptop via a standard USB A to B cable.
It was very difficult to see, but enough for me to verify the the lcd menu functions were properly working.

To me, with an electronics background, this was not a configuration or contrast adjustment issue, but in fact,
was a power / current issue. I then checked the 5v vss voltage to the lcd unit at AUX-3 pin 1. Instead of seeing
5v, I was seeing 2.8v. User o_lampe was "right on" with his suggestion that some board combinations could not handle
the extra load of the 128x64 RepRapDiscount Full Graphic Smart Controller. Keep in mind that a laptop USB connection
is a low current source.

My first thought was to apply 12v to the Arduino power jack. This did not help. I suspect that this is due to current
limitations of the 5v regulator. My next attempt was to provide 5v to the Arduino USB port. This was done via one of
the new USB power adaptors using a standard USB A to B cable. ... This attempt was successful. The Arduino USB power
bypasses the 5v regulator. The lcd display is bright and easy to see. Taking a current measurment, I found that the
128x64 RepRapDiscount Full Graphic Smart Controller drew an additional 110mA.

Solution:

1. The easiest way to solve this problem is to power the Arduino USB port with one of the new 5v USB power adaptors
via a standard USB A to B cable.

or

2. (If you are using an ATX power supply as a power source)
Modify a standard USB A to B cable by removing the "A" end of the cable. Strip back the shielding and cut away all
but the red (5v vcc) and black (Ground) wires. Attach the red wire to an appropriate 5v source wire from the ATX
wire bundle and the black to ground.

Good luck! Hope this helps.
Re: Help with a 12864 RepRapDiscount Full Graphic Smart Controller
May 24, 2016 01:20AM
It is well known that Arduino/RAMPS cannot provide enough power for a graphical LCD backlight without causing the 5V regulator to overheat. Sadly this does not prevent many Chinese kit vendors selling kits with the Arduino/RAMPS/12864 combo.



Large delta printer [miscsolutions.wordpress.com], E3D tool changer, Robotdigg SCARA printer, Crane Quad and Ormerod

Disclosure: I design Duet electronics and work on RepRapFirmware, [duet3d.com].
Sorry, only registered users may post in this forum.

Click here to login