Hi,
your ATC looks like one that needs active locking of tools in the slots (sw6 - sw11). As the arm takes only one tool at time, tool preloading information from linuxcnc is useless for your atc.
But as a tool does not change its parameters as long as it is inside a tool holder, you better look for a bigger picture.
If I had such an atc I would organize my tools and the atc like this:
Suppose you have about 100 tool holders.
So you need a database with the tool parameters, no matter whether the tool is in your cabinet or your atc.
Your atc can hold 6 tools, so you need to tell the database, whether a tool is in the atc or not.
At work we measure the tool parameters optically outside the machine - so no need for a tool touch-off ...
I would create a kind of blackbox for the atc with tool-number and tool-change-signal as hal input and tool-changed as hal-output.
I suppose, sw12 and sw1 is default position for the arm.
So when linuxcnc requests a tool-change for given tool, the atc must find the matching slot for the tool number.
The arm needs to position the slot (by controlling M1?).
The arm grabs the tool (sw13) and the atc needs to release the tool of the selected slot (sw6 - sw11).
The arm moves down (sw5).
The arm moves the tool away from the slot (sw12).
Now M1 changes the arm rotation to match spindle position.
The arm moves toward the spindle (sw13).
Spindle needs to unlock (EV2)
The arm pulls the tool into the spindle (sw1) and the spindle needs to lock the tool (EV1).
The arm then retires (sw12) and hal-signal "tool-changed" could reflect end of tool changing sequence.
Same sequence backwards for moving the tool from spindle into atc with the difference, that the atc locks the tool when selected switch (sw6-sw11) triggers.
I guess neither database, nor carussel does already provide what you need. So little work is required.
Its possible to solve all with linuxcnc tools, but you have to do it on yourself.
Control of M1 depends on whether you have switches or sensors for the arm rotation or if you have to program rotation based on step-calculations.
Pneumatic activation could be realized by relais and/or electrical valves - both can be controlled by hal pins.
Read hal-intro and manual of hal-compile - that should give you a good starting point.
hal_manualtoolchange is a good source too.