Automatic tool change (ATC) is convenient but expensive. Even the smallest industrial ATC spindles tend to be larger and much heavier that the typical spindle found on a desktop CNC milling machine. They are not a good match for a tabletop milling machine such as the eShapeoko (or Shapeoko 2, or X-Carve).
Instead of implementing ATC, we can enjoy some of its convenience in an entirely different way. We replace the single Z axis of the eShapeoko with three identical, independent Z axes, each with its own motor, leadscrew and spindle. All three Z axes are attached to the same X carriage. The spindles are inexpensive 300 W DC motors, each of which probably costs less than a tool holder for ATC. Each spindle has one tool, and the program controls which one is used for each operation.
We want to keep using GRBL, an open-source G-code interpreter that runs on the Atmel ATMega328P microcontroller (Arduino Uno). GRBL is the de-facto standard firmware for such small CNC milling machines (and a great example of compact and efficient code). It is supported by a multitude of host programs, and GRBL post-processors now exist for several popular CAM programs. However, GRBL is a purely three-axis controller, and we need to drive five motors (actually six of them, because the eShapeoko has two Y motors, but their drivers share one set of control signals).
Only one of the Z axes is active at a time, so we can use a demultiplexer to drive all three with the same Z axis control signals. We re-purpose the coolant control pins as Z axis selection signals. Thus we can use GRBL with no changes to the firmware at all.
The same selection signals control relays that turn the spindles on and off. All three spindles share one PWM speed controller.
A fairly straightforward G-code substitution replaces tool change commands generated by CAM with demultiplexer control operations (in the form of coolant control commands) and coordinate offset changes.
While not true ATC, three tools can do a lot. For example, a PCB can have its traces isolation-milled, its holes drilled, and its outline routed and parted off in one go. A straight endmill, a small stub endmill, and a tool with a 90 degree tip can cut an aluminium or plastic instrument panel, complete with countersunk holes, chamfered cutouts and engraved legends.