Skip to content
This repository has been archived by the owner on Aug 27, 2023. It is now read-only.

Commit

Permalink
ARM, AVR: support inverted heater pin signals.
Browse files Browse the repository at this point in the history
Implemented and tested for both platforms. This is quite a big
commit. Unlike with the previous changes to now choosable PWM
frequencies, all board configuration files and Configtool had
to be changed immediately to deal with the additional parameter
in DEFINE_HEATER() and keep AVR builds working (and regression
tests passing).
  • Loading branch information
Traumflug committed Aug 13, 2015
1 parent a1ef39f commit be6ca4c
Show file tree
Hide file tree
Showing 27 changed files with 218 additions and 83 deletions.
11 changes: 7 additions & 4 deletions config/board.3drag.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO14, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -220,10 +223,10 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO14, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO10, 1)
DEFINE_HEATER(bed, DIO9, 1)
DEFINE_HEATER(fan, DIO8, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO10, 0, 1)
DEFINE_HEATER(bed, DIO9, 0, 1)
DEFINE_HEATER(fan, DIO8, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
7 changes: 5 additions & 2 deletions config/board.cnc-shield-v3.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,9 @@ DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, AIO3, THERMISTOR_EXTRUDER)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -220,8 +223,8 @@ DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, AIO3, THERMISTOR_EXTRUDER)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, AIO2, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, AIO2, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
//DEFINE_HEATERS_END
Expand Down
5 changes: 4 additions & 1 deletion config/board.gen3.h
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,9 @@ DEFINE_TEMP_SENSOR(noheater, TT_INTERCOM, AIO0, 0)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -213,7 +216,7 @@ DEFINE_TEMP_SENSOR(noheater, TT_INTERCOM, AIO0, 0)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
// name pin invert pwm

//DEFINE_HEATERS_END

Expand Down
7 changes: 5 additions & 2 deletions config/board.gen6.h
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,9 @@ DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, AIO5, THERMISTOR_EXTRUDER)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -215,8 +218,8 @@ DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, AIO5, THERMISTOR_EXTRUDER)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO6, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO6, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
//DEFINE_HEATERS_END
Expand Down
13 changes: 8 additions & 5 deletions config/board.gen7-arm.h
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@
//DEFINE_TEMP_SENSORS_START
// name type pin additional
DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, PIO1_0,THERMISTOR_EXTRUDER)
//DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, PIO1_1,THERMISTOR_BED)
DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, PIO1_1,THERMISTOR_BED)

// Beta algorithm r0 beta r2 vadc
// Steinhart-Hart rp t0 r0 t1 r1 t2 r2
Expand Down Expand Up @@ -210,6 +210,9 @@ DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, PIO1_0,THERMISTOR_EXTRUDER)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
frequency in Hertz (Hz) on ARM based controllers to set PWM frequency of
this pin's output. Frequency isn't always accurate, Teacup
Expand All @@ -228,12 +231,12 @@ DEFINE_TEMP_SENSOR(extruder, TT_THERMISTOR, PIO1_0,THERMISTOR_EXTRUDER)
Pins which don't allow PWM are always operated in on/off mode.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, PIO0_10, 20000)
//DEFINE_HEATER(bed, PIO0_11, 10)
// name pin invert pwm
DEFINE_HEATER(extruder, PIO0_10, 0, 20000)
DEFINE_HEATER(bed, PIO0_11, 1, 10)

#define HEATER_EXTRUDER HEATER_extruder
//#define HEATER_BED HEATER_bed
#define HEATER_BED HEATER_bed
//DEFINE_HEATERS_END


