Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
M
MarlinKimbra
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
machinery
MarlinKimbra
Commits
14af5afb
Commit
14af5afb
authored
9 years ago
by
MagoKimbra
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update v4_2_6
parent
d5cef6c9
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
417 additions
and
469 deletions
+417
-469
Configuration_Feature.h
MK/Configuration_Feature.h
+1
-2
Pins.h
MK/Pins.h
+13
-13
MK_Main.cpp
MK/module/MK_Main.cpp
+239
-246
MK_Main.h
MK/module/MK_Main.h
+2
-2
conditionals.h
MK/module/conditionals.h
+1
-0
language.h
MK/module/language/language.h
+1
-1
ultralcd.cpp
MK/module/lcd/ultralcd.cpp
+2
-2
ultralcd.h
MK/module/lcd/ultralcd.h
+2
-1
planner.cpp
MK/module/motion/planner.cpp
+33
-36
stepper.cpp
MK/module/motion/stepper.cpp
+112
-155
stepper.h
MK/module/motion/stepper.h
+2
-2
temperature.cpp
MK/module/temperature/temperature.cpp
+9
-9
No files found.
MK/Configuration_Feature.h
View file @
14af5afb
...
...
@@ -561,8 +561,7 @@
//#define ADVANCE
#define EXTRUDER_ADVANCE_K .0
#define D_FILAMENT 2.85
#define STEPS_MM_E 836
#define D_FILAMENT 1.75
/*****************************************************************************************/
...
...
This diff is collapsed.
Click to expand it.
MK/Pins.h
View file @
14af5afb
...
...
@@ -816,27 +816,27 @@
****************************************************************************************/
#if MB(RAMPS_13_HFB)
#define KNOWN_BOARD 1
#if !defined(__AVR_ATmega1280__) && !defined(__AVR_ATmega2560__)
#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
#endif
#define LARGE_FLASH true
// X axis pins
#define ORIG_X_STEP_PIN 54
#define ORIG_X_DIR_PIN 55
#define ORIG_X_ENABLE_PIN 38
#define ORIG_X_MIN_PIN 3
#define ORIG_X_MAX_PIN 2
// Y axis pins
#define ORIG_Y_STEP_PIN 60
#define ORIG_Y_DIR_PIN 61
#define ORIG_Y_ENABLE_PIN 56
#define ORIG_Y_MIN_PIN 14
#define ORIG_Y_MAX_PIN 15
#define Y2_STEP_PIN 36
#define Y2_DIR_PIN 34
#define Y2_ENABLE_PIN 30
...
...
@@ -860,14 +860,14 @@
#define ORIG_E1_STEP_PIN 36
#define ORIG_E1_DIR_PIN 34
#define ORIG_E1_ENABLE_PIN 30
#define SDPOWER -1
#define SDSS 53
#define LED_PIN 13
#define ORIG_FAN_PIN 9
#define ORIG_PS_ON_PIN 12
#define ORIG_HEATER_0_PIN 10 // Hotend 1
#define ORIG_HEATER_1_PIN -1
#define ORIG_HEATER_2_PIN -1
...
...
@@ -877,7 +877,7 @@
#define ORIG_TEMP_1_PIN 15 // ANALOG NUMBERING
#define ORIG_TEMP_2_PIN -1 // ANALOG NUMBERING
#define ORIG_TEMP_3_PIN -1 // ANALOG NUMBERING
#define ORIG_HEATER_BED_PIN 8 // BED
#define ORIG_TEMP_BED_PIN 14 // ANALOG NUMBERING
...
...
@@ -917,7 +917,7 @@
#define LCD_PINS_D6 27
#define LCD_PINS_D7 29
#endif // PANEL_ONE
#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
#define ORIG_BEEPER_PIN 37
...
...
@@ -971,7 +971,7 @@
#define BTN_EN2 35
#define BTN_ENC 31 // the click
#endif
#if ENABLED(G3D_PANEL)
#define SD_DETECT_PIN 49
#else
...
...
@@ -979,7 +979,7 @@
#endif
#endif
#else // old style panel with shift register
// arduino pin witch triggers an piezo beeper
#define ORIG_BEEPER_PIN 33 // No Beeper added
...
...
@@ -990,7 +990,7 @@
//#define SHIFT_LD 42
//#define SHIFT_OUT 40
//#define SHIFT_EN 17
#define LCD_PINS_RS 16
#define LCD_PINS_ENABLE 17
#define LCD_PINS_D4 23
...
...
This diff is collapsed.
Click to expand it.
MK/module/MK_Main.cpp
View file @
14af5afb
This diff is collapsed.
Click to expand it.
MK/module/MK_Main.h
View file @
14af5afb
...
...
@@ -89,7 +89,7 @@ void refresh_cmd_timeout();
extern
void
delay_ms
(
millis_t
ms
);
#if ENABLED(FAST_PWM_FAN)
void
setPwmFrequency
(
uint8_t
pin
,
in
t
val
);
void
setPwmFrequency
(
uint8_t
pin
,
uint8_
t
val
);
#endif
extern
float
homing_feedrate
[];
...
...
@@ -120,7 +120,7 @@ extern uint8_t axis_was_homed;
#endif
#if ENABLED(NPR2)
extern
in
t
old_color
;
// old color for system NPR2
extern
uint8_
t
old_color
;
// old color for system NPR2
#endif
#if MECH(DELTA)
...
...
This diff is collapsed.
Click to expand it.
MK/module/conditionals.h
View file @
14af5afb
...
...
@@ -234,6 +234,7 @@
*/
#if ENABLED(DONDOLO)
#undef SINGLENOZZLE
#undef ADVANCE
#undef DRIVER_EXTRUDERS
#define DRIVER_EXTRUDERS 1
#endif
...
...
This diff is collapsed.
Click to expand it.
MK/module/language/language.h
View file @
14af5afb
...
...
@@ -102,7 +102,7 @@
#define SERIAL_ACTIVE_COLOR "Active Color: "
#define MSG_COUNT_X " Count X:"
#define MSG_COUNT_A " Count A:"
#define MSG_COUNT_ALPHA " Count Alpha:
"
#define MSG_COUNT_ALPHA " Count Alpha:"
#define SERIAL_X_MIN "x_min: "
#define SERIAL_X_MAX "x_max: "
#define SERIAL_Y_MIN "y_min: "
...
...
This diff is collapsed.
Click to expand it.
MK/module/lcd/ultralcd.cpp
View file @
14af5afb
...
...
@@ -2084,7 +2084,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
WRITE
(
SHIFT_LD
,
HIGH
);
for
(
int8_t
i
=
0
;
i
<
8
;
i
++
)
{
newbutton_reprapworld_keypad
>>=
1
;
if
(
READ
(
SHIFT_OUT
))
newbutton_reprapworld_keypad
|=
BIT
(
7
);
if
(
READ
(
SHIFT_OUT
))
BITSET
(
newbutton_reprapworld_keypad
,
7
);
WRITE
(
SHIFT_CLK
,
HIGH
);
WRITE
(
SHIFT_CLK
,
LOW
);
}
...
...
@@ -2097,7 +2097,7 @@ void lcd_reset_alert_level() { lcd_status_message_level = 0; }
unsigned
char
tmp_buttons
=
0
;
for
(
int8_t
i
=
0
;
i
<
8
;
i
++
)
{
newbutton
>>=
1
;
if
(
READ
(
SHIFT_OUT
))
newbutton
|=
BIT
(
7
);
if
(
READ
(
SHIFT_OUT
))
BITSET
(
newbutton
,
7
);
WRITE
(
SHIFT_CLK
,
HIGH
);
WRITE
(
SHIFT_CLK
,
LOW
);
}
...
...
This diff is collapsed.
Click to expand it.
MK/module/lcd/ultralcd.h
View file @
14af5afb
...
...
@@ -120,7 +120,8 @@
#define EN_B BIT(BLEN_B)
#define EN_A BIT(BLEN_A)
#define LCD_CLICKED ((buttons&B_MI)||(buttons&B_ST))
#define LCD_CLICKED (buttons&(B_MI|B_ST))
#endif//NEWPANEL
char
*
itostr2
(
const
uint8_t
&
x
);
...
...
This diff is collapsed.
Click to expand it.
MK/module/motion/planner.cpp
View file @
14af5afb
...
...
@@ -205,12 +205,11 @@ FORCE_INLINE float max_allowable_speed(float acceleration, float target_velocity
// "Junction jerk" in this context is the immediate change in speed at the junction of two blocks.
// This method will calculate the junction jerk as the euclidean distance between the nominal
// velocities of the respective blocks.
//inline float junction_jerk(block_t *before, block_t *after) {
//
inline float junction_jerk(block_t *before, block_t *after) {
// return sqrt(
// pow((before->speed_x-after->speed_x), 2)+pow((before->speed_y-after->speed_y), 2));
//}
// The kernel called by planner_recalculate() when scanning the plan from last to first entry.
void
planner_reverse_pass_kernel
(
block_t
*
previous
,
block_t
*
current
,
block_t
*
next
)
{
if
(
!
current
)
return
;
...
...
@@ -359,7 +358,6 @@ void plan_init() {
previous_nominal_speed
=
0.0
;
}
#if ENABLED(AUTOTEMP)
void
getHighESpeed
()
{
static
float
oldt
=
0
;
...
...
@@ -479,7 +477,6 @@ void check_axes_activity() {
#endif
}
float
junction_deviation
=
0.1
;
// Add a new linear movement to the buffer. steps[X_AXIS], _y and _z is the absolute position in
// mm. Microseconds specify how many microseconds the move should take to perform. To aid acceleration
...
...
@@ -606,7 +603,7 @@ float junction_deviation = 0.1;
// For a mixing extruder, get steps for each
#if ENABLED(COLOR_MIXING_EXTRUDER)
for
(
int8_t
i
=
0
;
i
<
DRIVER_EXTRUDERS
;
i
++
)
for
(
u
int8_t
i
=
0
;
i
<
DRIVER_EXTRUDERS
;
i
++
)
block
->
mix_steps
[
i
]
=
block
->
steps
[
E_AXIS
]
*
mixing_factor
[
i
];
#endif
...
...
@@ -618,23 +615,23 @@ float junction_deviation = 0.1;
// Compute direction bits for this block
uint8_t
dirb
=
0
;
#if MECH(COREXY)
if
(
dx
<
0
)
dirb
|=
BIT
(
X_HEAD
);
// Save the real Extruder (head) direction in X Axis
if
(
dy
<
0
)
dirb
|=
BIT
(
Y_HEAD
);
// ...and Y
if
(
dz
<
0
)
dirb
|=
BIT
(
Z_AXIS
);
if
(
da
<
0
)
dirb
|=
BIT
(
A_AXIS
);
// Motor A direction
if
(
db
<
0
)
dirb
|=
BIT
(
B_AXIS
);
// Motor B direction
if
(
dx
<
0
)
BITSET
(
dirb
,
X_HEAD
);
// Save the real Extruder (head) direction in X Axis
if
(
dy
<
0
)
BITSET
(
dirb
,
Y_HEAD
);
// ...and Y
if
(
dz
<
0
)
BITSET
(
dirb
,
Z_AXIS
);
if
(
da
<
0
)
BITSET
(
dirb
,
A_AXIS
);
// Motor A direction
if
(
db
<
0
)
BITSET
(
dirb
,
B_AXIS
);
// Motor B direction
#elif MECH(COREXZ)
if
(
dx
<
0
)
dirb
|=
BIT
(
X_HEAD
);
// Save the real Extruder (head) direction in X Axis
if
(
dy
<
0
)
dirb
|=
BIT
(
Y_AXIS
);
if
(
dz
<
0
)
dirb
|=
BIT
(
Z_HEAD
);
// ...and Z
if
(
da
<
0
)
dirb
|=
BIT
(
A_AXIS
);
// Motor A direction
if
(
dc
<
0
)
dirb
|=
BIT
(
C_AXIS
);
// Motor B direction
if
(
dx
<
0
)
BITSET
(
dirb
,
X_HEAD
);
// Save the real Extruder (head) direction in X Axis
if
(
dy
<
0
)
BITSET
(
dirb
,
Y_AXIS
);
if
(
dz
<
0
)
BITSET
(
dirb
,
Z_HEAD
);
// ...and Z
if
(
da
<
0
)
BITSET
(
dirb
,
A_AXIS
);
// Motor A direction
if
(
dc
<
0
)
BITSET
(
dirb
,
C_AXIS
);
// Motor B direction
#else
if
(
dx
<
0
)
dirb
|=
BIT
(
X_AXIS
);
if
(
dy
<
0
)
dirb
|=
BIT
(
Y_AXIS
);
if
(
dz
<
0
)
dirb
|=
BIT
(
Z_AXIS
);
if
(
dx
<
0
)
BITSET
(
dirb
,
X_AXIS
);
if
(
dy
<
0
)
BITSET
(
dirb
,
Y_AXIS
);
if
(
dz
<
0
)
BITSET
(
dirb
,
Z_AXIS
);
#endif
if
(
de
<
0
)
dirb
|=
BIT
(
E_AXIS
);
if
(
de
<
0
)
BITSET
(
dirb
,
E_AXIS
);
block
->
direction_bits
=
dirb
;
block
->
active_driver
=
driver
;
...
...
@@ -875,14 +872,14 @@ float junction_deviation = 0.1;
ys1
=
axis_segment_time
[
Y_AXIS
][
1
],
ys2
=
axis_segment_time
[
Y_AXIS
][
2
];
if
(
(
direction_change
&
BIT
(
X_AXIS
))
!=
0
)
{
if
(
TEST
(
direction_change
,
X_AXIS
)
)
{
xs2
=
axis_segment_time
[
X_AXIS
][
2
]
=
xs1
;
xs1
=
axis_segment_time
[
X_AXIS
][
1
]
=
xs0
;
xs0
=
0
;
}
xs0
=
axis_segment_time
[
X_AXIS
][
0
]
=
xs0
+
segment_time
;
if
(
(
direction_change
&
BIT
(
Y_AXIS
))
!=
0
)
{
if
(
TEST
(
direction_change
,
Y_AXIS
)
)
{
ys2
=
axis_segment_time
[
Y_AXIS
][
2
]
=
axis_segment_time
[
Y_AXIS
][
1
];
ys1
=
axis_segment_time
[
Y_AXIS
][
1
]
=
axis_segment_time
[
Y_AXIS
][
0
];
ys0
=
0
;
...
...
@@ -1058,7 +1055,7 @@ float junction_deviation = 0.1;
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
vector_3
plan_get_position
()
{
vector_3
position
=
vector_3
(
st_get_
position_mm
(
X_AXIS
),
st_get_position_mm
(
Y_AXIS
),
st_get
_position_mm
(
Z_AXIS
));
vector_3
position
=
vector_3
(
st_get_
axis_position_mm
(
X_AXIS
),
st_get_axis_position_mm
(
Y_AXIS
),
st_get_axis
_position_mm
(
Z_AXIS
));
//position.debug("in plan_get position");
//plan_bed_level_matrix.debug("in plan_get_position");
...
...
@@ -1076,21 +1073,21 @@ float junction_deviation = 0.1;
#else
void
plan_set_position
(
const
float
&
x
,
const
float
&
y
,
const
float
&
z
,
const
float
&
e
)
#endif // AUTO_BED_LEVELING_FEATURE
{
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
apply_rotation_xyz
(
plan_bed_level_matrix
,
x
,
y
,
z
);
#endif
{
#if ENABLED(AUTO_BED_LEVELING_FEATURE)
apply_rotation_xyz
(
plan_bed_level_matrix
,
x
,
y
,
z
);
#endif
long
nx
=
position
[
X_AXIS
]
=
lround
(
x
*
axis_steps_per_unit
[
X_AXIS
]),
ny
=
position
[
Y_AXIS
]
=
lround
(
y
*
axis_steps_per_unit
[
Y_AXIS
]),
nz
=
position
[
Z_AXIS
]
=
lround
(
z
*
axis_steps_per_unit
[
Z_AXIS
]),
ne
=
position
[
E_AXIS
]
=
lround
(
e
*
axis_steps_per_unit
[
E_AXIS
+
active_extruder
]);
last_extruder
=
active_extruder
;
st_set_position
(
nx
,
ny
,
nz
,
ne
);
previous_nominal_speed
=
0.0
;
// Resets planner junction speeds. Assumes start from rest.
long
nx
=
position
[
X_AXIS
]
=
lround
(
x
*
axis_steps_per_unit
[
X_AXIS
]),
ny
=
position
[
Y_AXIS
]
=
lround
(
y
*
axis_steps_per_unit
[
Y_AXIS
]),
nz
=
position
[
Z_AXIS
]
=
lround
(
z
*
axis_steps_per_unit
[
Z_AXIS
]),
ne
=
position
[
E_AXIS
]
=
lround
(
e
*
axis_steps_per_unit
[
E_AXIS
+
active_extruder
]);
last_extruder
=
active_extruder
;
st_set_position
(
nx
,
ny
,
nz
,
ne
);
previous_nominal_speed
=
0.0
;
// Resets planner junction speeds. Assumes start from rest.
for
(
in
t
i
=
0
;
i
<
NUM_AXIS
;
i
++
)
previous_speed
[
i
]
=
0.0
;
}
for
(
uint8_
t
i
=
0
;
i
<
NUM_AXIS
;
i
++
)
previous_speed
[
i
]
=
0.0
;
}
void
plan_set_e_position
(
const
float
&
e
)
{
position
[
E_AXIS
]
=
lround
(
e
*
axis_steps_per_unit
[
E_AXIS
+
active_extruder
]);
...
...
@@ -1100,6 +1097,6 @@ void plan_set_e_position(const float& e) {
// Calculate the steps/s^2 acceleration rates, based on the mm/s^s
void
reset_acceleration_rates
()
{
for
(
in
t
i
=
0
;
i
<
3
+
EXTRUDERS
;
i
++
)
for
(
uint8_
t
i
=
0
;
i
<
3
+
EXTRUDERS
;
i
++
)
axis_steps_per_sqr_second
[
i
]
=
max_acceleration_units_per_sq_second
[
i
]
*
axis_steps_per_unit
[
i
];
}
This diff is collapsed.
Click to expand it.
MK/module/motion/stepper.cpp
View file @
14af5afb
This diff is collapsed.
Click to expand it.
MK/module/motion/stepper.h
View file @
14af5afb
...
...
@@ -117,12 +117,12 @@ void st_set_e_position(const long &e);
long
st_get_position
(
uint8_t
axis
);
// Get current position in mm
float
st_get_position_mm
(
AxisEnum
axis
);
float
st_get_
axis_
position_mm
(
AxisEnum
axis
);
// The stepper subsystem goes to sleep when it runs out of things to execute. Call this
// to notify the subsystem that it is time to go to work.
void
st_wake_up
();
void
checkHitEndstops
();
//call from somewhere to create an serial error message with the locations the endstops where hit, in case they were triggered
void
endstops_hit_on_purpose
();
//avoid creation of the message, i.e. after homing and before a routine call of checkHitEndstops();
...
...
This diff is collapsed.
Click to expand it.
MK/module/temperature/temperature.cpp
View file @
14af5afb
...
...
@@ -1006,9 +1006,9 @@ void tp_init() {
#endif // HEATER_0_USES_MAX6675
#ifdef DIDR2
#define ANALOG_SELECT(pin) do{ if (pin < 8)
DIDR0 |= BIT(pin); else DIDR2 |= BIT(
pin - 8); }while(0)
#define ANALOG_SELECT(pin) do{ if (pin < 8)
BITSET(DIDR0, pin); else BITSET(DIDR2,
pin - 8); }while(0)
#else
#define ANALOG_SELECT(pin) do{
DIDR0 |= BIT(
pin); }while(0)
#define ANALOG_SELECT(pin) do{
BITSET(DIDR0,
pin); }while(0)
#endif
// Set analog inputs
...
...
@@ -1084,10 +1084,10 @@ void tp_init() {
// Use timer0 for temperature measurement
// Interleave temperature interrupt with millies interrupt
OCR0B
=
128
;
TIMSK0
|=
BIT
(
OCIE0B
);
BITSET
(
TIMSK0
,
OCIE0B
);
// Wait for temperature measurement to settle
delay
_ms
(
250
);
delay
(
250
);
#define TEMP_MIN_ROUTINE(NR) \
minttemp[NR] = HEATER_ ## NR ## _MINTEMP; \
...
...
@@ -1279,9 +1279,9 @@ void disable_all_heaters() {
max6675_temp
=
0
;
#ifdef PRR
PRR
&=
~
BIT
(
PRSPI
);
BITCLR
(
PRR
,
PRSPI
);
#elif defined(PRR0)
PRR0
&=
~
BIT
(
PRSPI
);
BITCLR
(
PRR0
,
PRSPI
);
#endif
SPCR
=
BIT
(
MSTR
)
|
BIT
(
SPE
)
|
BIT
(
SPR0
);
...
...
@@ -1295,13 +1295,13 @@ void disable_all_heaters() {
// read MSB
SPDR
=
0
;
for
(;
(
SPSR
&
BIT
(
SPIF
))
==
0
;);
for
(;
!
TEST
(
SPSR
,
SPIF
)
;);
max6675_temp
=
SPDR
;
max6675_temp
<<=
8
;
// read LSB
SPDR
=
0
;
for
(;
(
SPSR
&
BIT
(
SPIF
))
==
0
;);
for
(;
!
TEST
(
SPSR
,
SPIF
)
;);
max6675_temp
|=
SPDR
;
// disable TT_MAX6675
...
...
@@ -1649,7 +1649,7 @@ ISR(TIMER0_COMPB_vect) {
#endif // SLOW_PWM_HEATERS
#define SET_ADMUX_ADCSRA(pin) ADMUX = BIT(REFS0) | (pin & 0x07);
ADCSRA |= BIT(
ADSC)
#define SET_ADMUX_ADCSRA(pin) ADMUX = BIT(REFS0) | (pin & 0x07);
BITSET(ADCSRA,
ADSC)
#ifdef MUX5
#define START_ADC(pin) if (pin > 7) ADCSRB = BIT(MUX5); else ADCSRB = 0; SET_ADMUX_ADCSRA(pin)
#else
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment