- Hardware & Machines
- Computers and Hardware
- ESP32/S2/S3 LinuxCNC Controller (6 axis hardware step gen), USB plug-and-play
ESP32/S2/S3 LinuxCNC Controller (6 axis hardware step gen), USB plug-and-play
Essentially the test is to zero the X axis where it starts from then move randomly to different positions using absolute machine co-ords and then back to X0. Switches to relative positioning after that with much the same.
So far so good. A couple of things to improve which are listed on the video description but all things considered and the speeds, I don't think it's half bad...
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
I2S is great and certainly usable, and as probably already know is used in other projects. However realistically speaking, Espressif don't "officially" support the I2S peripheral as a stepper driver, strictly speaking. Only for their RMT.
RMT can be extremely fast, with minimal interrupt load.
With additional tuning, which I plan on digging into eventually at some point, it will likely go high than 200khz total. That's if it's actually needed.
Performance testing of RMT has proven to be excellent, BUT more importantly - reliable - never missing a single step at all speeds on 6 axes - which is ever so important to this project.
I'm not saying that I2S would if it were adapted to this use-case, but its best to stick with something that's proven specifically for this case.
Adjusting the existing libs that's used elsewhere (FluidNC etc) will require a reasonable amount of work (testing included) to not utilize trajectory planning in addition to adjusting accel/decel profiles as well as passing speed, position, velocity feedback to the host with near zero latency which for this use-case is absolutely essential.
I hope you have seen my earlier video showing the speeds and smoothness at 80khz?
Really though - how many people need an 80khz step pulse on single axis??
I truthfully can't think of any but certainly open to reasons why, and so if there are please provide them!
200khz total for 6 axis - all 6 motors moving simultaneously at 33khz, really?
Thanks
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
IMHO I'd be pleasantly surprised if you really require /16 on your Z axis or possibly even A axis?
Please don't forget its not just 50khz per axis. It's shared 200khz - so two axes could be set at 75khz and two at 25khz or any other variation.
This will eventually grow into a solution that can be used for retrofit larger machines, whilst others are entitled to their opinions, I just know it will, especially once encoders and custom frames are implemented.
Coupled with EMI resistant boards in addition to a supervisory controller feature-set (dual sync controllers) it should make for a very compelling solution. In addition to onboard retrospective crash dump analysis, plenty of watchdogs. The last two are included in the next release.
Please Log in or Create an account to join the conversation.
Please Log in or Create an account to join the conversation.
He is releasing code, it works, it is well thought out. Why don't you go work on your idea (headless EMC on cheap MCU) and actually produce something with released code before claiming that shipping code hurts an open source community. That is a toxic and elite attitude. Please don't expect everyone in a community shares your goals.Yeah well, people continue to screw around with under powered micro controllers that can't actually do the thing that's needed, run EMC headless.
This isn't helping the community grow in a meaningful way, it's not really helping end users, unless of course the game is to impede entry into the area by making the hardware and software difficult to use.
Please Log in or Create an account to join the conversation.
github.com/jschoch/esp_tinyusb_test/tree/nowbridge
This could also be used to talk directly to linuxcnc via a hal component that had a UDP listener on it. This could run in it's own thread and make a wireless physical HID fairly easy to do .
Please Log in or Create an account to join the conversation.
Really though - how many people need an 80khz step pulse on single axis??
I truthfully can't think of any but certainly open to reasons why, and so if there are please provide them!
Just thought I'd chime in on this one.
My lathe spindle motor is also a C-axis. Max RPM is 5000, motor encoder is 4096-lines (16384 post quad). I'm now using PWM, but when it was set to step/dir the drive input was configured 1:1 (1 pulse in per encoder count).
At 5000rpm I think that works out to ~950khz. (drive is good to 2Mhz input). Why do I need such fine resolution? Because C-axis positioning requires it for decent angular resolution. Same reason the spindle encoder is 10k lines (40k post-quad). A 4th axis with reducer would need mush less resolution at the motor, but my spindle ratio is about 1.5:1.
Similar situation on the X/Z/V axes and sub-spindle motor. Drives are good for 500khz input, so I programmed them such that max rapids (and max sub RPM) are about 450khz. Same reason - finer per-step resolution as I have 1um scales and (in theory) 700ipm rapids.
So max outputs:
Main spindle - 950khz
Sub & 3 axes - 1800khz (450 x 4)
So I need up to 2.7Mhz total if everything is at full-boogie.
Is my use-case typical? No, of course not. But having very high pulse frequency capability means finer resolution (and perhaps smoother motion) is possible.
Thanks again.
Please Log in or Create an account to join the conversation.
Dont take it personally, dont question their motives, or if they really NEED it. Many people probably dont, but the scope of the project isnt to question people on their needs/wants. You dont want to try and sell it to someone if it doesnt really fit their usecase. Then you will just have 2 unhappy people.
Please Log in or Create an account to join the conversation.
- Hardware & Machines
- Computers and Hardware
- ESP32/S2/S3 LinuxCNC Controller (6 axis hardware step gen), USB plug-and-play