1

Topic: Press Firmware patches?

Does anyone know if the actual firmware source code is available to compile for the Press (and how to do so)?

I was specifically wondering if a version could be compiled to support the Hysteresis/anti-backlash mods ( https://groups.google.com/forum/#!topic … Nnym1MC94Y ) that were made to Marlin at some point in the past (now deprecated).

I would really like to be able to print proper circles, and I don't see a way to adjust the tension on the Y axis, other than the short belt that connects to the stepper.

2

Re: Press Firmware patches?

If you have a loose belt you need to find a way to adjust it if you expect quality prints.
That being said there is no reason you couldn't use Adrian's latest fork of marlin on github.  Just make the necessary dimension changes for the press and enable the appropriate hysterisys patch.

Printit Industries Model 8.10 fully enclosed CoreXY, Chamber heat
3-SD3's & a Workbench all fully enclosed, RH-Slic3r Win7pro, E3D V6, Volcano & Cyclops Hot End
SSR/500W AC Heated Glass Bed, Linear bearings on SS rods. Direct Drive Y-axis, BulldogXL
Thanks to all for your contributions

3

Re: Press Firmware patches?

You can recompile with the arduino ide.  You would be wise to check the diffs between the github trunk and the zip that solidoodle provides.


Source: http://support.solidoodle.com/hc/en-us/ … urce-Files
Compiling and Flashing instructions: http://support.solidoodle.com/hc/en-us/ … 0-Firmware
Location of Boot Jumper (JP1): http://www.soliforum.com/post/80276/#p80276

4

Re: Press Firmware patches?

Just wanted to comment that I was able to recompile the press firmware and add the hysteresis code to compensate for my Y-axis backlash.   I'm hoping Solidoodle support can provide a process for adjusting the y-belt tension, but in the meantime I am able to print accurate circles and parts.

5

Re: Press Firmware patches?

Can you show what you changed?

SD Press - v1 (Pre-order) / RAMPs /w DRV8825's / Cyclops (25w) / Dual Bowden / Mk8 Gear / MK2b PCB Heat bed /w custom replacement Z / PEI Bed
SD2 / E3D v6 / Direct Drive / Mk8 Gear / RAMBo v1.3 / PEI Bed / Anti Z backlash mod / Ikea Expedite enclosure.
Both Driven by Octoprint (devel) via a RPi B+ / Neopixel status alerts / GPIO Controlled SSR / (SD2) 450 Watt PSU for remote power-up/shutdown.

6

Re: Press Firmware patches?

Sure,

These are my notes...  hopefully they are clear.  The info was gathered from a post in another forum here, the author's original post on Google groups, and from the SD2 Github repository.  I've included the files I got from the solidoodle 2 github repository.

Step 1. In marlin_main.cpp, after the other includes that are already there...
 
#include "Hysteresis.h"

Step 2:
In marlin_main.cpp, Search for the lines:

    #ifdef ULTIPANEL
        case 0: // M0 - Unconditional stop - Wait for user button press on LCD

and add the following line prior to the #ifdef line:

    DECLARE_HYSTERESIS_MCODES(98, 99)

Step 4. In planner.cpp, after the other includes that are already there...

#include "Hysteresis.h"

Step 5. Insert a line in the plan_buffer_line function in planner.cpp. It should be the first line in the function, before "int next_buffer_head = ...."

hysteresis.InsertCorrection(x,y,z,e);

Step 6. Add the attached files (hysteresis.cpp and hysteresis.h) to the Marlin directory

Post's attachments

Hysteresis.cpp 6.36 kb, 5 downloads since 2015-02-08 

Hysteresis.h 2.51 kb, 4 downloads since 2015-02-08 

You don't have the permssions to download the attachments of this post.

7

Re: Press Firmware patches?

Awesome. Thanks.

SD Press - v1 (Pre-order) / RAMPs /w DRV8825's / Cyclops (25w) / Dual Bowden / Mk8 Gear / MK2b PCB Heat bed /w custom replacement Z / PEI Bed
SD2 / E3D v6 / Direct Drive / Mk8 Gear / RAMBo v1.3 / PEI Bed / Anti Z backlash mod / Ikea Expedite enclosure.
Both Driven by Octoprint (devel) via a RPi B+ / Neopixel status alerts / GPIO Controlled SSR / (SD2) 450 Watt PSU for remote power-up/shutdown.

8

Re: Press Firmware patches?

Oh, I should also mention, to use them:

M99 X0 Y0 Z0;    //Set Backlash correction amount
M98;                   //Print Current Backlash Correction amount


for Example, I put the following in my Start code for RH:

M99 Y0.3;