In researching ESP32 options I just learned that Marlin can run on ESP32, and there is a component that can serve a web page and drive (the rest of) Marlin, also running on the ESP32.
I decided to give it a try and here is what I’ve got so far:
- Got Marlin official release 220.127.116.11 to compile for ESP32 target.
- Got 7 endstops working, showing in M119. (5 endstops + 1 probe, assuming 7th works)
- Got 3 (of 6) TMC drivers to show in TMC debug command and setting/showing motor current is working
- Got Web UI installed (version 2.1)
I haven’t gotten the motors to move yet. Fortunately it looks like the MKS Tinybee uses the same chained I2S driver scheme as the Jackpot board, and the pins file looks promising, but I am missing something somewhere and the motors are not moving. I am pretty sure I can find it eventually.
I confirmed that the TMC current settings were working by setting current and feeling the holding torque by hand. For low current, it’s easy to skip steps, and with high current, it’s harder to skip steps.
The serial multiplexing (to get TMC UARTS working for slots 4, 5, and 6) is possibly more of a challenge. I did find some serial multiplexing option (TMC_SERIAL_MULTIPLEXER) for TMC2208 used by FYSETC AIO II but it appears the product doesn’t match (no TMC2208). But maybe it has some hints for implementing serial multiplexing that the Jackpot uses.
Also the versions are a little strange because not all of the tweaks to get ESP3DLib working are integrated into Marlin. Luc (who develops ESP3DLib) has a fork with the updates that are necessary for ESP3DLib 3.0. The official Marlin release links against ESP3DLib 1.0 by default, and only ESP3D-WebUI 2.1 works with it.
Maybe some issues could be resolved in ESP3DLib 3.0, and ESP3D-WebUI 3.0 requires ESP3DLib 3.0 and I also want to try that.
So for next steps:
It probably doesn’t make sense to chase I2S streaming on ESP3DLib 1.0 if I am going to change to 3.0, so I’ll try that set of software first. Maybe stepping then works on drivers 1-3.
If it doesn’t “fix itself” on 3.0 then I have to dig into that.
Then look at multiplexing and see if I can learn what TMC_SERIAL_MULTIPLEXER was trying to do, and if I can apply it to the Jackpot board.