Skip to content

04 Firmware

JonasForssell edited this page Jun 12, 2017 · 16 revisions

HangAround uses the same firmware as HangPrinter which is its parent design.

HangPrinter

There is really only one unique setting for HangAround. This setting is defined in the file Configuration.h in the Marlin firmware

Due to the high ratio on the steppers we need to lower the resolution for the Mega to keep up

// Make delta curves from many straight lines (linear interpolation).
// This is a trade-off between visible corners (not enough segments)
// and processor overload (too many expensive sqrt calls).
#define DELTA_SEGMENTS_PER_SECOND 5

Next, the geometry of the HangAround is set up in the initial part of the file

#define ANCHOR_A_X 0.00
#define ANCHOR_A_Y -395.0
#define ANCHOR_A_Z -45.0
#define ANCHOR_B_X 342.0
#define ANCHOR_B_Y 197.5
#define ANCHOR_B_Z -45.0
#define ANCHOR_C_X -340.9
#define ANCHOR_C_Y 197.5
#define ANCHOR_C_Z -45.0
// It's assumed that ceiling frame part is directly above origo
#define ANCHOR_D_Z 1005.0 // measured along vertical line, from fish eye to anchor point.

I have chosen to skip the spool windup algorithm for now and opt for a specific hard coded setting:

First comment out the spool algorithm

//===========================================================================
//============================= Steps per unit ==============================
//===========================================================================
// If you want the experimental line buildup compensation feature with your Hangprinter, uncomment this.
//#define EXPERIMENTAL_LINE_BUILDUP_COMPENSATION_FEATURE

Next select the following hard coded values

// If EXPERIMENTAL_LINE_BUILDUP_COMPENSATION_FEATURE is enabled
// then constant ABCD values are calculated on the fly and used only used to calculate accelerations
#if defined(EXPERIMENTAL_LINE_BUILDUP_COMPENSATION_FEATURE)
#define DEFAULT_AXIS_STEPS_PER_UNIT   {0, 0, 0, 0, 134.0}
#else
// Hard coded calibration values for HangAround geometry
#define DEFAULT_AXIS_STEPS_PER_UNIT   {26.8, 26.8, 26.8, 140.0, 89.0}  // steps per unit with no line on spools for Hangprinter
#endif

#define DEFAULT_MAX_FEEDRATE          {16, 16, 16, 2, 10}    // (mm/sec)
#define DEFAULT_MAX_ACCELERATION      {300,300,300,300,10000}    // X, Y, Z, E maximum start speed for 
accelerated moves.

#define DEFAULT_ACCELERATION          150    // X, Y, Z and E max acceleration in mm/s^2 for printing moves
#define DEFAULT_RETRACT_ACCELERATION  17   // X, Y, Z and E max acceleration in mm/s^2 for retracts

#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75

// Offset of the extruders (uncomment if using more than one and relying on firmware to position when changing).
// The offset has to be X=0, Y=0 for the extruder 0 hotend (default extruder).
// For the other hotends it is their distance from the extruder 0 hotend.
// #define EXTRUDER_OFFSET_X {0.0, 20.00} // (in mm) for each extruder, offset of the hotend on the X axis
// #define EXTRUDER_OFFSET_Y {0.0, 5.00}  // (in mm) for each extruder, offset of the hotend on the Y axis

// The speed change that does not require acceleration (i.e. the software might assume it can be done instantaneously)
#define DEFAULT_XYJERK                5.0    // (mm/sec)
#define DEFAULT_ZJERK                 0.01    // (mm/sec) Must be same as XY for delta
#define DEFAULT_EJERK                 0.1    // (mm/sec)
Clone this wiki locally