diff --git a/README.md b/README.md
index 5c83581..9668569 100644
--- a/README.md
+++ b/README.md
@@ -4,12 +4,12 @@
## Overview
-
+
This is a driver for the detector tower which is based on the Turbo PMAC driver (https://git.psi.ch/sinq-epics-modules/turboPmac). It consists of the following four objects:
- `detectorTowerController`: This is an expanded variant of `turboPmacController` provided by the Turbo PMAC library linked above.It is needed to operate a `detectorTowerAngleAxis`, but it can also be used to operate a "normal" `turboPmacAxis`.
-- `detectorTowerAngleAxis`: This is a virtual axis which controls multiple physical motors in order to provide a combined movement. Moving it results in a rotation of the entire beam around the support axis position.
-- `detectorTowerLiftAxis`: This is a virtual axis which controls multiple physical motors in order to provide a combined movement. Moving it results in a vertical lift.
+- `detectorTowerAngleAxis`: This is a virtual axis which controls multiple physical motors ($x$ and $z$) in order to provide a combined movement. Moving it results in a rotation of the entire beam around the support axis position ($\alpha$).
+- `detectorTowerLiftAxis`: This is a virtual axis which controls multiple physical motors in order to provide a combined movement. Moving it results in a vertical lift ($z_{lift}$).
- `detectorTowerSupportAxis`: This is an axis at the rotation center of the beam which is part of the combined movements. Its origin can be shifted manually for small adjustments, resulting in a corresponding movement. Other than that, it is not meant to move on its own, hence setting a new value to the `VAL` field of the motor record won't cause it to move.
## User guide
diff --git a/images/CoordinateSystems.odg b/images/CoordinateSystems.odg
new file mode 100644
index 0000000..68549ed
Binary files /dev/null and b/images/CoordinateSystems.odg differ
diff --git a/images/CoordinateSystems.svg b/images/CoordinateSystems.svg
new file mode 100644
index 0000000..96fb935
--- /dev/null
+++ b/images/CoordinateSystems.svg
@@ -0,0 +1,447 @@
+
+
+
\ No newline at end of file
diff --git a/images/PhysicalSetup.odg b/images/PhysicalSetup.odg
deleted file mode 100644
index 88fd84c..0000000
Binary files a/images/PhysicalSetup.odg and /dev/null differ
diff --git a/images/PhysicalSetup.svg b/images/PhysicalSetup.svg
deleted file mode 100644
index 525812b..0000000
--- a/images/PhysicalSetup.svg
+++ /dev/null
@@ -1,569 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/src/detectorTowerController.cpp b/src/detectorTowerController.cpp
index c2a3871..fc96c61 100644
--- a/src/detectorTowerController.cpp
+++ b/src/detectorTowerController.cpp
@@ -152,7 +152,12 @@ asynStatus detectorTowerController::writeInt32(asynUser *pasynUser,
/*
Due to a bug which is currently not understood, the reset has to be handled
- here rather than in sinqController.
+ here rather than using the default implementation in sinqController. Piping
+ the motor reset request to sinqController causes segfaults. It might be due
+ to the fact that the default `reset` implementation of sinqAxis locks the
+ controller in order to perform some fast polls and that for some reason this
+ behaviour cannot be overwritten even by providing custom `reset` methods for
+ all three axes.
*/
if (pasynUser->reason == motorReset_) {
detectorTowerAngleAxis *aAxis = getDetectorTowerAngleAxis(pasynUser);