Giter Club home page Giter Club logo

mobatools's People

Contributors

gus-anton-sperling avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mobatools's Issues

MoBaTools and older AVR processors?

Dear Franz-Peter

First thanks for this great library.
I not only use it for the default Atmel processors, but also for some older ones (on private boards), such as the ATmega8535, ATmega16 and ATmega32. Unfortunately, it doesn't immediately compile for such processors, due to a different naming scheme for registers, bits and vectors. However, this can easily be fixed, by adding some #defines.

What exactly has to be added, is described at: [https://github.com/MCUdude/MightyCore/blob/master/Library_porting.md]. Until now I have been adding this myself to the MoBaTools.h, and it works. However, after each library update I have to re-add these #defines.

Would it therefore be possible to add these #defines (or just the subset needed by MoBaTools) to the master library?

Thanks

Aiko

Need help regarding setSpeed and setSpeedSteps

Hi!

It is a bit unclear to me when or how to use setSpeed or setSpeedSteps. If I look at the Stepper_Reference.ino example, both commands are used, but I cannot figure out why or how one or the other.

From the documentation I know that setSpeed is RPM*10, and setSpeedSteps is steps/10sec, but I somehow don't understand the relation between those two or simply am not able to translate one to the other.

The only thing I noticed is that at some point setSpeed does not allow me to raise the speed anymore so I think I would have to use setSpeedStepsin this regard.

As example:
My test environment uses a stepper and driver with a resolution of 1600 steps per rev. Now, if I want the stepper to go 60 rpm, what would I have to do? And what if I want to go 120 rpm later? Simply setting setSpeed to the desired value did not work as I expected... the problem is me, I know, but....

Please, could you clarify it for me a bit more in depth?

Many thanks in advance, regards,
Holger

Stepper does not do exact degrees

  • I am using Arduino Uno R4 Wi-Fi, connected via TMC2208 to a 200-step Nema17 motor. The application is a telecine, I need to advance the film exactly one frame per exposure of the camera, so I tried to use the myStepper.write(30) command to rotate the sprocket (which has 12 teeth) by one frame. However it actually loses about 1° per 360° of rotation, so after a few minutes the frames will be completely out of sync.
  • I set the steps per rev to 1600 as that is what gives approximately 30° even though the nominal step count of the motor is 200, perhaps the driver is doing micro stepping by itself.
  • I have tried reducing the speed in case it is missing steps, but that seems to make no difference. How should I be doing this?
Screenshot 2024-02-19 at 17 15 28

Question about timers and functionality

Hi, first of all I would like to say thank you for the awesome library!

My question is that I want to make a program that manages tasks.
One task contains one or more motors. Each motor has a different speed and number of steps they have to take.
There can be many such tasks (20-30) and the maximum number of motors in a task can be 6.
When the task is executed, the motors that are set in the task must pass their set steps with their own speed, when all the motors in the task have completed his work - it is necessary to switch to the next task.
Is it possible to perform this behavior with MobaTools and will 6 motors start working at the same time without losing steps?

Is it possible to use more than 6 MoToSteppers (not at the same time)?

My Setup:

  • ESP32 WiFi + BT 4.2 | ESP32-DevKit
  • 6x NEMA 23 2.8A 1.89Nm
  • 6x 5.6A DC 24-50V 57/86 2 Phase Stepping Driver DM556
  • ESP32 is powered with 5v

I would also like to ask about timers working with MoToStepper. This my test code does not work (the motor spins endlessly, and if you output timer.getRemain() in loop method, it will output the time once or several times and that's it, while in SerialMonitor there are no errors), could you help ?

#include <MobaTools.h>

#define STEPS_PER_REVOLUTION 32
#define PUL_PIN_1 16
#define DIR_PIN_1 17

const int stepsPerRevolution = 200; 

MoToStepper Stepper1(stepsPerRevolution * STEPS_PER_REVOLUTION, STEPDIR);
MoToTimer timer;


void setup() 
{
  Serial.begin(9600);
  Stepper1.attach(PUL_PIN_1, DIR_PIN_1);

  timer.setTime((long)400);
  Stepper1.rotate(1);
}

void loop() 
{
  if(!timer.running())
  {
    Stepper1.stop();
  }
}

FR: Control the stepper enable pin manually in the code rather than relying on a delay

Hi MicroBahner,

First of all, Thank you for this great library !

In my application the stepper motors have some weight on when moving, so I need to control the enable pin to ensure they stay where they are at certain times and also that they are disabled by the code when needed.

I looked at the documentation and could not find a way to do this other than setting a delay in stepper.attachEnable().

I there a way to do this or will it require implementation ?

Kind regards,
Rafik

"function __vector_11" Problems

Hello! I am trying to make a code simulation in Wokwi, and when I attempt to run my code it gives me a build error with the following text:

MoToServo.cpp.o (symbol from plugin): In function __vector_11': (.text+0x0): multiple definition of __vector_11'
/libraries/Servo/avr/Servo.cpp.o (symbol from plugin):(.text+0x0): first defined here
collect2: error: ld returned 1 exit status

Error during build: exit status 1

I have absolutely no clue what this means, or how to solve it. Is there a fix or some way to solve it? I'll attach all my code below here and a screenshot of what the error looks like. Thank you in advance for any help.

Screenshot 2024-01-29 09 22 55

#include <Servo.h>
#include <MobaTools.h>

const int trigPin = 9;
const int echoPin = 10;
long duration;
int distance;
MoToServo myservo;
void setup() {
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT); 
  Serial.begin(9600); 
  myservo.attach(3); 
  myservo.setSpeed(100); 
  
}

void ultrasonic() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration * 0.034 / 2;
  Serial.print("Distance: ");
  Serial.println(distance);
}