Expand Down
9 changes: 6 additions & 3 deletions config/board.gen7-v1.1-v1.3.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO2, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -224,9 +227,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO2, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO4, 1)
DEFINE_HEATER(bed, DIO3, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO4, 0, 1)
DEFINE_HEATER(bed, DIO3, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
9 changes: 6 additions & 3 deletions config/board.gen7-v1.4.h
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO0, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -225,9 +228,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO0, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO4, 1)
DEFINE_HEATER(bed, DIO3, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO4, 0, 1)
DEFINE_HEATER(bed, DIO3, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
9 changes: 6 additions & 3 deletions config/board.nanoheart-v1.0.h
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO7, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -222,9 +225,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO7, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO11, 1)
DEFINE_HEATER(bed, DIO3, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO11, 0, 1)
DEFINE_HEATER(bed, DIO3, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
11 changes: 7 additions & 4 deletions config/board.ramps-v1.2.h
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO1, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -221,10 +224,10 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO1, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO10, 1)
DEFINE_HEATER(bed, DIO8, 1)
DEFINE_HEATER(fan, DIO9, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO10, 0, 1)
DEFINE_HEATER(bed, DIO8, 0, 1)
DEFINE_HEATER(fan, DIO9, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
11 changes: 7 additions & 4 deletions config/board.ramps-v1.3.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO14, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -224,10 +227,10 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO14, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO10, 1)
DEFINE_HEATER(bed, DIO8, 1)
DEFINE_HEATER(fan, DIO9, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO10, 0, 1)
DEFINE_HEATER(bed, DIO8, 0, 1)
DEFINE_HEATER(fan, DIO9, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
11 changes: 7 additions & 4 deletions config/board.rumba.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,6 +215,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO11, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -224,10 +227,10 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO11, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO2, 1)
DEFINE_HEATER(bed, DIO9, 1)
DEFINE_HEATER(fan, DIO8, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO2, 0, 1)
DEFINE_HEATER(bed, DIO9, 0, 1)
DEFINE_HEATER(fan, DIO8, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
9 changes: 6 additions & 3 deletions config/board.sanguinololu-v1.1.h
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO6, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -222,9 +225,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO6, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO13, 1)
DEFINE_HEATER(bed, DIO14, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO13, 0, 1)
DEFINE_HEATER(bed, DIO14, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
9 changes: 6 additions & 3 deletions config/board.sanguinololu-v1.2.h
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO6, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -222,9 +225,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO6, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO12, 1)
DEFINE_HEATER(bed, DIO13, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO12, 0, 1)
DEFINE_HEATER(bed, DIO13, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
9 changes: 6 additions & 3 deletions config/board.sanguish.h
Original file line number Diff line number Diff line change
Expand Up @@ -213,6 +213,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO0, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -222,9 +225,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO0, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO3, 1)
DEFINE_HEATER(bed, DIO4, 1)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO3, 0, 1)
DEFINE_HEATER(bed, DIO4, 0, 1)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
11 changes: 7 additions & 4 deletions config/board.teensy++-v2.0.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO6, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -220,10 +223,10 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO6, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO15, 1)
DEFINE_HEATER(bed, DIO14, 1)
DEFINE_HEATER(fan, DIO16, 0)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO15, 0, 1)
DEFINE_HEATER(bed, DIO14, 0, 1)
DEFINE_HEATER(fan, DIO16, 0, 0)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
11 changes: 7 additions & 4 deletions config/board.teensy-v2.0.h
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,9 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO0, THERMISTOR_BED)
are defined or the order of the definitions differs. The first defined
device has the index 0 (zero).
Set 'invert' to 0 for normal heaters. Setting it to 1 inverts the pin signal
for this pin, e.g. for a MOSFET with a driver.
Set 'pwm' to ...
1 for using PWM on a PWM-able pin and on/off on other pins.
0 for using on/off on a PWM-able pin, too.
Expand All @@ -220,10 +223,10 @@ DEFINE_TEMP_SENSOR(bed, TT_THERMISTOR, AIO0, THERMISTOR_BED)
influenced globally with FAST_PWM, see below.
*/
//DEFINE_HEATERS_START
// name port pwm
DEFINE_HEATER(extruder, DIO10, 1)
DEFINE_HEATER(bed, DIO9, 1)
DEFINE_HEATER(fan, DIO8, 0)
// name pin invert pwm
DEFINE_HEATER(extruder, DIO10, 0, 1)
DEFINE_HEATER(bed, DIO9, 0, 1)
DEFINE_HEATER(fan, DIO8, 0, 0)

#define HEATER_EXTRUDER HEATER_extruder
#define HEATER_BED HEATER_bed
Expand Down
Loading

0 comments on commit be6ca4c

Please sign in to comment.