Original post moving with update:
https://www.machsupport.com/forum/index.php?topic=43332.msg280091#msg280091Parts List (non-affiliate [don't need the w5500 if only using WiFi]):
https://www.amazon.com/gp/product/B01E6VTZHC/ref=ppx_yo_dt_b_asin_title_o07_s00?ie=UTF8&psc=1
https://www.amazon.com/gp/product/B07BTRLKPT/ref=ppx_yo_dt_b_asin_title_o04_s04?ie=UTF8&psc=1
https://www.amazon.com/gp/product/B082XJXQS6/ref=ppx_yo_dt_b_asin_title_o04_s00?ie=UTF8&psc=1
https://www.amazon.com/gp/product/B07XG323G8/ref=ppx_yo_dt_b_asin_title_o03_s01?ie=UTF8&psc=1
https://www.amazon.com/gp/product/B07T4YHP7Q/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
https://www.amazon.com/gp/product/B07Q576VWZ/ref=ppx_yo_dt_b_asin_title_o04_s03?ie=UTF8&psc=1
I chose the ESP32 for this project because of all the already available libraries and it's 32-bit processor
so it can read the encoder counts really quickly.
The switch on for battery power is now the big red button on the MPG (normally an Estop?).
For wiring I just desoldered the wires that were already in the MPG and did the following:
battery -> TP4056 Charger Module -> XL6009 Boost Convert (3.3 to 5V) -> MPG Estop switch -> ESP32 VIN/GND
(The LED on the MPG PCB is connected to the 3.3v and GND terminals on the ESP32)
MPG PCB:
ESP32 GND -> COM
ESP32 Pin 2 -> A+
ESP32 Pin 4 -> B+
ESP32 Pin 13 -> X Axis
ESP32 Pin 14 -> Y Axis
ESP32 Pin 27 -> Z Axis
ESP32 Pin 25 -> MPG Enable Switch
ESP32 Pin 32 -> A Axis
ESP32 Pin 35 -> B Axis (8k ohm pullup to 3.3v)
ESP32 Pin 34 -> C Axis (8k ohm pullup to 3.3v)
ESP32 Pin 15 -> Inc 1
ESP32 Pin 21 -> Inc 2
ESP32 Pin 22 -> Inc 3
(only if you want ethernet instead of just WiFi)
W5500 Lite:
ESP32 Pin 23 -> MOSI
ESP32 Pin 19 -> MISO
ESP32 Pin 18 -> SCLK
ESP32 Pin 5 -> CS
ESP32 Pin 26 -> RST
source code for WiFi:
https://github.com/kethort/Mach4ESP32ModbusMPGHandwheel
Uncomment #define STATIC_IP to use an automatic configuration.
The rest of the instructions for the firmware are on the git page.
The ModbusMPG.lua file goes in the Mach4 Modules directory
The Ethernet Modbus connection to the ESP32 requires modification of Server.h in the Arduino libraries so I'm not going to include the source. I'll attach the sketch and the modified Server.h file but no instructions. It's easy if you follow the error in the compilation in the Arduino IDE.