void loop() {
    ultrasonic();
    if(distance <= 200)
    myservo.write(random(0, 180));
    delay(300);

    
}

https://wokwi.com/projects/387831943535863809
(Sorry for all the edits, I'm failing to format code)

AltSoftserial

My Project does not compiler when using mobatools and AltSoftserial together. Both seem to have a variable called vector _12. Is there a possibility to solve this Problem?

Compiler warning

Hallo Franz-Peter

While compiling with all warnings on, I get the following compiler warning:

... MoToServo.cpp:314:14: note: in expansion of macro 'constrain'
... warning: comparison between signed and unsigned integer expressions

As far as I know, the cause is that the compiler selects an unsigned type for MINPULSEWIDTH and MAXPULSEWIDTH, whereas the type of _minPw and _maxPw is uint16_t.
The warning can easily be avoided by adding the uint16_t to the #defines in MobaTools.h.
For example (for the AVR and STM32 case):

#define MINPULSEWIDTH   700     // don't make it shorter than 700
#define MAXPULSEWIDTH   2300    // don't make it longer than 2300

should be changed into:

#define MINPULSEWIDTH   ((uint16_t)700)     // don't make it shorter than 700
#define MAXPULSEWIDTH   ((uint16_t)2300)    // don't make it longer than 2300

I know this is a minor thing, but I always try to avoid red lines in the compiler output ;-)

Servo Speedcontrol not working after detaching/attaching Servo

When a Servo is attached only once and not detached during program, speed control works really well.
But when this Servo is detached (using detach()) and then attached again (using attach(pin)), calling setSpeed() does not work anymore. Servo moves immeadiatly to target position using write(angle).

Wish, it could run on Teensy 3.5 or 4.1

Hello Franz-Peter,
i wish this absolut "Geile" Lib would run on Teensys.
I am building a Boeing B738 Homecockpit, and use >10 Teensys 3.5 and 4.1 in the Setup.
As far as i can read your Manual, this could be the absolute best Lib for my Purposes.
May be, you have the Time to implement those Teensys.

merry Christmas

Gerhard

Migration related issues Espressif ESP32 updated from 2.X to 3.0

Thank you for your awesome library.

Arduino Espressif ESP32 recently updated from 2.X to 3.0, and several timer functions have been simplified. As a result the MobaTools for ESP32 fails to compile. I patched several timer functions and the Servo01 example now compiles, but problems might arise elsewhere. My testing was done using an DOIT ESP32 DEVKIT V1.

The new timer functions are documented here

All 3.0.0 version migration related issues are discussed here if you would like to look at them.

I could do a PR, but I suspect there will be implications that I might miss.

Thank again for this amazing library.

How to Change PWM direction ?

Great work! it passed on arduino NANO to drive a 5V SERVO!
I used mobaTools on ESP8266 to driving a 12V SERVO, but After the output pin passes through an NPN triode, the PWM Waveform inversion. I don't want to change the hardware now.
HOW to set the output pin pwm status High to Low , Low to High?
thanks very much for you work.

Simple typo in MoToBase.h

There is a small typo in MoToBase.h.
It tries to include <MotoDbg.h>, which should be <MoToDbg.h> with an upper case T.

Kleiner Schreibfehler in der Datei MoToBase.h.
Die Include-Anweisung für <MotoDbg.h> muss <MoToDbg.h> lauten. Also mit einem großen T.

Stepper movement only works if I have some serial.Print commands running in the code

The stepper.moveTo() commands reliably as long as I have serial commands running in the loop(). If I remove all serial.Print commands or edited out the serial.Begin() line in setup() the steppers motors don't run correctly anymore. One of three motors randomly will get stuck running and continue running past any software limits I've put in the code.

Attached is the current code with the some serial.Print commands left in:

RemoteArm_Smooth.txt

and here's a video demonstrating the behavior: yotube.

I tried adding a delay(1); without any serial.Print commands, and that didn't fix it.

MoToTimer.h

As opposed to MoBaTools.h and MoToButtons.h, MoToTimer.h doesn't (yet) have a guarding
#ifndef MOTOTIMER_H
#define MOTOTIMER_H
#endif

Small issue, but would be nice if it can be included

Error message with Heltec esp32 Wifi Kit

I use the Mobatools on different Arduino and ESP32 platforms. Now I wanted to make a project wth an ESP32 Wifi Board.

I use the Mobatools on different Arduino and ESP32 platforms. Now I wanted to make a project with an EHeltec esp32 Wifi Kit. I copied the whole error message list I hope you can work with it. If necessary I can also send you a board for testing.

