I have a smart lcd 2004 to add to my machine. I believe I have to enable it in configuration.h, but I’m not sure how to do that one this board. I do it all the time on my 3d printer, but I have the original files on my computer, so I modify them and then upload. How do I modify the configuration.h on a board that was already flashed?


Okay, here’s what I did to get it working. I downloaded the latest marlin here: https://github.com/MarlinFirmware/Marlin. I opened the .ino in arduino and made the changes Ryan mentions here: https://www.v1engineering.com/marlin-firmware/. I then enabled the LCD using a couple of the things listed here: http://reprap.org/wiki/RepRapDiscount_Smart_Controller (some of the items were already done, so I didn’t have to do them).

The LCD works fine, and I’ve been able to move my CNC on each axis using it.

Where did you get the LCD? I am interested in using this so I do not have to have a laptop hooked up all the time.

There are a ton of these on Amazon and Ebay in three styles, regular, XXL and Full Graphic. An example: http://www.ebay.com/itm/LCD-2004-Smart-Display-Controller-for-RAMPS-1-4-RepRap-3D-printer-Electronics-/121638805620?hash=item1c523ce074

And on Amazon prime: http://www.amazon.com/REPRAPGURU-Display-Controller-Adapter-Printer/dp/B015NDAKE4/ref=sr_1_2?ie=UTF8&qid=1444541506&sr=8-2&keywords=ramps+smart+controller&refinements=p_85%3A2470955011

I have an XXL on my printer and a Full Graphic on my MPCNC. The Full Graphic has a lot of unnecessary icons on it for printing. It also requires an extra step of installing an Arduino graphics library in it’s installation.

They are all very similar designs but the hardware quality may differ among vendors.

I got mine from Amazon. It’s basically the same as the Amazon one Steve linked to. I chose the 2004 because it showed the info I needed and the full graphics one had a lot of unnecessary stuff unless you’re printing. I couldn’t find the XXL one in the US - maybe it’s known by another name? There are lots of great cases for the 2004. Here’s the one I used: http://www.thingiverse.com/thing:493932.

I received and hooked up the LCD tonight and learned how to edit the firmware to get the unit to work and to make the edits that Viscous recommends on his Marlin page. Now I am interested in playing more with the firmware/software to get all the printer errors and commands from the menus and screen but I am unsure where to start. Can anyone recommend what area in the files to locate the basic config for the display where I can eliminate the temp and mask out some unwanted errors?

I’m interested in that too. I installed the resistor on T0, but I would rather just disable the temp sensor, but what do I modify in order to do that?

What other errors are you seeing that you’d like to get rid of? The only other screens I’ve messed with are the move axis screens so I can see my new machine move :).


I think we are going after the same things. I want to remove the temp from the first screen and disable the max temp error I am getting now. I downloaded python to see if that is needed for some of the scripts but I have not had time to dig any deeper.
Basically I want to remove any and all printer reference in the firmware since I have a printer and I will use this control strictly for CNC.


@karltinsly, The manual move axis menu is under “Prepare” all the way at the bottom. Is that what you are looking for?

@clocey, There is no python. It is all Arduino “preprocessed” C/C++. The Marlin file structure is kind of a mess and the Arduino environment really sucks for trying to make sense of it. It took me a lot of poking around and searching with Ultraedit to start to make sense of it.

My only modification was to fix the status so it would display “Mostly Printed CNC OK” at the bottom. I’m just ignoring the printer temp and fan icons on my Full Graphic LCD.

I was able to remove the maxtemp error from the main screen by changing all the temp_sensor lines to 0 in configuration.h. I don’t know what it would take to remove all references to temperature in the displays. I’m not sure I want to do that - I may at some point want to hang an extruder on this thing and print something big.

I would be interested in what you find out, though, Curt. This is probably a good place to start: http://www.marlinfirmware.org/index.php/Marlin_Configuration.

@SteveC - In order to help me get in the right place to start (I agree the file structure makes digging around a pain), where did you make the change to display “Mostly Printed CNC OK”? I am using a knockoff of the sainsmart 2004 display things will be a little different.

@karltinsly - I will try that today to eliminate the error. I have an old thermocouple from a burnt up hot end from my printrbot that I am going to hook up in place of the resister to see if I can get a temp. If I can I will use this to monitor the temp in my ramps enclosure. Also did you have to shorten the name of the printer when you tried to upload? I received length errors and they went away when I change the name from Mostly Printed CNC to MPCNC.

Hi Steve - thanks, but I was saying that was the only screen I’ve been using. I was asking Curt where all he wanted to remove temperature displays besides the home screen.


Below is a cut and paste of my comment from June in Vicious1"s Marlin tutorial page. The space for displaying the characters may depend on which LCD you are using. I was getting a compile error and this was a simple work around.

In compiling with Arduino 1.6.4 and the Reprap Discount Full Graphic LCD controller I got an error:
“initializer-string for array of chars is too long [-fpermissive]”

You can fix it by shortening the machine name in configuration.h to 16 characters here:

#define CUSTOM_MENDEL_NAME “Mostly Printed CNC”

… or by shortening the “ready.” to “OK” in language_en.h :
#define WELCOME_MSG MACHINE_NAME ” ready.”

Works great with the change and I got to keep the entire name. This error shouldn’t show up if you do not use an LCD controller.

I hooked up the old thermocouple I had and I ended up having to change the type to 1 and it now reads the proper temp… Like I said I will be using it to monitor the case temp. I started to play around with commenting out other things but I ended up removing them all after I got a little aggressive :slight_smile:
I am looking forward to working in the other routines to get the display working the way I want and eliminating the printing text that I will never use.

I copied a few ngc files to a SD card and tried to run them from the LCD unit and they were not visible. What am I doing wrong?

I don’t use a screen for cutting only printing. I bet if you change the extension to .NC they will work just fine.

.gcode will work for sure. It is just a text file so you can name it anything.

I was changing the extensions to .g, but I found a setting in ESTLCAM that lets you designate the extension, so now they all save as .g files.

Thanks. I changed the default for Marlin to .g and it worked perfect! I printed the Minion ramps case for the 2004 display and I now have a stand alone unit that is starting to take shape. I still want to play with the firmware to eliminate the temp and printing references to optimize the small display.
Thanks to all who I have bothered over the last few months!
Vicious1 - should this thread be moved to Build and things?