Tag: Firmware

3D Printing Questions – Z Offset for First Layer Nozzle Height

Everyone knows that getting your first layer right is 90% of the battle to getting a successful 3D print. Even if your temperatures and everything else are correct, if your nozzle height is off you will get bad adhesion on the first layer.

Setting it up is actually pretty simple, but it can be confusing. In this video I explain, in very deep detail, what all the parameters and settings do that control nozzle height on your first layer so that you can get perfect first layers. In this video I am using a Cartesian style machine, a Prusa i3 MK2, and Marlin as the firmware – but the principles will remain constant for most printing systems.

Fixing LCD Corruption on Prusa i3 MK2 Clone with RAMPS & Arduino

Really the only part of my Prusa i3 MK2 clone build that didn’t function as it should out of the box was the LCD Module with builtin SD card reader, rotary encoder, buzzer and stop button.

In this video I discuss how I tracked down the issues and fixed them. I also changed the ribbon cables for shielded cables as I needed them for how I was mounting the module – but it also assisted with preventing corruption.

The model I have is pictured below and its full title is a Bigtreetech RepRapDiscount Full Graphic Smart Controller.

Bigtreetech LCD Module, RepRapDiscount Full Graphic Smart Controller

During my trawling of the internet trying to find specific data for this LCD, (which I didn’t..) I used information from the documents below to build my own schematics, which are at the bottom of this post.

For anyone wishing to tear apart an HDMI cable to use as a shielded cable to the LCD Module, here is a pin diagram for a standard HDMI cable. (Although that isn’t much use as we are only using it as a general shielded multi-core cable! A decent HDMI cable has 7 single cores, and 4 twisted pairs inside their own separate shielding. This gives us 15 conductors, ignoring the shielding. The one I chose also had a metal braided wrap around the whole thing – I earthed them all to building earth)

As part of the fix I had to introduce delays into the instruction transmission from Marlin/Arduino to the LCD. Although I couldn’t find any official documentation of it, here is a post from Guthub which includes discussion from the coder who came up with the LCD handling in Marlin.

I discuss in the video how to arrive at these delays (noops), but below is how I finally set them to avoid corruption of the LCD. I have inserted these 3 lines into my Configuration.h file.

#define ST7920_DELAY_1 DELAY_1_NOP
#define ST7920_DELAY_2 DELAY_2_NOP
#define ST7920_DELAY_3 DELAY_1_NOP

Finally the schematics I drew up after confirming all the routing of wires from Arduino, through RAMPS, through connectors and into the various parts on the Bigtreetech LCD module.

Bigtreetech 128×64 LCD for RAMPS Schematic

RAMPS Aux3 Aux4 LCD Adapter Schematic with Arduino Pins

RepRap Prusa i3 First Print Analysis, Adjustments & Second Print

Well after the failure of the first print I was kind of pleased!!! Until it failed it was printing way better than I had expected for a first print.

There were a few issues, as well as the failure of course, to take care of. So I had a close look at what didn’t work, print quality and the cause of the failure.

  • The Heated Bed is heating up very slowly and struggles to maintain temperature
  • When the G Code is loaded from Slic3r and the print button is pressed, nothing happens.
  • There were a few sections of a couple of layers missing – and of course it ended missing layer(s) altogether which led to the failure

I come up with fixes to all these issues and try to print 3D Benchy for a second time….

How to Build a Cheap Prusa I3 MK2 3D Printer – Power Supply, Slicing & First Print!!

In this video I finally get to make the first print… I know how it turned out but you will have to watch to see 😉

Before the printing fun could begin, I needed to take care of some minor things, and one slightly more important thing – the power supply for the heated bed!

For the moment all power for the printer is temporary so I make use of a 12v power supply that I already had. It doesn’t have the output to deliver power to all, but it should take care of the heated bed and I will continue to use the lab supply for the rest.

I also made a few final (before first print!!) changes to Configuration.h and slice up the model using the Prusa version of Slic3r that you can download here. (Also contains the version of Pronterface I am using).

If you want to see how my Configutation.h looks at this stage – grab it here .



Reprap / Prusa 3D Printer – Complete Initial Setup & Configuration – Step by Step

Bit of a monster video, for me, at nearly an hour. It is compacted as much as possible but there is a lot to fit in!

You can use these links to jump to specific steps in the video:-

Step 1 – Limit Switches
Step 2 – Motor Direction
Step 3 – Homing & XYZ Zeroing
Step 4 – Maximum Endstops
Step 5 – Bed Levelling
Step 6 – Z Probe/Bed Sensor
Step 7 – Extruder Calibration

I power on the printer for the first time and set up the Limit Switches, Axis Movement, End Stops, Bed Extents, Bed Levelling, Z Probe/Bed Sensor and do the Extruder Calibration!

I spent quite some time going through the Marlin documentation to see what each possible configuration instruction could do. I had already done a very basic run through of the Configuration.h file in this video/post but now it was time to get it spot on.

One side benefit of the exercise is that I can see I will need to change the way I mount the heated bed. Most importantly the nyloc nuts sitting on top reduce the Y axis extents by nearly 25%!!!!. But secondly the ply wood under the bed allows the nuts to squash the edges down too much, resulting in the opposite bed bend to that I had before! Still, good enough for a first print 😉

How to Build a Cheap Prusa I3 MK2 3D Printer – Arduino Check & Marlin Config

So before getting all carried away and wiring in the Arduino and RAMPS I thought it might be a good idea to make sure the Arduino actually works!

As I already work with Arduinos, I have the Arduino IDE installed. If you don’t you can go and grab it from here.

I uploaded a simple blinky sketch and all looks good so I also create a short sketch to wipe all data, if any, lurking in the EEPROM. Just in case it later confuses Marlin.

After downloading the latest version of Marlin I spent quite some time going through the configuration.h sketch file making some basic changes for an initial start up. If anyone is interested in a copy of that, you can download it here. (You might want to change it so my name doesn’t show up on your printer’s LCD all the time!!)

There are a lot of resources on the internet for the configuration of Marlin, here are the main ones I used:-

Thomas Sanladerer’s Build Video (Towards the end of this video)
Tony Gomes Marlin Firmware Video
The Marlin Documentation
Prusa Calculator

I double checked to make sure I still had the u8glib library installed in the IDE, which I did, but if you don’t you can get it here or install via the Library manager.

After I was somewhat sure the firmware config was about right for an initial startup, I compiled it and uploaded it to the Mega clone. All seemed good!!!



© 2017 Jules Gilson


Additional Artwork Designed by Freepik Additional Artwork Designed by Freepik