In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from C:\Users\xxxx\AppData\Local\Temp\.arduinoIDE-unsaved2023028-2740-16plkyv.94fu\Treppenlicht\Treppenlicht.ino:21:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:28: warning: "FSPI" redefined
 #define FSPI  1 //SPI bus attached to the flash (can use the same data lines but different SS)
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from C:\Users\xxxx\AppData\Local\Temp\arduino-sketch-24AC3701DBFD0EE6AB5E5F4CDBA15E94\sketch\Treppenlicht.ino.cpp:1:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:29: note: this is the location of the previous definition
 #define FSPI  0
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from C:\Users\xxxx\AppData\Local\Temp\.arduinoIDE-unsaved2023028-2740-16plkyv.94fu\Treppenlicht\Treppenlicht.ino:21:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:29: warning: "HSPI" redefined
 #define HSPI  2 //SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from C:\Users\xxxx\AppData\Local\Temp\arduino-sketch-24AC3701DBFD0EE6AB5E5F4CDBA15E94\sketch\Treppenlicht.ino.cpp:1:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:30: note: this is the location of the previous definition
 #define HSPI  1
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:5:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.h:28: warning: "FSPI" redefined
 #define FSPI  1 //SPI bus attached to the flash (can use the same data lines but different SS)
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:4:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:29: note: this is the location of the previous definition
 #define FSPI  0
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:5:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.h:29: warning: "HSPI" redefined
 #define HSPI  2 //SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:4:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:30: note: this is the location of the previous definition
 #define HSPI  1
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:17:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:29: warning: "FSPI" redefined
 #define FSPI  0
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:16:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.h:28: note: this is the location of the previous definition
 #define FSPI  1 //SPI bus attached to the flash (can use the same data lines but different SS)
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:17:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:30: warning: "HSPI" redefined
 #define HSPI  1
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:16:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.h:29: note: this is the location of the previous definition
 #define HSPI  2 //SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:23:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/esp_hw_support/include/esp_intr.h:8:2: warning: #warning esp_intr.h is deprecated, please include esp_intr_alloc.h instead [-Wcpp]
 #warning esp_intr.h is deprecated, please include esp_intr_alloc.h instead
  ^~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c: In function 'spiAttachSCKMoTo':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:32:79: error: 'HSPICLK_OUT_IDX' undeclared (first use in this function); did you mean 'FSPICLK_OUT_IDX'?
 #define SPI_CLK_IDX(p)  ((p==0)?SPICLK_OUT_IDX:((p==1)?SPICLK_OUT_IDX:((p==2)?HSPICLK_OUT_IDX:((p==3)?VSPICLK_OUT_IDX:0))))
                                                                               ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:163:29: note: in expansion of macro 'SPI_CLK_IDX'
     pinMatrixOutAttach(sck, SPI_CLK_IDX(spi->num), false, false);
                             ^~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:32:79: note: each undeclared identifier is reported only once for each function it appears in
 #define SPI_CLK_IDX(p)  ((p==0)?SPICLK_OUT_IDX:((p==1)?SPICLK_OUT_IDX:((p==2)?HSPICLK_OUT_IDX:((p==3)?VSPICLK_OUT_IDX:0))))
                                                                               ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:163:29: note: in expansion of macro 'SPI_CLK_IDX'
     pinMatrixOutAttach(sck, SPI_CLK_IDX(spi->num), false, false);
                             ^~~~~~~~~~~
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_reg.h:21,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:107:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c: In function '_initLedcHw':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:166:34: error: 'DPORT_PERIP_CLK_EN_REG' undeclared (first use in this function); did you mean 'SYSTEM_PERIP_CLK_EN1_REG'?
     if(!(DPORT_GET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_LEDC_CLK_EN)) ||
                                  ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:74:61: note: in definition of macro '_DPORT_READ_PERI_REG'
 #define _DPORT_READ_PERI_REG(addr) (*((volatile uint32_t *)(addr)))
                                                             ^~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:91:47: note: in expansion of macro 'DPORT_READ_PERI_REG'
 #define DPORT_GET_PERI_REG_MASK(reg, mask)   (DPORT_READ_PERI_REG(reg) & (mask))
                                               ^~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:166:10: note: in expansion of macro 'DPORT_GET_PERI_REG_MASK'
     if(!(DPORT_GET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_LEDC_CLK_EN)) ||
          ^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:166:34: note: each undeclared identifier is reported only once for each function it appears in
     if(!(DPORT_GET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_LEDC_CLK_EN)) ||
                                  ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:74:61: note: in definition of macro '_DPORT_READ_PERI_REG'
 #define _DPORT_READ_PERI_REG(addr) (*((volatile uint32_t *)(addr)))
                                                             ^~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:91:47: note: in expansion of macro 'DPORT_READ_PERI_REG'
 #define DPORT_GET_PERI_REG_MASK(reg, mask)   (DPORT_READ_PERI_REG(reg) & (mask))
                                               ^~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:166:10: note: in expansion of macro 'DPORT_GET_PERI_REG_MASK'
     if(!(DPORT_GET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_LEDC_CLK_EN)) ||
          ^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:32:103: error: 'VSPICLK_OUT_IDX' undeclared (first use in this function); did you mean 'FSPICLK_OUT_IDX'?
 #define SPI_CLK_IDX(p)  ((p==0)?SPICLK_OUT_IDX:((p==1)?SPICLK_OUT_IDX:((p==2)?HSPICLK_OUT_IDX:((p==3)?VSPICLK_OUT_IDX:0))))
                                                                                                       ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:163:29: note: in expansion of macro 'SPI_CLK_IDX'
     pinMatrixOutAttach(sck, SPI_CLK_IDX(spi->num), false, false);
                             ^~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c: In function 'spiAttachMOSIMoTo':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:34:73: error: 'HSPID_IN_IDX' undeclared (first use in this function); did you mean 'SPID_IN_IDX'?
 #define SPI_MOSI_IDX(p) ((p==0)?SPID_IN_IDX:((p==1)?SPID_IN_IDX:((p==2)?HSPID_IN_IDX:((p==3)?VSPID_IN_IDX:0))))
                                                                         ^~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:182:30: note: in expansion of macro 'SPI_MOSI_IDX'
     pinMatrixOutAttach(mosi, SPI_MOSI_IDX(spi->num), false, false);
                              ^~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:34:94: error: 'VSPID_IN_IDX' undeclared (first use in this function); did you mean 'SPID_IN_IDX'?
 #define SPI_MOSI_IDX(p) ((p==0)?SPID_IN_IDX:((p==1)?SPID_IN_IDX:((p==2)?HSPID_IN_IDX:((p==3)?VSPID_IN_IDX:0))))
                                                                                              ^~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:182:30: note: in expansion of macro 'SPI_MOSI_IDX'
     pinMatrixOutAttach(mosi, SPI_MOSI_IDX(spi->num), false, false);
                              ^~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c: In function '_spiEnableSSPins':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:191:13: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'pin'
     spi->dev->pin.val &= ~(cs_mask & SPI_CS_MASK_ALL);
             ^~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c: In function 'spiAttachSSMoTo':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:36:83: error: 'SPICS2_OUT_IDX' undeclared (first use in this function); did you mean 'SPICS1_OUT_IDX'?
 #define SPI_SPI_SS_IDX(n)   ((n==0)?SPICS0_OUT_IDX:((n==1)?SPICS1_OUT_IDX:((n==2)?SPICS2_OUT_IDX:SPICS0_OUT_IDX)))
                                                                                   ^~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:39:36: note: in expansion of macro 'SPI_SPI_SS_IDX'
 #define SPI_SS_IDX(p, n)   ((p==0)?SPI_SPI_SS_IDX(n):((p==1)?SPI_SPI_SS_IDX(n):((p==2)?SPI_HSPI_SS_IDX(n):((p==3)?SPI_VSPI_SS_IDX(n):0))))
                                    ^~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:215:28: note: in expansion of macro 'SPI_SS_IDX'
     pinMatrixOutAttach(ss, SPI_SS_IDX(spi->num, cs_num), false, false);
                            ^~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:37:38: error: 'HSPICS0_OUT_IDX' undeclared (first use in this function); did you mean 'SPICS0_OUT_IDX'?
 #define SPI_HSPI_SS_IDX(n)   ((n==0)?HSPICS0_OUT_IDX:((n==1)?HSPICS1_OUT_IDX:((n==2)?HSPICS2_OUT_IDX:HSPICS0_OUT_IDX)))
                                      ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:39:88: note: in expansion of macro 'SPI_HSPI_SS_IDX'
 #define SPI_SS_IDX(p, n)   ((p==0)?SPI_SPI_SS_IDX(n):((p==1)?SPI_SPI_SS_IDX(n):((p==2)?SPI_HSPI_SS_IDX(n):((p==3)?SPI_VSPI_SS_IDX(n):0))))
                                                                                        ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:215:28: note: in expansion of macro 'SPI_SS_IDX'
     pinMatrixOutAttach(ss, SPI_SS_IDX(spi->num, cs_num), false, false);
                            ^~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:37:62: error: 'HSPICS1_OUT_IDX' undeclared (first use in this function); did you mean 'SPICS1_OUT_IDX'?
 #define SPI_HSPI_SS_IDX(n)   ((n==0)?HSPICS0_OUT_IDX:((n==1)?HSPICS1_OUT_IDX:((n==2)?HSPICS2_OUT_IDX:HSPICS0_OUT_IDX)))
                                                              ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:39:88: note: in expansion of macro 'SPI_HSPI_SS_IDX'
 #define SPI_SS_IDX(p, n)   ((p==0)?SPI_SPI_SS_IDX(n):((p==1)?SPI_SPI_SS_IDX(n):((p==2)?SPI_HSPI_SS_IDX(n):((p==3)?SPI_VSPI_SS_IDX(n):0))))
                                                                                        ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:215:28: note: in expansion of macro 'SPI_SS_IDX'
     pinMatrixOutAttach(ss, SPI_SS_IDX(spi->num, cs_num), false, false);
                            ^~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:37:86: error: 'HSPICS2_OUT_IDX' undeclared (first use in this function); did you mean 'FSPICS2_OUT_IDX'?
 #define SPI_HSPI_SS_IDX(n)   ((n==0)?HSPICS0_OUT_IDX:((n==1)?HSPICS1_OUT_IDX:((n==2)?HSPICS2_OUT_IDX:HSPICS0_OUT_IDX)))
                                                                                      ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:39:88: note: in expansion of macro 'SPI_HSPI_SS_IDX'
 #define SPI_SS_IDX(p, n)   ((p==0)?SPI_SPI_SS_IDX(n):((p==1)?SPI_SPI_SS_IDX(n):((p==2)?SPI_HSPI_SS_IDX(n):((p==3)?SPI_VSPI_SS_IDX(n):0))))
                                                                                        ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:215:28: note: in expansion of macro 'SPI_SS_IDX'
     pinMatrixOutAttach(ss, SPI_SS_IDX(spi->num, cs_num), false, false);
                            ^~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:38:38: error: 'VSPICS0_OUT_IDX' undeclared (first use in this function); did you mean 'SPICS0_OUT_IDX'?
 #define SPI_VSPI_SS_IDX(n)   ((n==0)?VSPICS0_OUT_IDX:((n==1)?VSPICS1_OUT_IDX:((n==2)?VSPICS2_OUT_IDX:VSPICS0_OUT_IDX)))
                                      ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:39:115: note: in expansion of macro 'SPI_VSPI_SS_IDX'
 #define SPI_SS_IDX(p, n)   ((p==0)?SPI_SPI_SS_IDX(n):((p==1)?SPI_SPI_SS_IDX(n):((p==2)?SPI_HSPI_SS_IDX(n):((p==3)?SPI_VSPI_SS_IDX(n):0))))
                                                                                                                   ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:215:28: note: in expansion of macro 'SPI_SS_IDX'
     pinMatrixOutAttach(ss, SPI_SS_IDX(spi->num, cs_num), false, false);
                            ^~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:38:62: error: 'VSPICS1_OUT_IDX' undeclared (first use in this function); did you mean 'SPICS1_OUT_IDX'?
 #define SPI_VSPI_SS_IDX(n)   ((n==0)?VSPICS0_OUT_IDX:((n==1)?VSPICS1_OUT_IDX:((n==2)?VSPICS2_OUT_IDX:VSPICS0_OUT_IDX)))
                                                              ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:39:115: note: in expansion of macro 'SPI_VSPI_SS_IDX'
 #define SPI_SS_IDX(p, n)   ((p==0)?SPI_SPI_SS_IDX(n):((p==1)?SPI_SPI_SS_IDX(n):((p==2)?SPI_HSPI_SS_IDX(n):((p==3)?SPI_VSPI_SS_IDX(n):0))))
                                                                                                                   ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:215:28: note: in expansion of macro 'SPI_SS_IDX'
     pinMatrixOutAttach(ss, SPI_SS_IDX(spi->num, cs_num), false, false);
                            ^~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:38:86: error: 'VSPICS2_OUT_IDX' undeclared (first use in this function); did you mean 'FSPICS2_OUT_IDX'?
 #define SPI_VSPI_SS_IDX(n)   ((n==0)?VSPICS0_OUT_IDX:((n==1)?VSPICS1_OUT_IDX:((n==2)?VSPICS2_OUT_IDX:VSPICS0_OUT_IDX)))
                                                                                      ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:39:115: note: in expansion of macro 'SPI_VSPI_SS_IDX'
 #define SPI_SS_IDX(p, n)   ((p==0)?SPI_SPI_SS_IDX(n):((p==1)?SPI_SPI_SS_IDX(n):((p==2)?SPI_HSPI_SS_IDX(n):((p==3)?SPI_VSPI_SS_IDX(n):0))))
                                                                                                                   ^~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:215:28: note: in expansion of macro 'SPI_SS_IDX'
     pinMatrixOutAttach(ss, SPI_SS_IDX(spi->num, cs_num), false, false);
                            ^~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c: In function '_spiSetDataMode':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:248:17: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'pin'
         spi->dev->pin.ck_idle_edge = 0;
                 ^~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:252:17: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'pin'
         spi->dev->pin.ck_idle_edge = 1;
                 ^~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:256:17: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'pin'
         spi->dev->pin.ck_idle_edge = 1;
                 ^~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:261:17: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'pin'
         spi->dev->pin.ck_idle_edge = 0;
                 ^~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c: In function '_spiStopBus':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:302:20: error: 'volatile union <anonymous>' has no member named 'trans_done'
     spi->dev->slave.trans_done = 0;
                    ^
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:304:13: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'pin'
     spi->dev->pin.val = 0;
             ^~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:308:15: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'ctrl1'; did you mean 'ctrl'?
     spi->dev->ctrl1.val = 0;
               ^~~~~
               ctrl
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:309:15: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'ctrl2'; did you mean 'ctrl'?
     spi->dev->ctrl2.val = 0;
               ^~~~~
               ctrl
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:166:58: error: 'DPORT_LEDC_CLK_EN' undeclared (first use in this function); did you mean 'LEDC_CLK_EN'?
     if(!(DPORT_GET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_LEDC_CLK_EN)) ||
                                                          ^~~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:91:75: note: in definition of macro 'DPORT_GET_PERI_REG_MASK'
 #define DPORT_GET_PERI_REG_MASK(reg, mask)   (DPORT_READ_PERI_REG(reg) & (mask))
                                                                           ^~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:167:33: error: 'DPORT_PERIP_RST_EN_REG' undeclared (first use in this function); did you mean 'SYSTEM_PERIP_RST_EN1_REG'?
        (DPORT_GET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_LEDC_RST) ) )  {
                                 ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:74:61: note: in definition of macro '_DPORT_READ_PERI_REG'
 #define _DPORT_READ_PERI_REG(addr) (*((volatile uint32_t *)(addr)))
                                                             ^~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:91:47: note: in expansion of macro 'DPORT_READ_PERI_REG'
 #define DPORT_GET_PERI_REG_MASK(reg, mask)   (DPORT_READ_PERI_REG(reg) & (mask))
                                               ^~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:167:9: note: in expansion of macro 'DPORT_GET_PERI_REG_MASK'
        (DPORT_GET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_LEDC_RST) ) )  {
         ^~~~~~~~~~~~~~~~~~~~~~~
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_reg.h:21,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:29:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c: In function 'spiStartBusMoTo':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:167:57: error: 'DPORT_LEDC_RST' undeclared (first use in this function); did you mean 'DPORT_REG_WRITE'?
        (DPORT_GET_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_LEDC_RST) ) )  {
                                                         ^~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:91:75: note: in definition of macro 'DPORT_GET_PERI_REG_MASK'
 #define DPORT_GET_PERI_REG_MASK(reg, mask)   (DPORT_READ_PERI_REG(reg) & (mask))
                                                                           ^~~~
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:5:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\drivers.h:110:20: warning: unsigned conversion from 'int' to 'volatile unsigned char:4' changes value from '18' to '2' [-Woverflow]
 #define LEDC_BITS  18          // bitresolution for duty cycle of servos and softleds
                    ^~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:179:53: note: in expansion of macro 'LEDC_BITS'
     LEDC_TIMER(group, timer).conf.duty_resolution = LEDC_BITS;  //5 bit (0...20) This register controls the range of the counter in timer. the counter range is [0 2**bit_num] the max bit width for counter is 20.
                                                     ^~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:205:40: error: 'volatile union <anonymous>' has no member named 'clk_en'
         LEDC_CHAN(group, channel).conf0.clk_en = 0;
                                        ^
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c: In function 'setPwmPin':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:233:57: error: 'LEDC_HS_SIG_OUT0_IDX' undeclared (first use in this function); did you mean 'LEDC_LS_SIG_OUT0_IDX'?
     pinMatrixOutAttach(pin, (group?LEDC_LS_SIG_OUT0_IDX:LEDC_HS_SIG_OUT0_IDX) + channel, false, false);
                                                         ^~~~~~~~~~~~~~~~~~~~
                                                         LEDC_LS_SIG_OUT0_IDX
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c: In function 'setPwmDuty':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\driversESP32.c:256:44: error: 'volatile union <anonymous>' has no member named 'clk_en'
             LEDC_CHAN(group, channel).conf0.clk_en = 0;
                                            ^
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:333:33: error: 'DPORT_PERIP_CLK_EN_REG' undeclared (first use in this function); did you mean 'SYSTEM_PERIP_CLK_EN1_REG'?
         DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN);
                                 ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:333:9: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
         DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN);
         ^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:333:57: error: 'DPORT_SPI_CLK_EN' undeclared (first use in this function); did you mean 'SPI_CLK_EN'?
         DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN);
                                                         ^~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:333:9: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
         DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN);
         ^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:334:35: error: 'DPORT_PERIP_RST_EN_REG' undeclared (first use in this function); did you mean 'SYSTEM_PERIP_RST_EN1_REG'?
         DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST);
                                   ^~~~~~~~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:67: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                   ^~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:334:9: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
         DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST);
         ^~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:334:59: error: 'DPORT_SPI_RST' undeclared (first use in this function); did you mean 'DPORT_REG_WRITE'?
         DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST);
                                                           ^~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:334:9: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
         DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST);
         ^~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:336:57: error: 'DPORT_SPI_CLK_EN_2' undeclared (first use in this function); did you mean 'SPI_CLK_EN_M'?
         DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN_2);
                                                         ^~~~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:336:9: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
         DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN_2);
         ^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:337:59: error: 'DPORT_SPI_RST_2' undeclared (first use in this function); did you mean 'DPORT_REG_WRITE'?
         DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST_2);
                                                           ^~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:337:9: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
         DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST_2);
         ^~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:339:57: error: 'DPORT_SPI_CLK_EN_1' undeclared (first use in this function); did you mean 'SPI_CLK_EN_M'?
         DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN_1);
                                                         ^~~~~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:88:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_SET_PERI_REG_MASK(reg, mask)   DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)|(mask)))
                                              ^~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:339:9: note: in expansion of macro 'DPORT_SET_PERI_REG_MASK'
         DPORT_SET_PERI_REG_MASK(DPORT_PERIP_CLK_EN_REG, DPORT_SPI_CLK_EN_1);
         ^~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:340:59: error: 'DPORT_SPI_RST_1' undeclared (first use in this function); did you mean 'DPORT_REG_WRITE'?
         DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST_1);
                                                           ^~~~~~~~~~~~~~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:75:88: note: in definition of macro '_DPORT_WRITE_PERI_REG'
 #define _DPORT_WRITE_PERI_REG(addr, val) (*((volatile uint32_t *)(addr))) = (uint32_t)(val)
                                                                                        ^~~
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7/tools/sdk/esp32s3/include/soc/esp32s3/include/soc/dport_access.h:85:46: note: in expansion of macro 'DPORT_WRITE_PERI_REG'
 #define DPORT_CLEAR_PERI_REG_MASK(reg, mask) DPORT_WRITE_PERI_REG((reg), (DPORT_READ_PERI_REG(reg)&(~(mask))))
                                              ^~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:340:9: note: in expansion of macro 'DPORT_CLEAR_PERI_REG_MASK'
         DPORT_CLEAR_PERI_REG_MASK(DPORT_PERIP_RST_EN_REG, DPORT_SPI_RST_1);
         ^~~~~~~~~~~~~~~~~~~~~~~~~
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c: In function 'spiWriteShortNLMoTo':
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:377:15: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'mosi_dlen'; did you mean 'ms_dlen'?
     spi->dev->mosi_dlen.usr_mosi_dbitlen = 15;
               ^~~~~~~~~
               ms_dlen
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\esp32-mt-spi.c:378:15: error: 'spi_dev_t' {aka 'volatile struct spi_dev_s'} has no member named 'miso_dlen'; did you mean 'ms_dlen'?
     spi->dev->miso_dlen.usr_miso_dbitlen = 0;
               ^~~~~~~~~
               ms_dlen
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:3:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:28: warning: "FSPI" redefined
 #define FSPI  1 //SPI bus attached to the flash (can use the same data lines but different SS)
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:3:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:29: note: this is the location of the previous definition
 #define FSPI  0
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:3:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:29: warning: "HSPI" redefined
 #define HSPI  2 //SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\esp32\MoToESP32.cpp:3:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:30: note: this is the location of the previous definition
 #define HSPI  1
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToPwmESP.cpp:8:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:28: warning: "FSPI" redefined
 #define FSPI  1 //SPI bus attached to the flash (can use the same data lines but different SS)
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToPwmESP.cpp:8:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:29: note: this is the location of the previous definition
 #define FSPI  0
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToPwmESP.cpp:8:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:29: warning: "HSPI" redefined
 #define HSPI  2 //SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToPwmESP.cpp:8:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:30: note: this is the location of the previous definition
 #define HSPI  1
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToServo.cpp:13:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:28: warning: "FSPI" redefined
 #define FSPI  1 //SPI bus attached to the flash (can use the same data lines but different SS)
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToServo.cpp:13:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:29: note: this is the location of the previous definition
 #define FSPI  0
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToServo.cpp:13:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:29: warning: "HSPI" redefined
 #define HSPI  2 //SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToServo.cpp:13:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:30: note: this is the location of the previous definition
 #define HSPI  1
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToSoftledESP.cpp:15:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:28: warning: "FSPI" redefined
 #define FSPI  1 //SPI bus attached to the flash (can use the same data lines but different SS)
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToSoftledESP.cpp:15:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:29: note: this is the location of the previous definition
 #define FSPI  0
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToSoftledESP.cpp:15:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:29: warning: "HSPI" redefined
 #define HSPI  2 //SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToSoftledESP.cpp:15:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:30: note: this is the location of the previous definition
 #define HSPI  1
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToStepper.cpp:13:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:28: warning: "FSPI" redefined
 #define FSPI  1 //SPI bus attached to the flash (can use the same data lines but different SS)
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToStepper.cpp:13:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:29: note: this is the location of the previous definition
 #define FSPI  0
 
