diff --git a/apidocs/dev/assets/SoftwareDiagram.svg b/apidocs/dev/assets/SoftwareDiagram.svg
index 0390fdfa..55adcf5c 100644
--- a/apidocs/dev/assets/SoftwareDiagram.svg
+++ b/apidocs/dev/assets/SoftwareDiagram.svg
@@ -28,7 +28,7 @@
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
- inkscape:current-layer="g2-2-2"
+ inkscape:current-layer="g17"
showguides="true"
inkscape:export-bgcolor="#ffffffff">Other "Things"Other "Things"......Others things, can be Others things, can be installed defined in any installed defined in any installed python installed python package, and included in package, and included in the config. As of yet the config. As of yet there is no way to define there is no way to define a UIa UIThingsThingsExcept for during start Except for during start up all functionality is up all functionality is defined either within defined either within "Things" or in code "Things" or in code called by Things.
+ id="tspan17">called by Things.
+ id="tspan18">
Things communicate Things communicate with each other via with each other via thing_slots.thing_slots.11Uvicorn,
+ id="tspan23">Uvicorn,
An Async Sever An Async Sever Gateway Interface Gateway Interface (ASGI) web server(ASGI) web serverThingsThingsOther custom utilities/librariesOther custom utilities/librariessystemd service on systemd service on Raspberry Pi
+ id="tspan30">Raspberry Pi
All python runs in "ofm" All python runs in "ofm" virtual environmentvirtual environment22OpenFlexure Connect (Electron OpenFlexure Connect (Electron app)
+ id="tspan37">app)
[or browser][or browser]Web App written in Vue.jsCreated by (and served from) the Created by (and served from) the server. Viewed in browser or server. Viewed in browser or OpenFlexure ConnectOpenFlexure Connect11Python code
+ id="tspan47">Python code
11LabThings-FastAPI Clientlabthings-fastapi.client.
+ id="tspan49">labthings-fastapi.client.
ThingClientThingClientLabThings with automatically LabThings with automatically make a "ThingClient" class that make a "ThingClient" class that communicates over HTTP and communicates over HTTP and provides methods for calling all provides methods for calling all actions and reading properties of actions and reading properties of any "Thing" running on the server.any "Thing" running on the server.User's ComputerUser's ComputerLocal terminalLocal terminal$ ssh microscope.local$ ssh microscope.localv3 Software Architecturev3 Software ArchitecturesshsshASGIASGIThe systemd service is The systemd service is run on startup. It is run on startup. It is managed by managed by systemctl systemctl Things add API endpoints to the Things add API endpoints to the FastAPI server for communication.
+ id="tspan70">FastAPI server for communication.
(see (see add_to_fastapi) add_to_fastapi) Things generate a Thing Things generate a Thing Description that describe their Description that describe their functionality and data and the functionality and data and the HTTP endpoints.HTTP endpoints.HTTPHTTPHTTPHTTP11OpenFlexure Microscope
+ id="tspan80">OpenFlexure Microscope
ServerServerThing DescriptionsThing Descriptionslabthings-fastapi.server.
+ id="tspan83">labthings-fastapi.server.
ThingServerThingServerFastAPIFastAPIsever.app:FastAPIsever.app:FastAPILabThings-FastAPI ServerLabThings-FastAPI Server1111221122
- openflexure
-
+microscope
+ style="font-weight:300;font-size:113.605px;font-family:'Open Sans', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;-inkscape-font-specification:'Open Sans, Light';stroke-width:1.93904"
+ inkscape:label="microscope"
+ aria-label="microscope" />
Raspbian OpenFlexureRaspbian OpenFlexureThings, are WC3 Web Of Things compliant Things, are WC3 Web Of Things compliant Python Objects used to add functionality Python Objects used to add functionality (such as hardware control) with HTTP API (such as hardware control) with HTTP API endpointsendpointsThe server makes use of a number of The server makes use of a number of other python libraries. Some are other python libraries. Some are standard libraries such as NumPy, Pillow, standard libraries such as NumPy, Pillow, SciPy, etc. Others are specific to SciPy, etc. Others are specific to OpenFlexureOpenFlexureA customised Raspberry Pi operating system, for the embedded Raspberry Pi in the Microscope33OpenFlexure StitchingOpenFlexure Stitching55For stitching images For stitching images togethertogetherPlan to remove this in favour of Plan to remove this in favour of bringing these methods into the bringing these methods into the microscope where they can be tested.microscope where they can be tested.Camera stage Camera stage mappingmapping88For analysing images to calibrate For analysing images to calibrate stage movementstage movementMicatMicat7
+ id="tspan119">7
For analysing images for For analysing images for optical system calibrationoptical system calibration11github.com/labthings/labthings-github.com/labthings/labthings-fastapifastapi11gitlab.com/openflexure/gitlab.com/openflexure/openflexure-microscope-serveropenflexure-microscope-server22gitlab.com/openflexure/gitlab.com/openflexure/openflexure-connectopenflexure-connect33gitlab.com/openflexure/raspberry-gitlab.com/openflexure/raspberry-pi-os-image-customiserpi-os-image-customiser44gitlab.com/openflexure/gitlab.com/openflexure/openflexure-microscope-cliopenflexure-microscope-cli66gitlab.com/bath_open_instrumentation_group/gitlab.com/bath_open_instrumentation_group/pysangaboardpysangaboard7
+ id="tspan140">7
gitlab.com/openflexure/micatgitlab.com/openflexure/micat55gitlab.com/openflexure/gitlab.com/openflexure/openflexure-stitchingopenflexure-stitching88gitlab.com/openflexure/microscope-gitlab.com/openflexure/microscope-extensions/camera-stage-mappingextensions/camera-stage-mappingRepository URLsRepository URLsPySangaboardPySangaboard66Motor controlMotor controlPlan to move these scripts into Plan to move these scripts into the OS repo.the OS repo.OpenFlexure Microscope OpenFlexure Microscope CLI
+ id="tspan155">CLI
44$ ofm start$ ofm start$ ofm stop$ ofm stop$ ofm status$ ofm status$ ofm activate$ ofm activate$ ofm log$ ofm logMost commands are a Most commands are a wrapper around systemctlwrapper around systemctlActivates the ofm python Activates the ofm python environment
+ id="tspan165">environment