I’m Tom and today i’m going to show you
how to add an LCD screen control panel and
an SD card reader to your 3D printer for # under
13€ - that’s about 16 US dollars including
tax.
Why would you want that?
Well, even though i use OctoPrint as my main
way of interfacing with the printer (which
i show you how to set up right here), i still
needed a way to work the basic controls of
my printer without having to fiddle around
on my phone or having to bring down my Laptop.
And the LCD control panel gives you just enough
control for when you want to tweak or stop
a print, change filament or even just jog
one of your printer’s axis.
And as a bonus, you also get an SD card slot,
so if aren’t using OctoPrint, you can use
that to print files without needing to have
a computer sitting right next to your printer
all the time.
So let’s get started!
Here’s what you’ll need!
First of all, the LCD panel itself.
I used the Full Graphic Smart Controller because
it’s # the biggest, baddest one out there
and really isn’t any more expensive than
other solutions.
You can also use other panels, for example
in the style of the Ulticontroller, but those
usually have smaller and less detailed screens.
If you want to buy a Smart controller and
want to support my videos at the same time,
get one from the links in the description.
It’s pretty much the best price out there
anyways.
You will also need a way to connect the LCD
panel to your printer’s electronics.
There are adapters available for the most
popular boards, for example for the RAMPS
or the RAMBo, and they often come with the
LCD panel or your control board, but you can
hook them up to pretty much any board out
there, including the humble Printrboard.
A quick Google search will usually bring up
a couple of guides about how you need to connect
everything or sometimes even options to order
pre-made adapter boards.
For the sake of simplicity, i’ll be showing
this on my RepRapElectro RAMBo.
You can find a review of that right here.
And just like for setting up anything else
like auto bed tilt compensation, you will
need a readily configured version of your
printer’s firmware, preferably Marlin.
If you don’t have a version ready to go,
check out my guide on the basics of Marlin
to get you started.
Before we start hooking things up, i placed
a strip of Kapton tape between the LCD screen
and the secondary board since it looked like
some of the pins would potentially short others
out.
Then we can hook everything up: Place the
adapter board on your mainboard, then plug
in both ribbon cables to the panel and the
adapter.
Now, many adapters don’t clearly label which
of these is header one and which is header
two, but you won’t damage anything if you
get them wrong.
Just make sure you don’t plug in one of
the connectors backwards.
Next up, we can start digging into the firmware.
So open up your Marlin.ino and hop over to
the configuration.h file.
In here, you’ll want to scroll almost all
the way down to the LCD and SD support section.
Now, the exact options relevant to you will,
again, depend on the specific model of your
controller panel, but for the Full Graphic
Smart Controller, all you need to do to get
it working is to uncomment the line / #define
REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER.
And right here is a reminder that you need
to add the U8glib library to your assortment
of Arduino libraries, and thanks to the fine
folks at Arduino, that is now a super simple
process.
Download the right zip for your operating
system from the link in the description, then,
in the Arduino software, hit Sketch, import
library, add library, then choose the zip
file you just downloaded.
/ Done.
So at this point, the firmware is ready to
be uploaded and will be able to use the smart
controller if plugged in correctly.
Again, if it doesn’t work on the first try,
swap the two connectors and try again.
Now, there were two things that were still
off on mine, some of which i had also noticed
on for example the Ultimaker’s Ulticontroller
before.
One is that the encoder input seem to register
in the opposite direction i’d expect it
to, and the other is that menu scrolling feels
weird and that i can’t precisely increment
values up and down.
But do not despair, i’ll show you how to
fix both of these.
First of all, to get the scrolling increments
right, head back to your firmware’s configuration
and scroll down to where it says #if defined
(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
and then add the two lines #define ENCODER_PULSES_PER_STEP
4 / and #define ENCODER_STEPS_PER_MENU_ITEM
1 / before the endif.
You can either copy and paste them from a
bit further down in the config or from this
video’s description.
Now, to fix the scrolling direction, you need
to head over to the pins.h file, which is
kind of hard to reach from within the Arduino
IDE, so open that file up in Notepad or Notepad++
after you’ve closed the Arduino IDE.
Then scroll down to the section for your particular
board and swap the numbers after BTN_EN1 and
BTN_EN2 in the Smart Controller or NEWPANEL
section.
If that didn’t fix the scroll direction
after saving the file and reuploading with
Arduino, you probably edited the wrong section.
By the way, the beeper on the board annoyed
the crap out of me, so i completely disabled
mine by changing the BEEPER pin to minus 1.
So, here’s two more things that are specific
to using the Smart controller i bought: One,
the software contrast setting doesn’t do
anything, there’s a potentiometer for that
on the board, and two, the LCD’s backlight
on this panel is only enabled for a while
if you press the “light” button, which
just wouldn’t do it for me.
To permanently turn it on, simply move the
jumper on the back of the board to the opposite
side.
And we’re done!
You’ll probably still want to print some
sort of mount and case, and you can find cases
and knobs for all versions of the Smart Controller
on the various 3D model sharing sites.
So as always, thanks for watching!
Don’t forget to share this video if you
know more people that could find it useful!