In file included from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/drivers.h:7,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:23,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToStepper.cpp:13:
c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/esp32/esp32-mt-spi.h:29: warning: "HSPI" redefined
 #define HSPI  2 //SPI bus normally mapped to pins 12 - 15, but can be matrixed to any pins
 
In file included from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal.h:83,
                 from C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/Arduino.h:36,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/utilities/MoToBase.h:11,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src/MobaTools.h:169,
                 from c:\Users\xxxx\OneDrive\Dokumente\Arduino\libraries\MobaTools\src\utilities\MoToStepper.cpp:13:
C:\Users\xxxx\AppData\Local\Arduino15\packages\Heltec-esp32\hardware\esp32\0.0.7\cores\esp32/esp32-hal-spi.h:30: note: this is the location of the previous definition
 #define HSPI  1

'
exit status 1

Compilation error: exit status 1

Use on Brushed DC Motor driver DRV8870

Hi MicroBahner,

I have been using this library with great success for stepper motors and was curious if you had any intentions to extend the library for use with Brushed DC Motor Drivers and in particular drivers that use 2 PWM signals to control speed and direction (like the DRV8870).

It would be great if this library could control multiple brushed motors in the same non-blocking method for steppers.

Cheers and have a great day
George

Variable Speed Control for stepper motor

