Tag: arduino

Arduino Power Controller for Prusa 3D Printer – Auto Shutdown

In this video I run through the design and build of an add-on for my DIY Prusa i3 MK2 3D Printer that controls the supply of power to the printer’s two power supplies.

I wanted to add this for two reasons. Firstly I wanted an extra layer of security in case any of the electrical components failed in a catastrophic way leading to over heats, particularly the power supplies as I doubt their quality based on the budget prices. Secondly I wanted to be able to add G code (M Code actually) to my prints so that once the print it finished the printer is shutdown, including the power supplies.

More details in the video, but as discussed here is the schematic:

Arduino Power Control Schematic

Arduino Power Control Schematic

I also mention that I am now using Sublime Text instead of the Arduino IDE. I use Sublime Text on a daily basis and it has a lot more editing features than the IDE. When I found this brilliant add-on package for Sublime Text, called Stino, that brings Arduino syntax highlighting, compiling and uploading directly from within ST, I switched instantly. Even if you don’t already use Sublime Text – it might be worth it just for this!

Finally, if you really want to you can download my source code for the project – as it stands at this point. As explained in the video it is very much an evolution from a basic idea – so isn’t that well written. But it does the job.

Prusa i3 MK2 3D Printer – Electronics Mounted, FINALLY!

In this video I show how I ended up mounting all the electronics for the Prusa i3 MK2 clone. As the frame wasn’t as solid as the original’s aluminium one I decided that it needed a brace, which provided the perfect location to mount the Arduino, RAMPS, Raspberry Pi and all supporting parts.

I also added a brace to the other side – which gives me room for electrical expansion!!!!

I mounted the whole thing to an office desk, I picked up for free, and even though all four corners of the Y axis are square and sit on the desk, there is a slight amount of hammering when printing.

To silence that I drew up and printed out some little securing clamps which just make sure they cannot move. You can click the image below to download the STL for these clamps. They should work on any printer using the same Y Axis design and the Prusa i3 MK2.

Prusa i3 MK2 Y Axis Securing Clamps

Prusa i3 MK2 Y Axis Securing Clamps

And just in case anyone might find it useful, here is the STL for my RepRap Discount Full Graphic Smart Controller mounting plate, which is just a plate with mount holes in the right places and a boss on the rear tapered to accept the nozzle of a flexible cooling hose!!!

RepRapDiscount Full Graphic Smart Controller Mount

RepRapDiscount Full Graphic Smart Controller Mount

 

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

Prusa i3 MK2 3D Printer – Electrical Upgrades/Mods – RAMPS & Arduino

Continuing with my mission this week to actually finish the electrics on my DIY Prusa i3 MK2 3D Printer, in this video I make some modifications to the RAMPS board and the Arduino.

On the RAMPS I need to remove the 4 pin power connector. Now that the RAMPS board is not carrying the current to the heated bed it isn’t really a safety issue (although it might be if yours is carrying heated bed power…) but it just simply takes up too much space for how I want to mount it. And a soldered connection is more reliable that a connector, well usually!

I am also junking the polyfuses. Again not so much a safety issue now as there is only a little current going through them, but even so the 5 Amp one still feeds everything apart from the heated bed so they have to go. Replacing them with a simple blade fuse holder and fuses – you know,  like off of cars n stuff 🙂

In the last video I created a separate MOSFET board to handle power to the heated bed. The gate of the MOSFET is driven high by pin D8 of the Arduino, so I also add a signal wire from D8 that can then attach to my off-board MOSFET.

Lastly, I remove the DC jack on the Arduino. It isn’t being used or causing any issues, but I just don’t like it… well no, it got in the way of my board mounts.

That just leaves fixing the corrupted garbage that appears on the LCD after a couple of minutes. After quite a lot of time spent (more than quite a lot..), I have fixed it. That will be the subject of my next video.

Prusa i3 MK2 Clone – Electronics – 24V Heated Bed Upgrade

I have changed my mind a few times about how I plan to finish off my Prusa i3 MK2 clone 3D printer… but now I have settled on a plan! None of it was particularly complicated, but I just want to arrange things in such a way that they are safe, tidy and give me the best result.

As I plan to add a physical brace to the Z Axis frame, I want to combine that with a suitable housing for all the electronics. With the actual brace made I can start finishing off the electronics!!!

There are few items I want to do:-

  • Fix the issues with LCD corruption – presumably cause by electrical noise
  • Remove the Polyfuses and provide alternative
  • Integrate the Raspberry Pi in with the other electronics so it is a permanent feature on the printer, including power
  • Add in additional temp sensors to the electronics and power supplies that will kill the power if anything looks dodgy
  • Power the Heated Bed with 24V instead of 12V – but keep this 24V separate from the RAMPS board

The last of these is the item I am doing first – and it the subject of this video.

The links I discuss in the video are:

Below is my rough schematic showing how I will wire the RAMPS, Arduino and also a small external board that will perform the heated bed power switching. Beneath that the calculations I made to conclude that the AUIRFB8409 Mosfet would work fine:

Rough Schematic of an external board to switch power to the 24V heated bed, showing relevant parts of the RAMPS and Arduino

 

Main considerations in choosing the AUIRFB8049 Mosfet, with calculations

How to Setup OctoPrint Guide – The Easy Way, OctoPi Tutorial

Up till now I have been using an old laptop to connect to the 3D printer through Pronterface. While this works fine, it does mean having to shift gcode files around on my network and to have to power up the old donkey… which can take a while… each time I use the printer.

From day zero I knew I wanted to get OctoPrint running on a Raspberry Pi so that I could control the printer from any web browser, upload gcode, start prints and as a massive bonus be able to watch how the printer is getting on via remote viewing a webcam.

In this video I run through, step by step, how I did this and how you could too for very little cost. As I discuss in the video there are at least two ways of doing this on a Raspberry Pi (OctoPrint is also available for many other platforms), the hard way which is preparing the Pi yourself, building OctoPrint and installing all necessary dependencies.  Then there is the easy way, flashing an image of OctoPi. In this video I cover the latter method, although I will likely do another video covering the fully manual way.

At this time I see no downside to using the OctoPi image – but we shall see!!!

In order to do this yourself, aside of a Raspberry Pi and cables, you will need some freely available software. Here are the links to download that:-

If you are interested in reading all the documentation for OctoPrint you can find that on the website here.

If for any reason you need to know more about HAProxy you can spend a chunk of your life reading about it here. (Not for the faint hearted. Long story short, among other things, it is a server proxy that runs on Linux that can manage network traffic to and from the machine.)

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….

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 – Temporary Wiring for First Print

As I am not sure yet exactly where the RAMPS will end up, I am just going to wire everything long and hook it all up temporarily to get the printer up and running. I will revisit the wiring once everything is working and tidy it all up. But this is good enough for now!

I cover a few little things that I needed to look up, pin outs etc. The rest was an easy job… so long as you have the right crimps to hand!!!

If you have a Z probe that needs more than 5v to operate, then you can run it directly from the 12v supply and run the signal wire (usually black) through a voltage divider and from there into the RAMP Z Min Endstop connector.

The values for the voltage divider are R1=10kOhm and R2= 6.8kOhm. This will drop the 12v to 4.9 and result in a power loss of only 85mW.

I didn’t end up needing to do this – although the probe was spec’d for 6-36 Volts (if I remember correctly) it worked fine with just 5v.

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