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

More
2 years 7 months ago #295187 by wez
Tom - thanks for bearing with me and letting this sit under General Chat section for so long.

Happy for this to be moved over to Computers and OS's to similar place where Remora lives if you think it's more appropriate? Don't want to detract from others wanting help and whatnot. Thank you!

PS: 20Mhz of reliable multi-channel encoder input (pulse counting) validated on the S3. Specs state PCNT is capable of 40mhz but GPIO matrix holds it up a wee bit - might be able to tune a bit more. Direct GPIO which bypasses the mux is also possible on the S3.
The following user(s) said Thank You: tommylight

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

More
2 years 7 months ago #295226 by tommylight
20MHz ??? :)
Will move it later, thank you.

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

More
2 years 7 months ago #295227 by tommylight
Moved to "Computers and OS's".
Thank you.
The following user(s) said Thank You: wez

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

More
2 years 7 months ago #295250 by wez
Thanks Tom!

Testing PCNT high speed was fun, been several weeks of effort. To ensure maximum signal integrity and without using a scope based signal generator (as direct as possible for DUT) to not skew results it took:
  • MOPA Fibre lasering a dual sided copper clad board for two ESP32-S3s modules with smallest possible track sizes including VIA stitching and ground planes
  • One runs the ESP-DSP & its PIE extensions to generate a perfect and consistent waveforms in hardware
  • Direct GPIO on the generator to rule out any mux related issues
  • Tracking PCNT overflows on the receiver (Device Under Test) at high speeds whilst keeping interrupt load as low as possible
  • Able to generate multiple simultaneous waveforms and route to various GPIOs on the receiver to test multi-channel capabilities
Humblebrag - having the ability to high resolution (0201 components, 0.1 traces and laser drill 0.2 vias) laser etch a 300 x 300mm double sided PCB with soldermask with precision in under 15 minutes is invaluable at times!

Plan to publish results eventually but it's part of certifying the module for future commercial use. It has to be tested in order to claim it's capabilities
 
The following user(s) said Thank You: aparecido

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

More
2 years 7 months ago - 2 years 7 months ago #295255 by wez
Another shameless plug...

400khz output on the ESP32-S3 (dual core) across two axes has now been tested and confirmed as being reliable and precise. Video proof of steppers at 32x microstepping (25600ppr) eventually, just have quite a bit going on still.

That's double the step pulse frequency output (with step tracking) of any previous microcontroller based solution and please do correctly me if I'm wrong - the highest for any microcontroller based solution out there? Would love to be corrected. Please! :)

EDIT: Must clarify: the 1Mhz step pulse output stated earlier is an experiment for a single axis and there remains a lot of work to get it in a usable state. The hardware is capable of it though. These tests and results are for the integrated all-in-one single MCU motion controller and so multi-axis speeds are lower.

Video of scope output:





 
Last edit: 2 years 7 months ago by wez.
The following user(s) said Thank You: tommylight, aparecido, hairy

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

More
2 years 7 months ago #295431 by tommylight
This can be freely called a gimmick, but imagine having this showing axis position, motor current and temperature, drive temperature, all voltages on the machine, my life expectancy ... hmmmm :)

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

Time to create page: 0.092 seconds
Powered by Kunena Forum