Hi MicroBahner,

Would you kindly advise if this library has capability for variable speed based on analog input and then mapping to a RPM or step/sec range?

I do this with mwc_stepper for AVR but would like to do the same for STM32F103C controller with a stepper library.

Cheers
George

Support for newer ESP32 C3, S3 series?

Hi!
Is there any possibility to see support for ESP32 C3, S3 in the future?
If not. Do you guys have any suggestions on ESP32 based boards that work?

BR
William

Future implementation for handling Negative Speed?

Dear Frank-Peter,

Thank you for this library, I am using it for robotics projects involving robotic joints that would need to change the speed continuously. It would be a nice addition if the setSpeed() could take negative integers as well i.e. you can increment or decrement the duty cycle. This would make the servo stop and change direction.

Thank you,

Jeremy

Run the stepper motor continuously

Hi there.
I have an Adafruit Motor Shield 2.0 and want to run a stepper motor continuously for a fixed amount of time.
Here is my code.

#include <MobaTools.h>
#include <Wire.h>
#include <Adafruit_MotorShield.h>

Adafruit_MotorShield AFMS = Adafruit_MotorShield(); // Create the motor shield object with the default I2C address
/*
Connect a stepper motor with 200 steps per revolution (1.8 degree)
// to motor port #2 (M3 and M4)
*/
Adafruit_StepperMotor *M02 = AFMS.getStepper(200, 2);

