ESP32/S2/S3 LinuxCNC Controller (6 axis hardware step gen), USB plug-and-play

More
29 Nov 2024 18:57 - 29 Nov 2024 18:59 #315570 by Mecanix
Tommy. You honestly need to lookup RMT based controls if that 32bits is your hardware (suggest the P4 if they are available to you). If you're after half-decent motion control performance and reliability, that's the only way to do it really (imho). Yeah man, from scratch!!

github.com/espressif/esp-idf/tree/master...ls/rmt/stepper_motor

That, and grab a good doze of knowledge of mutual exclusion runtime(mutex, semaphores, give, take, locks, ect), and the end result should match up to as close as it gets to a parallel compute (aka fpga).
Last edit: 29 Nov 2024 18:59 by Mecanix.
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

  • tommylight
  • tommylight's Avatar
  • Away
  • Moderator
  • Moderator
More
29 Nov 2024 19:09 #315575 by tommylight
P4 was not found on amazon.de so S3 it was.
Had a play with this earlier today, Wez's version fails to set networking for some reason on ESP32wroom module, the other version someone linked here does work but suffers from random reboot loops, a lot.
I am after something else here, use an ESP32 as it has 12 bit ADC to measure the arc voltage and turn the torch on, mounted on the plasma source, and another module connected to PC to translate those voltage values to pulses with variable frequency.
Should be doable and have good enough latency for about 50-150 updates per second. It they survive the EMI :)

Please Log in or Create an account to join the conversation.

More
29 Nov 2024 19:19 - 29 Nov 2024 19:39 #315579 by Mecanix
S3 cores ran on the 240meg and compiled -o2 is pleeeenty sufficient (my fav silicon of them all in fact). The P4 is very much overkill here, but hey, who doesn't like overkill anything lol ps.150hz is nothing for a S3. That makes both the S3 and P4 overkill in that sense ;)

On the MCU Motion Control rant; and If I'd be any of you MCU experts, I'd get a RMT based driver working on 1 (one) motor to begin with, and before doing/coding anything else, have that comm and feedback 110% reliably with the Lcnc comm driver **mutex'ed**.

Once that's sold and a certainty, move to the next step (channel array!)
Last edit: 29 Nov 2024 19:39 by Mecanix.
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

  • tommylight
  • tommylight's Avatar
  • Away
  • Moderator
  • Moderator
More
29 Nov 2024 21:33 #315587 by tommylight
Is that your chanel on youtube with the ESP MPG?
I'll be bothering you about that soon as i have a 3D printed MPG with a screen that Mesa7i73 does not use.
RMT will have to wait, limited time, but lately i am stuck at home/shops so maybe...

Please Log in or Create an account to join the conversation.

More
30 Nov 2024 14:06 #315651 by Mecanix

RMT will have to wait, limited time, but lately i am stuck at home/shops so maybe...

