How to use RepRapDiscount Smart Controller

Hi everyone,

I have a RepRapDiscount Smart Controller contains SD card reader, 20X4 LCD Display and Rotary encoder.
Can anybody know, how to use this LCD display along with rotary encoder.

Which library suitable for controller ?.

Below I attached my RepRapDiscount Smart Controller images,

Sounds like the RepRap Forum might be a more useful place for your question ?

It looks very like the display on my Anet A2 3D printer, but I have not explored how it works.

...R

Sounds like the RepRap Forum might be a more useful place for your question ?

It looks very like the display on my Anet A2 3D printer, but I have not explored how it works.

...R

Thanks for your kind attention.

Perhaps this bit from the Marlin 3D printer firmware will help:

//
// RepRapDiscount FULL GRAPHIC Smart Controller
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
// Note: Details on connecting to the Anet V1.0 controller are in the file pins_ANET_10.h
//
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

If you follow the link in that comment you will find schematics for the board.

Perhaps this bit from the Marlin 3D printer firmware will help:
//
// RepRapDiscount FULL GRAPHIC Smart Controller
// RepRapDiscount Full Graphic Smart Controller - RepRap
//
// Note: Details on connecting to the Anet V1.0 controller are in the file pins_ANET_10.h
//
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

Having a doubt in, while accessing the LCD display in RepRapDiscount FULL GRAPHIC Smart Controller. I don't know which library function are used in this RepRapDiscount FULL GRAPHIC Smart Controller.

Anyone provide a solution for this?

How to print "HELLO WORLD" in this RepRapDiscount FULL GRAPHIC Smart Controller LCD display.

Hi everyone, I am a beginner in the area of ReprapDiscount smart controller. My aim is to display the information in the 20x4 LCD display using arduino IDE.

I am connecting Arduino Mega with RepRapDiscount Smart Controller. Below I attached my Program,

#include<LiquidCrystal.h>
LiquidCrystal lcd(16, 17, 23, 25, 27, 29);

void setup() {
  lcd.begin(20, 4);
  lcd.print("HELLO");
}

void loop() {
  
}

After uploading is done. My problem is, any data is not display in 20X4 LCD Display on RepRapDiscount Smart Controller.

Can anybody providing a solution for this problem

Ganesh2807:
Can anybody providing a solution for this problem

What have you found out from the RepRap Forum?

...R

What have you found out from the RepRap Forum?

I refer this circuit diagram for connection. Below I attached that image

I made a little modification in that connection. What I did is?

I did not use RAMP board and adapter. I connect EXP1 pin (3 upto 10) of RepRapDiscount Smart Controller directly to Arduino Mega board pin of (5V,GND,16,17,23,25,27,29). Uploaded my program, given in #5 After uploading is done. I did not get any display on the lcd screen.

Below I attached Lcd screen like this,

Have you tried adjusting the contrast potentiometer?

Have you tried adjusting the contrast potentiometer?

I tried but it not useful.

Is there any possibility to use RepRapDiscount Smart Controller without the use of Marlin FirmWare.

Is there any possibility to use RepRapDiscount Smart Controller without the use of Marlin FirmWare.

Sure. It is just a 4x20 LCD.

Below I attached Lcd screen like this,

When you say "like this" do you mean similar to or is that an picture of your actual display? Does the backlight light up?

This is how my OUTPUT like this. Sorry for the image I upload in #7.

Do the black white boxes show up when you adjust the contrast pot?

I suggest that you confirm the wiring between Mega pins and the actual pins on the LCD with an Ohmmeter. I mean is there continuity between pin 16 of the Mega and pin 4 of the LCD, Mega 17 to LCD pin 6, etc?

Do the black boxes show up when you adjust the contrast pot?

I suggest that you confirm the wiring between Mega pins and the actual pins on the LCD with an Ohmmeter. I mean is there continuity between pin 16 of the Mega and pin 4 of the LCD, Mega 17 to LCD pin 6, etc?

Thank you for providing a screen solution. Now I get a Result in my LCD screen like this.