const byte led1 = 5; // Wash
const byte taste1 = 7; //Start
MoToTimer MotorVorW;
MoToTimer MotorRueckW;
int S1 = 60; //Speed
int T1 = 5000; // Time

void setup()
{
Serial.begin(115200);
AFMS.begin();
pinMode(led1, OUTPUT);
pinMode(taste1, INPUT_PULLUP );
}

void loop()
{
//------------- Wash ----------------------------------------

if ( !digitalRead(taste1) && !MotorVorW.running() )
{ // ---------Forward---------
  Serial.println("Washing started");

  MotorVorW.setTime( T1 );                             // Set time
  digitalWrite( led1, HIGH );                             // Led on
  M02->setSpeed(S1);                                    // Set speed
  M02->step( 100, FORWARD, SINGLE);         // Motor forward

}
if ( MotorVorW.expired() ) // the time is up
{ // ---------Backward---------

  Serial.println("Wash change of direction");

  MotorRueckW.setTime( T1 );                         // Set time
  M02->setSpeed(S1);                                    // Set speed
  M02->step( 100, BACKWARD, SINGLE);       // Motor backward

}

if ( MotorRueckW.expired())                            // the time is up
{ // ---------Stop---------

  Serial.println("Washing finish");
  //M02->rotate(0);                                       // Motor stop
  digitalWrite( led1, LOW );                            // Led off
}  

else
{

}
}