Nah, not my channel, got none of that online exposure, maybe one day but I doubt that. Same reason as yours, so little time for those sort of things :( 

All the best to you & family. And be safe in that shop!!
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

  • tommylight
  • tommylight's Avatar
  • Away
  • Moderator
  • Moderator
More
30 Nov 2024 16:29 #315659 by tommylight

Nah, not my channel,

Yeah, it is probably Meister's channel, sorry for the mix up.

...got none of that online exposure, maybe one day but I doubt that. Same reason as yours, so little time for those sort of things :( 

I just had two friends in the shop, fixing 3 PC's, all the time they were screaming at me for not recording that and putting it online as they would like to watch that again and again! I am a pedantic p.o.s when i work with PC, so i always think that would be boring as hell ! :)

All the best to you & family. And be safe in that shop!!

Thank you very much. Been quite some time since i injured myself... aaah good times :)
The following user(s) said Thank You: Mecanix

Please Log in or Create an account to join the conversation.

More
10 Dec 2024 06:14 - 10 Dec 2024 06:15 #316374 by michaeln

Does the spiethconfig work for anybody?
I tested a lot, but i don't find the problem.
I insert printf commands in the code and get strange outputs. I change from picocom to putty, the same.

The command in short and long version:
spiethconfig -s 19 -i 23 -c 18 -e 0 -t 4
spiethconfig --miso 19 --mosi 23 --sck 18 --csenable 0 --interrupt 4
The output:
Invalid or missing Chip Select pin (0>128)
Command returned non-zero error code: 0x1 (ERROR)

I insert some printf-commands ( bold my changes):
            printf("argc: %d\r\n", argc);     

            if (result.count("s")) { miso_pin = result["s"].as<int>;(); }
            printf("MISO pin: %d \r\n", miso_pin);
            if (miso_pin < 0 || miso_pin > 128 ) { printf_P(PSTR("Invalid or missing MISO pin (0>128)\n")); return EXIT_FAILURE;}
            
            if (result.count("i")) { mosi_pin = result["i"].as<int>;(); }
            printf("MOSI pin: %d \r\n", mosi_pin);
            if (mosi_pin < 0 || mosi_pin > 128 ) { printf_P(PSTR("Invalid or missing MOSI pin (0>128)\n")); return EXIT_FAILURE;}

            if (result.count("c")) { sck_pin = result["c"].as<int>;(); }
            printf("SCK pin: %d \r\n", sck_pin);
            if (sck_pin < 0 || sck_pin > 128 ) { printf_P(PSTR("Invalid or missing SCK pin (0>128)\n")); return EXIT_FAILURE;}

            if (result.count("e")) { cs_pin = result["e"].as<int>;(); }
            printf("CS pin: %d \r\n", cs_pin);
            if (cs_pin < 0 || cs_pin > 128 ) { printf_P(PSTR("Invalid or missing Chip Select pin (0>128)\n")); return EXIT_FAILURE;}

            if (result.count("t")) { int_pin = result["t"].as<int>;(); }
            printf("INT pin: %d \r\n", int_pin);
            if (int_pin < 0 || int_pin > 128 ) { printf_P(PSTR("Invalid or missing Interrupt pin (0>128)\n")); return EXIT_FAILURE;}

and get the result:
argc: 7
MISO pin: 19
MOSI pin: 23
SCK pin: 18
CS pin: 255
Invalid or missing Chip Select pin (0>128)
Command returned non-zero error code: 0x1 (ERROR)

After that i change the sequence of the variables, the problems stay at the forth position. i saw that the out from argc stay at maximum 7 (in my opinion it should be 11).

Does it work for anybody?
If yes, what does is made wrong?

Thanks and best regards
michaeln

Hello,
now i found the problem of the SPIConfig.
Here is the code with my changes, forked from sybexx with his changes:
github.com/michaelnu/ESP32_LinuxCNC_MotionController_RealTime
Best regards
Michael

 
Last edit: 10 Dec 2024 06:15 by michaeln.
The following user(s) said Thank You: tommylight

Please Log in or Create an account to join the conversation.

  • tommylight
  • tommylight's Avatar
  • Away
  • Moderator
  • Moderator
More
10 Dec 2024 10:51 #316388 by tommylight
If i get a chance i will have a run at it tonight, still have all that mess on my table.
Thank you.

Please Log in or Create an account to join the conversation.

  • tommylight
  • tommylight's Avatar
  • Away
  • Moderator
  • Moderator
More
11 Dec 2024 00:51 #316441 by tommylight
Gave it a try, still reboots when enabling LinuxCNC.
Have to try another module just in case.

Please Log in or Create an account to join the conversation.

More
15 Dec 2024 13:17 - 15 Dec 2024 13:18 #316704 by aparecido
Has this error message appeared for anyone?
If so, how did you resolve it?
Can you tell me why it appeared?
 
Attachments:
Last edit: 15 Dec 2024 13:18 by aparecido.

Please Log in or Create an account to join the conversation.

Time to create page: 0.139 seconds
Powered by Kunena Forum