diff --git a/configs/sim/axis/remap/extend-builtins/README b/configs/sim/axis/remap/extend-builtins/README
index 0267a8c14df..1c0bd72db97 100644
--- a/configs/sim/axis/remap/extend-builtins/README
+++ b/configs/sim/axis/remap/extend-builtins/README
@@ -13,8 +13,6 @@ to work with the stdglue prologs and epilogs
'exposed parameters' are local variables in the remap procedure which can be read, and changed - any changes will be picked up by the epilog and used to commit the result
-Note that using M61 requires iocontrol-v2 as set tool number support in iocontrol is broken.
-
update:
Remapping and extending of M0,M1,M60 added.
diff --git a/docs/man/.gitignore b/docs/man/.gitignore
index 1ec7b2ba856..1b1b9be2eb1 100644
--- a/docs/man/.gitignore
+++ b/docs/man/.gitignore
@@ -42,7 +42,6 @@ man1/image-to-gcode.1
man1/inivar.1
man1/io.1
man1/iocontrol.1
-man1/iov2.1
man1/latency-histogram.1
man1/latency-plot.1
man1/latency-test.1
diff --git a/docs/src/Master_Documentation.adoc b/docs/src/Master_Documentation.adoc
index 4b6a607c679..df650de6f03 100644
--- a/docs/src/Master_Documentation.adoc
+++ b/docs/src/Master_Documentation.adoc
@@ -69,8 +69,6 @@ include::config/ini-config.adoc[]
include::config/ini-homing.adoc[]
-include::config/iov2.adoc[]
-
include::config/lathe-config.adoc[]
include::config/stepper-quickstart.adoc[]
diff --git a/docs/src/gcode/overview.adoc b/docs/src/gcode/overview.adoc
index 86f0532dc58..123eccec3e8 100644
--- a/docs/src/gcode/overview.adoc
+++ b/docs/src/gcode/overview.adoc
@@ -339,11 +339,6 @@ example '##2' means the value of the parameter whose index is the
X, Y, Z, A, B, C, U, V & W, volatile.
* '5599' - Flag for controlling the output of (DEBUG,) statements.
1=output, 0=no output; default=1. Volatile.
-* '5600' - Toolchanger fault indicator. Used with the iocontrol-v2 component.
- 1: toolchanger faulted, 0: normal. Volatile.
-* '5601' - Toolchanger fault code. Used with the iocontrol-v2 component.
- Reflects the value of the 'toolchanger-reason' HAL pin if a fault occurred.
- Volatile.
.Numbered Parameters Persistence
The values of parameters in the persistent range are retained over
diff --git a/docs/src/hal/components.adoc b/docs/src/hal/components.adoc
index b754abb3417..a8ca7543aa6 100644
--- a/docs/src/hal/components.adoc
+++ b/docs/src/hal/components.adoc
@@ -80,7 +80,6 @@ To search in the man pages, use the UNIX tool `apropos`.
|===
| link:../man/man1/io.1.html[io] |iocontrol - interacts with HAL or G-code in non-realtime ||
| link:../man/man1/iocontrol.1.html[iocontrol] |Interacts with HAL or G-code in non-realtime ||
-| link:../man/man1/iov2.1.html[iov2] |Interacts with HAL or G-code in non-realtime ||
| link:../man/man1/mdi.1.html[mdi] |Send G-code commands from the terminal to the running LinuxCNC instance ||
| link:../man/man1/milltask.1.html[milltask] |Non-realtime task controller for LinuxCNC ||
|===
diff --git a/docs/src/index.tmpl b/docs/src/index.tmpl
index c31b88e1276..bebf5fe9db1 100644
--- a/docs/src/index.tmpl
+++ b/docs/src/index.tmpl
@@ -169,7 +169,6 @@ function setup_page(){
Stepper Tuning
INI Configuration
Homing Configuration
- I/O Control V2
Lathe Configuration
Stepper Quick Start
Stepper Configuration
diff --git a/docs/src/man/man1/iocontrol.1.adoc b/docs/src/man/man1/iocontrol.1.adoc
index 941ae0bd10f..236a62e1cb4 100644
--- a/docs/src/man/man1/iocontrol.1.adoc
+++ b/docs/src/man/man1/iocontrol.1.adoc
@@ -6,24 +6,14 @@ iocontrol - interacts with HAL or G-code in non-realtime
== SYNOPSIS
-*[EMCIO]* +
-*EMCIO = io* +
-or +
-*EMCIO = iov2*
+*[EMCIO]*
== DESCRIPTION
I/O control handles I/O tasks like coolant, toolchange and E-stop. The
signals are turned on and off in non-realtime with G-code or in the case
of E-stop in HAL. +
-I/O Control V2 (iov2) adds more toolchager support for communication
-with the toolchanger.
-
-Whether *io* or *iov2* is used can be chosen in the [EMCIO] section of
-the INI file.
-
-See also https://linuxcnc.org/docs/html/config/iov2.html.
== SEE ALSO
-io(1), iov2(1)
+io(1)
diff --git a/docs/src/remap/remap.adoc b/docs/src/remap/remap.adoc
index c8b6fe90ead..ab14e330569 100644
--- a/docs/src/remap/remap.adoc
+++ b/docs/src/remap/remap.adoc
@@ -1586,11 +1586,6 @@ These wrap a NGC procedure for M6 Tool Change.
.Actions of +change_prolog+
-* The following three steps are applicable only if the `iocontrol-v2` component is used:
-** If parameter 5600 (fault indicator) is greater than zero, this indicates a Toolchanger fault, which is handled as follows:
-** if parameter 5601 (error code) is negative, this indicates a hard fault and the prolog aborts with an error message.
-** if parameter 5601 (error code) is greater equal zero, this indicates a soft fault.
- An informational message is displayed and the prolog continues.
* If there was no preceding T command which caused a pocket to be selected, the prolog aborts with an error message.
* If cutter radius compensation is on, the prolog aborts with an error message.
@@ -1603,10 +1598,6 @@ Then, the following parameters are exported to the NGC procedure:
.Actions of +change_epilog
* The NGC procedure is expected to return a positive value, otherwise an error message containing the return value is given and the interpreter aborts.
-* If parameter 5600 (fault indicator) is greater than zero, this indicates a Toolchanger fault, which is handled as follows (`iocontrol-v2`-only):
-** If parameter 5601 (error code) is negative, this indicates a hard fault and the epilog aborts with an error message.
-** If parameter 5601 (error code) is greater equal zero, this indicates a soft fault.
- An informational message is displayed and the epilog continues.
* In case the NGC procedure executed the M6 command (which then refers to the built in M6 behavior), no further action is taken.
This can be used for instance to minimally adjust the built in behavior be preceding or following it with some other statements.
* Otherwise, the `#` parameter is extracted from the subroutine's parameter space, and used to set the interpreter's `current_pocket` variable.
@@ -1783,8 +1774,6 @@ The current set of *existing* codes open to redefinition is:
- S (set spindle speed)
- F (set feed)
-Note that the use of M61 currently requires the use of `iocontrol-v2`.
-
[[remap:unallocated-g-codes]]
=== Currently unallocated G-codes:
@@ -2237,7 +2226,6 @@ An example Python redefinition for `M61` can be found in the `set_tool_number` f
== Status
. The RELOAD_ON_CHANGE feature is fairly broken. Restart after changing a Python file.
-. M61 (remapped or not) is broken in `iocontrol` and requires `iocontrol-v2` to actually work.
// A short survey of LinuxCNC execution
// Interpreter internals access - Python view