This works with a DC motor.

 MotorVorW.setTime( T1 );  
  digitalWrite( led1, HIGH );  
  M01->setSpeed(S1);    
  M01->run(FORWARD);    

Adafruit doesn't have a continuous run command,
and it doesn't work with the Moba commands.
Can you control the board without the library or how do you connect a stepper?

Dominik

Direction control

Hi there, I'm posting here as I don't know how else to contact you.
I've been playing around with your library for some time now, and I must tell you how impressed and how useful you're library is.
But on to my question.
To control my steppers I'm sending commands via serial
F200 is forwards 200 steps. But I'm having issues working out B200 back 200 steps. To go back I know to use the - minus sign (stepper1.doSteps(-noOfSteps1*16/5);
If (dir == "B") {//go back}
If (dir == "F") {//go forward}
You'll find my code in my github if it helps.
Github.com/Creative-Samurai1982/CineScanner
Again, I'm sorry if I shouldn't post here, kinda new to github and programming in general.

Dave.

1/4 StepMode 800 full rotation

Hi there. A user in the arduino forums (StefanL38) pointed me to your library. Amazing by the way.
But im having trouble setting up 1/4 stepping. Is it available with MoBaTools? or am I
going to have to set me drive to HALF Step. which i really dont want to do.

Dave

attachEnable does not DISABLE the stepper after move

Hi!

I am using a Arduino UNO Rev3 with a TB6600 stepper driver in common anode configuration and am setting everything up via

const byte stepPin = 11;
const byte dirPin  = 12;
const byte enaPin  = 13;
...
myStepper.attach( stepPin, dirPin );
myStepper.attachEnable( enaPin, 10, HIGH );        //  ( HIGH=active )

The stepper is working fine so far, but it does not disable at the end. I tried different "manual" methods, like

  • digitalWrite(enaPin, 0)
  • send an explicit myStepper.stop() after having reached the position
  • myStepper.moveTo(1) (after reaching and setting a zeroPoint)

but nothing works. I am using the current version available via PlatformIO download: 2.6.1

What can I do?

BTW, are there any (undocumented) possibilies to enable/disable a stepper directly? I did not find anything in the library, but as I am not as good as many others programming the Arduino, I may have overlooked something...

Regards,
Holger

2 noob questions

Hi,

1.) if the stepper is moving at higher speeds, will it stop instantly if it has to stop? Or does it go on a few steps because it is not able to stop imediately comparing to lower speeds?

2.) I am using the A4988 and an esp8266 to control one stepper motor. I am not sure how to use the attachEnable thing to disable the stepper until the next moving action.
Is there a wiring and/or a sketch example where it is shown how to do that?

