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
Feb 24, 2016
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
/*****************************************************************************************/
...
...
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
...
...
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)
...
...
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
...
...
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: "
...
...
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
);
}
...
...
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
);
...
...
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
];
}
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();
...
...
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
...
...
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