But it will not display result what I expected. Below I attached my program that I upload to Arduino Mega board,

#include<LiquidCrystal.h>
LiquidCrystal lcd(16, 17, 23, 25, 27, 29);

void setup() {
  lcd.begin(20, 4);
  lcd.print("HELLO");
}

void loop() {

}

That is encouraging. Did you try adjusting the contrast pot again after the white boxes showed up?

The backlight LED is lighting up so I guess you have Pin 9 (Ground) and Pin 10 (Vcc) correct but the picture isn't clear enough to be sure the other six wires are correct. Have you double-checked them against the schematic? It appears you are using a grey wire for Ground and a black wire for +5v.

That would make the two rows:

2 4 6 8 10
Encoder 5 LCD-RS LCD-D5 LCD-D7 VCC
1 3 5 7 9
Buzzer LCD-E LCD-D4 LCD-D6 Ground

That is encouraging. Did you try adjusting the contrast pot again after the white boxes showed up?

@groundFungus, Thanks for your reply.

I adjust the contrast pot it will make changes in LCD display but I did not the output.

The backlight LED is lighting up so I guess you have Pin 9 (Ground) and Pin 10 (Vcc) correct but the picture isn't clear enough to be sure the other six wires are correct. Have you double-checked them against the schematic? It appears you are using a grey wire for Ground and a black wire for +5v.

@johnwasser, Thanks for your response.

I verify the pin configuration I did not get any changes in my output.

Still I am getting this output only.

Is there any other library needed for to access this reprapdiscount smart controller?

Not sure if the OP has made any progress on this in the last 3 months, but I'm interested in doing something this as well. I have a few of these controllers, and a use for them that doesn't involve 3D printing, so I have zero need for the Marlin firmware, though if need be, I CAN use a RAMPS shield to connect it. (Seems unnecessary, but I have at least 2 spare RAMPS shields as well.)

My requirements are to be able to use the 20 by 4 text output and to be able to read the rotary encoder, encoder pushbutton, and possibly the reset button. SD card write access isn't a must for this, but would be a huge bonus if I can do it.

(For those who care what the end result will be)

The idea is that I'll be using the Arduino with a couple of MAX6675 sensors to read a pair of type K thermocouples to monitor my car's exhaust gas and coolant temperature at the turbocharger, along with the output of a wideband O2 sensor, MAP sensor, and a few of the on-board ECU's diagnostic outputs for things like fuel trim compensation, injector duty cycle, vehicle speed sensor and airflow meter to get various performance metrics. If I can use the SD card slot as well, this would be used for logging the data for later analysis. If I don't get the SD card, that's fine, I can pump it out via a serial connection to a laptop for data collection.

So looking at the schematics for the 2004 controller adapter and the RAMPS 1.4...

The schematics connect the pins (Assuming Arduino Mega 2560)

EXP1:
Mega    CON     Mega
37      1  2      35
17      3  4      16
23      5  6      25
27      7  8      29
GND     9 10      48

EXP2:
Mega    CON     Mega
49      1  2      NC
31      3  4      52
33      5  6      50
+5V     7  8      41
NC      9 10      NC

For whatever good it does, this will be how the controller is connected to the Arduino via the RAMPS as far as the Marlin firmware is expecting. At least in this configuration we might be able to examine the Marlin code as far as pin diagrams go.

This is probably more connection than it needs to use the display and encoder, as it also includes the connections to the SD card reader, but I do note that it only shows ground being connected to EXP1 and +5V connected to EXP2. (Well, I didn't look too closely at the functions of the other pins on the Arduino.)

Hopefully I've read the diagrams correctly.

As I had said, I'm not 100% averse to installing a sacrificial RAMPS shield for a proof of concept, but that's not a good log-term solution, and certainly not if I end up making more of them for other people.

I'm reasonably certain that this controller will produce an aestheticly pleasing and reasonably intuitive UI for what my purposes, which is one of the reasons that I'd like to use it.

Checking to see if you had any further progress. I too am interested in a non 3d use of this controller.