greetings

Using with shift in/out libaries like shifty

Hello,

First of all I would like to thank you for your very useful lib here.
I hope it's okay if I ask here, as there don't seem to be any new registrations confirmed in the Stimmies Modellbahnforum at the moment.

Is there a simple way to control or read out the SoftLEDs or SoftButtons via a shift register.

Currently I would like to use a lib like https://github.com/johnnyb/Shifty. However, I'm not that experienced and wanted to ask if anyone has already done it and could maybe share his code with me?

Thank you very much.

RampLen() Does not seem to work

Hi MicroBahner,

I am having an issue with getting the RampLem() to work and am not sure if it is the method or where I have placed it within my code.

I have tried to place in different parts of the code but I assume it needs to go within the void(setup)? I have also tried it within the void loop() itself which seemed to work but the examples do not show it within the void loop().

Regards and have a great day
George

Question regarding MoToTimer

Hi Franz-Peter
I was looking at your MoToTimer class but somehow fail to understand why you need two flags (RUNNING s well as NOTEXPIRED), instead of just a single one (RUNNING). Is there something that I fail to understand?

Also I found the line
if ( active & RUNNING ) active &= ~RUNNING | ( millis() - startTime < runTime );
a bit unclear.

If I understand it well, the part active &= ~RUNNING makes sure that the RUNNING bit gets cleared, whereas the NOTEXPIRED bit remains untouched. Subsequently you set the RUNNING bit again, depending on the value of ( millis() - startTime < runTime ).

Wouldn't it be a clearer way be to write the assignment part as:
active = ( active & NOTEXPIRED ) | ( millis() - startTime < runTime );

Bye, Aiko

Problems with zero speed

Really great library,

I have a little problem with the stepper motor control. I calculate my speed based on the value of an analog input. Thereby it can come with very low values with the calculation to zero. If I now set the speed to 0, something hangs and nothing works for a few seconds. I have now placed a small query before setting the speed, which replaces zero with one. The problem is solved. Perhaps one could catch this however also directly in the library.

I use an Arduino Mega 2560.

Thank you for providing this great tool.

Greetings Stefenzo

Support planned for newer processors / boards?? (4809, Nano Every, AVR Dx)

Dear Franz-Peter

Thanks for adding support for some older ATMEGA processors. But now I have the opposite question. Do you have any plans to also support newer processors, such as the 4809 (which is included on the Nano Every) or even the AVR Dx processors?

The boards for these processors have been made available by MCUdude and SpenceKonde:

Certainly the 4809 seems to be quite interesting vor people developing their own "Arduino compatible" hardware boards. The 4809 is not only cheaper than the 328, but also more powerful.

Thanks

Aiko

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.