mirror of https://github.com/arendst/Tasmota.git
Change A4988 optional microstep pin selection
This commit is contained in:
parent
330109d67c
commit
d07fa4b492
|
@ -65,5 +65,6 @@ The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota
|
|||
- Change redesigning ESP8266 GPIO internal representation in line with ESP32
|
||||
- Change new IR Raw compact format (#9444)
|
||||
- Change MAX31865 driver to support up to 6 thermocouples selected by ``MX31865 CS`` instead of ``SSPI CS`` (#9103)
|
||||
- Change A4988 optional microstep pin selection
|
||||
- Add optional support for Mitsubishi Electric HVAC by David Gwynne (#9237)
|
||||
- Add optional support for Orno WE517-Modbus energy meter by Maxime Vincent (#9353)
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
- Change redesigning ESP8266 GPIO internal representation in line with ESP32
|
||||
- Change new IR Raw compact format (#9444)
|
||||
- Change MAX31865 driver to support up to 6 thermocouples selected by ``MX31865 CS`` instead of ``SSPI CS`` (#9103)
|
||||
- Change A4988 optional microstep pin selection
|
||||
- Add optional support for Mitsubishi Electric HVAC by David Gwynne (#9237)
|
||||
- Add optional support for Orno WE517-Modbus energy meter by Maxime Vincent (#9353)
|
||||
|
||||
|
|
|
@ -100,8 +100,9 @@ enum UserSelectablePins {
|
|||
GPIO_ZIGBEE_TX, GPIO_ZIGBEE_RX, // Zigbee Serial interface
|
||||
GPIO_RDM6300_RX, // RDM6300 RX
|
||||
GPIO_IBEACON_TX, GPIO_IBEACON_RX, // HM17 IBEACON Serial interface
|
||||
GPIO_A4988_DIR, GPIO_A4988_STP, GPIO_A4988_ENA, // A4988 interface
|
||||
GPIO_A4988_MS1, GPIO_A4988_MS2, GPIO_A4988_MS3, // A4988 microstep
|
||||
GPIO_A4988_DIR, GPIO_A4988_STP, GPIO_A4988_ENA, GPIO_A4988_MS1, // A4988 interface
|
||||
GPIO_SPARE1, // Do not use
|
||||
GPIO_SPARE2, // Do not use
|
||||
GPIO_DDS2382_TX, GPIO_DDS2382_RX, // DDS2382 Serial interface
|
||||
GPIO_DDSU666_TX, GPIO_DDSU666_RX, // DDSU666 Serial interface
|
||||
GPIO_SM2135_CLK, GPIO_SM2135_DAT, // SM2135 PWM controller
|
||||
|
@ -212,7 +213,9 @@ const char kSensorNames[] PROGMEM =
|
|||
D_SENSOR_ZIGBEE_TXD "|" D_SENSOR_ZIGBEE_RXD "|"
|
||||
D_SENSOR_RDM6300_RX "|"
|
||||
D_SENSOR_IBEACON_TX "|" D_SENSOR_IBEACON_RX "|"
|
||||
D_SENSOR_A4988_DIR "|" D_SENSOR_A4988_STP "|" D_SENSOR_A4988_ENA "|" D_SENSOR_A4988_MS1 "|" D_SENSOR_A4988_MS2 "|" D_SENSOR_A4988_MS3 "|"
|
||||
D_SENSOR_A4988_DIR "|" D_SENSOR_A4988_STP "|" D_SENSOR_A4988_ENA "|" D_SENSOR_A4988_MS1 "|"
|
||||
"s1|"
|
||||
"s2|"
|
||||
D_SENSOR_DDS2382_TX "|" D_SENSOR_DDS2382_RX "|"
|
||||
D_SENSOR_DDSU666_TX "|" D_SENSOR_DDSU666_RX "|"
|
||||
D_SENSOR_SM2135_CLK "|" D_SENSOR_SM2135_DAT "|"
|
||||
|
@ -261,6 +264,7 @@ const char kSensorNamesFixed[] PROGMEM =
|
|||
D_SENSOR_USER;
|
||||
|
||||
#define MAX_MAX31865S 6
|
||||
#define MAX_A4988_MSS 3
|
||||
#define MAX_WEBCAM_DATA 8
|
||||
#define MAX_WEBCAM_HSD 3
|
||||
|
||||
|
@ -293,10 +297,16 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
#endif
|
||||
AGPIO(GPIO_LEDLNK), // Link led
|
||||
AGPIO(GPIO_LEDLNK_INV), // Inverted link led
|
||||
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* Protocol specifics
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef USE_I2C
|
||||
AGPIO(GPIO_I2C_SCL), // I2C SCL
|
||||
AGPIO(GPIO_I2C_SDA), // I2C SDA
|
||||
#endif
|
||||
|
||||
#ifdef USE_SPI
|
||||
AGPIO(GPIO_SPI_MISO), // SPI MISO
|
||||
AGPIO(GPIO_SPI_MOSI), // SPI MOSI
|
||||
|
@ -320,6 +330,10 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
AGPIO(GPIO_TXD), // Serial interface
|
||||
AGPIO(GPIO_RXD), // Serial interface
|
||||
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* Single wire sensors
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef USE_DHT
|
||||
AGPIO(GPIO_DHT11), // DHT11
|
||||
AGPIO(GPIO_DHT22), // DHT21, DHT22, AM2301, AM2302, AM2321
|
||||
|
@ -334,7 +348,10 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
AGPIO(GPIO_LMT01), // LMT01, count pulses on GPIO
|
||||
#endif
|
||||
|
||||
// Light
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* Light
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef USE_LIGHT
|
||||
#ifdef USE_WS2812
|
||||
AGPIO(GPIO_WS2812), // WS2812 Led string
|
||||
|
@ -368,13 +385,16 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
#endif
|
||||
#endif // USE_LIGHT
|
||||
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* Transmission sensors
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#if defined(USE_IR_REMOTE) || defined(USE_IR_REMOTE_FULL)
|
||||
AGPIO(GPIO_IRSEND), // IR remote
|
||||
#if defined(USE_IR_RECEIVE) || defined(USE_IR_REMOTE_FULL)
|
||||
AGPIO(GPIO_IRRECV), // IR receiver
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef USE_RC_SWITCH
|
||||
AGPIO(GPIO_RFSEND), // RF transmitter
|
||||
AGPIO(GPIO_RFRECV), // RF receiver
|
||||
|
@ -396,7 +416,10 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
AGPIO(GPIO_HX711_DAT), // HX711 Load Cell data
|
||||
#endif
|
||||
|
||||
// Energy sensors
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* Energy sensors
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef USE_ENERGY_SENSOR
|
||||
#ifdef USE_HLW8012
|
||||
AGPIO(GPIO_NRG_SEL), // HLW8012/HLJ-01 Sel output (1 = Voltage)
|
||||
|
@ -466,7 +489,10 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
#endif
|
||||
#endif // USE_ENERGY_SENSOR
|
||||
|
||||
// Serial
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* Serial sensors
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef USE_SERIAL_BRIDGE
|
||||
AGPIO(GPIO_SBR_TX), // Serial Bridge Serial interface
|
||||
AGPIO(GPIO_SBR_RX), // Serial Bridge Serial interface
|
||||
|
@ -543,6 +569,10 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
AGPIO(GPIO_BOILER_OT_RX),
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* Other sensors
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef USE_MGC3130
|
||||
AGPIO(GPIO_MGC3130_XFER),
|
||||
AGPIO(GPIO_MGC3130_RESET),
|
||||
|
@ -561,9 +591,7 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
AGPIO(GPIO_A4988_STP), // A4988 step pin
|
||||
// folowing are not mandatory
|
||||
AGPIO(GPIO_A4988_ENA), // A4988 enabled pin
|
||||
AGPIO(GPIO_A4988_MS1), // A4988 microstep pin1
|
||||
AGPIO(GPIO_A4988_MS2), // A4988 microstep pin2
|
||||
AGPIO(GPIO_A4988_MS3), // A4988 microstep pin3
|
||||
AGPIO(GPIO_A4988_MS1) + MAX_A4988_MSS, // A4988 microstep pin1 to pin3
|
||||
#endif
|
||||
#ifdef USE_DEEPSLEEP
|
||||
AGPIO(GPIO_DEEPSLEEP),
|
||||
|
@ -590,6 +618,10 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
AGPIO(GPIO_MIEL_HVAC_RX), // Mitsubishi Electric HVAC RX pin
|
||||
#endif
|
||||
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* ESP32 specifics
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef ESP32
|
||||
#ifdef USE_WEBCAM
|
||||
AGPIO(GPIO_WEBCAM_PWDN),
|
||||
|
@ -610,6 +642,11 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
AGPIO(GPIO_ETH_PHY_MDC),
|
||||
AGPIO(GPIO_ETH_PHY_MDIO), // Ethernet
|
||||
#endif // USE_ETHERNET
|
||||
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* ESP32 multiple Analog / Digital converter inputs
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
AGPIO(GPIO_ADC_INPUT) + MAX_ADCS, // Analog inputs
|
||||
AGPIO(GPIO_ADC_TEMP) + MAX_ADCS, // Thermistor
|
||||
AGPIO(GPIO_ADC_LIGHT) + MAX_ADCS, // Light sensor
|
||||
|
@ -621,6 +658,10 @@ const uint16_t kGpioNiceList[] PROGMEM = {
|
|||
#endif // ESP32
|
||||
};
|
||||
|
||||
/*-------------------------------------------------------------------------------------------*\
|
||||
* ESP8266 single Analog / Digital converter input
|
||||
\*-------------------------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef ESP8266
|
||||
const uint16_t kAdcNiceList[] PROGMEM = {
|
||||
GPIO_NONE, // Not used
|
||||
|
@ -1151,8 +1192,8 @@ const uint16_t kGpioConvert[] PROGMEM = {
|
|||
AGPIO(GPIO_A4988_STP), // A4988 step pin
|
||||
AGPIO(GPIO_A4988_ENA), // A4988 enabled pin
|
||||
AGPIO(GPIO_A4988_MS1), // A4988 microstep pin1
|
||||
AGPIO(GPIO_A4988_MS2), // A4988 microstep pin2
|
||||
AGPIO(GPIO_A4988_MS3), // A4988 microstep pin3
|
||||
AGPIO(GPIO_A4988_MS1) +1, // A4988 microstep pin2
|
||||
AGPIO(GPIO_A4988_MS1) +2, // A4988 microstep pin3
|
||||
AGPIO(GPIO_DDS2382_TX), // DDS2382 Serial interface
|
||||
AGPIO(GPIO_DDS2382_RX), // DDS2382 Serial interface
|
||||
AGPIO(GPIO_DDSU666_TX), // DDSU666 Serial interface
|
||||
|
|
|
@ -45,8 +45,8 @@ void A4988Init(void)
|
|||
A4988_stp_pin = Pin(GPIO_A4988_STP);
|
||||
A4988_ena_pin = Pin(GPIO_A4988_ENA);
|
||||
A4988_ms1_pin = Pin(GPIO_A4988_MS1);
|
||||
A4988_ms2_pin = Pin(GPIO_A4988_MS2);
|
||||
A4988_ms3_pin = Pin(GPIO_A4988_MS3);
|
||||
A4988_ms2_pin = Pin(GPIO_A4988_MS1, 1);
|
||||
A4988_ms3_pin = Pin(GPIO_A4988_MS1, 2);
|
||||
A4988_spr = 200;
|
||||
A4988_rpm = 30;
|
||||
A4988_mis = 1;
|
||||
|
@ -93,7 +93,7 @@ void CmndDoTurn(void) {
|
|||
}
|
||||
|
||||
void CmndSetMIS(void) {
|
||||
if (PinUsed(GPIO_A4988_MS1) && PinUsed(GPIO_A4988_MS2) && PinUsed(GPIO_A4988_MS3) && (XdrvMailbox.data_len > 0)) {
|
||||
if (PinUsed(GPIO_A4988_MS1) && PinUsed(GPIO_A4988_MS1, 1) && PinUsed(GPIO_A4988_MS1, 2) && (XdrvMailbox.data_len > 0)) {
|
||||
short newMIS = strtoul(XdrvMailbox.data,nullptr,10);
|
||||
myA4988->setMIS(newMIS);
|
||||
ResponseCmndDone();
|
||||
|
|
Loading…
Reference in New Issue