Hesine M-505 3D printer mods
My personal printer is a Hesine M-505 3D printer which is one of the Chinese Prusa i3 clones that came onto the market around 2015.
By photograph it appears to be nearly the exact same machine as the Zonestar/Tronxy P802M. Its close cousin is the Anet A8 which seems to be the most popular of all the Chinese clones. The frame appears to be nearly the exact the same as the Anet A8, however this is a distinct printer. The Anet A8 has developed a reputation for catching fire, and after going over most of the reasons for this, the M-505 seems to be much safer out of the box. There are several reasons the A8’s catch fire:
- Firstly: thermal runaway detection was disabled in their Marlin-based firmware
- Wire connectors at the heated bed not rated for current the bed draws - this induces failure of the connectors
- Poor cable management allows bed heater wires to break off and short out on metal parts
- Because of the above issues, the custom Anet driver board is prone to overheating and burns out, or also catching fire
The Hesine M-505 does not have these issues:
- Uses the standard and well proven Melzi driver board running Repetier-based firmware
- State of thermal runaway detection code is unknown as the M-505 firmware, but is likely intact. It's NOT the same code the A8 ships with (A8 uses Marlin code-base, M505 uses the Repetier code-base).
- As of at least 12-2018, OctoPrint now gives a warning that this printer is known to lack thermal-runaway protection (firmware string "OMNI 1.5")
- Heated bed wires come from the factory soldered directly to the heated bed, prevents thermal failure of an under-rated connector
All this being said, the Hesine M-505 still has some deficiencies. Namely, the routing of the heated bed wiring is prone to breaking loose due to very poor cable management. There are other smaller issues, but that is the biggest. The acrylic frames on these printers also gets a bad rap, but this is a fairly low priority compared to other issues I've had with my printer. However I don't drive my printer at the full limit of it's print speeds like a lot of people do.
Next up is firmware updates for the board. Initially neither the Marlin or Repetier code bases supported the display and 5-button controls on either of these printers. This meant that anyone wanting to update firmware or guarantee thermal runaway protection was in place lost the use of these components. However, 2 years on, this has been resolved in both Marlin and Repetier code bases. Sadly, despite both code bases being GPL V3, often the Chinese printer manufacturers are out of compliance by not releasing the full code which caused this control panel situation for some time. On the up-shot, it's China, and about anything can be had if you know who to ask.
Since long print times are the name of the game, i decided I wanted to make my printer as safe as possible. I’ve assembled a number of upgrades to improve safety and also reliability. There are many alternatives to these, but I will vouch for this configuration.
Contents |
Printed upgrades
- Anet_A8_Y_Chain_Remix - This is a critical upgrade. It reroutes bed wires to the side of the bed and prevents them from rubbing or breaking off.
- Anet_A8_Chain_Bed_Protector - Keeps the chain below the top surface of the bed preventing nozzle strikes, goes with “Anet_A8_Y_Chain_Remix"
- Anet_A8_Improved_X-belt_Tensioner - requires longer belts, which is fine if you order fiber reinforced belts as an upgrade
- Anet_A8_Power_Switch_minimal_material - I got tired of having to unplug the printer, the on/off switch also adds a fuse.
- Anet_A8_Volt_Meter_Enclosure_V1 - I decided this was also a bit of a safety feature, power consumption can be an indicator of a failure if things change over time.
- Anet_A8_Y_belt_Tensioner_ - Simplest Y-belt tensioner I could find, much easier method of tightening this belt.
- Anet_A8_-_Front_Frame_Brace_with_Mounting_Holes - Reduces flex from tightening the Y-belt
- Anet_A8_Spool_holder - An overhead spool holder reusing parts of the factory spool holder.
- Note: While I still use this part, the first one I printed out of PLA broke and dropped a spool at a weak spot under its own weight after several months of use. PET-G or ABS would be recommended.
- Anet_A8_Mosfet_Holder - My "Shitty mosfet holder for Hesine M505 3D printer", a retooled mosfet holder for the Hesine Melvi board
Todo yet:
- Anet_A8_Brackets_to_Reduce_X-Axis_Motion - Not compatible with most other X-axis stabilizers, including Hulk frame brace
- _Hulk__Frame_Brace_for_the_Anet_A8 - There are several designs to choose from, this one used less material
- Melzi Board Case w/ Lids - Optional
- Anet_A8_Extruder_Fan_Modification_V2 - This would be a huge ease-of-use improvement when changing filaments.
Notes for printed parts
- Anet_A8_Y_Chain_Remix
I found that the Anet_A8_Y_Chain_Remix had some minor sizing issues which could be inherit defects no one has bothered to fix or differences between the A8 and M-505. The block that attaches to the main printer frame has a notch for one of the thread-rods to run over top of it. This notch is off enough that some of the printed part has to be broken off to allow the rod to seat back into place on the frame. It's not a show stopper, but the problem exists. Next, the screw holes that allow the other end of the chain to attach to the bed are about one screw-hole diameter off. Again, not a show stopper, but it could be improved. Maby there is an improved version already out there and I've missed it.
- Anet_A8_-_Front_Frame_Brace_with_Mounting_Holes
Once again, the sizing is slightly off on this part for the Hesine. It's slightly wider than the front plate it mounts up against. Also, I had to drill out one of the bolt holes in order to allow the all-thread to be spaced closer together. I ended up snapping off the entire corner by accident, but it was not a show stopper. The stabilizer seems to be held in place just fine. However, a minor complication is using this part along with the Anet_A8_Y_Chain_Remix. The stabilizer sticks out about 1/8" wider on the side you drill out the bolt hole. I didn't realize this, so I found my Y-chain trying to catch on it towards the full-forwards travel of the build plate. Because you can only use one screw to attach the chain to the bed platform anyway, it makes it simple to swing the chain a little further away from the printer to avoid catching. So far this has worked ok fine without any issues over the past 6 months.
- Anet_A8_Power_Switch_minimal_material
I wasn't thinking when I printed this, at the same time I went to install it I was also installing a 30A power supply over the native 20A supply. The new power supply was slightly wider. It's not a show stopper, with some trimming of the internal components it can be made to fit. It's a little more flimsy than I'd care for, but oh well, it works.
- Anet_A8_Volt_Meter_Enclosure_V1
The author claims that you need to buy a smaller shunt resistor than the one that comes with the LCD/meter that this part was designed around. I found this was not necessarily the case. The shunt that comes with it can be bent into an "L" to fit around the inside geometry and still works fine if you are careful. Next, you need to use a bench grinder or hand file to reduce the length of the main bolts that attach the load wires. You only need to take off like 1/8" or so off each bolt (from the threaded end). You can do this with the nut and wire-crimps already attached so no worries about screwing up the threads.
- Anet_A8_Extruder_Fan_Modification_V2
Apparently the M-505 has a different print head that the A8. I printed this part and found it expects the head to be quite a bit deeper on the heat-sink fan, it can't swing into plate. Also the blower fan holes are not lined up correctly. This was a total fail. Apparently I'm just dumb and had this part oriented incorrectly. I still plan to use this part as the factory print head is bit of a pain in the a$% to change filament out on.
Purchased Upgrades
Some of these parts match up with printed parts above, so be mindful if you interchange some of these (like the power switch). The power supply and MOSFET upgrades I deemed fairly important. The thermal fuse is maby a little overkill, but better safe than sorry. After those, everything is a reliability or usability upgrade.
- 30A power supply Anet/Hesine ships with a 20A and can barely keep up, especially when doing ABS, etc. When my heated bed kicks on, I can hear the fan drop in rpm. This is probably both a supply and main board issue: $20.99
- MOSFET upgrade for heated bed $7.99 - This may not be as important for the M-505, but it should take a lot of strain off the mainboard. For the A8 it should be a required upgrade though as the mainboard can't handle the current the bed draws.
- 220mm x 220mm glass bed - $18.99 / I noticed fairly quickly that the bed was warping some at temperature, the glass bed stops this issue making even better quality prints, especially for the first few layers. If I were to do this over, I’d order one of the PEI/Polyetherimide sheets that are all the rage now.
- Fiberglass insulation for hot end - possibly for under side of bed too $7.49
- Replacement blower fan - my original has bearing/noise issues $6.99
- Replacement hot-end fan - my original has bearing/noise issues, this one is supposed to be very quiet $13.95
- Power switch and PC cord socket $6.99
- Relay board for RPi/Octoprint - this is the board the Octoprint dev recommends if you want the ability to power your printer on and off from within Octoprint: $8.99
- Fiber reinforced belts The original rubber belts stretch and allow slop, this should be enough for both X and Y $13.24
- Voltage + Current display 21.92
-
Smaller shunt resistor for the above display - to fit inside printed voltage/current display enclosure: $6.44 - Thermal cutoff fuse for bed 25A, 250C temp cutoff $4.99
- MicroSD reader extender $6.99
Other upgrades
For the main power wiring it's wise to use crimp connectors on the wires. These are the most important:
- Power supply to main board (12V and ground)
- Heated bed wires where they attach to the main board using screw-terminals
- Hot-end wires where they attach to the main board using screw-terminals
The issue is that on high-current wires like for the heated bed, bad connections heat up and corrode over time which can also lead to a fire. Screw terminals on bare-wire usually loses about half the surface area for connection when compared to a crimp connector. I've seen ferrules recommended, but both the connectors and the crimping tools required are fairly uncommon and expensive. I use crimp spade-terminals and just grind the spade down to a size that will fit the screw terminal. It's cheap, the parts are very common, and it works just as well.
Hesine M-505 Firmware Updates
I have not yet done this. A few things to be concerned about:
- 1) the display and 5-button interface is non-standard and requires at least some customization to get working
- 2) the Melzi board may have less memory than a RAMPS or other board, so possibly it can't support every bell and whistle you may wish to compile support for
- 3) Further discussion of compiling Repetier firmware for the Hesine M505 and Anet A8: https://forum.repetier.com/discussion/comment/4064/#Comment_4064
There is also an online configuration tool for Repetier firmware. The board mine has: Melzi V2.0, this was in late 2015. I've read that Repetier now includes support for the LCD display and 5-button input used on this printer, but this may not be exactly the same interface your factory printer came with:
- https://www.repetier.com/firmware/v100/ - make sure to use the latest non-development version
There's quite a bit configuration required, I plan to add an update with the options needed once I get time to work on this.
Alignment and printing square
After resolving all of the above issues, I've still had one critical problem with this printer: printing square. My printer has always had a slight skew it adds to parts. This was mainly an issue for mechanical parts that have to mesh together, statues and toys are not noticeably affected unless they are made of multiple parts. If a square of 4" was printed, the skew was about 1/4" which was way worse than anything I had seen described elsewhere for these Chinese printers.
Checking your alignment
Use a square or a block of wood. Push it up against the left-right carriage rods and scoot the bed so the front aligns to the edge of the measurement tool. Now move the tool to the other side. If the bed doesn't line up you've found your problem. Unfortunately I took these pictures after I corrected my skew problem, it clearly showed up with this method. But here you can see what I'm describing.
Fixing your alignment
I spent a month tinkering with attaching the printer to the table and forcing the bed to skew in the other direction, this did nothing to fix the problem which was a puzzler for me. I finally thought through how the bed is attached to the frame, using two "rails" that run horizontally under the bed. The thread rods pass through these two acrylic parts of the frame at the mid section and rear of the printer. So, if forcing the front of the printer to the left is not doing anything, I should be able to achieve the same action by moving one of the horizontal frame components. The mid-frame rail connects to the vertical axis steppers. I decided I did not want to mess with this one. The rear rail however is much less messy to move. By moving it to the right about 1/4" I was able to completely eliminate the skew.
Doing this requires some surgery on the printer though. First, remove the four screws that hold the "rear rail" to the frame on the left and right side. You will have to work the belt off the stepper too. Gently pull the rear frame rail off the printer. You probably have wires routed through this piece, so this may be tricky, but also shouldn't be too bad. I was able to do this operation with only undoing the stepper belt.
Next, you will need to saw off the plastic tabs from the left and right chassis pieces which extend into the rear rail. A hacksaw or wood saw with small/fine teeth works fine (don't use a ripping saw or one with large teeth or it could crack the acrylic). If any pieces of acrylic remain which are not flush with the rear side then you will need to file them off so the rear rail can sit flush. Next, you will need to drill new screw holes next to the existing screw holes which attach the rear rail. You are moving the rear rail towards the "skew gap". Again, be gentle as we don't want to crack the acrylic. I recommend doing one side then attaching that side again with the original screws and nuts. This way when you do the other side the spacing will be correct. Your goal is to move the rear rail without adjusting the rest of the chassis.In my case there was just enough "extra" space on the rear rail to correct my skew. In fact, I had to drill another set of holes as I had created a small amount of skew in the opposite direction. Thankfully my adjustments landed on a position which was perfectly square on my 2nd try.
Once you get the rear rail reattached you may need to make some adjustments to the front bed rails and thread rod nuts to get the front straight, but this is mostly for aesthetics as this does not affect the skew.
Final notes on fixing the alignment: I'll be the first to admit I don't understand how my frame came to be warped so badly. I assembled it myself and everything went together just fine, all assembly screws were snug and fit correctly. It *looks* square when looking top-down. I had hoped that replacing my belts would fix the skew issue as others had reported, but that had no affect on the problem of course. And I couldn't make it square with force. Regardless, this mod worked perfectly for my particular alignment problem.