diff --git a/doc/common/extensions/requirements-static.py b/doc/common/extensions/requirements-static.py
index 09d3035..36d2820 100644
--- a/doc/common/extensions/requirements-static.py
+++ b/doc/common/extensions/requirements-static.py
@@ -47,8 +47,8 @@ class PybricksRequirementsStaticDirective(Directive):
for hub in HUB_FEATURES:
for compat in ("true", "false"):
- uri = "compat_{0}_{1}_label.png".format(hub, compat)
- src_uri = path.join(env.app.builder.srcdir, "images", uri)
+ uri = "compat_{0}_{1}.png".format(hub, compat)
+ src_uri = path.join(env.app.builder.srcdir, "diagrams", uri)
build_uri = path.join(env.app.builder.outdir, "_images", uri)
copyfile(src_uri, build_uri)
diff --git a/doc/main/cad/copy-renders.sh b/doc/main/cad/copy-renders.sh
new file mode 100755
index 0000000..5e1e916
--- /dev/null
+++ b/doc/main/cad/copy-renders.sh
@@ -0,0 +1,62 @@
+rm output/*
+cp LPub3D/assem/main-*.png output/all.png
+cp LPub3D/assem/main_1_ev3devices-*.png output/ev3device-all.png
+cp LPub3D/assem/main_1_ev3devices_1_ev3device-color-*.png output/ev3device-color.png
+cp LPub3D/assem/main_1_ev3devices_1_ev3device-ev3-*.png output/ev3device-ev3.png
+cp LPub3D/assem/main_1_ev3devices_1_ev3device-gyro-*.png output/ev3device-gyro.png
+cp LPub3D/assem/main_1_ev3devices_1_ev3device-infrared-*.png output/ev3device-infrared.png
+cp LPub3D/assem/main_1_ev3devices_1_ev3device-motors-*.png output/ev3device-motors.png
+cp LPub3D/assem/main_1_ev3devices_1_ev3device-touch-*.png output/ev3device-touch.png
+cp LPub3D/assem/main_1_ev3devices_1_ev3device-ultrasonic-*.png output/ev3device-ultrasonic.png
+cp LPub3D/assem/main_1_hubs_2_hubs-lwp3-*.png output/hub-lwp3.png
+cp LPub3D/assem/main_1_hubs-*0_1_1*.png output/hub-spike-inventor.png
+cp LPub3D/assem/main_1_hubs-*0_1_2*.png output/hub-all.png
+cp LPub3D/assem/main_1_hubs_1_hub-city-*.png output/hub-city.png
+cp LPub3D/assem/main_1_hubs_1_hub-essential-*35_-35_0_ABS.png output/hub-essential.png
+cp LPub3D/assem/main_1_hubs_1_hub-essential-*45_45_0_ABS.png output/hub-essential-orientation.png
+cp LPub3D/assem/main_1_hubs_1_hub-inventor-*35_-35_0_ABS.png output/hub-inventor.png
+cp LPub3D/assem/main_1_hubs_1_hub-inventor-*45_45_0_ABS.png output/hub-inventor-orientation.png
+cp LPub3D/assem/main_1_hubs_1_hub-move-*35_-35_0_ABS.png output/hub-move.png
+cp LPub3D/assem/main_1_hubs_1_hub-move-*45_45_0_ABS.png output/hub-move-orientation.png
+cp LPub3D/assem/main_1_hubs_1_hub-move-*35_-125_0_ABS.png output/hub-move-motor-a.png
+cp LPub3D/assem/main_1_hubs_1_hub-move-*35_55_0_ABS.png output/hub-move-motor-b.png
+cp LPub3D/assem/main_1_hubs_1_hub-prime-*35_-35_0_ABS.png output/hub-prime.png
+cp LPub3D/assem/main_1_hubs_1_hub-prime-*45_45_0_ABS.png output/hub-prime-orientation.png
+cp LPub3D/assem/main_1_hubs_1_hub-prime-*90_0_0_ABS.png output/hub-prime-display.png
+cp LPub3D/assem/main_1_hubs_1_hub-technic-*35_-35_0_ABS.png output/hub-technic.png
+cp LPub3D/assem/main_1_hubs_1_hub-technic-*45_-135_0_ABS.png output/hub-technic-orientation.png
+cp LPub3D/assem/main_1_iodevices-*.png output/iodevice-all.png
+cp LPub3D/assem/main_1_iodevices_1_iodevice-dcmotor-*.png output/iodevice-dcmotor.png
+cp LPub3D/assem/main_1_iodevices_1_iodevice-pupdevice-*.png output/iodevice-pupdevice.png
+cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12blue-*.png output/iodevice-rj12blue.png
+cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12brown-*.png output/iodevice-rj12brown.png
+cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12cyan-*.png output/iodevice-rj12cyan.png
+cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12green-*.png output/iodevice-rj12green.png
+cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12grey-*.png output/iodevice-rj12grey.png
+cp LPub3D/assem/main_1_iodevices_1_iodevice-rj12pcbbox-*.png output/iodevice-rj12pcbbox.png
+cp LPub3D/assem/main_1_nxtdevices-*.png output/nxtdevice-all.png
+cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-color-*.png output/nxtdevice-color.png
+cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-energy-*.png output/nxtdevice-energy.png
+cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-light-*.png output/nxtdevice-light.png
+cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-nxt-*.png output/nxtdevice-nxt.png
+cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-sound-*.png output/nxtdevice-sound.png
+cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-temperature-*.png output/nxtdevice-temperature.png
+cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-touch-*.png output/nxtdevice-touch.png
+cp LPub3D/assem/main_1_nxtdevices_1_nxtdevice-ultrasonic-*.png output/nxtdevice-ultrasonic.png
+cp LPub3D/assem/main_1_pupdcmotors-*.png output/pupdevice-dcmotors.png
+cp LPub3D/assem/main_1_pupdevices-*.png output/pupdevice-all.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-color-*0_0.png output/pupdevice-color-front.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-color-*ABS.png output/pupdevice-color.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-colordistance-*.png output/pupdevice-colordistance.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-force-*.png output/pupdevice-force.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-infrared-*.png output/pupdevice-infrared.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-light-*.png output/pupdevice-light.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-lightmatrix-*.png output/pupdevice-lightmatrix.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-pfmotor-*.png output/pupdevice-pfmotor.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-remote-*.png output/pupdevice-remote.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-tilt-*35_-35_0_ABS.png output/pupdevice-tilt.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-tilt-*45_-135_0_ABS.png output/pupdevice-tilt-orientation.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-ultrasonic-*0_0.png output/pupdevice-ultrasonic-front.png
+cp LPub3D/assem/main_1_pupdevices_1_pupdevice-ultrasonic-*ABS.png output/pupdevice-ultrasonic.png
+cp LPub3D/assem/main_1_pupmotors-*.png output/pupdevice-motors.png
+cp LPub3D/assem/main_1_imu-orientation-*.png output/imu-orientation.png
diff --git a/doc/main/cad/devices.mpd b/doc/main/cad/devices.mpd
new file mode 100644
index 0000000..870e4a3
--- /dev/null
+++ b/doc/main/cad/devices.mpd
@@ -0,0 +1,841 @@
+0 FILE main.ldr
+0 main
+0 Name: main.ldr
+0 Author: Pybricks
+0 !LPUB RESOLUTION GLOBAL 150 DPI
+0 !LPUB PAGE SIZE GLOBAL 33.1102 46.8110 A0
+0 !LPUB PAGE MARGINS GLOBAL 0.0000 0.0000
+0 !LPUB PLI SHOW GLOBAL FALSE
+0 !LPUB PAGE ORIENTATION GLOBAL LANDSCAPE
+0 !LPUB PAGE BACKGROUND GLOBAL TRANSPARENT
+0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.3
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 0 730 0 -37 1 0 0 0 1 0 0 0 1 pupdevices.ldr
+1 0 0 0 140 1 0 0 0 1 0 0 0 1 hubs.ldr
+1 0 70 0 333 1 0 0 0 1 0 0 0 1 pupmotors.ldr
+1 0 1340 380 700 0 0 1 0 1 0 -1 0 0 pupdcmotors.ldr
+1 0 -590 380 570 1 0 0 0 1 0 0 0 1 nxtdevices.ldr
+1 0 -280 380 1730 1 0 0 0 1 0 0 0 1 ev3devices.ldr
+1 0 -720 380 1840 1 0 0 0 1 0 0 0 1 iodevices.ldr
+0 BUFEXCHG A STORE
+1 0 -720 380 1840 1 0 0 0 1 0 0 0 1 imu-orientation.ldr
+0 BUFEXCHG A RETRIEVE
+0 ROTSTEP 40 -35 0 ABS
+0
+0 STEP
+0 !LPUB INSERT COVER_PAGE BACK
+0 NOFILE
+0
+0 FILE pupdevices.ldr
+0 New Model
+0 Name: pupdevices.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+0 BUFEXCHG A STORE
+0 GHOST 1 0 1043 0 -136 1 0 0 0 1 0 0 0 1 pupdevice-pfmotor.ldr
+0 BUFEXCHG A RETRIEVE
+1 0 349 0 -225 1 0 0 0 1 0 0 0 1 pupdevice-color.ldr
+1 0 -31 0 -215 1 0 0 0 1 0 0 0 1 pupdevice-force.ldr
+1 0 139 0 -235 1 0 0 0 1 0 0 0 1 pupdevice-ultrasonic.ldr
+1 0 460 0 20 1 0 0 0 1 0 0 0 1 pupdevice-tilt.ldr
+1 0 300 0 20 1 0 0 0 1 0 0 0 1 pupdevice-colordistance.ldr
+1 0 130 0 20 1 0 0 0 1 0 0 0 1 pupdevice-infrared.ldr
+1 0 510 0 -280 1 0 0 0 1 0 0 0 1 pupdevice-lightmatrix.ldr
+1 0 560 0 60 1 0 0 0 1 0 0 0 1 pupdevice-light.ldr
+1 0 330 0 350 1 0 0 0 1 0 0 0 1 pupdevice-remote.ldr
+0 ROTSTEP 35 -35 0 ABS
+0
+0
+0
+0
+0 NOFILE
+0
+0 FILE hubs.ldr
+0 New Model
+0 Name: hubs.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 0 80 30 -270 1 0 0 0 1 0 0 0 1 hub-prime.ldr
+1 0 -150 30 -130 1 0 0 0 1 0 0 0 1 hub-inventor.ldr
+0 ROTSTEP 40 -35 0 ABS
+1 0 280 0 -460 1 0 0 0 1 0 0 0 1 hub-essential.ldr
+1 0 0 0 0 1 0 0 0 1 0 0 0 1 hubs-lwp3.ldr
+0 STEP
+0
+0 NOFILE
+0
+0 FILE pupdevice-color.ldr
+0 New Model
+0 Name: pupdevice-color.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+0 GHOST 1 15 0 0 -50 -1 0 0 0 -1 0 0 0 1 37308.dat
+0 ROTSTEP 0 0 0 ABS
+1 15 0 0 0 -1 0 0 0 -1 0 0 0 1 37308c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE pupdevice-ultrasonic.ldr
+0 New Model
+0 Name: pupdevice-ultrasonic.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 37316.dat
+0 ROTSTEP 0 0 0 ABS
+1 511 0 14 0 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE pupdevice-force.ldr
+0 New Model
+0 Name: pupdevice-force.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 -1 0 0 0 -1 0 0 0 1 37312c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE pupdevice-colordistance.ldr
+0 New Model
+0 Name: pupdevice-colordistance.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 26912.dat
+1 256 0 8 35 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE pupdevice-infrared.ldr
+0 New Model
+0 Name: pupdevice-infrared.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 0 0 1 0 1 0 -1 0 0 20844.dat
+1 256 0 8 35 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE pupdevice-tilt.ldr
+0 New Model
+0 Name: pupdevice-tilt.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 256 0 8 35 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
+1 15 0 0 0 0 0 1 0 1 0 -1 0 0 20841.dat
+0 ROTSTEP 35 -35 0 ABS
+1 15 0 0 0 0 0 1 0 1 0 -1 0 0 20841.dat
+0 ROTSTEP 45 -135 0 ABS
+0
+0
+0 NOFILE
+0
+0 FILE hub-technic.ldr
+0 New Model
+0 Name: hub-technic.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 71 0 0 0 1 0 0 0 1 0 0 0 1 22127.dat
+0 ROTSTEP 35 -35 0 ABS
+1 71 0 0 0 1 0 0 0 1 0 0 0 1 22127.dat
+0 ROTSTEP 45 -135 0 ABS
+0 NOFILE
+0
+0 FILE hub-prime.ldr
+0 New Model
+0 Name: hub-prime.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 45601.dat
+1 14 0 0 0 1 0 0 0 1 0 0 0 1 45610.dat
+0 ROTSTEP 35 -35 0 ABS
+1 14 0 0 0 1 0 0 0 1 0 0 0 1 45610.dat
+0 ROTSTEP 45 45 0 ABS
+1 14 0 0 0 1 0 0 0 1 0 0 0 1 45610.dat
+0 ROTSTEP 90 0 0 ABS
+0
+0 NOFILE
+0
+0 FILE hub-inventor.ldr
+0 New Model
+0 Name: hub-inventor.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 67718c01.dat
+0 ROTSTEP 35 -35 0 ABS
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 67718c01.dat
+0 ROTSTEP 45 45 0 ABS
+0
+0 NOFILE
+0
+0 FILE hub-city.ldr
+0 New Model
+0 Name: hub-city.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 28738.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE hub-move.ldr
+0 New Model
+0 Name: hub-move.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 26910.dat
+0 ROTSTEP 35 -125 0 ABS
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 26910.dat
+0 ROTSTEP 35 55 0 ABS
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 26910.dat
+0 ROTSTEP 35 -35 0 ABS
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 26910.dat
+0 ROTSTEP 45 45 0 ABS
+0
+0 NOFILE
+0
+0 FILE hub-essential.ldr
+0 New Model
+0 Name: hub-essential.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 67351c01.dat
+0 ROTSTEP 35 -35 0 ABS
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 67351c01.dat
+0 ROTSTEP 45 45 0 ABS
+0
+0
+0
+0
+0
+0
+0 NOFILE
+0
+0 FILE pupdevice-lightmatrix.ldr
+0 New Model
+0 Name: pupdevice-lightmatrix.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 -1 0 0 0 -1 0 0 0 1 47592c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE pupdevice-light.ldr
+0 New Model
+0 Name: pupdevice-light.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 0 0 0 0 1 0 0 0 1 0 0 0 1 22168.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE pupdevice-pfmotor.ldr
+0 New Model
+0 Name: pupdevice-pfmotor.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 71 445 -9 202 0 0 -1 0 1 0 1 0 0 99499c01.dat
+1 71 120 0 230 0 0 1 0 1 0 -1 0 0 58123.dat
+1 15 2.655 -31 364.341 0.965925 0 -0.258819 0 1 0 0.258819 0 0.965925 26912.dat
+1 256 -6.404 -23 398.149 -0.965925 0 -0.258819 0 -1 0 -0.258819 0 0.965925 u9218c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE pupdevice-remote.ldr
+0 New Model
+0 Name: pupdevice-remote.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 -1 0 0 0 1 0 0 0 -1 28739.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0
+0 NOFILE
+0
+0 FILE pupmotors.ldr
+0 New Model
+0 Name: pupmotors.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 450 -76 -20 0 0 1 1 0 0 0 1 0 54675c01.dat
+1 15 -30 -76 280 0 0 1 1 0 0 0 1 0 68488c01.dat
+1 71 550 -76 200 0 0 1 1 0 0 0 1 0 69730c01.dat
+1 15 180 -72 140 0 0 1 1 0 0 0 1 0 54696c01.dat
+1 15 260 -72 350 0 0 1 1 0 0 0 1 0 54696p02c01.dat
+1 71 430 -84 470 1 0 0 0 1 0 0 0 1 22169c01.dat
+1 71 590 -86 360 1 0 0 0 1 0 0 0 1 22172c01.dat
+1 15 300 -110 630 1 0 0 0 1 0 0 0 1 26913c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0
+0 NOFILE
+0
+0 FILE pupdcmotors.ldr
+0 New Model
+0 Name: pupdcmotors.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 256 61 -346 -31 1 0 0 0 1 0 0 0 1 u9218c01.dat
+1 0 60 -312 -150 1 0 0 0 1 0 0 0 1 3706.dat
+1 0 100 -312 -150 0 0 -1 0 1 0 1 0 0 u9241.dat
+1 0 100 -312 -30 0 0 -1 0 1 0 1 0 0 u9241.dat
+1 0 20 -312 -30 0 0 1 0 1 0 -1 0 0 u9241.dat
+1 0 20 -312 -150 0 0 1 0 1 0 -1 0 0 u9241.dat
+1 0 60 -312 -30 1 0 0 0 1 0 0 0 1 3706.dat
+1 0 90 -344 -90 1 0 0 0 1 0 0 0 1 2871b.dat
+1 0 60 -352 -90 -1 0 0 0 1 0 0 0 -1 2894.dat
+1 0 30 -344 -90 -1 0 0 0 1 0 0 0 -1 2871b.dat
+1 15 10 -376 -310 0 0 -1 0 1 0 1 0 0 21980c01.dat
+0 ROTSTEP 25 45 0 ABS
+0
+0
+0
+0
+0 NOFILE
+0
+0 FILE nxtdevices.ldr
+0 New Model
+0 Name: nxtdevices.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+0 GHOST 1 0 20 0 600 1 0 0 0 1 0 0 0 1 nxtdevice-nxt.ldr
+1 0 60 0 110 1 0 0 0 1 0 0 0 1 nxtdevice-touch.ldr
+1 0 180 0 30 1 0 0 0 1 0 0 0 1 nxtdevice-light.ldr
+1 0 290 0 -60 1 0 0 0 1 0 0 0 1 nxtdevice-color.ldr
+1 0 -80 0 200 1 0 0 0 1 0 0 0 1 nxtdevice-ultrasonic.ldr
+1 0 410 0 -150 1 0 0 0 1 0 0 0 1 nxtdevice-sound.ldr
+1 0 -210 0 420 1 0 0 0 1 0 0 0 1 nxtdevice-temperature.ldr
+1 0 340 0 520 1 0 0 0 1 0 0 0 1 nxtdevice-energy.ldr
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-nxt.ldr
+0 New Model
+0 Name: nxtdevice-nxt.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 53788c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-touch.ldr
+0 New Model
+0 Name: nxtdevice-touch.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 53793.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-light.ldr
+0 New Model
+0 Name: nxtdevice-light.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 55969.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-color.ldr
+0 New Model
+0 Name: nxtdevice-color.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 64892.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-ultrasonic.ldr
+0 New Model
+0 Name: nxtdevice-ultrasonic.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 53792.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-sound.ldr
+0 New Model
+0 Name: nxtdevice-sound.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 55963.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-temperature.ldr
+0 New Model
+0 Name: nxtdevice-temperature.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 62840.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-energy.ldr
+0 New Model
+0 Name: nxtdevice-energy.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 71 0 0 0 1 0 0 0 1 0 0 0 1 87576c01.dat
+1 71 280 70 -220 1 0 0 0 1 0 0 0 1 87578.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-vernier.ldr
+0 New Model
+0 Name: nxtdevice-vernier.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 53793.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE nxtdevice-motor.ldr
+0 New Model
+0 Name: nxtdevice-motor.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 53787.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE ev3device-ev3.ldr
+0 New Model
+0 Name: ev3device-ev3.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 95646c01.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE ev3device-motors.ldr
+0 New Model
+0 Name: ev3device-motors.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 370 -296 -430 0 0 1 0 1 0 -1 0 0 95658.dat
+1 15 90 -296 -340 1 0 0 0 1 0 0 0 1 99455.dat
+1 151 610 -296 -580 0 0 1 0 -1 0 1 0 0 53787.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE ev3device-large.ldr
+0 New Model
+0 Name: ev3device-large.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 95658.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE ev3device-medium.ldr
+0 New Model
+0 Name: ev3device-medium.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 99455.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE ev3device-touch.ldr
+0 New Model
+0 Name: ev3device-touch.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 95648.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE ev3device-color.ldr
+0 New Model
+0 Name: ev3device-color.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 95650.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE ev3device-infrared.ldr
+0 New Model
+0 Name: ev3device-infrared.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 95654.dat
+0 GHOST 1 15 210 -60 -190 -1 0 0 0 1 0 0 0 -1 72156.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE ev3device-ultrasonic.ldr
+0 New Model
+0 Name: ev3device-ultrasonic.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 95652.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE ev3device-gyro.ldr
+0 New Model
+0 Name: ev3device-gyro.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 0 0 0 1 0 0 0 1 0 0 0 1 99380.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0
+0 NOFILE
+0
+0 FILE ev3devices.ldr
+0 New Model
+0 Name: ev3devices.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 0 370 0 40 1 0 0 0 1 0 0 0 1 ev3device-ev3.ldr
+1 0 0 280 0 1 0 0 0 1 0 0 0 1 ev3device-motors.ldr
+1 0 590 0 10 1 0 0 0 1 0 0 0 1 ev3device-touch.ldr
+1 0 630 0 -340 1 0 0 0 1 0 0 0 1 ev3device-infrared.ldr
+1 0 790 0 -150 1 0 0 0 1 0 0 0 1 ev3device-color.ldr
+1 0 480 0 -210 1 0 0 0 1 0 0 0 1 ev3device-ultrasonic.ldr
+1 0 680 0 -80 1 0 0 0 1 0 0 0 1 ev3device-gyro.ldr
+0 ROTSTEP 35 -35 0 ABS
+0
+0
+0 NOFILE
+0
+0 FILE iodevices.ldr
+0 New Model
+0 Name: iodevices.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 !LPUB ASSEM MODEL_SCALE GLOBAL 0.35
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 0 470 0 170 1 0 0 0 1 0 0 0 1 iodevice-pupdevice.ldr
+1 0 320 -60 320 1 0 0 0 1 0 0 0 1 iodevice-dcmotor.ldr
+1 0 510 0 -100 1 0 0 0 1 0 0 0 1 iodevice-rj12green.ldr
+1 0 430 0 -40 1 0 0 0 1 0 0 0 1 iodevice-rj12brown.ldr
+1 0 170 0 100 1 0 0 0 1 0 0 0 1 iodevice-rj12cyan.ldr
+1 0 260 0 50 1 0 0 0 1 0 0 0 1 iodevice-rj12blue.ldr
+1 0 350 0 0 1 0 0 0 1 0 0 0 1 iodevice-rj12grey.ldr
+1 0 140 -50 330 1 0 0 0 1 0 0 0 1 iodevice-rj12pcbbox.ldr
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE iodevice-dcmotor.ldr
+0 New Model
+0 Name: iodevice-dcmotor.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 16 0 0 -80 0 0 -1 0 1 0 1 0 0 6625c01.dat
+1 47 -70 0 160 0 0 -1 0 -1 0 -1 0 0 55804.dat
+1 0 0 0 80 0 0 -1 0 -1 0 -1 0 0 897.dat
+1 71 0 0 -60 1 0 0 0 1 0 0 0 1 71427.dat
+1 256 0 1.5 -64 0 0 1 -1 0 0 0 154 0 993.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE iodevice-rj12green.ldr
+0 New Model
+0 Name: iodevice-rj12green.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 2 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
+1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE iodevice-rj12blue.ldr
+0 New Model
+0 Name: iodevice-rj12blue.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 1 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
+1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE iodevice-rj12brown.ldr
+0 New Model
+0 Name: iodevice-rj12brown.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 6 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
+1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE iodevice-rj12cyan.ldr
+0 New Model
+0 Name: iodevice-rj12cyan.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 11 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
+1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE iodevice-rj12grey.ldr
+0 New Model
+0 Name: iodevice-rj12grey.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 7 0 0 50 0 0 -30 0 1 0 50 0 0 box.dat
+1 151 0 0 0 1 0 0 0 1 0 0 0 1 54732b.dat
+1 0 0 -1 80 -20 0 0 0 1 0 0 0 -10 box.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE iodevice-rj12pcbbox.ldr
+0 New Model
+0 Name: iodevice-rj12pcbbox.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 0 0 5 0 0 0 -40 0 6 0 50 0 0 box.dat
+1 151 0 0 -50 1 0 0 0 1 0 0 0 1 54732b.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0
+0 NOFILE
+0
+0 FILE iodevice-nxtgeneric.ldr
+0 New Model
+0 Name: iodevice-nxtgeneric.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 151 1200 -392 -350 1 0 0 0 1 0 0 0 1 ms1040.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0 NOFILE
+0
+0 FILE iodevice-pupdevice.ldr
+0 New Model
+0 Name: iodevice-pupdevice.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 2 0 0 30 0 0 -30 0 1 0 50 0 0 box.dat
+1 0 0 0 80 1 0 0 0 1 0 0 0 1 u9218c01.dat
+1 0 0 -1 0 -20 0 0 0 1 0 0 0 -10 box.dat
+1 0 150 0 -50 1 0 0 0 1 0 0 0 1 u9470c01.dat
+1 15 150 15 -50 1 0 0 0 1 0 0 0 1 u9218c01.dat
+1 0 120 0 -81 15 0 0 0 0 15 0 -1 0 box.dat
+1 0 180 0 -81 0 0 -8 15 0 0 0 -1 0 box.dat
+1 0 160 0 -81 0 0 8 -15 0 0 0 -1 0 box.dat
+1 4 195 -8 -81 0 0 2 -2 0 0 0 -1 0 box.dat
+1 2 150 0 -80 50 0 0 0 0 20 0 -1 0 box.dat
+1 1 195 0 -81 0 0 2 -2 0 0 0 -1 0 box.dat
+1 14 195 8 -81 0 0 2 -2 0 0 0 -1 0 box.dat
+0 ROTSTEP 35 -35 0 ABS
+0
+0
+0
+0 NOFILE
+0
+0
+0
+0 FILE imu-orientation.ldr
+0 New Model
+0 Name: imu-orientation.ldr
+0 Author: Pybricks
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 15 -80 -20 160 0 0 1 0 1 0 -1 0 0 45601c01.dat
+1 322 0 20 70 1 0 0 0 1 0 0 0 1 39367p01.dat
+1 322 -160 20 70 1 0 0 0 1 0 0 0 1 39367p01.dat
+1 322 0 20 250 1 0 0 0 1 0 0 0 1 39367p01.dat
+1 322 -160 20 250 1 0 0 0 1 0 0 0 1 39367p01.dat
+0 WRITE Type in the comment
+1 15 720 -80 170 0 0 -1 0 -1 0 -1 0 0 45601c01.dat
+1 322 800 20 80 1 0 0 0 1 0 0 0 1 39367p01.dat
+1 322 640 20 80 1 0 0 0 1 0 0 0 1 39367p01.dat
+1 322 800 20 260 1 0 0 0 1 0 0 0 1 39367p01.dat
+1 322 640 20 260 1 0 0 0 1 0 0 0 1 39367p01.dat
+0 WRITE Type in the comment
+1 15 720 -70 -630 0 1 0 0 0 -1 -1 0 0 45601c01.dat
+1 322 770 20 -720 1 0 0 0 1 0 0 0 1 39367p01.dat
+1 322 610 20 -720 1 0 0 0 1 0 0 0 1 39367p01.dat
+1 322 770 20 -540 1 0 0 0 1 0 0 0 1 39367p01.dat
+1 322 610 20 -540 1 0 0 0 1 0 0 0 1 39367p01.dat
+0 WRITE Type in the comment
+0 WRITE Type in the comment
+0 MLCAD BTG Group name
+1 71 -230 60 -780 0 0 1 -1 0 0 0 -1 0 55615.dat
+0 MLCAD BTG Group name
+1 4 -90 60 -800 0 0 1 -1 0 0 0 -1 0 32278.dat
+0 MLCAD BTG Group name
+1 2 -250 60 -640 0 1 0 -1 0 0 0 0 1 32278.dat
+0 MLCAD BTG Group name
+1 71 -230 40 -780 0 0 1 0 1 0 -1 0 0 55615.dat
+0 MLCAD BTG Group name
+1 1 -250 -100 -780 0 1 0 0 0 -1 -1 0 0 32278.dat
+0 GROUP 5 Group name
+1 15 -20 90 -570 0 0 -1 0 -1 0 -1 0 0 3811.dat
+1 15 720 90 -570 0 0 -1 0 -1 0 -1 0 0 3811.dat
+1 15 -30 90 190 0 0 -1 0 -1 0 -1 0 0 3811.dat
+1 15 720 90 190 0 0 -1 0 -1 0 -1 0 0 3811.dat
+0 ROTSTEP 35 -45 0 ABS
+0
+0
+0
+0 NOFILE
+0
+0
+0
+0 FILE hubs-lwp3.ldr
+0 New Model
+0 Name: hubs-lwp3.ldr
+0 Author: MLCad
+0 Unofficial Model
+0 ROTATION CENTER 0 0 0 1 "Custom"
+0 ROTATION CONFIG 0 0
+1 0 200 0 70 1 0 0 0 1 0 0 0 1 hub-technic.ldr
+1 0 40 0 220 1 0 0 0 1 0 0 0 1 hub-city.ldr
+1 0 450 0 -40 1 0 0 0 1 0 0 0 1 hub-move.ldr
+0 ROTSTEP 40 -35 0 ABS
+0
+0
diff --git a/doc/main/cad/output/all.png b/doc/main/cad/output/all.png
new file mode 100644
index 0000000..b6c763a
Binary files /dev/null and b/doc/main/cad/output/all.png differ
diff --git a/doc/main/cad/output/ev3device-all.png b/doc/main/cad/output/ev3device-all.png
new file mode 100644
index 0000000..81d0d32
Binary files /dev/null and b/doc/main/cad/output/ev3device-all.png differ
diff --git a/doc/main/cad/output/ev3device-color.png b/doc/main/cad/output/ev3device-color.png
new file mode 100644
index 0000000..cccfccb
Binary files /dev/null and b/doc/main/cad/output/ev3device-color.png differ
diff --git a/doc/main/cad/output/ev3device-ev3.png b/doc/main/cad/output/ev3device-ev3.png
new file mode 100644
index 0000000..0f3081a
Binary files /dev/null and b/doc/main/cad/output/ev3device-ev3.png differ
diff --git a/doc/main/cad/output/ev3device-gyro.png b/doc/main/cad/output/ev3device-gyro.png
new file mode 100644
index 0000000..b21979c
Binary files /dev/null and b/doc/main/cad/output/ev3device-gyro.png differ
diff --git a/doc/main/cad/output/ev3device-infrared.png b/doc/main/cad/output/ev3device-infrared.png
new file mode 100644
index 0000000..92e9eaa
Binary files /dev/null and b/doc/main/cad/output/ev3device-infrared.png differ
diff --git a/doc/main/cad/output/ev3device-motors.png b/doc/main/cad/output/ev3device-motors.png
new file mode 100644
index 0000000..12bc506
Binary files /dev/null and b/doc/main/cad/output/ev3device-motors.png differ
diff --git a/doc/main/cad/output/ev3device-touch.png b/doc/main/cad/output/ev3device-touch.png
new file mode 100644
index 0000000..ff1638f
Binary files /dev/null and b/doc/main/cad/output/ev3device-touch.png differ
diff --git a/doc/main/cad/output/ev3device-ultrasonic.png b/doc/main/cad/output/ev3device-ultrasonic.png
new file mode 100644
index 0000000..4ece93a
Binary files /dev/null and b/doc/main/cad/output/ev3device-ultrasonic.png differ
diff --git a/doc/main/cad/output/hub-all.png b/doc/main/cad/output/hub-all.png
new file mode 100644
index 0000000..3c6c58b
Binary files /dev/null and b/doc/main/cad/output/hub-all.png differ
diff --git a/doc/main/cad/output/hub-city.png b/doc/main/cad/output/hub-city.png
new file mode 100644
index 0000000..76203cd
Binary files /dev/null and b/doc/main/cad/output/hub-city.png differ
diff --git a/doc/main/cad/output/hub-essential-orientation.png b/doc/main/cad/output/hub-essential-orientation.png
new file mode 100644
index 0000000..d286f76
Binary files /dev/null and b/doc/main/cad/output/hub-essential-orientation.png differ
diff --git a/doc/main/cad/output/hub-essential.png b/doc/main/cad/output/hub-essential.png
new file mode 100644
index 0000000..f7f09c9
Binary files /dev/null and b/doc/main/cad/output/hub-essential.png differ
diff --git a/doc/main/cad/output/hub-inventor-orientation.png b/doc/main/cad/output/hub-inventor-orientation.png
new file mode 100644
index 0000000..a4eeea4
Binary files /dev/null and b/doc/main/cad/output/hub-inventor-orientation.png differ
diff --git a/doc/main/cad/output/hub-inventor.png b/doc/main/cad/output/hub-inventor.png
new file mode 100644
index 0000000..1f51f9d
Binary files /dev/null and b/doc/main/cad/output/hub-inventor.png differ
diff --git a/doc/main/cad/output/hub-lwp3.png b/doc/main/cad/output/hub-lwp3.png
new file mode 100644
index 0000000..478c42d
Binary files /dev/null and b/doc/main/cad/output/hub-lwp3.png differ
diff --git a/doc/main/cad/output/hub-move-motor-a.png b/doc/main/cad/output/hub-move-motor-a.png
new file mode 100644
index 0000000..183aa1a
Binary files /dev/null and b/doc/main/cad/output/hub-move-motor-a.png differ
diff --git a/doc/main/cad/output/hub-move-motor-b.png b/doc/main/cad/output/hub-move-motor-b.png
new file mode 100644
index 0000000..65668d2
Binary files /dev/null and b/doc/main/cad/output/hub-move-motor-b.png differ
diff --git a/doc/main/cad/output/hub-move-orientation.png b/doc/main/cad/output/hub-move-orientation.png
new file mode 100644
index 0000000..f10978e
Binary files /dev/null and b/doc/main/cad/output/hub-move-orientation.png differ
diff --git a/doc/main/cad/output/hub-move.png b/doc/main/cad/output/hub-move.png
new file mode 100644
index 0000000..52860fa
Binary files /dev/null and b/doc/main/cad/output/hub-move.png differ
diff --git a/doc/main/cad/output/hub-prime-display.png b/doc/main/cad/output/hub-prime-display.png
new file mode 100644
index 0000000..e3b0194
Binary files /dev/null and b/doc/main/cad/output/hub-prime-display.png differ
diff --git a/doc/main/cad/output/hub-prime-orientation.png b/doc/main/cad/output/hub-prime-orientation.png
new file mode 100644
index 0000000..912b0bf
Binary files /dev/null and b/doc/main/cad/output/hub-prime-orientation.png differ
diff --git a/doc/main/cad/output/hub-prime.png b/doc/main/cad/output/hub-prime.png
new file mode 100644
index 0000000..15b7d7b
Binary files /dev/null and b/doc/main/cad/output/hub-prime.png differ
diff --git a/doc/main/cad/output/hub-spike-inventor.png b/doc/main/cad/output/hub-spike-inventor.png
new file mode 100644
index 0000000..f89caff
Binary files /dev/null and b/doc/main/cad/output/hub-spike-inventor.png differ
diff --git a/doc/main/cad/output/hub-technic-orientation.png b/doc/main/cad/output/hub-technic-orientation.png
new file mode 100644
index 0000000..a31cb80
Binary files /dev/null and b/doc/main/cad/output/hub-technic-orientation.png differ
diff --git a/doc/main/cad/output/hub-technic.png b/doc/main/cad/output/hub-technic.png
new file mode 100644
index 0000000..30cd821
Binary files /dev/null and b/doc/main/cad/output/hub-technic.png differ
diff --git a/doc/main/cad/output/imu-orientation.png b/doc/main/cad/output/imu-orientation.png
new file mode 100644
index 0000000..9c8211d
Binary files /dev/null and b/doc/main/cad/output/imu-orientation.png differ
diff --git a/doc/main/cad/output/iodevice-all.png b/doc/main/cad/output/iodevice-all.png
new file mode 100644
index 0000000..5b53a47
Binary files /dev/null and b/doc/main/cad/output/iodevice-all.png differ
diff --git a/doc/main/cad/output/iodevice-dcmotor.png b/doc/main/cad/output/iodevice-dcmotor.png
new file mode 100644
index 0000000..d1c2fc8
Binary files /dev/null and b/doc/main/cad/output/iodevice-dcmotor.png differ
diff --git a/doc/main/cad/output/iodevice-pupdevice.png b/doc/main/cad/output/iodevice-pupdevice.png
new file mode 100644
index 0000000..6151e0e
Binary files /dev/null and b/doc/main/cad/output/iodevice-pupdevice.png differ
diff --git a/doc/main/cad/output/iodevice-rj12blue.png b/doc/main/cad/output/iodevice-rj12blue.png
new file mode 100644
index 0000000..d8859c3
Binary files /dev/null and b/doc/main/cad/output/iodevice-rj12blue.png differ
diff --git a/doc/main/cad/output/iodevice-rj12brown.png b/doc/main/cad/output/iodevice-rj12brown.png
new file mode 100644
index 0000000..f6dacfe
Binary files /dev/null and b/doc/main/cad/output/iodevice-rj12brown.png differ
diff --git a/doc/main/cad/output/iodevice-rj12cyan.png b/doc/main/cad/output/iodevice-rj12cyan.png
new file mode 100644
index 0000000..4d5a677
Binary files /dev/null and b/doc/main/cad/output/iodevice-rj12cyan.png differ
diff --git a/doc/main/cad/output/iodevice-rj12green.png b/doc/main/cad/output/iodevice-rj12green.png
new file mode 100644
index 0000000..0d6645f
Binary files /dev/null and b/doc/main/cad/output/iodevice-rj12green.png differ
diff --git a/doc/main/cad/output/iodevice-rj12grey.png b/doc/main/cad/output/iodevice-rj12grey.png
new file mode 100644
index 0000000..d6dc08b
Binary files /dev/null and b/doc/main/cad/output/iodevice-rj12grey.png differ
diff --git a/doc/main/cad/output/iodevice-rj12pcbbox.png b/doc/main/cad/output/iodevice-rj12pcbbox.png
new file mode 100644
index 0000000..e62e25d
Binary files /dev/null and b/doc/main/cad/output/iodevice-rj12pcbbox.png differ
diff --git a/doc/main/cad/output/nxtdevice-all.png b/doc/main/cad/output/nxtdevice-all.png
new file mode 100644
index 0000000..0b9ea48
Binary files /dev/null and b/doc/main/cad/output/nxtdevice-all.png differ
diff --git a/doc/main/cad/output/nxtdevice-color.png b/doc/main/cad/output/nxtdevice-color.png
new file mode 100644
index 0000000..2fc2754
Binary files /dev/null and b/doc/main/cad/output/nxtdevice-color.png differ
diff --git a/doc/main/cad/output/nxtdevice-energy.png b/doc/main/cad/output/nxtdevice-energy.png
new file mode 100644
index 0000000..0a79a79
Binary files /dev/null and b/doc/main/cad/output/nxtdevice-energy.png differ
diff --git a/doc/main/cad/output/nxtdevice-light.png b/doc/main/cad/output/nxtdevice-light.png
new file mode 100644
index 0000000..6011fc6
Binary files /dev/null and b/doc/main/cad/output/nxtdevice-light.png differ
diff --git a/doc/main/cad/output/nxtdevice-nxt.png b/doc/main/cad/output/nxtdevice-nxt.png
new file mode 100644
index 0000000..fa44be0
Binary files /dev/null and b/doc/main/cad/output/nxtdevice-nxt.png differ
diff --git a/doc/main/cad/output/nxtdevice-sound.png b/doc/main/cad/output/nxtdevice-sound.png
new file mode 100644
index 0000000..ef76097
Binary files /dev/null and b/doc/main/cad/output/nxtdevice-sound.png differ
diff --git a/doc/main/cad/output/nxtdevice-temperature.png b/doc/main/cad/output/nxtdevice-temperature.png
new file mode 100644
index 0000000..1d19450
Binary files /dev/null and b/doc/main/cad/output/nxtdevice-temperature.png differ
diff --git a/doc/main/cad/output/nxtdevice-touch.png b/doc/main/cad/output/nxtdevice-touch.png
new file mode 100644
index 0000000..3299541
Binary files /dev/null and b/doc/main/cad/output/nxtdevice-touch.png differ
diff --git a/doc/main/cad/output/nxtdevice-ultrasonic.png b/doc/main/cad/output/nxtdevice-ultrasonic.png
new file mode 100644
index 0000000..4e9accf
Binary files /dev/null and b/doc/main/cad/output/nxtdevice-ultrasonic.png differ
diff --git a/doc/main/cad/output/pupdevice-all.png b/doc/main/cad/output/pupdevice-all.png
new file mode 100644
index 0000000..f68453f
Binary files /dev/null and b/doc/main/cad/output/pupdevice-all.png differ
diff --git a/doc/main/cad/output/pupdevice-color-front.png b/doc/main/cad/output/pupdevice-color-front.png
new file mode 100644
index 0000000..6d7047a
Binary files /dev/null and b/doc/main/cad/output/pupdevice-color-front.png differ
diff --git a/doc/main/cad/output/pupdevice-color.png b/doc/main/cad/output/pupdevice-color.png
new file mode 100644
index 0000000..57b6d29
Binary files /dev/null and b/doc/main/cad/output/pupdevice-color.png differ
diff --git a/doc/main/cad/output/pupdevice-colordistance.png b/doc/main/cad/output/pupdevice-colordistance.png
new file mode 100644
index 0000000..290ccb8
Binary files /dev/null and b/doc/main/cad/output/pupdevice-colordistance.png differ
diff --git a/doc/main/cad/output/pupdevice-dcmotors.png b/doc/main/cad/output/pupdevice-dcmotors.png
new file mode 100644
index 0000000..5f232be
Binary files /dev/null and b/doc/main/cad/output/pupdevice-dcmotors.png differ
diff --git a/doc/main/cad/output/pupdevice-force.png b/doc/main/cad/output/pupdevice-force.png
new file mode 100644
index 0000000..8505b8d
Binary files /dev/null and b/doc/main/cad/output/pupdevice-force.png differ
diff --git a/doc/main/cad/output/pupdevice-infrared.png b/doc/main/cad/output/pupdevice-infrared.png
new file mode 100644
index 0000000..69a57c5
Binary files /dev/null and b/doc/main/cad/output/pupdevice-infrared.png differ
diff --git a/doc/main/cad/output/pupdevice-light.png b/doc/main/cad/output/pupdevice-light.png
new file mode 100644
index 0000000..a081105
Binary files /dev/null and b/doc/main/cad/output/pupdevice-light.png differ
diff --git a/doc/main/cad/output/pupdevice-lightmatrix.png b/doc/main/cad/output/pupdevice-lightmatrix.png
new file mode 100644
index 0000000..8301773
Binary files /dev/null and b/doc/main/cad/output/pupdevice-lightmatrix.png differ
diff --git a/doc/main/cad/output/pupdevice-motors.png b/doc/main/cad/output/pupdevice-motors.png
new file mode 100644
index 0000000..865062e
Binary files /dev/null and b/doc/main/cad/output/pupdevice-motors.png differ
diff --git a/doc/main/cad/output/pupdevice-pfmotor.png b/doc/main/cad/output/pupdevice-pfmotor.png
new file mode 100644
index 0000000..defa6bf
Binary files /dev/null and b/doc/main/cad/output/pupdevice-pfmotor.png differ
diff --git a/doc/main/cad/output/pupdevice-remote.png b/doc/main/cad/output/pupdevice-remote.png
new file mode 100644
index 0000000..9bf8f23
Binary files /dev/null and b/doc/main/cad/output/pupdevice-remote.png differ
diff --git a/doc/main/cad/output/pupdevice-tilt-orientation.png b/doc/main/cad/output/pupdevice-tilt-orientation.png
new file mode 100644
index 0000000..14293ed
Binary files /dev/null and b/doc/main/cad/output/pupdevice-tilt-orientation.png differ
diff --git a/doc/main/cad/output/pupdevice-tilt.png b/doc/main/cad/output/pupdevice-tilt.png
new file mode 100644
index 0000000..dbdd5a7
Binary files /dev/null and b/doc/main/cad/output/pupdevice-tilt.png differ
diff --git a/doc/main/cad/output/pupdevice-ultrasonic-front.png b/doc/main/cad/output/pupdevice-ultrasonic-front.png
new file mode 100644
index 0000000..18b2418
Binary files /dev/null and b/doc/main/cad/output/pupdevice-ultrasonic-front.png differ
diff --git a/doc/main/cad/output/pupdevice-ultrasonic.png b/doc/main/cad/output/pupdevice-ultrasonic.png
new file mode 100644
index 0000000..d60228c
Binary files /dev/null and b/doc/main/cad/output/pupdevice-ultrasonic.png differ
diff --git a/doc/main/diagram_source/Makefile b/doc/main/diagram_source/Makefile
deleted file mode 100755
index f337dcd..0000000
--- a/doc/main/diagram_source/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-
-SRC_DIR = .
-OUT_DIR = ../images
-
-POSTFIX := _label
-SVG := $(wildcard $(SRC_DIR)/*.svg)
-DIAGRAMS := $(patsubst $(SRC_DIR)/%.svg,$(OUT_DIR)/%$(POSTFIX).png,$(SVG))
-DIR := ${CURDIR}
-
-all: $(DIAGRAMS)
-
-clean:
- rm -f $(DIAGRAMS)
-
-$(OUT_DIR)/%$(POSTFIX).png: $(SRC_DIR)/%.svg
- if inkscape --version | grep -q "Inkscape 0"; then \
- inkscape --file=$(DIR)/$< --export-area-drawing --export-png=$(DIR)/$@; \
- else \
- inkscape \
- --export-area-drawing \
- --export-background=white \
- --export-background-opacity=1.0 \
- --export-file=$(DIR)/$@ \
- $(DIR)/$<; \
- fi
diff --git a/doc/main/diagram_source/compat_movehub_false.svg b/doc/main/diagram_source/compat_movehub_false.svg
deleted file mode 100644
index ef70902..0000000
--- a/doc/main/diagram_source/compat_movehub_false.svg
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
diff --git a/doc/main/diagram_source/compat_movehub_true.svg b/doc/main/diagram_source/compat_movehub_true.svg
deleted file mode 100644
index 575627e..0000000
--- a/doc/main/diagram_source/compat_movehub_true.svg
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
diff --git a/doc/main/diagram_source/ev3motors.ldr b/doc/main/diagram_source/ev3motors.ldr
deleted file mode 100644
index 18e766d..0000000
--- a/doc/main/diagram_source/ev3motors.ldr
+++ /dev/null
@@ -1,6 +0,0 @@
-0 Name: pupmotors
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-1 15 370 -296 -430 0 0 1 0 1 0 -1 0 0 95658.dat
-1 15 90 -296 -340 1 0 0 0 1 0 0 0 1 99455.dat
-1 15 610 -296 -580 0 0 1 0 -1 0 1 0 0 53787.dat
diff --git a/doc/main/diagram_source/ev3motors.png b/doc/main/diagram_source/ev3motors.png
deleted file mode 100644
index a60504c..0000000
Binary files a/doc/main/diagram_source/ev3motors.png and /dev/null differ
diff --git a/doc/main/diagram_source/ev3sensors.ldr b/doc/main/diagram_source/ev3sensors.ldr
deleted file mode 100644
index 035d8ea..0000000
--- a/doc/main/diagram_source/ev3sensors.ldr
+++ /dev/null
@@ -1,16 +0,0 @@
-0 Name: ev3sensors
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-1 15 390 -320 -200 1 0 0 0 1 0 0 0 1 95648.dat
-1 15 10 -320 -240 1 0 0 0 1 0 0 0 1 95652.dat
-1 15 310 -320 210 1 0 0 0 1 0 0 0 1 99380.dat
-1 15 -70 -320 170 1 0 0 0 1 0 0 0 1 95650.dat
-1 15 720 -320 370 1 0 0 0 1 0 0 0 1 95654.dat
-1 15 910 -400 150 -1 0 0 0 1 0 0 0 -1 72156.dat
-1 151 410 -320 -910 1 0 0 0 1 0 0 0 1 55969.dat
-1 151 730 -320 -880 1 0 0 0 1 0 0 0 1 64892.dat
-1 151 1000 -320 -1000 1 0 0 0 1 0 0 0 1 55963.dat
-1 151 -360 -320 -940 1 0 0 0 1 0 0 0 1 62840.dat
-1 151 90 -320 -970 1 0 0 0 1 0 0 0 1 53793.dat
-1 151 1250 -320 -580 1 0 0 0 1 0 0 0 1 53792.dat
-1 151 1340 -320 -970 1 0 0 0 1 0 0 0 1 55963.dat
diff --git a/doc/main/diagram_source/hubs.ldr b/doc/main/diagram_source/hubs.ldr
deleted file mode 100644
index 4987e02..0000000
--- a/doc/main/diagram_source/hubs.ldr
+++ /dev/null
@@ -1,14 +0,0 @@
-0 Name: hubs.ldr
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-0 ROTATION CENTER 0 0 0 1 "Custom"
-0 ROTATION CONFIG 0 0
-1 15 -20 -56 320 1 0 0 0 1 0 0 0 1 26910.dat
-1 15 -330 -80 110 0 0 1 0 1 0 -1 0 0 28738.dat
-1 71 -310 -40 390 1 0 0 0 1 0 0 0 1 22127.dat
-1 15 260 -16 90 1 0 0 0 1 0 0 0 1 45601p02.dat
-1 3 440 -16 10 1 0 0 0 1 0 0 0 1 45601c01.dat
-1 3 780 -16 -310 1 0 0 0 1 0 0 0 1 45601c01.dat
-1 15 -930 -40 360 1 0 0 0 1 0 0 0 1 95646c01.dat
-1 15 -1490 32 350 1 0 0 0 1 0 0 0 1 53788c01.dat
-0
diff --git a/doc/main/diagram_source/hubsoverview.ldr b/doc/main/diagram_source/hubsoverview.ldr
deleted file mode 100644
index f558dfe..0000000
--- a/doc/main/diagram_source/hubsoverview.ldr
+++ /dev/null
@@ -1,11 +0,0 @@
-0 Name: hubsoverview.ldr
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-0 ROTATION CENTER 0 0 0 1 "Custom"
-0 ROTATION CONFIG 0 0
-1 15 90 -56 300 1 0 0 0 1 0 0 0 1 26910.dat
-1 15 -150 -80 300 1 0 0 0 1 0 0 0 1 28738.dat
-1 71 -360 -40 120 -1 0 0 0 1 0 0 0 -1 22127.dat
-1 15 -160 -16 -40 1 0 0 0 1 0 0 0 1 45601p02.dat
-1 3 50 -16 -140 1 0 0 0 1 0 0 0 1 45601c01.dat
-0
diff --git a/doc/main/diagram_source/imu.ldr b/doc/main/diagram_source/imu.ldr
deleted file mode 100644
index 2990110..0000000
--- a/doc/main/diagram_source/imu.ldr
+++ /dev/null
@@ -1,40 +0,0 @@
-0 Name: imu.ldr
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-0 ROTATION CENTER 0 0 0 1 "Custom"
-0 ROTATION CONFIG 0 0
-1 3 -80 -20 160 0 0 1 0 1 0 -1 0 0 45601c01.dat
-1 322 0 20 70 1 0 0 0 1 0 0 0 1 39367p01.dat
-1 322 -160 20 70 1 0 0 0 1 0 0 0 1 39367p01.dat
-1 322 0 20 250 1 0 0 0 1 0 0 0 1 39367p01.dat
-1 322 -160 20 250 1 0 0 0 1 0 0 0 1 39367p01.dat
-0 WRITE Type in the comment
-1 3 720 -80 170 0 0 -1 0 -1 0 -1 0 0 45601c01.dat
-1 322 800 20 80 1 0 0 0 1 0 0 0 1 39367p01.dat
-1 322 640 20 80 1 0 0 0 1 0 0 0 1 39367p01.dat
-1 322 800 20 260 1 0 0 0 1 0 0 0 1 39367p01.dat
-1 322 640 20 260 1 0 0 0 1 0 0 0 1 39367p01.dat
-0 WRITE Type in the comment
-1 3 720 -70 -630 0 1 0 0 0 -1 -1 0 0 45601c01.dat
-1 322 770 20 -720 1 0 0 0 1 0 0 0 1 39367p01.dat
-1 322 610 20 -720 1 0 0 0 1 0 0 0 1 39367p01.dat
-1 322 770 20 -540 1 0 0 0 1 0 0 0 1 39367p01.dat
-1 322 610 20 -540 1 0 0 0 1 0 0 0 1 39367p01.dat
-0 WRITE Type in the comment
-0 WRITE Type in the comment
-0 MLCAD BTG Group name
-1 71 -230 60 -780 0 0 1 -1 0 0 0 -1 0 55615.dat
-0 MLCAD BTG Group name
-1 4 -90 60 -800 0 0 1 -1 0 0 0 -1 0 32278.dat
-0 MLCAD BTG Group name
-1 2 -250 60 -640 0 1 0 -1 0 0 0 0 1 32278.dat
-0 MLCAD BTG Group name
-1 71 -230 40 -780 0 0 1 0 1 0 -1 0 0 55615.dat
-0 MLCAD BTG Group name
-1 1 -250 -100 -780 0 1 0 0 0 -1 -1 0 0 32278.dat
-0 GROUP 5 Group name
-1 15 -20 90 -570 0 0 -1 0 -1 0 -1 0 0 3811.dat
-1 15 720 90 -570 0 0 -1 0 -1 0 -1 0 0 3811.dat
-1 15 -30 90 190 0 0 -1 0 -1 0 -1 0 0 3811.dat
-1 15 720 90 190 0 0 -1 0 -1 0 -1 0 0 3811.dat
-0
diff --git a/doc/main/diagram_source/imuexamples.png b/doc/main/diagram_source/imuexamples.png
deleted file mode 100644
index b9d707a..0000000
Binary files a/doc/main/diagram_source/imuexamples.png and /dev/null differ
diff --git a/doc/main/diagram_source/iodevices.ldr b/doc/main/diagram_source/iodevices.ldr
deleted file mode 100644
index c2134ab..0000000
--- a/doc/main/diagram_source/iodevices.ldr
+++ /dev/null
@@ -1,486 +0,0 @@
-0 FILE main.ldr
-0 Name: ev3sensors
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-0 !LDCAD GROUP_DEF [topLevel=true] [LID=0] [GID=Iv9FbUdBPsB] [name=Group 1] [center=0 0 0]
-0 !LDCAD GROUP_DEF [topLevel=true] [LID=1] [GID=IMOjEZg0eXo] [name=Group 2] [center=0 0 0]
-0 !LDCAD GROUP_DEF [topLevel=true] [LID=2] [GID=7Zgg7xpsn7m] [name=Group 3] [center=0 0 0]
-0 !LDCAD GROUP_DEF [topLevel=true] [LID=3] [GID=37IHSsFLUIW] [name=Group 4] [center=0 0 0]
-0 !LDCAD GROUP_DEF [topLevel=true] [LID=4] [GID=78T5iMUZhPB] [name=Group 5] [center=0 0 0]
-0 !LDCAD GROUP_DEF [topLevel=true] [LID=5] [GID=6l6RjlBcxBO] [name=Group 6] [center=0 0 0]
-0 !LDCAD GROUP_NXT [ids=2] [nrs=-1]
-1 1 1390 -320 -320 0 0 -30 0 1 0 50 0 0 box.dat
-0 !LDCAD GROUP_NXT [ids=2] [nrs=2]
-1 151 1390 -320 -370 1 0 0 0 1 0 0 0 1 54732b.dat
-0 !LDCAD GROUP_NXT [ids=3] [nrs=2]
-1 0 1510 -315 -390 0 0 -40 0 6 0 50 0 0 box.dat
-0 !LDCAD GROUP_NXT [ids=3] [nrs=-1]
-1 151 1510 -320 -440 1 0 0 0 1 0 0 0 1 54732b.dat
-0 !LDCAD GROUP_NXT [ids=0] [nrs=3]
-1 2 1350 -320 140 0 0 -30 0 1 0 50 0 0 box.dat
-0 !LDCAD GROUP_NXT [ids=0] [nrs=2]
-1 151 1350 -320 90 1 0 0 0 1 0 0 0 1 54732b.dat
-0 !LDCAD GROUP_NXT [ids=1] [nrs=2]
-1 2 1470 -320 60 0 0 -30 0 1 0 50 0 0 box.dat
-0 !LDCAD GROUP_NXT [ids=1] [nrs=3]
-1 0 1470 -320 110 1 0 0 0 1 0 0 0 1 u9218c01.dat
-0 !LDCAD GROUP_NXT [ids=0] [nrs=-1]
-1 0 1350 -321 170 -20 0 0 0 1 0 0 0 -10 box.dat
-0 !LDCAD GROUP_NXT [ids=1] [nrs=-1]
-1 0 1470 -321 30 -20 0 0 0 1 0 0 0 -10 box.dat
-0 !LDCAD GROUP_NXT [ids=4] [nrs=8]
-1 0 1620 -320 -20 1 0 0 0 1 0 0 0 1 u9470c01.dat
-0 !LDCAD GROUP_NXT [ids=4] [nrs=9]
-1 15 1620 -305 -20 1 0 0 0 1 0 0 0 1 u9218c01.dat
-0 !LDCAD GROUP_NXT [ids=4] [nrs=7]
-1 2 1620 -320 -50 50 0 0 0 0 20 0 -1 0 box.dat
-0 !LDCAD GROUP_NXT [ids=4] [nrs=-1]
-1 0 1590 -320 -51 15 0 0 0 0 15 0 -1 0 box.dat
-0 !LDCAD GROUP_NXT [ids=4] [nrs=5]
-1 0 1650 -320 -51 0 0 -8 15 0 0 0 -1 0 box.dat
-0 !LDCAD GROUP_NXT [ids=4] [nrs=6]
-1 0 1630 -320 -51 0 0 8 -15 0 0 0 -1 0 box.dat
-0 !LDCAD GROUP_NXT [ids=4] [nrs=2]
-1 4 1665 -328 -51 0 0 2 -2 0 0 0 -1 0 box.dat
-0 !LDCAD GROUP_NXT [ids=4] [nrs=3]
-1 1 1665 -320 -51 0 0 2 -2 0 0 0 -1 0 box.dat
-0 !LDCAD GROUP_NXT [ids=4] [nrs=4]
-1 14 1665 -312 -51 0 0 2 -2 0 0 0 -1 0 box.dat
-1 151 1200 -392 -350 1 0 0 0 1 0 0 0 1 ms1040.dat
-
-
-0 !LDCAD GROUP_NXT [ids=5] [nrs=4]
-1 47 625 -780 -230 0 0 -1 0 -1 0 -1 0 0 55804.dat
-0 !LDCAD GROUP_NXT [ids=5] [nrs=3]
-1 0 695 -780 -309 0 0 -1 0 -1 0 -1 0 0 897.dat
-0 !LDCAD GROUP_NXT [ids=5] [nrs=2]
-1 0 695 -784 -314 -1 0 0 0 1 0 0 0 -1 elecCable2Brick-1.ldr
-0 !LDCAD GROUP_NXT [ids=5] [nrs=1]
-1 0 695 -784 -449 1 0 0 0 1 0 0 0 1 71427.dat
-1 0 990 -321 -330 -20 0 0 0 1 0 0 0 -10 box.dat
-1 151 990 -320 -410 1 0 0 0 1 0 0 0 1 54732b.dat
-1 6 990 -320 -360 0 0 -30 0 1 0 50 0 0 box.dat
-1 0 1100 -321 -440 -20 0 0 0 1 0 0 0 -10 box.dat
-1 151 1100 -320 -520 1 0 0 0 1 0 0 0 1 54732b.dat
-1 3 1100 -320 -470 0 0 -30 0 1 0 50 0 0 box.dat
-1 0 1210 -321 -520 -20 0 0 0 1 0 0 0 -10 box.dat
-1 151 1210 -320 -600 1 0 0 0 1 0 0 0 1 54732b.dat
-1 7 1210 -320 -550 0 0 -30 0 1 0 50 0 0 box.dat
-0 FILE elecCable2Brick-1.ldr
-0 Author: LDCad
-0 !LICENSE MIT
-0 !CATEGORY electric
-0 !KEYWORDS flexible, cable, 9V
-0 !LDCAD CONTENT [type=path] [addFallBack=default] [looped=false] [displayKind=mm] [curveStep=0] [displayLenCor=0]
-
-0 !LDCAD PATH_POINT [type=bezier] [posOri=0 4 15 0 0 1 -1 0 0 0 -1 0] [prevCPDist=25] [nextCPDist=25] [cirR=20] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]
-0 !LDCAD PATH_POINT [type=bezier] [posOri=0 4 140 0 0 1 -1 0 0 0 -1 0] [prevCPDist=25] [nextCPDist=25] [cirR=20] [cirDir=xyCW] [prevYRoll=0] [nextYRoll=0]
-
-0 !LDCAD PATH_SKIN [donCol=16] [donOri=1 0 0 0 1 0 0 0 1] [donPart=ldcElecWire2Seg.dat] [donYSize=400%] [donCen=absCen] [donCenYOfs=0] [donFinScale=fitDon2Seg] [donPlace=deform] [donYAlign=0] [donInline=false] [segSize=100%] [segSizeTol=5%] [segsCnt=0] [segsGrp=0] [segsMaxMerge=10] [segsMrgAng=0] [segsMrgRollAng=0] [segsEdgeDelKind=keepFirstLeft]
-
-0 !LDCAD PATH_CAP [group=end] [color=0] [posOri=0 0 155 0 0 1 0 1 0 -1 0 0] [part=6625c01.dat] [extraLen=0mm] [inlineRef=false]
-0 !LDCAD PATH_CAP [group=end] [color=0] [posOri=0 16 155 0 0 1 0 1 0 -1 0 0] [part=2727ac01.dat] [extraLen=0mm] [inlineRef=false]
-
-0 !LDCAD GENERATED [generator=LDCad 1.6c]
-0 //This is the fallback LDraw content for above PATH configuration.
-0 // Do not edit, any changes will be lost upon regeneration.
-0 // The path is approx 50.00 mm (125.00) and exists out of 4 segments.
-
-0 //Some general hints about the document.
-0 UNOFFICIAL PART
-0 BFC CERTIFY CCW
-
-0 //Some of this content has been generated from other LDraw files, many thanks to all involved.
-0 // Credits for "ldcElecWire2Seg.dat":
-0 // Author: LDCad
-0 // Credits for "7-8cyli.dat":
-0 // Author: Guy Vivan
-0 // History:
-0 // 2009-05-02 [PTadmin] Official Update 2009-01
-0 // Credits for "ldcConRing-7-8.dat":
-0 // Author: LDCad
-
-0 //End cap reference(s)
-1 0 0 0 155 0 0 1 0 1 0 -1 0 0 6625c01.dat
-1 0 0 16 155 0 0 1 0 1 0 -1 0 0 2727ac01.dat
-
-0 //Segments
-0 // Segment 1, this block is (recursively) generated from "ldcElecWire2Seg.dat"
-4 16 0.32452 2.939305 55.645161 -0.00062 3.425975 55.645161 -0.00062 3.425975 15.000001 0.32452 2.939305 15.000001
-4 16 0.81118 2.614194 55.645161 0.32452 2.939305 55.645161 0.32452 2.939305 15.000001 0.81118 2.614194 15.000001
-4 16 1.385188 2.499961 55.645161 0.81118 2.614194 55.645161 0.81118 2.614194 15.000001 1.385188 2.499961 15.000001
-4 16 1.959225 2.61418 55.645161 1.385188 2.499961 55.645161 1.385188 2.499961 15.000001 1.959225 2.61418 15.000001
-4 16 2.445895 2.93932 55.645161 1.959225 2.61418 55.645161 1.959225 2.61418 15.000001 2.445895 2.93932 15.000001
-4 16 2.771006 3.42598 55.645161 2.445895 2.93932 55.645161 2.445895 2.93932 15.000001 2.771006 3.42598 15.000001
-4 16 2.885238 3.999988 55.645161 2.771006 3.42598 55.645161 2.771006 3.42598 15.000001 2.885238 3.999988 15.000001
-4 16 2.77102 4.574025 55.645161 2.885238 3.999988 55.645161 2.885238 3.999988 15.000001 2.77102 4.574025 15.000001
-4 16 2.44588 5.060695 55.645161 2.77102 4.574025 55.645161 2.77102 4.574025 15.000001 2.44588 5.060695 15.000001
-4 16 1.95922 5.385806 55.645161 2.44588 5.060695 55.645161 2.44588 5.060695 15.000001 1.95922 5.385806 15.000001
-4 16 1.385212 5.500039 55.645161 1.95922 5.385806 55.645161 1.95922 5.385806 15.000001 1.385212 5.500039 15.000001
-4 16 0.811175 5.38582 55.645161 1.385212 5.500039 55.645161 1.385212 5.500039 15.000001 0.811175 5.38582 15.000001
-4 16 0.324505 5.06068 55.645161 0.811175 5.38582 55.645161 0.811175 5.38582 15.000001 0.324505 5.06068 15.000001
-4 16 -0.000606 4.57402 55.645161 0.324505 5.06068 55.645161 0.324505 5.06068 15.000001 -0.000606 4.57402 15.000001
-4 16 -0.32452 5.060695 55.645161 -0.000606 4.57402 55.645161 -0.000606 4.57402 15.000001 -0.32452 5.060695 15.000001
-4 16 -0.81118 5.385806 55.645161 -0.32452 5.060695 55.645161 -0.32452 5.060695 15.000001 -0.81118 5.385806 15.000001
-4 16 -1.385188 5.500039 55.645161 -0.81118 5.385806 55.645161 -0.81118 5.385806 15.000001 -1.385188 5.500039 15.000001
-4 16 -1.959225 5.38582 55.645161 -1.385188 5.500039 55.645161 -1.385188 5.500039 15.000001 -1.959225 5.38582 15.000001
-4 16 -2.445895 5.06068 55.645161 -1.959225 5.38582 55.645161 -1.959225 5.38582 15.000001 -2.445895 5.06068 15.000001
-4 16 -2.771006 4.57402 55.645161 -2.445895 5.06068 55.645161 -2.445895 5.06068 15.000001 -2.771006 4.57402 15.000001
-4 16 -2.885238 4.000011 55.645161 -2.771006 4.57402 55.645161 -2.771006 4.57402 15.000001 -2.885238 4.000011 15.000001
-4 16 -2.77102 3.425975 55.645161 -2.885238 4.000011 55.645161 -2.885238 4.000011 15.000001 -2.77102 3.425975 15.000001
-4 16 -2.44588 2.939305 55.645161 -2.77102 3.425975 55.645161 -2.77102 3.425975 15.000001 -2.44588 2.939305 15.000001
-4 16 -1.95922 2.614194 55.645161 -2.44588 2.939305 55.645161 -2.44588 2.939305 15.000001 -1.95922 2.614194 15.000001
-4 16 -1.385212 2.499961 55.645161 -1.95922 2.614194 55.645161 -1.95922 2.614194 15.000001 -1.385212 2.499961 15.000001
-4 16 -0.811175 2.61418 55.645161 -1.385212 2.499961 55.645161 -1.385212 2.499961 15.000001 -0.811175 2.61418 15.000001
-4 16 -0.324505 2.93932 55.645161 -0.811175 2.61418 55.645161 -0.811175 2.61418 15.000001 -0.324505 2.93932 15.000001
-4 16 -0.00062 3.425975 55.645161 -0.324505 2.93932 55.645161 -0.324505 2.93932 15.000001 -0.00062 3.425975 15.000001
-5 24 -0.00062 3.425975 15.000001 -0.00062 3.425975 55.645161 -0.574645 4.811795 15.000001 0.32452 2.939305 15.000001
-5 24 0.32452 2.939305 15.000001 0.32452 2.939305 55.645161 -0.00062 3.425975 15.000001 0.81118 2.614194 15.000001
-5 24 0.81118 2.614194 15.000001 0.81118 2.614194 55.645161 0.32452 2.939305 15.000001 1.385188 2.499961 15.000001
-5 24 1.385188 2.499961 15.000001 1.385188 2.499961 55.645161 0.81118 2.614194 15.000001 1.959225 2.61418 15.000001
-5 24 1.959225 2.61418 15.000001 1.959225 2.61418 55.645161 1.385188 2.499961 15.000001 2.445895 2.93932 15.000001
-5 24 2.445895 2.93932 15.000001 2.445895 2.93932 55.645161 1.959225 2.61418 15.000001 2.771006 3.42598 15.000001
-5 24 2.771006 3.42598 15.000001 2.771006 3.42598 55.645161 2.445895 2.93932 15.000001 2.885238 3.999988 15.000001
-5 24 2.885238 3.999988 15.000001 2.885238 3.999988 55.645161 2.771006 3.42598 15.000001 2.77102 4.574025 15.000001
-5 24 2.77102 4.574025 15.000001 2.77102 4.574025 55.645161 2.885238 3.999988 15.000001 2.44588 5.060695 15.000001
-5 24 2.44588 5.060695 15.000001 2.44588 5.060695 55.645161 2.77102 4.574025 15.000001 1.95922 5.385806 15.000001
-5 24 1.95922 5.385806 15.000001 1.95922 5.385806 55.645161 2.44588 5.060695 15.000001 1.385212 5.500039 15.000001
-5 24 1.385212 5.500039 15.000001 1.385212 5.500039 55.645161 1.95922 5.385806 15.000001 0.811175 5.38582 15.000001
-5 24 0.811175 5.38582 15.000001 0.811175 5.38582 55.645161 1.385212 5.500039 15.000001 0.324505 5.06068 15.000001
-5 24 0.324505 5.06068 15.000001 0.324505 5.06068 55.645161 0.811175 5.38582 15.000001 -0.000606 4.57402 15.000001
-5 24 -0.000606 4.57402 15.000001 -0.000606 4.57402 55.645161 -0.574627 3.188214 15.000001 0.324505 5.06068 15.000001
-5 24 -0.000606 4.57402 15.000001 -0.000606 4.57402 55.645161 0.574645 3.188205 15.000001 -0.32452 5.060695 15.000001
-5 24 -0.32452 5.060695 15.000001 -0.32452 5.060695 55.645161 -0.000606 4.57402 15.000001 -0.81118 5.385806 15.000001
-5 24 -0.81118 5.385806 15.000001 -0.81118 5.385806 55.645161 -0.32452 5.060695 15.000001 -1.385188 5.500039 15.000001
-5 24 -1.385188 5.500039 15.000001 -1.385188 5.500039 55.645161 -0.81118 5.385806 15.000001 -1.959225 5.38582 15.000001
-5 24 -1.959225 5.38582 15.000001 -1.959225 5.38582 55.645161 -1.385188 5.500039 15.000001 -2.445895 5.06068 15.000001
-5 24 -2.445895 5.06068 15.000001 -2.445895 5.06068 55.645161 -1.959225 5.38582 15.000001 -2.771006 4.57402 15.000001
-5 24 -2.771006 4.57402 15.000001 -2.771006 4.57402 55.645161 -2.445895 5.06068 15.000001 -2.885238 4.000011 15.000001
-5 24 -2.885238 4.000011 15.000001 -2.885238 4.000011 55.645161 -2.771006 4.57402 15.000001 -2.77102 3.425975 15.000001
-5 24 -2.77102 3.425975 15.000001 -2.77102 3.425975 55.645161 -2.885238 4.000011 15.000001 -2.44588 2.939305 15.000001
-5 24 -2.44588 2.939305 15.000001 -2.44588 2.939305 55.645161 -2.77102 3.425975 15.000001 -1.95922 2.614194 15.000001
-5 24 -1.95922 2.614194 15.000001 -1.95922 2.614194 55.645161 -2.44588 2.939305 15.000001 -1.385212 2.499961 15.000001
-5 24 -1.385212 2.499961 15.000001 -1.385212 2.499961 55.645161 -1.95922 2.614194 15.000001 -0.811175 2.61418 15.000001
-5 24 -0.811175 2.61418 15.000001 -0.811175 2.61418 55.645161 -1.385212 2.499961 15.000001 -0.324505 2.93932 15.000001
-5 24 -0.324505 2.93932 15.000001 -0.324505 2.93932 55.645161 -0.811175 2.61418 15.000001 -0.00062 3.425975 15.000001
-5 24 -0.00062 3.425975 15.000001 -0.00062 3.425975 55.645161 0.574627 4.811786 15.000001 -0.324505 2.93932 15.000001
-5 24 -0.00062 3.425975 55.645161 0.32452 2.939305 55.645161 -0.00062 3.425975 75.717743 -0.00062 3.425975 15
-5 24 0.32452 2.939305 55.645161 0.81118 2.614194 55.645161 0.32452 2.939305 75.717743 0.32452 2.939305 15
-5 24 0.81118 2.614194 55.645161 1.385188 2.499961 55.645161 0.81118 2.614194 75.717743 0.81118 2.614194 15
-5 24 1.385188 2.499961 55.645161 1.959225 2.61418 55.645161 1.385188 2.499961 75.717743 1.385188 2.499961 15
-5 24 1.959225 2.61418 55.645161 2.445895 2.93932 55.645161 1.959225 2.61418 75.717743 1.959225 2.61418 15
-5 24 2.445895 2.93932 55.645161 2.771006 3.42598 55.645161 2.445895 2.93932 75.717743 2.445895 2.93932 15
-5 24 2.771006 3.42598 55.645161 2.885238 3.999988 55.645161 2.771006 3.42598 75.717743 2.771006 3.42598 15
-5 24 2.885238 3.999988 55.645161 2.77102 4.574025 55.645161 2.885238 3.999988 75.717743 2.885238 3.999988 15
-5 24 2.77102 4.574025 55.645161 2.44588 5.060695 55.645161 2.77102 4.574025 75.717743 2.77102 4.574025 15
-5 24 2.44588 5.060695 55.645161 1.95922 5.385806 55.645161 2.44588 5.060695 75.717743 2.44588 5.060695 15
-5 24 1.95922 5.385806 55.645161 1.385212 5.500039 55.645161 1.95922 5.385806 75.717743 1.95922 5.385806 15
-5 24 1.385212 5.500039 55.645161 0.811175 5.38582 55.645161 1.385212 5.500039 75.717743 1.385212 5.500039 15
-5 24 0.811175 5.38582 55.645161 0.324505 5.06068 55.645161 0.811175 5.38582 75.717743 0.811175 5.38582 15
-5 24 0.324505 5.06068 55.645161 -0.000606 4.57402 55.645161 0.324505 5.06068 75.717743 0.324505 5.06068 15
-5 24 -0.000606 4.57402 55.645161 -0.32452 5.060695 55.645161 0.00062 4.574025 75.717743 -0.000606 4.57402 15
-5 24 -0.32452 5.060695 55.645161 -0.81118 5.385806 55.645161 -0.32452 5.060695 75.717743 -0.32452 5.060695 15
-5 24 -0.81118 5.385806 55.645161 -1.385188 5.500039 55.645161 -0.81118 5.385806 75.717743 -0.81118 5.385806 15
-5 24 -1.385188 5.500039 55.645161 -1.959225 5.38582 55.645161 -1.385188 5.500039 75.717743 -1.385188 5.500039 15
-5 24 -1.959225 5.38582 55.645161 -2.445895 5.06068 55.645161 -1.959225 5.38582 75.717743 -1.959225 5.38582 15
-5 24 -2.445895 5.06068 55.645161 -2.771006 4.57402 55.645161 -2.445895 5.06068 75.717743 -2.445895 5.06068 15
-5 24 -2.771006 4.57402 55.645161 -2.885238 4.000011 55.645161 -2.771006 4.57402 75.717743 -2.771006 4.57402 15
-5 24 -2.885238 4.000011 55.645161 -2.77102 3.425975 55.645161 -2.885238 4.000011 75.717743 -2.885238 4.000011 15
-5 24 -2.77102 3.425975 55.645161 -2.44588 2.939305 55.645161 -2.77102 3.425975 75.717743 -2.77102 3.425975 15
-5 24 -2.44588 2.939305 55.645161 -1.95922 2.614194 55.645161 -2.44588 2.939305 75.717743 -2.44588 2.939305 15
-5 24 -1.95922 2.614194 55.645161 -1.385212 2.499961 55.645161 -1.95922 2.614194 75.717743 -1.95922 2.614194 15
-5 24 -1.385212 2.499961 55.645161 -0.811175 2.61418 55.645161 -1.385212 2.499961 75.717743 -1.385212 2.499961 15
-5 24 -0.811175 2.61418 55.645161 -0.324505 2.93932 55.645161 -0.811175 2.61418 75.717743 -0.811175 2.61418 15
-5 24 -0.324505 2.93932 55.645161 -0.00062 3.425975 55.645161 -0.324505 2.93932 75.717743 -0.324505 2.93932 15
-5 24 -0.00062 3.425975 15.000001 0.32452 2.939305 15.000001 -0.00062 3.425975 55.645161 -0.00062 3.425975 14.000001
-5 24 0.32452 2.939305 15.000001 0.81118 2.614194 15.000001 0.32452 2.939305 55.645161 0.32452 2.939305 14.000001
-5 24 0.81118 2.614194 15.000001 1.385188 2.499961 15.000001 0.81118 2.614194 55.645161 0.81118 2.614194 14.000001
-5 24 1.385188 2.499961 15.000001 1.959225 2.61418 15.000001 1.385188 2.499961 55.645161 1.385188 2.499961 14.000001
-5 24 1.959225 2.61418 15.000001 2.445895 2.93932 15.000001 1.959225 2.61418 55.645161 1.959225 2.61418 14.000001
-5 24 2.445895 2.93932 15.000001 2.771006 3.42598 15.000001 2.445895 2.93932 55.645161 2.445895 2.93932 14.000001
-5 24 2.771006 3.42598 15.000001 2.885238 3.999988 15.000001 2.771006 3.42598 55.645161 2.771006 3.42598 14.000001
-5 24 2.885238 3.999988 15.000001 2.77102 4.574025 15.000001 2.885238 3.999988 55.645161 2.885238 3.999988 14.000001
-5 24 2.77102 4.574025 15.000001 2.44588 5.060695 15.000001 2.77102 4.574025 55.645161 2.77102 4.574025 14.000001
-5 24 2.44588 5.060695 15.000001 1.95922 5.385806 15.000001 2.44588 5.060695 55.645161 2.44588 5.060695 14.000001
-5 24 1.95922 5.385806 15.000001 1.385212 5.500039 15.000001 1.95922 5.385806 55.645161 1.95922 5.385806 14.000001
-5 24 1.385212 5.500039 15.000001 0.811175 5.38582 15.000001 1.385212 5.500039 55.645161 1.385212 5.500039 14.000001
-5 24 0.811175 5.38582 15.000001 0.324505 5.06068 15.000001 0.811175 5.38582 55.645161 0.811175 5.38582 14.000001
-5 24 0.324505 5.06068 15.000001 -0.000606 4.57402 15.000001 0.324505 5.06068 55.645161 0.324505 5.06068 14.000001
-5 24 -0.000606 4.57402 15.000001 -0.32452 5.060695 15.000001 -0.000606 4.57402 55.645161 0.00062 4.574025 14.000001
-5 24 -0.32452 5.060695 15.000001 -0.81118 5.385806 15.000001 -0.32452 5.060695 55.645161 -0.32452 5.060695 14.000001
-5 24 -0.81118 5.385806 15.000001 -1.385188 5.500039 15.000001 -0.81118 5.385806 55.645161 -0.81118 5.385806 14.000001
-5 24 -1.385188 5.500039 15.000001 -1.959225 5.38582 15.000001 -1.385188 5.500039 55.645161 -1.385188 5.500039 14.000001
-5 24 -1.959225 5.38582 15.000001 -2.445895 5.06068 15.000001 -1.959225 5.38582 55.645161 -1.959225 5.38582 14.000001
-5 24 -2.445895 5.06068 15.000001 -2.771006 4.57402 15.000001 -2.445895 5.06068 55.645161 -2.445895 5.06068 14.000001
-5 24 -2.771006 4.57402 15.000001 -2.885238 4.000011 15.000001 -2.771006 4.57402 55.645161 -2.771006 4.57402 14.000001
-5 24 -2.885238 4.000011 15.000001 -2.77102 3.425975 15.000001 -2.885238 4.000011 55.645161 -2.885238 4.000011 14.000001
-5 24 -2.77102 3.425975 15.000001 -2.44588 2.939305 15.000001 -2.77102 3.425975 55.645161 -2.77102 3.425975 14.000001
-5 24 -2.44588 2.939305 15.000001 -1.95922 2.614194 15.000001 -2.44588 2.939305 55.645161 -2.44588 2.939305 14.000001
-5 24 -1.95922 2.614194 15.000001 -1.385212 2.499961 15.000001 -1.95922 2.614194 55.645161 -1.95922 2.614194 14.000001
-5 24 -1.385212 2.499961 15.000001 -0.811175 2.61418 15.000001 -1.385212 2.499961 55.645161 -1.385212 2.499961 14.000001
-5 24 -0.811175 2.61418 15.000001 -0.324505 2.93932 15.000001 -0.811175 2.61418 55.645161 -0.811175 2.61418 14.000001
-5 24 -0.324505 2.93932 15.000001 -0.00062 3.425975 15.000001 -0.324505 2.93932 55.645161 -0.324505 2.93932 14.000001
-
-0 // Segment 2, this block is (recursively) generated from "ldcElecWire2Seg.dat"
-4 16 0.32452 2.939305 95.790321 -0.00062 3.425975 95.790321 -0.00062 3.425975 55.645161 0.32452 2.939305 55.645161
-4 16 0.81118 2.614194 95.790321 0.32452 2.939305 95.790321 0.32452 2.939305 55.645161 0.81118 2.614194 55.645161
-4 16 1.385188 2.499961 95.790321 0.81118 2.614194 95.790321 0.81118 2.614194 55.645161 1.385188 2.499961 55.645161
-4 16 1.959225 2.61418 95.790321 1.385188 2.499961 95.790321 1.385188 2.499961 55.645161 1.959225 2.61418 55.645161
-4 16 2.445895 2.93932 95.790321 1.959225 2.61418 95.790321 1.959225 2.61418 55.645161 2.445895 2.93932 55.645161
-4 16 2.771006 3.42598 95.790321 2.445895 2.93932 95.790321 2.445895 2.93932 55.645161 2.771006 3.42598 55.645161
-4 16 2.885238 3.999988 95.790321 2.771006 3.42598 95.790321 2.771006 3.42598 55.645161 2.885238 3.999988 55.645161
-4 16 2.77102 4.574025 95.790321 2.885238 3.999988 95.790321 2.885238 3.999988 55.645161 2.77102 4.574025 55.645161
-4 16 2.44588 5.060695 95.790321 2.77102 4.574025 95.790321 2.77102 4.574025 55.645161 2.44588 5.060695 55.645161
-4 16 1.95922 5.385806 95.790321 2.44588 5.060695 95.790321 2.44588 5.060695 55.645161 1.95922 5.385806 55.645161
-4 16 1.385212 5.500039 95.790321 1.95922 5.385806 95.790321 1.95922 5.385806 55.645161 1.385212 5.500039 55.645161
-4 16 0.811175 5.38582 95.790321 1.385212 5.500039 95.790321 1.385212 5.500039 55.645161 0.811175 5.38582 55.645161
-4 16 0.324505 5.06068 95.790321 0.811175 5.38582 95.790321 0.811175 5.38582 55.645161 0.324505 5.06068 55.645161
-4 16 -0.000606 4.57402 95.790321 0.324505 5.06068 95.790321 0.324505 5.06068 55.645161 -0.000606 4.57402 55.645161
-4 16 -0.32452 5.060695 95.790321 -0.000606 4.57402 95.790321 -0.000606 4.57402 55.645161 -0.32452 5.060695 55.645161
-4 16 -0.81118 5.385806 95.790321 -0.32452 5.060695 95.790321 -0.32452 5.060695 55.645161 -0.81118 5.385806 55.645161
-4 16 -1.385188 5.500039 95.790321 -0.81118 5.385806 95.790321 -0.81118 5.385806 55.645161 -1.385188 5.500039 55.645161
-4 16 -1.959225 5.38582 95.790321 -1.385188 5.500039 95.790321 -1.385188 5.500039 55.645161 -1.959225 5.38582 55.645161
-4 16 -2.445895 5.06068 95.790321 -1.959225 5.38582 95.790321 -1.959225 5.38582 55.645161 -2.445895 5.06068 55.645161
-4 16 -2.771006 4.57402 95.790321 -2.445895 5.06068 95.790321 -2.445895 5.06068 55.645161 -2.771006 4.57402 55.645161
-4 16 -2.885238 4.000011 95.790321 -2.771006 4.57402 95.790321 -2.771006 4.57402 55.645161 -2.885238 4.000011 55.645161
-4 16 -2.77102 3.425975 95.790321 -2.885238 4.000011 95.790321 -2.885238 4.000011 55.645161 -2.77102 3.425975 55.645161
-4 16 -2.44588 2.939305 95.790321 -2.77102 3.425975 95.790321 -2.77102 3.425975 55.645161 -2.44588 2.939305 55.645161
-4 16 -1.95922 2.614194 95.790321 -2.44588 2.939305 95.790321 -2.44588 2.939305 55.645161 -1.95922 2.614194 55.645161
-4 16 -1.385212 2.499961 95.790321 -1.95922 2.614194 95.790321 -1.95922 2.614194 55.645161 -1.385212 2.499961 55.645161
-4 16 -0.811175 2.61418 95.790321 -1.385212 2.499961 95.790321 -1.385212 2.499961 55.645161 -0.811175 2.61418 55.645161
-4 16 -0.324505 2.93932 95.790321 -0.811175 2.61418 95.790321 -0.811175 2.61418 55.645161 -0.324505 2.93932 55.645161
-4 16 -0.00062 3.425975 95.790321 -0.324505 2.93932 95.790321 -0.324505 2.93932 55.645161 -0.00062 3.425975 55.645161
-5 24 -0.00062 3.425975 55.645161 -0.00062 3.425975 95.790321 -0.574645 4.811795 55.645161 0.32452 2.939305 55.645161
-5 24 0.32452 2.939305 55.645161 0.32452 2.939305 95.790321 -0.00062 3.425975 55.645161 0.81118 2.614194 55.645161
-5 24 0.81118 2.614194 55.645161 0.81118 2.614194 95.790321 0.32452 2.939305 55.645161 1.385188 2.499961 55.645161
-5 24 1.385188 2.499961 55.645161 1.385188 2.499961 95.790321 0.81118 2.614194 55.645161 1.959225 2.61418 55.645161
-5 24 1.959225 2.61418 55.645161 1.959225 2.61418 95.790321 1.385188 2.499961 55.645161 2.445895 2.93932 55.645161
-5 24 2.445895 2.93932 55.645161 2.445895 2.93932 95.790321 1.959225 2.61418 55.645161 2.771006 3.42598 55.645161
-5 24 2.771006 3.42598 55.645161 2.771006 3.42598 95.790321 2.445895 2.93932 55.645161 2.885238 3.999988 55.645161
-5 24 2.885238 3.999988 55.645161 2.885238 3.999988 95.790321 2.771006 3.42598 55.645161 2.77102 4.574025 55.645161
-5 24 2.77102 4.574025 55.645161 2.77102 4.574025 95.790321 2.885238 3.999988 55.645161 2.44588 5.060695 55.645161
-5 24 2.44588 5.060695 55.645161 2.44588 5.060695 95.790321 2.77102 4.574025 55.645161 1.95922 5.385806 55.645161
-5 24 1.95922 5.385806 55.645161 1.95922 5.385806 95.790321 2.44588 5.060695 55.645161 1.385212 5.500039 55.645161
-5 24 1.385212 5.500039 55.645161 1.385212 5.500039 95.790321 1.95922 5.385806 55.645161 0.811175 5.38582 55.645161
-5 24 0.811175 5.38582 55.645161 0.811175 5.38582 95.790321 1.385212 5.500039 55.645161 0.324505 5.06068 55.645161
-5 24 0.324505 5.06068 55.645161 0.324505 5.06068 95.790321 0.811175 5.38582 55.645161 -0.000606 4.57402 55.645161
-5 24 -0.000606 4.57402 55.645161 -0.000606 4.57402 95.790321 -0.574627 3.188214 55.645161 0.324505 5.06068 55.645161
-5 24 -0.000606 4.57402 55.645161 -0.000606 4.57402 95.790321 0.574645 3.188205 55.645161 -0.32452 5.060695 55.645161
-5 24 -0.32452 5.060695 55.645161 -0.32452 5.060695 95.790321 -0.000606 4.57402 55.645161 -0.81118 5.385806 55.645161
-5 24 -0.81118 5.385806 55.645161 -0.81118 5.385806 95.790321 -0.32452 5.060695 55.645161 -1.385188 5.500039 55.645161
-5 24 -1.385188 5.500039 55.645161 -1.385188 5.500039 95.790321 -0.81118 5.385806 55.645161 -1.959225 5.38582 55.645161
-5 24 -1.959225 5.38582 55.645161 -1.959225 5.38582 95.790321 -1.385188 5.500039 55.645161 -2.445895 5.06068 55.645161
-5 24 -2.445895 5.06068 55.645161 -2.445895 5.06068 95.790321 -1.959225 5.38582 55.645161 -2.771006 4.57402 55.645161
-5 24 -2.771006 4.57402 55.645161 -2.771006 4.57402 95.790321 -2.445895 5.06068 55.645161 -2.885238 4.000011 55.645161
-5 24 -2.885238 4.000011 55.645161 -2.885238 4.000011 95.790321 -2.771006 4.57402 55.645161 -2.77102 3.425975 55.645161
-5 24 -2.77102 3.425975 55.645161 -2.77102 3.425975 95.790321 -2.885238 4.000011 55.645161 -2.44588 2.939305 55.645161
-5 24 -2.44588 2.939305 55.645161 -2.44588 2.939305 95.790321 -2.77102 3.425975 55.645161 -1.95922 2.614194 55.645161
-5 24 -1.95922 2.614194 55.645161 -1.95922 2.614194 95.790321 -2.44588 2.939305 55.645161 -1.385212 2.499961 55.645161
-5 24 -1.385212 2.499961 55.645161 -1.385212 2.499961 95.790321 -1.95922 2.614194 55.645161 -0.811175 2.61418 55.645161
-5 24 -0.811175 2.61418 55.645161 -0.811175 2.61418 95.790321 -1.385212 2.499961 55.645161 -0.324505 2.93932 55.645161
-5 24 -0.324505 2.93932 55.645161 -0.324505 2.93932 95.790321 -0.811175 2.61418 55.645161 -0.00062 3.425975 55.645161
-5 24 -0.00062 3.425975 55.645161 -0.00062 3.425975 95.790321 0.574627 4.811786 55.645161 -0.324505 2.93932 55.645161
-5 24 -0.00062 3.425975 95.790321 0.32452 2.939305 95.790321 -0.00062 3.425975 116.1129 -0.00062 3.425975 55.645161
-5 24 0.32452 2.939305 95.790321 0.81118 2.614194 95.790321 0.32452 2.939305 116.1129 0.32452 2.939305 55.645161
-5 24 0.81118 2.614194 95.790321 1.385188 2.499961 95.790321 0.81118 2.614194 116.1129 0.81118 2.614194 55.645161
-5 24 1.385188 2.499961 95.790321 1.959225 2.61418 95.790321 1.385188 2.499961 116.1129 1.385188 2.499961 55.645161
-5 24 1.959225 2.61418 95.790321 2.445895 2.93932 95.790321 1.959225 2.61418 116.1129 1.959225 2.61418 55.645161
-5 24 2.445895 2.93932 95.790321 2.771006 3.42598 95.790321 2.445895 2.93932 116.1129 2.445895 2.93932 55.645161
-5 24 2.771006 3.42598 95.790321 2.885238 3.999988 95.790321 2.771006 3.42598 116.1129 2.771006 3.42598 55.645161
-5 24 2.885238 3.999988 95.790321 2.77102 4.574025 95.790321 2.885238 3.999988 116.1129 2.885238 3.999988 55.645161
-5 24 2.77102 4.574025 95.790321 2.44588 5.060695 95.790321 2.77102 4.574025 116.1129 2.77102 4.574025 55.645161
-5 24 2.44588 5.060695 95.790321 1.95922 5.385806 95.790321 2.44588 5.060695 116.1129 2.44588 5.060695 55.645161
-5 24 1.95922 5.385806 95.790321 1.385212 5.500039 95.790321 1.95922 5.385806 116.1129 1.95922 5.385806 55.645161
-5 24 1.385212 5.500039 95.790321 0.811175 5.38582 95.790321 1.385212 5.500039 116.1129 1.385212 5.500039 55.645161
-5 24 0.811175 5.38582 95.790321 0.324505 5.06068 95.790321 0.811175 5.38582 116.1129 0.811175 5.38582 55.645161
-5 24 0.324505 5.06068 95.790321 -0.000606 4.57402 95.790321 0.324505 5.06068 116.1129 0.324505 5.06068 55.645161
-5 24 -0.000606 4.57402 95.790321 -0.32452 5.060695 95.790321 0.00062 4.574025 116.1129 -0.000606 4.57402 55.645161
-5 24 -0.32452 5.060695 95.790321 -0.81118 5.385806 95.790321 -0.32452 5.060695 116.1129 -0.32452 5.060695 55.645161
-5 24 -0.81118 5.385806 95.790321 -1.385188 5.500039 95.790321 -0.81118 5.385806 116.1129 -0.81118 5.385806 55.645161
-5 24 -1.385188 5.500039 95.790321 -1.959225 5.38582 95.790321 -1.385188 5.500039 116.1129 -1.385188 5.500039 55.645161
-5 24 -1.959225 5.38582 95.790321 -2.445895 5.06068 95.790321 -1.959225 5.38582 116.1129 -1.959225 5.38582 55.645161
-5 24 -2.445895 5.06068 95.790321 -2.771006 4.57402 95.790321 -2.445895 5.06068 116.1129 -2.445895 5.06068 55.645161
-5 24 -2.771006 4.57402 95.790321 -2.885238 4.000011 95.790321 -2.771006 4.57402 116.1129 -2.771006 4.57402 55.645161
-5 24 -2.885238 4.000011 95.790321 -2.77102 3.425975 95.790321 -2.885238 4.000011 116.1129 -2.885238 4.000011 55.645161
-5 24 -2.77102 3.425975 95.790321 -2.44588 2.939305 95.790321 -2.77102 3.425975 116.1129 -2.77102 3.425975 55.645161
-5 24 -2.44588 2.939305 95.790321 -1.95922 2.614194 95.790321 -2.44588 2.939305 116.1129 -2.44588 2.939305 55.645161
-5 24 -1.95922 2.614194 95.790321 -1.385212 2.499961 95.790321 -1.95922 2.614194 116.1129 -1.95922 2.614194 55.645161
-5 24 -1.385212 2.499961 95.790321 -0.811175 2.61418 95.790321 -1.385212 2.499961 116.1129 -1.385212 2.499961 55.645161
-5 24 -0.811175 2.61418 95.790321 -0.324505 2.93932 95.790321 -0.811175 2.61418 116.1129 -0.811175 2.61418 55.645161
-5 24 -0.324505 2.93932 95.790321 -0.00062 3.425975 95.790321 -0.324505 2.93932 116.1129 -0.324505 2.93932 55.645161
-
-0 // Segment 3, this block is (recursively) generated from "ldcElecWire2Seg.dat"
-4 16 0.32452 2.939305 136.435486 -0.00062 3.425975 136.435486 -0.00062 3.425975 95.790321 0.32452 2.939305 95.790321
-4 16 0.81118 2.614194 136.435486 0.32452 2.939305 136.435486 0.32452 2.939305 95.790321 0.81118 2.614194 95.790321
-4 16 1.385188 2.499961 136.435486 0.81118 2.614194 136.435486 0.81118 2.614194 95.790321 1.385188 2.499961 95.790321
-4 16 1.959225 2.61418 136.435486 1.385188 2.499961 136.435486 1.385188 2.499961 95.790321 1.959225 2.61418 95.790321
-4 16 2.445895 2.93932 136.435486 1.959225 2.61418 136.435486 1.959225 2.61418 95.790321 2.445895 2.93932 95.790321
-4 16 2.771006 3.42598 136.435486 2.445895 2.93932 136.435486 2.445895 2.93932 95.790321 2.771006 3.42598 95.790321
-4 16 2.885238 3.999988 136.435486 2.771006 3.42598 136.435486 2.771006 3.42598 95.790321 2.885238 3.999988 95.790321
-4 16 2.77102 4.574025 136.435486 2.885238 3.999988 136.435486 2.885238 3.999988 95.790321 2.77102 4.574025 95.790321
-4 16 2.44588 5.060695 136.435486 2.77102 4.574025 136.435486 2.77102 4.574025 95.790321 2.44588 5.060695 95.790321
-4 16 1.95922 5.385806 136.435486 2.44588 5.060695 136.435486 2.44588 5.060695 95.790321 1.95922 5.385806 95.790321
-4 16 1.385212 5.500039 136.435486 1.95922 5.385806 136.435486 1.95922 5.385806 95.790321 1.385212 5.500039 95.790321
-4 16 0.811175 5.38582 136.435486 1.385212 5.500039 136.435486 1.385212 5.500039 95.790321 0.811175 5.38582 95.790321
-4 16 0.324505 5.06068 136.435486 0.811175 5.38582 136.435486 0.811175 5.38582 95.790321 0.324505 5.06068 95.790321
-4 16 -0.000606 4.57402 136.435486 0.324505 5.06068 136.435486 0.324505 5.06068 95.790321 -0.000606 4.57402 95.790321
-4 16 -0.32452 5.060695 136.435486 -0.000606 4.57402 136.435486 -0.000606 4.57402 95.790321 -0.32452 5.060695 95.790321
-4 16 -0.81118 5.385806 136.435486 -0.32452 5.060695 136.435486 -0.32452 5.060695 95.790321 -0.81118 5.385806 95.790321
-4 16 -1.385188 5.500039 136.435486 -0.81118 5.385806 136.435486 -0.81118 5.385806 95.790321 -1.385188 5.500039 95.790321
-4 16 -1.959225 5.38582 136.435486 -1.385188 5.500039 136.435486 -1.385188 5.500039 95.790321 -1.959225 5.38582 95.790321
-4 16 -2.445895 5.06068 136.435486 -1.959225 5.38582 136.435486 -1.959225 5.38582 95.790321 -2.445895 5.06068 95.790321
-4 16 -2.771006 4.57402 136.435486 -2.445895 5.06068 136.435486 -2.445895 5.06068 95.790321 -2.771006 4.57402 95.790321
-4 16 -2.885238 4.000011 136.435486 -2.771006 4.57402 136.435486 -2.771006 4.57402 95.790321 -2.885238 4.000011 95.790321
-4 16 -2.77102 3.425975 136.435486 -2.885238 4.000011 136.435486 -2.885238 4.000011 95.790321 -2.77102 3.425975 95.790321
-4 16 -2.44588 2.939305 136.435486 -2.77102 3.425975 136.435486 -2.77102 3.425975 95.790321 -2.44588 2.939305 95.790321
-4 16 -1.95922 2.614194 136.435486 -2.44588 2.939305 136.435486 -2.44588 2.939305 95.790321 -1.95922 2.614194 95.790321
-4 16 -1.385212 2.499961 136.435486 -1.95922 2.614194 136.435486 -1.95922 2.614194 95.790321 -1.385212 2.499961 95.790321
-4 16 -0.811175 2.61418 136.435486 -1.385212 2.499961 136.435486 -1.385212 2.499961 95.790321 -0.811175 2.61418 95.790321
-4 16 -0.324505 2.93932 136.435486 -0.811175 2.61418 136.435486 -0.811175 2.61418 95.790321 -0.324505 2.93932 95.790321
-4 16 -0.00062 3.425975 136.435486 -0.324505 2.93932 136.435486 -0.324505 2.93932 95.790321 -0.00062 3.425975 95.790321
-5 24 -0.00062 3.425975 95.790321 -0.00062 3.425975 136.435486 -0.574645 4.811795 95.790321 0.32452 2.939305 95.790321
-5 24 0.32452 2.939305 95.790321 0.32452 2.939305 136.435486 -0.00062 3.425975 95.790321 0.81118 2.614194 95.790321
-5 24 0.81118 2.614194 95.790321 0.81118 2.614194 136.435486 0.32452 2.939305 95.790321 1.385188 2.499961 95.790321
-5 24 1.385188 2.499961 95.790321 1.385188 2.499961 136.435486 0.81118 2.614194 95.790321 1.959225 2.61418 95.790321
-5 24 1.959225 2.61418 95.790321 1.959225 2.61418 136.435486 1.385188 2.499961 95.790321 2.445895 2.93932 95.790321
-5 24 2.445895 2.93932 95.790321 2.445895 2.93932 136.435486 1.959225 2.61418 95.790321 2.771006 3.42598 95.790321
-5 24 2.771006 3.42598 95.790321 2.771006 3.42598 136.435486 2.445895 2.93932 95.790321 2.885238 3.999988 95.790321
-5 24 2.885238 3.999988 95.790321 2.885238 3.999988 136.435486 2.771006 3.42598 95.790321 2.77102 4.574025 95.790321
-5 24 2.77102 4.574025 95.790321 2.77102 4.574025 136.435486 2.885238 3.999988 95.790321 2.44588 5.060695 95.790321
-5 24 2.44588 5.060695 95.790321 2.44588 5.060695 136.435486 2.77102 4.574025 95.790321 1.95922 5.385806 95.790321
-5 24 1.95922 5.385806 95.790321 1.95922 5.385806 136.435486 2.44588 5.060695 95.790321 1.385212 5.500039 95.790321
-5 24 1.385212 5.500039 95.790321 1.385212 5.500039 136.435486 1.95922 5.385806 95.790321 0.811175 5.38582 95.790321
-5 24 0.811175 5.38582 95.790321 0.811175 5.38582 136.435486 1.385212 5.500039 95.790321 0.324505 5.06068 95.790321
-5 24 0.324505 5.06068 95.790321 0.324505 5.06068 136.435486 0.811175 5.38582 95.790321 -0.000606 4.57402 95.790321
-5 24 -0.000606 4.57402 95.790321 -0.000606 4.57402 136.435486 -0.574627 3.188214 95.790321 0.324505 5.06068 95.790321
-5 24 -0.000606 4.57402 95.790321 -0.000606 4.57402 136.435486 0.574645 3.188205 95.790321 -0.32452 5.060695 95.790321
-5 24 -0.32452 5.060695 95.790321 -0.32452 5.060695 136.435486 -0.000606 4.57402 95.790321 -0.81118 5.385806 95.790321
-5 24 -0.81118 5.385806 95.790321 -0.81118 5.385806 136.435486 -0.32452 5.060695 95.790321 -1.385188 5.500039 95.790321
-5 24 -1.385188 5.500039 95.790321 -1.385188 5.500039 136.435486 -0.81118 5.385806 95.790321 -1.959225 5.38582 95.790321
-5 24 -1.959225 5.38582 95.790321 -1.959225 5.38582 136.435486 -1.385188 5.500039 95.790321 -2.445895 5.06068 95.790321
-5 24 -2.445895 5.06068 95.790321 -2.445895 5.06068 136.435486 -1.959225 5.38582 95.790321 -2.771006 4.57402 95.790321
-5 24 -2.771006 4.57402 95.790321 -2.771006 4.57402 136.435486 -2.445895 5.06068 95.790321 -2.885238 4.000011 95.790321
-5 24 -2.885238 4.000011 95.790321 -2.885238 4.000011 136.435486 -2.771006 4.57402 95.790321 -2.77102 3.425975 95.790321
-5 24 -2.77102 3.425975 95.790321 -2.77102 3.425975 136.435486 -2.885238 4.000011 95.790321 -2.44588 2.939305 95.790321
-5 24 -2.44588 2.939305 95.790321 -2.44588 2.939305 136.435486 -2.77102 3.425975 95.790321 -1.95922 2.614194 95.790321
-5 24 -1.95922 2.614194 95.790321 -1.95922 2.614194 136.435486 -2.44588 2.939305 95.790321 -1.385212 2.499961 95.790321
-5 24 -1.385212 2.499961 95.790321 -1.385212 2.499961 136.435486 -1.95922 2.614194 95.790321 -0.811175 2.61418 95.790321
-5 24 -0.811175 2.61418 95.790321 -0.811175 2.61418 136.435486 -1.385212 2.499961 95.790321 -0.324505 2.93932 95.790321
-5 24 -0.324505 2.93932 95.790321 -0.324505 2.93932 136.435486 -0.811175 2.61418 95.790321 -0.00062 3.425975 95.790321
-5 24 -0.00062 3.425975 95.790321 -0.00062 3.425975 136.435486 0.574627 4.811786 95.790321 -0.324505 2.93932 95.790321
-5 24 -0.00062 3.425975 136.435486 0.32452 2.939305 136.435486 -0.00062 3.425975 138.217743 -0.00062 3.425975 95.790321
-5 24 0.32452 2.939305 136.435486 0.81118 2.614194 136.435486 0.32452 2.939305 138.217743 0.32452 2.939305 95.790321
-5 24 0.81118 2.614194 136.435486 1.385188 2.499961 136.435486 0.81118 2.614194 138.217743 0.81118 2.614194 95.790321
-5 24 1.385188 2.499961 136.435486 1.959225 2.61418 136.435486 1.385188 2.499961 138.217743 1.385188 2.499961 95.790321
-5 24 1.959225 2.61418 136.435486 2.445895 2.93932 136.435486 1.959225 2.61418 138.217743 1.959225 2.61418 95.790321
-5 24 2.445895 2.93932 136.435486 2.771006 3.42598 136.435486 2.445895 2.93932 138.217743 2.445895 2.93932 95.790321
-5 24 2.771006 3.42598 136.435486 2.885238 3.999988 136.435486 2.771006 3.42598 138.217743 2.771006 3.42598 95.790321
-5 24 2.885238 3.999988 136.435486 2.77102 4.574025 136.435486 2.885238 3.999988 138.217743 2.885238 3.999988 95.790321
-5 24 2.77102 4.574025 136.435486 2.44588 5.060695 136.435486 2.77102 4.574025 138.217743 2.77102 4.574025 95.790321
-5 24 2.44588 5.060695 136.435486 1.95922 5.385806 136.435486 2.44588 5.060695 138.217743 2.44588 5.060695 95.790321
-5 24 1.95922 5.385806 136.435486 1.385212 5.500039 136.435486 1.95922 5.385806 138.217743 1.95922 5.385806 95.790321
-5 24 1.385212 5.500039 136.435486 0.811175 5.38582 136.435486 1.385212 5.500039 138.217743 1.385212 5.500039 95.790321
-5 24 0.811175 5.38582 136.435486 0.324505 5.06068 136.435486 0.811175 5.38582 138.217743 0.811175 5.38582 95.790321
-5 24 0.324505 5.06068 136.435486 -0.000606 4.57402 136.435486 0.324505 5.06068 138.217743 0.324505 5.06068 95.790321
-5 24 -0.000606 4.57402 136.435486 -0.32452 5.060695 136.435486 0.00062 4.574025 138.217743 -0.000606 4.57402 95.790321
-5 24 -0.32452 5.060695 136.435486 -0.81118 5.385806 136.435486 -0.32452 5.060695 138.217743 -0.32452 5.060695 95.790321
-5 24 -0.81118 5.385806 136.435486 -1.385188 5.500039 136.435486 -0.81118 5.385806 138.217743 -0.81118 5.385806 95.790321
-5 24 -1.385188 5.500039 136.435486 -1.959225 5.38582 136.435486 -1.385188 5.500039 138.217743 -1.385188 5.500039 95.790321
-5 24 -1.959225 5.38582 136.435486 -2.445895 5.06068 136.435486 -1.959225 5.38582 138.217743 -1.959225 5.38582 95.790321
-5 24 -2.445895 5.06068 136.435486 -2.771006 4.57402 136.435486 -2.445895 5.06068 138.217743 -2.445895 5.06068 95.790321
-5 24 -2.771006 4.57402 136.435486 -2.885238 4.000011 136.435486 -2.771006 4.57402 138.217743 -2.771006 4.57402 95.790321
-5 24 -2.885238 4.000011 136.435486 -2.77102 3.425975 136.435486 -2.885238 4.000011 138.217743 -2.885238 4.000011 95.790321
-5 24 -2.77102 3.425975 136.435486 -2.44588 2.939305 136.435486 -2.77102 3.425975 138.217743 -2.77102 3.425975 95.790321
-5 24 -2.44588 2.939305 136.435486 -1.95922 2.614194 136.435486 -2.44588 2.939305 138.217743 -2.44588 2.939305 95.790321
-5 24 -1.95922 2.614194 136.435486 -1.385212 2.499961 136.435486 -1.95922 2.614194 138.217743 -1.95922 2.614194 95.790321
-5 24 -1.385212 2.499961 136.435486 -0.811175 2.61418 136.435486 -1.385212 2.499961 138.217743 -1.385212 2.499961 95.790321
-5 24 -0.811175 2.61418 136.435486 -0.324505 2.93932 136.435486 -0.811175 2.61418 138.217743 -0.811175 2.61418 95.790321
-5 24 -0.324505 2.93932 136.435486 -0.00062 3.425975 136.435486 -0.324505 2.93932 138.217743 -0.324505 2.93932 95.790321
-
-0 // Segment 4, this block is (recursively) generated from "ldcElecWire2Seg.dat"
-4 16 0.32452 2.939305 140 -0.00062 3.425975 140 -0.00062 3.425975 136.435486 0.32452 2.939305 136.435486
-4 16 0.81118 2.614194 140 0.32452 2.939305 140 0.32452 2.939305 136.435486 0.81118 2.614194 136.435486
-4 16 1.385188 2.499961 140 0.81118 2.614194 140 0.81118 2.614194 136.435486 1.385188 2.499961 136.435486
-4 16 1.959225 2.61418 140 1.385188 2.499961 140 1.385188 2.499961 136.435486 1.959225 2.61418 136.435486
-4 16 2.445895 2.93932 140 1.959225 2.61418 140 1.959225 2.61418 136.435486 2.445895 2.93932 136.435486
-4 16 2.771006 3.42598 140 2.445895 2.93932 140 2.445895 2.93932 136.435486 2.771006 3.42598 136.435486
-4 16 2.885238 3.999988 140 2.771006 3.42598 140 2.771006 3.42598 136.435486 2.885238 3.999988 136.435486
-4 16 2.77102 4.574025 140 2.885238 3.999988 140 2.885238 3.999988 136.435486 2.77102 4.574025 136.435486
-4 16 2.44588 5.060695 140 2.77102 4.574025 140 2.77102 4.574025 136.435486 2.44588 5.060695 136.435486
-4 16 1.95922 5.385806 140 2.44588 5.060695 140 2.44588 5.060695 136.435486 1.95922 5.385806 136.435486
-4 16 1.385212 5.500039 140 1.95922 5.385806 140 1.95922 5.385806 136.435486 1.385212 5.500039 136.435486
-4 16 0.811175 5.38582 140 1.385212 5.500039 140 1.385212 5.500039 136.435486 0.811175 5.38582 136.435486
-4 16 0.324505 5.06068 140 0.811175 5.38582 140 0.811175 5.38582 136.435486 0.324505 5.06068 136.435486
-4 16 -0.000606 4.57402 140 0.324505 5.06068 140 0.324505 5.06068 136.435486 -0.000606 4.57402 136.435486
-4 16 -0.32452 5.060695 140 -0.000606 4.57402 140 -0.000606 4.57402 136.435486 -0.32452 5.060695 136.435486
-4 16 -0.81118 5.385806 140 -0.32452 5.060695 140 -0.32452 5.060695 136.435486 -0.81118 5.385806 136.435486
-4 16 -1.385188 5.500039 140 -0.81118 5.385806 140 -0.81118 5.385806 136.435486 -1.385188 5.500039 136.435486
-4 16 -1.959225 5.38582 140 -1.385188 5.500039 140 -1.385188 5.500039 136.435486 -1.959225 5.38582 136.435486
-4 16 -2.445895 5.06068 140 -1.959225 5.38582 140 -1.959225 5.38582 136.435486 -2.445895 5.06068 136.435486
-4 16 -2.771006 4.57402 140 -2.445895 5.06068 140 -2.445895 5.06068 136.435486 -2.771006 4.57402 136.435486
-4 16 -2.885238 4.000011 140 -2.771006 4.57402 140 -2.771006 4.57402 136.435486 -2.885238 4.000011 136.435486
-4 16 -2.77102 3.425975 140 -2.885238 4.000011 140 -2.885238 4.000011 136.435486 -2.77102 3.425975 136.435486
-4 16 -2.44588 2.939305 140 -2.77102 3.425975 140 -2.77102 3.425975 136.435486 -2.44588 2.939305 136.435486
-4 16 -1.95922 2.614194 140 -2.44588 2.939305 140 -2.44588 2.939305 136.435486 -1.95922 2.614194 136.435486
-4 16 -1.385212 2.499961 140 -1.95922 2.614194 140 -1.95922 2.614194 136.435486 -1.385212 2.499961 136.435486
-4 16 -0.811175 2.61418 140 -1.385212 2.499961 140 -1.385212 2.499961 136.435486 -0.811175 2.61418 136.435486
-4 16 -0.324505 2.93932 140 -0.811175 2.61418 140 -0.811175 2.61418 136.435486 -0.324505 2.93932 136.435486
-4 16 -0.00062 3.425975 140 -0.324505 2.93932 140 -0.324505 2.93932 136.435486 -0.00062 3.425975 136.435486
-5 24 -0.00062 3.425975 136.435486 -0.00062 3.425975 140 -0.574645 4.811795 136.435486 0.32452 2.939305 136.435486
-5 24 0.32452 2.939305 136.435486 0.32452 2.939305 140 -0.00062 3.425975 136.435486 0.81118 2.614194 136.435486
-5 24 0.81118 2.614194 136.435486 0.81118 2.614194 140 0.32452 2.939305 136.435486 1.385188 2.499961 136.435486
-5 24 1.385188 2.499961 136.435486 1.385188 2.499961 140 0.81118 2.614194 136.435486 1.959225 2.61418 136.435486
-5 24 1.959225 2.61418 136.435486 1.959225 2.61418 140 1.385188 2.499961 136.435486 2.445895 2.93932 136.435486
-5 24 2.445895 2.93932 136.435486 2.445895 2.93932 140 1.959225 2.61418 136.435486 2.771006 3.42598 136.435486
-5 24 2.771006 3.42598 136.435486 2.771006 3.42598 140 2.445895 2.93932 136.435486 2.885238 3.999988 136.435486
-5 24 2.885238 3.999988 136.435486 2.885238 3.999988 140 2.771006 3.42598 136.435486 2.77102 4.574025 136.435486
-5 24 2.77102 4.574025 136.435486 2.77102 4.574025 140 2.885238 3.999988 136.435486 2.44588 5.060695 136.435486
-5 24 2.44588 5.060695 136.435486 2.44588 5.060695 140 2.77102 4.574025 136.435486 1.95922 5.385806 136.435486
-5 24 1.95922 5.385806 136.435486 1.95922 5.385806 140 2.44588 5.060695 136.435486 1.385212 5.500039 136.435486
-5 24 1.385212 5.500039 136.435486 1.385212 5.500039 140 1.95922 5.385806 136.435486 0.811175 5.38582 136.435486
-5 24 0.811175 5.38582 136.435486 0.811175 5.38582 140 1.385212 5.500039 136.435486 0.324505 5.06068 136.435486
-5 24 0.324505 5.06068 136.435486 0.324505 5.06068 140 0.811175 5.38582 136.435486 -0.000606 4.57402 136.435486
-5 24 -0.000606 4.57402 136.435486 -0.000606 4.57402 140 -0.574627 3.188214 136.435486 0.324505 5.06068 136.435486
-5 24 -0.000606 4.57402 136.435486 -0.000606 4.57402 140 0.574645 3.188205 136.435486 -0.32452 5.060695 136.435486
-5 24 -0.32452 5.060695 136.435486 -0.32452 5.060695 140 -0.000606 4.57402 136.435486 -0.81118 5.385806 136.435486
-5 24 -0.81118 5.385806 136.435486 -0.81118 5.385806 140 -0.32452 5.060695 136.435486 -1.385188 5.500039 136.435486
-5 24 -1.385188 5.500039 136.435486 -1.385188 5.500039 140 -0.81118 5.385806 136.435486 -1.959225 5.38582 136.435486
-5 24 -1.959225 5.38582 136.435486 -1.959225 5.38582 140 -1.385188 5.500039 136.435486 -2.445895 5.06068 136.435486
-5 24 -2.445895 5.06068 136.435486 -2.445895 5.06068 140 -1.959225 5.38582 136.435486 -2.771006 4.57402 136.435486
-5 24 -2.771006 4.57402 136.435486 -2.771006 4.57402 140 -2.445895 5.06068 136.435486 -2.885238 4.000011 136.435486
-5 24 -2.885238 4.000011 136.435486 -2.885238 4.000011 140 -2.771006 4.57402 136.435486 -2.77102 3.425975 136.435486
-5 24 -2.77102 3.425975 136.435486 -2.77102 3.425975 140 -2.885238 4.000011 136.435486 -2.44588 2.939305 136.435486
-5 24 -2.44588 2.939305 136.435486 -2.44588 2.939305 140 -2.77102 3.425975 136.435486 -1.95922 2.614194 136.435486
-5 24 -1.95922 2.614194 136.435486 -1.95922 2.614194 140 -2.44588 2.939305 136.435486 -1.385212 2.499961 136.435486
-5 24 -1.385212 2.499961 136.435486 -1.385212 2.499961 140 -1.95922 2.614194 136.435486 -0.811175 2.61418 136.435486
-5 24 -0.811175 2.61418 136.435486 -0.811175 2.61418 140 -1.385212 2.499961 136.435486 -0.324505 2.93932 136.435486
-5 24 -0.324505 2.93932 136.435486 -0.324505 2.93932 140 -0.811175 2.61418 136.435486 -0.00062 3.425975 136.435486
-5 24 -0.00062 3.425975 136.435486 -0.00062 3.425975 140 0.574627 4.811786 136.435486 -0.324505 2.93932 136.435486
-5 24 -0.00062 3.425975 140 0.32452 2.939305 140 -0.00062 3.425975 141 -0.00062 3.425975 136.435486
-5 24 0.32452 2.939305 140 0.81118 2.614194 140 0.32452 2.939305 141 0.32452 2.939305 136.435486
-5 24 0.81118 2.614194 140 1.385188 2.499961 140 0.81118 2.614194 141 0.81118 2.614194 136.435486
-5 24 1.385188 2.499961 140 1.959225 2.61418 140 1.385188 2.499961 141 1.385188 2.499961 136.435486
-5 24 1.959225 2.61418 140 2.445895 2.93932 140 1.959225 2.61418 141 1.959225 2.61418 136.435486
-5 24 2.445895 2.93932 140 2.771006 3.42598 140 2.445895 2.93932 141 2.445895 2.93932 136.435486
-5 24 2.771006 3.42598 140 2.885238 3.999988 140 2.771006 3.42598 141 2.771006 3.42598 136.435486
-5 24 2.885238 3.999988 140 2.77102 4.574025 140 2.885238 3.999988 141 2.885238 3.999988 136.435486
-5 24 2.77102 4.574025 140 2.44588 5.060695 140 2.77102 4.574025 141 2.77102 4.574025 136.435486
-5 24 2.44588 5.060695 140 1.95922 5.385806 140 2.44588 5.060695 141 2.44588 5.060695 136.435486
-5 24 1.95922 5.385806 140 1.385212 5.500039 140 1.95922 5.385806 141 1.95922 5.385806 136.435486
-5 24 1.385212 5.500039 140 0.811175 5.38582 140 1.385212 5.500039 141 1.385212 5.500039 136.435486
-5 24 0.811175 5.38582 140 0.324505 5.06068 140 0.811175 5.38582 141 0.811175 5.38582 136.435486
-5 24 0.324505 5.06068 140 -0.000606 4.57402 140 0.324505 5.06068 141 0.324505 5.06068 136.435486
-5 24 -0.000606 4.57402 140 -0.32452 5.060695 140 0.00062 4.574025 141 -0.000606 4.57402 136.435486
-5 24 -0.32452 5.060695 140 -0.81118 5.385806 140 -0.32452 5.060695 141 -0.32452 5.060695 136.435486
-5 24 -0.81118 5.385806 140 -1.385188 5.500039 140 -0.81118 5.385806 141 -0.81118 5.385806 136.435486
-5 24 -1.385188 5.500039 140 -1.959225 5.38582 140 -1.385188 5.500039 141 -1.385188 5.500039 136.435486
-5 24 -1.959225 5.38582 140 -2.445895 5.06068 140 -1.959225 5.38582 141 -1.959225 5.38582 136.435486
-5 24 -2.445895 5.06068 140 -2.771006 4.57402 140 -2.445895 5.06068 141 -2.445895 5.06068 136.435486
-5 24 -2.771006 4.57402 140 -2.885238 4.000011 140 -2.771006 4.57402 141 -2.771006 4.57402 136.435486
-5 24 -2.885238 4.000011 140 -2.77102 3.425975 140 -2.885238 4.000011 141 -2.885238 4.000011 136.435486
-5 24 -2.77102 3.425975 140 -2.44588 2.939305 140 -2.77102 3.425975 141 -2.77102 3.425975 136.435486
-5 24 -2.44588 2.939305 140 -1.95922 2.614194 140 -2.44588 2.939305 141 -2.44588 2.939305 136.435486
-5 24 -1.95922 2.614194 140 -1.385212 2.499961 140 -1.95922 2.614194 141 -1.95922 2.614194 136.435486
-5 24 -1.385212 2.499961 140 -0.811175 2.61418 140 -1.385212 2.499961 141 -1.385212 2.499961 136.435486
-5 24 -0.811175 2.61418 140 -0.324505 2.93932 140 -0.811175 2.61418 141 -0.811175 2.61418 136.435486
-5 24 -0.324505 2.93932 140 -0.00062 3.425975 140 -0.324505 2.93932 141 -0.324505 2.93932 136.435486
diff --git a/doc/main/diagram_source/iodevices.png b/doc/main/diagram_source/iodevices.png
deleted file mode 100644
index 2fc6c56..0000000
Binary files a/doc/main/diagram_source/iodevices.png and /dev/null differ
diff --git a/doc/main/diagram_source/movehub.ldr b/doc/main/diagram_source/movehub.ldr
deleted file mode 100644
index 10e53cf..0000000
--- a/doc/main/diagram_source/movehub.ldr
+++ /dev/null
@@ -1,3 +0,0 @@
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-1 15 0 -48 -20 1 0 0 0 1 0 0 0 1 26910.dat
diff --git a/doc/main/diagram_source/movehub_a.png b/doc/main/diagram_source/movehub_a.png
deleted file mode 100644
index 834c887..0000000
Binary files a/doc/main/diagram_source/movehub_a.png and /dev/null differ
diff --git a/doc/main/diagram_source/movehub_b.png b/doc/main/diagram_source/movehub_b.png
deleted file mode 100644
index eec124b..0000000
Binary files a/doc/main/diagram_source/movehub_b.png and /dev/null differ
diff --git a/doc/main/diagram_source/orientation.ldr b/doc/main/diagram_source/orientation.ldr
deleted file mode 100644
index de360eb..0000000
--- a/doc/main/diagram_source/orientation.ldr
+++ /dev/null
@@ -1,12 +0,0 @@
-0 Name: orientation.ldr
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-0 ROTATION CENTER 0 0 0 1 "Custom"
-0 ROTATION CONFIG 0 0
-1 15 -160 -56 260 0 0 1 0 1 0 -1 0 0 26910.dat
-1 71 -430 -40 520 0 0 -1 0 1 0 1 0 0 22127.dat
-1 15 140 -16 30 0 0 1 0 1 0 -1 0 0 45601p02.dat
-1 3 430 -16 -180 0 0 1 0 1 0 -1 0 0 45601c01.dat
-1 0 724 -90 -378 0 0 -1 0 -1 0 -1 0 0 u9218c01.dat
-1 15 760 -100 -378 1 0 0 0 1 0 0 0 1 20841.dat
-0
diff --git a/doc/main/diagram_source/orientation_inventorhub.png b/doc/main/diagram_source/orientation_inventorhub.png
deleted file mode 100644
index b5dbdbb..0000000
Binary files a/doc/main/diagram_source/orientation_inventorhub.png and /dev/null differ
diff --git a/doc/main/diagram_source/orientation_movehub.png b/doc/main/diagram_source/orientation_movehub.png
deleted file mode 100644
index 833ba8b..0000000
Binary files a/doc/main/diagram_source/orientation_movehub.png and /dev/null differ
diff --git a/doc/main/diagram_source/orientation_primehub.png b/doc/main/diagram_source/orientation_primehub.png
deleted file mode 100644
index 92f5410..0000000
Binary files a/doc/main/diagram_source/orientation_primehub.png and /dev/null differ
diff --git a/doc/main/diagram_source/orientation_technichub.png b/doc/main/diagram_source/orientation_technichub.png
deleted file mode 100644
index b292dd2..0000000
Binary files a/doc/main/diagram_source/orientation_technichub.png and /dev/null differ
diff --git a/doc/main/diagram_source/orientation_tiltsensor.png b/doc/main/diagram_source/orientation_tiltsensor.png
deleted file mode 100644
index ba41aea..0000000
Binary files a/doc/main/diagram_source/orientation_tiltsensor.png and /dev/null differ
diff --git a/doc/main/diagram_source/primehubtop.png b/doc/main/diagram_source/primehubtop.png
deleted file mode 100644
index 460521d..0000000
Binary files a/doc/main/diagram_source/primehubtop.png and /dev/null differ
diff --git a/doc/main/diagram_source/pupdcmotors.ldr b/doc/main/diagram_source/pupdcmotors.ldr
deleted file mode 100644
index a014fe6..0000000
--- a/doc/main/diagram_source/pupdcmotors.ldr
+++ /dev/null
@@ -1,14 +0,0 @@
-0 Name: pupmotors
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-1 0 60 -352 -90 1 0 0 0 1 0 0 0 1 87574.dat
-1 15 60 -336 -70 0 0 1 0.259 0.966 0 -0.966 0.259 0 20844c01.dat
-1 0 60 -312 -150 1 0 0 0 1 0 0 0 1 3706.dat
-1 0 100 -312 -150 0 0 -1 0 1 0 1 0 0 u9241.dat
-1 0 100 -312 -30 0 0 -1 0 1 0 1 0 0 u9241.dat
-1 0 20 -312 -30 0 0 1 0 1 0 -1 0 0 u9241.dat
-1 0 20 -312 -150 0 0 1 0 1 0 -1 0 0 u9241.dat
-1 0 60 -312 -30 1 0 0 0 1 0 0 0 1 3706.dat
-1 0 90 -344 -90 1 0 0 0 1 0 0 0 1 2871b.dat
-1 0 30 -344 -90 -1 0 0 0 1 0 0 0 -1 2871b.dat
-1 15 10 -376 -310 0 0 -1 0 1 0 1 0 0 21980c01.dat
diff --git a/doc/main/diagram_source/pupdcmotors.png b/doc/main/diagram_source/pupdcmotors.png
deleted file mode 100644
index ae5c018..0000000
Binary files a/doc/main/diagram_source/pupdcmotors.png and /dev/null differ
diff --git a/doc/main/diagram_source/pupdevicesoverview.ldr b/doc/main/diagram_source/pupdevicesoverview.ldr
deleted file mode 100644
index e78f238..0000000
--- a/doc/main/diagram_source/pupdevicesoverview.ldr
+++ /dev/null
@@ -1,14 +0,0 @@
-0 Name: pupdevicesoverview.ldr
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-0 ROTATION CENTER 0 0 0 1 "Custom"
-0 ROTATION CONFIG 0 0
-1 15 130 -280 500 0 1 0 -1 0 0 0 0 1 54675c01.dat
-1 71 330 -280 300 0 1 0 -1 0 0 0 0 1 22169c01.dat
-1 15 540 -280 220 1 0 0 0 1 0 0 0 1 21980c01.dat
-1 15 560 -280 830 1 0 0 0 1 0 0 0 1 37316.dat
-1 15 370 -280 990 -1 0 0 0 -1 0 0 0 1 37308c01.dat
-1 15 750 -320 550 1 0 0 0 1 0 0 0 1 26912.dat
-1 0 750 -310 586 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
-1 15 560 -266 808 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
-0
diff --git a/doc/main/diagram_source/pupmotors.ldr b/doc/main/diagram_source/pupmotors.ldr
deleted file mode 100644
index 389ad7d..0000000
--- a/doc/main/diagram_source/pupmotors.ldr
+++ /dev/null
@@ -1,14 +0,0 @@
-0 Name: pupmotors.ldr
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-0 ROTATION CENTER 0 0 0 1 "Custom"
-0 ROTATION CONFIG 0 0
-1 15 450 -76 -20 0 0 1 1 0 0 0 1 0 54675c01.dat
-1 15 -30 -76 280 0 0 1 1 0 0 0 1 0 68488c01.dat
-1 71 550 -76 200 0 0 1 1 0 0 0 1 0 69730c01.dat
-1 15 180 -72 140 0 0 1 1 0 0 0 1 0 54696c01.dat
-1 15 260 -72 350 0 0 1 1 0 0 0 1 0 54696p02c01.dat
-1 71 430 -84 470 1 0 0 0 1 0 0 0 1 22169c01.dat
-1 71 590 -86 360 1 0 0 0 1 0 0 0 1 22172c01.dat
-1 15 300 -110 630 1 0 0 0 1 0 0 0 1 26913c01.dat
-0
diff --git a/doc/main/diagram_source/pupmotors.png b/doc/main/diagram_source/pupmotors.png
deleted file mode 100644
index b4ac8d4..0000000
Binary files a/doc/main/diagram_source/pupmotors.png and /dev/null differ
diff --git a/doc/main/diagram_source/pupsensors.ldr b/doc/main/diagram_source/pupsensors.ldr
deleted file mode 100644
index 31cf929..0000000
--- a/doc/main/diagram_source/pupsensors.ldr
+++ /dev/null
@@ -1,22 +0,0 @@
-0 Name: pupsensors.ldr
-0 Author: Pybricks {laurens@pybricks.com}
-0 !LICENSE MIT
-0 !LDCAD GROUP_DEF [topLevel=true] [LID=0] [GID=9FDP9pj0O55] [name=Group 1] [center=0 0 0]
-1 15 190 -290 750 -1 0 0 0 -1 0 0 0 1 47592c01.dat
-1 15 600 -280 180 1 0 0 0 1 0 0 0 1 37316.dat
-1 15 60 -272 160 -1 0 0 0 -1 0 0 0 1 37312c01.dat
-1 15 -400 -280 240 -1 0 0 0 -1 0 0 0 1 37308c01.dat
-1 0 -400 -310 -374 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
-1 15 -400 -320 -410 0 0 1 0 1 0 -1 0 0 20841.dat
-1 15 630 -320 -420 1 0 0 0 1 0 0 0 1 26912.dat
-1 0 630 -310 -384 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
-1 15 60 -320 -430 0 0 1 0 1 0 -1 0 0 20844.dat
-1 0 60 -310 -394 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
-1 15 600 -266 158 -1 0 0 0 -1 0 0 0 1 u9218c01.dat
-1 15 1130 -280 240 1 0 0 0 1 0 0 0 1 37316.dat
-1 15 1290 -280 220 1 0 0 0 1 0 0 0 1 37308.dat
-1 0 690 -312 530 0 0 1 0 1 0 -1 0 0 22168.dat
-0 !LDCAD GROUP_NXT [ids=0] [nrs=2]
-1 71 704.852 -312 -628.188 -0.5 0 0.866 0 1 0 -0.866 0 -0.5 58123.dat
-0 !LDCAD GROUP_NXT [ids=0] [nrs=-1]
-1 71 972.1 -321.5 -814.7 0.5 0 -0.866 0 1 0 0.866 0 0.5 99499c01.dat
diff --git a/doc/main/diagram_source/sensor_colorlightmatrix.svg b/doc/main/diagram_source/sensor_colorlightmatrix.svg
deleted file mode 100644
index 4cad08c..0000000
--- a/doc/main/diagram_source/sensor_colorlightmatrix.svg
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
-
diff --git a/doc/main/diagram_source/sensor_colorlightmatrix_main.png b/doc/main/diagram_source/sensor_colorlightmatrix_main.png
deleted file mode 100644
index 97fc064..0000000
Binary files a/doc/main/diagram_source/sensor_colorlightmatrix_main.png and /dev/null differ
diff --git a/doc/main/diagrams/bluetooth_on.png b/doc/main/diagrams/bluetooth_on.png
new file mode 100644
index 0000000..8e1f144
Binary files /dev/null and b/doc/main/diagrams/bluetooth_on.png differ
diff --git a/doc/main/diagrams/bluetooth_pair.png b/doc/main/diagrams/bluetooth_pair.png
new file mode 100644
index 0000000..d188b91
Binary files /dev/null and b/doc/main/diagrams/bluetooth_pair.png differ
diff --git a/doc/main/diagrams/compat_cityhub_false.png b/doc/main/diagrams/compat_cityhub_false.png
new file mode 100644
index 0000000..5a467b0
Binary files /dev/null and b/doc/main/diagrams/compat_cityhub_false.png differ
diff --git a/doc/main/diagrams/compat_cityhub_true.png b/doc/main/diagrams/compat_cityhub_true.png
new file mode 100644
index 0000000..d05e8bf
Binary files /dev/null and b/doc/main/diagrams/compat_cityhub_true.png differ
diff --git a/doc/main/diagrams/compat_essentialhub_false.png b/doc/main/diagrams/compat_essentialhub_false.png
new file mode 100644
index 0000000..6909f5d
Binary files /dev/null and b/doc/main/diagrams/compat_essentialhub_false.png differ
diff --git a/doc/main/diagrams/compat_essentialhub_true.png b/doc/main/diagrams/compat_essentialhub_true.png
new file mode 100644
index 0000000..3d07239
Binary files /dev/null and b/doc/main/diagrams/compat_essentialhub_true.png differ
diff --git a/doc/main/diagrams/compat_inventorhub_false.png b/doc/main/diagrams/compat_inventorhub_false.png
new file mode 100644
index 0000000..0fb2597
Binary files /dev/null and b/doc/main/diagrams/compat_inventorhub_false.png differ
diff --git a/doc/main/diagrams/compat_inventorhub_true.png b/doc/main/diagrams/compat_inventorhub_true.png
new file mode 100644
index 0000000..bbc268d
Binary files /dev/null and b/doc/main/diagrams/compat_inventorhub_true.png differ
diff --git a/doc/main/diagrams/compat_movehub_false.png b/doc/main/diagrams/compat_movehub_false.png
new file mode 100644
index 0000000..9944939
Binary files /dev/null and b/doc/main/diagrams/compat_movehub_false.png differ
diff --git a/doc/main/diagrams/compat_movehub_true.png b/doc/main/diagrams/compat_movehub_true.png
new file mode 100644
index 0000000..e7b61e3
Binary files /dev/null and b/doc/main/diagrams/compat_movehub_true.png differ
diff --git a/doc/main/diagrams/compat_primehub_false.png b/doc/main/diagrams/compat_primehub_false.png
new file mode 100644
index 0000000..7d20646
Binary files /dev/null and b/doc/main/diagrams/compat_primehub_false.png differ
diff --git a/doc/main/diagrams/compat_primehub_true.png b/doc/main/diagrams/compat_primehub_true.png
new file mode 100644
index 0000000..0f1b71c
Binary files /dev/null and b/doc/main/diagrams/compat_primehub_true.png differ
diff --git a/doc/main/diagrams/compat_technichub_false.png b/doc/main/diagrams/compat_technichub_false.png
new file mode 100644
index 0000000..b57b149
Binary files /dev/null and b/doc/main/diagrams/compat_technichub_false.png differ
diff --git a/doc/main/diagrams/compat_technichub_true.png b/doc/main/diagrams/compat_technichub_true.png
new file mode 100644
index 0000000..8df19e8
Binary files /dev/null and b/doc/main/diagrams/compat_technichub_true.png differ
diff --git a/doc/main/diagrams/connecting.png b/doc/main/diagrams/connecting.png
new file mode 100644
index 0000000..77ab760
Binary files /dev/null and b/doc/main/diagrams/connecting.png differ
diff --git a/doc/main/diagrams/devicebrowser.png b/doc/main/diagrams/devicebrowser.png
new file mode 100644
index 0000000..98965dd
Binary files /dev/null and b/doc/main/diagrams/devicebrowser.png differ
diff --git a/doc/main/diagrams/etcher.png b/doc/main/diagrams/etcher.png
new file mode 100644
index 0000000..2331c43
Binary files /dev/null and b/doc/main/diagrams/etcher.png differ
diff --git a/doc/main/diagrams/ev3motors.png b/doc/main/diagrams/ev3motors.png
new file mode 100644
index 0000000..a71609a
Binary files /dev/null and b/doc/main/diagrams/ev3motors.png differ
diff --git a/doc/main/diagrams/existingproject.png b/doc/main/diagrams/existingproject.png
new file mode 100644
index 0000000..122d7c8
Binary files /dev/null and b/doc/main/diagrams/existingproject.png differ
diff --git a/doc/main/diagrams/files.png b/doc/main/diagrams/files.png
new file mode 100644
index 0000000..e456a89
Binary files /dev/null and b/doc/main/diagrams/files.png differ
diff --git a/doc/main/diagrams/firstprogram.png b/doc/main/diagrams/firstprogram.png
new file mode 100644
index 0000000..8b86722
Binary files /dev/null and b/doc/main/diagrams/firstprogram.png differ
diff --git a/doc/main/diagrams/imuexamples.png b/doc/main/diagrams/imuexamples.png
new file mode 100644
index 0000000..b1e1496
Binary files /dev/null and b/doc/main/diagrams/imuexamples.png differ
diff --git a/doc/main/diagrams/manualrun.png b/doc/main/diagrams/manualrun.png
new file mode 100644
index 0000000..8eaea8a
Binary files /dev/null and b/doc/main/diagrams/manualrun.png differ
diff --git a/doc/main/diagrams/messaging.png b/doc/main/diagrams/messaging.png
new file mode 100644
index 0000000..90e5235
Binary files /dev/null and b/doc/main/diagrams/messaging.png differ
diff --git a/doc/main/diagrams/messaging_network.png b/doc/main/diagrams/messaging_network.png
new file mode 100644
index 0000000..430dee9
Binary files /dev/null and b/doc/main/diagrams/messaging_network.png differ
diff --git a/doc/main/diagrams/movehub.png b/doc/main/diagrams/movehub.png
new file mode 100644
index 0000000..2b60e93
Binary files /dev/null and b/doc/main/diagrams/movehub.png differ
diff --git a/doc/main/diagrams/newproject.png b/doc/main/diagrams/newproject.png
new file mode 100644
index 0000000..5fab55b
Binary files /dev/null and b/doc/main/diagrams/newproject.png differ
diff --git a/doc/main/diagrams/onoff.png b/doc/main/diagrams/onoff.png
new file mode 100644
index 0000000..fae58e2
Binary files /dev/null and b/doc/main/diagrams/onoff.png differ
diff --git a/doc/main/diagrams/orientation_essentialhub.png b/doc/main/diagrams/orientation_essentialhub.png
new file mode 100644
index 0000000..191efae
Binary files /dev/null and b/doc/main/diagrams/orientation_essentialhub.png differ
diff --git a/doc/main/diagrams/orientation_inventorhub.png b/doc/main/diagrams/orientation_inventorhub.png
new file mode 100644
index 0000000..5c99a6c
Binary files /dev/null and b/doc/main/diagrams/orientation_inventorhub.png differ
diff --git a/doc/main/diagrams/orientation_movehub.png b/doc/main/diagrams/orientation_movehub.png
new file mode 100644
index 0000000..135d22a
Binary files /dev/null and b/doc/main/diagrams/orientation_movehub.png differ
diff --git a/doc/main/diagrams/orientation_primehub.png b/doc/main/diagrams/orientation_primehub.png
new file mode 100644
index 0000000..e3aae1d
Binary files /dev/null and b/doc/main/diagrams/orientation_primehub.png differ
diff --git a/doc/main/diagrams/orientation_technichub.png b/doc/main/diagrams/orientation_technichub.png
new file mode 100644
index 0000000..2f2bb68
Binary files /dev/null and b/doc/main/diagrams/orientation_technichub.png differ
diff --git a/doc/main/diagrams/orientation_tiltsensor.png b/doc/main/diagrams/orientation_tiltsensor.png
new file mode 100644
index 0000000..2d1e34e
Binary files /dev/null and b/doc/main/diagrams/orientation_tiltsensor.png differ
diff --git a/doc/main/diagrams/overview.png b/doc/main/diagrams/overview.png
new file mode 100644
index 0000000..5ee8ab4
Binary files /dev/null and b/doc/main/diagrams/overview.png differ
diff --git a/doc/main/diagrams/primehub_buttons.png b/doc/main/diagrams/primehub_buttons.png
new file mode 100644
index 0000000..edd1c3f
Binary files /dev/null and b/doc/main/diagrams/primehub_buttons.png differ
diff --git a/doc/main/diagrams/primehub_display.png b/doc/main/diagrams/primehub_display.png
new file mode 100644
index 0000000..d6b242e
Binary files /dev/null and b/doc/main/diagrams/primehub_display.png differ
diff --git a/doc/main/diagrams/primehub_light.png b/doc/main/diagrams/primehub_light.png
new file mode 100644
index 0000000..90a0c23
Binary files /dev/null and b/doc/main/diagrams/primehub_light.png differ
diff --git a/doc/main/images/projectoverview_label.png b/doc/main/diagrams/projectoverview.png
similarity index 51%
rename from doc/main/images/projectoverview_label.png
rename to doc/main/diagrams/projectoverview.png
index 5c74703..5c6a2c5 100644
Binary files a/doc/main/images/projectoverview_label.png and b/doc/main/diagrams/projectoverview.png differ
diff --git a/doc/main/diagrams/projectstructure.png b/doc/main/diagrams/projectstructure.png
new file mode 100644
index 0000000..ec14013
Binary files /dev/null and b/doc/main/diagrams/projectstructure.png differ
diff --git a/doc/main/diagrams/pupdcmotors.png b/doc/main/diagrams/pupdcmotors.png
new file mode 100644
index 0000000..bf5df4c
Binary files /dev/null and b/doc/main/diagrams/pupdcmotors.png differ
diff --git a/doc/main/diagrams/pupmotors.png b/doc/main/diagrams/pupmotors.png
new file mode 100644
index 0000000..8df0dd8
Binary files /dev/null and b/doc/main/diagrams/pupmotors.png differ
diff --git a/doc/main/diagrams/running.png b/doc/main/diagrams/running.png
new file mode 100644
index 0000000..1a77a46
Binary files /dev/null and b/doc/main/diagrams/running.png differ
diff --git a/doc/main/diagrams/sd.png b/doc/main/diagrams/sd.png
new file mode 100644
index 0000000..8f662bb
Binary files /dev/null and b/doc/main/diagrams/sd.png differ
diff --git a/doc/main/diagrams/sensor_color_lights.png b/doc/main/diagrams/sensor_color_lights.png
new file mode 100644
index 0000000..9c26a0e
Binary files /dev/null and b/doc/main/diagrams/sensor_color_lights.png differ
diff --git a/doc/main/diagrams/sensor_colorlightmatrix.png b/doc/main/diagrams/sensor_colorlightmatrix.png
new file mode 100644
index 0000000..2b96aeb
Binary files /dev/null and b/doc/main/diagrams/sensor_colorlightmatrix.png differ
diff --git a/doc/main/diagrams/sensor_ultrasonic_lights.png b/doc/main/diagrams/sensor_ultrasonic_lights.png
new file mode 100644
index 0000000..77a90f2
Binary files /dev/null and b/doc/main/diagrams/sensor_ultrasonic_lights.png differ
diff --git a/doc/main/diagrams/store.png b/doc/main/diagrams/store.png
new file mode 100644
index 0000000..382a84b
Binary files /dev/null and b/doc/main/diagrams/store.png differ
diff --git a/doc/main/diagrams/terminal.png b/doc/main/diagrams/terminal.png
new file mode 100644
index 0000000..5f7ecd1
Binary files /dev/null and b/doc/main/diagrams/terminal.png differ
diff --git a/doc/main/diagrams_source/Makefile b/doc/main/diagrams_source/Makefile
new file mode 100755
index 0000000..fd743e8
--- /dev/null
+++ b/doc/main/diagrams_source/Makefile
@@ -0,0 +1,19 @@
+
+SRC_DIR = .
+OUT_DIR = ../diagrams
+SVG := $(wildcard $(SRC_DIR)/*.svg)
+DIAGRAMS := $(patsubst $(SRC_DIR)/%.svg,$(OUT_DIR)/%$(POSTFIX).png,$(SVG))
+DIR := ${CURDIR}
+
+all: $(DIAGRAMS)
+
+clean:
+ rm -f $(DIAGRAMS)
+
+$(OUT_DIR)/%.png: $(SRC_DIR)/%.svg
+ inkscape \
+ --export-area-page \
+ --export-background=none \
+ --export-background-opacity=0.0 \
+ --export-filename=$(DIR)/$@ \
+ $(DIR)/$<; \
diff --git a/doc/main/diagram_source/bluetooth_on.svg b/doc/main/diagrams_source/bluetooth_on.svg
similarity index 100%
rename from doc/main/diagram_source/bluetooth_on.svg
rename to doc/main/diagrams_source/bluetooth_on.svg
diff --git a/doc/main/diagram_source/bluetooth_on1.png b/doc/main/diagrams_source/bluetooth_on1.png
similarity index 100%
rename from doc/main/diagram_source/bluetooth_on1.png
rename to doc/main/diagrams_source/bluetooth_on1.png
diff --git a/doc/main/diagram_source/bluetooth_on2.png b/doc/main/diagrams_source/bluetooth_on2.png
similarity index 100%
rename from doc/main/diagram_source/bluetooth_on2.png
rename to doc/main/diagrams_source/bluetooth_on2.png
diff --git a/doc/main/diagram_source/bluetooth_on3.png b/doc/main/diagrams_source/bluetooth_on3.png
similarity index 100%
rename from doc/main/diagram_source/bluetooth_on3.png
rename to doc/main/diagrams_source/bluetooth_on3.png
diff --git a/doc/main/diagram_source/bluetooth_on4.png b/doc/main/diagrams_source/bluetooth_on4.png
similarity index 100%
rename from doc/main/diagram_source/bluetooth_on4.png
rename to doc/main/diagrams_source/bluetooth_on4.png
diff --git a/doc/main/diagram_source/bluetooth_pair.svg b/doc/main/diagrams_source/bluetooth_pair.svg
similarity index 100%
rename from doc/main/diagram_source/bluetooth_pair.svg
rename to doc/main/diagrams_source/bluetooth_pair.svg
diff --git a/doc/main/diagram_source/bluetooth_pair1.png b/doc/main/diagrams_source/bluetooth_pair1.png
similarity index 100%
rename from doc/main/diagram_source/bluetooth_pair1.png
rename to doc/main/diagrams_source/bluetooth_pair1.png
diff --git a/doc/main/diagram_source/bluetooth_pair2.png b/doc/main/diagrams_source/bluetooth_pair2.png
similarity index 100%
rename from doc/main/diagram_source/bluetooth_pair2.png
rename to doc/main/diagrams_source/bluetooth_pair2.png
diff --git a/doc/main/diagram_source/bluetooth_pair3.png b/doc/main/diagrams_source/bluetooth_pair3.png
similarity index 100%
rename from doc/main/diagram_source/bluetooth_pair3.png
rename to doc/main/diagrams_source/bluetooth_pair3.png
diff --git a/doc/main/diagram_source/bluetooth_pair4.png b/doc/main/diagrams_source/bluetooth_pair4.png
similarity index 100%
rename from doc/main/diagram_source/bluetooth_pair4.png
rename to doc/main/diagrams_source/bluetooth_pair4.png
diff --git a/doc/main/diagram_source/compat_cityhub_false.svg b/doc/main/diagrams_source/compat_cityhub_false.svg
similarity index 71%
rename from doc/main/diagram_source/compat_cityhub_false.svg
rename to doc/main/diagrams_source/compat_cityhub_false.svg
index 51a05b1..878d7e0 100644
--- a/doc/main/diagram_source/compat_cityhub_false.svg
+++ b/doc/main/diagrams_source/compat_cityhub_false.svg
@@ -2,21 +2,21 @@
diff --git a/doc/main/diagram_source/projectoverview.png b/doc/main/diagrams_source/projectoverview.png
similarity index 100%
rename from doc/main/diagram_source/projectoverview.png
rename to doc/main/diagrams_source/projectoverview.png
diff --git a/doc/main/diagram_source/projectoverview.svg b/doc/main/diagrams_source/projectoverview.svg
similarity index 100%
rename from doc/main/diagram_source/projectoverview.svg
rename to doc/main/diagrams_source/projectoverview.svg
diff --git a/doc/main/diagram_source/projectstructure.svg b/doc/main/diagrams_source/projectstructure.svg
similarity index 100%
rename from doc/main/diagram_source/projectstructure.svg
rename to doc/main/diagrams_source/projectstructure.svg
diff --git a/doc/main/diagram_source/pupdcmotors.svg b/doc/main/diagrams_source/pupdcmotors.svg
similarity index 81%
rename from doc/main/diagram_source/pupdcmotors.svg
rename to doc/main/diagrams_source/pupdcmotors.svg
index 3ffa9ca..5820d9c 100644
--- a/doc/main/diagram_source/pupdcmotors.svg
+++ b/doc/main/diagrams_source/pupdcmotors.svg
@@ -2,21 +2,21 @@
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="pupdcmotors.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ inkscape:snap-global="false"
+ inkscape:pagecheckerboard="0" />
@@ -79,7 +80,6 @@
image/svg+xml
-
@@ -88,26 +88,40 @@
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-146.45207)">
-
+
+
+
+
+
+ style="fill:#2980b9;fill-opacity:1;stroke:#fffbfb;stroke-width:0.132292;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
-
-
-
-
+ transform="matrix(1.4022754,-0.20008239,0,1.5575363,-10.061385,-81.104748)">
@@ -158,19 +157,19 @@
inkscape:connector-curvature="0"
id="path865"
d="m 161.70224,224.65346 1.85836,-0.53454 0.43431,0.40926 -0.98973,1.42822 c 0,0 -2.13398,-0.30486 -2.13398,-0.32574 0,-0.0209 0.83104,-0.9772 0.83104,-0.9772 z"
- style="fill:#2980b9;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ style="fill:#2980b9;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ style="fill:#2980b9;fill-opacity:1;stroke:#fffbfb;stroke-width:0.132292;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
diff --git a/doc/main/diagram_source/pupmotors.svg b/doc/main/diagrams_source/pupmotors.svg
similarity index 82%
rename from doc/main/diagram_source/pupmotors.svg
rename to doc/main/diagrams_source/pupmotors.svg
index ea73d44..aad6a80 100644
--- a/doc/main/diagram_source/pupmotors.svg
+++ b/doc/main/diagrams_source/pupmotors.svg
@@ -2,21 +2,21 @@
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ sodipodi:docname="pupmotors.svg"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
+ inkscape:snap-global="false"
+ inkscape:pagecheckerboard="0" />
@@ -79,7 +80,6 @@
image/svg+xml
-
@@ -89,25 +89,24 @@
id="layer1"
transform="translate(0,0.92084997)">
+ xlink:href="../cad/output/pupdevice-motors.png"
+ id="image888"
+ x="0"
+ y="-0.92084998" />
+ style="fill:#2980b9;fill-opacity:1;stroke:#fffbfb;stroke-width:0.132292;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
+ transform="matrix(1.6215476,0,0,1.6215476,-89.058468,-181.2828)">
@@ -138,49 +137,49 @@
inkscape:connector-curvature="0"
id="path2723"
d="m 148.34153,213.98543 c -9.56863,3.45114 -17.40796,14.07786 -17.40796,23.75298 l 2.08019,-0.75027 c 0,-8.40437 6.81691,-17.72172 15.32777,-20.79135 8.51086,-3.06963 15.32778,1.33039 15.32778,9.73476 l 2.08019,-0.75027 c 0,-9.67512 -7.83933,-14.647 -17.40797,-11.19585 z"
- style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2980b9;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.11918081;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;vector-effect:none;fill:#2980b9;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:0.119181;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
+ style="fill:#2980b9;fill-opacity:1;stroke:#fffbfb;stroke-width:0.132292;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
+ transform="matrix(1.8756049,0,0,1.8756049,-94.692862,-170.26207)">
@@ -193,19 +192,19 @@
inkscape:connector-curvature="0"
id="path2755"
d="m 161.70224,224.65346 1.85836,-0.53454 0.43431,0.40926 -0.98973,1.42822 c 0,0 -2.13398,-0.30486 -2.13398,-0.32574 0,-0.0209 0.83104,-0.9772 0.83104,-0.9772 z"
- style="fill:#2980b9;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ style="fill:#2980b9;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ style="fill:#2980b9;fill-opacity:1;stroke:#fffbfb;stroke-width:0.132292;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
+ transform="matrix(1.8756049,0,0,1.8756049,-198.38924,-316.8828)">
@@ -241,19 +240,19 @@
inkscape:connector-curvature="0"
id="path872"
d="m 161.70224,224.65346 1.85836,-0.53454 0.43431,0.40926 -0.98973,1.42822 c 0,0 -2.13398,-0.30486 -2.13398,-0.32574 0,-0.0209 0.83104,-0.9772 0.83104,-0.9772 z"
- style="fill:#2980b9;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ style="fill:#2980b9;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ style="fill:#2980b9;fill-opacity:1;stroke:#fffbfb;stroke-width:0.132292;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">
-
+ transform="matrix(1.8756049,0,0,1.8756049,14.289189,-322.09178)">
@@ -297,7 +288,7 @@
inkscape:connector-curvature="0"
id="path897"
d="m 161.70224,224.65346 1.85836,-0.53454 0.43431,0.40926 -0.98973,1.42822 c 0,0 -2.13398,-0.30486 -2.13398,-0.32574 0,-0.0209 0.83104,-0.9772 0.83104,-0.9772 z"
- style="fill:#2980b9;fill-opacity:1;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+ style="fill:#2980b9;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
diff --git a/doc/main/diagram_source/running.png b/doc/main/diagrams_source/running.png
similarity index 100%
rename from doc/main/diagram_source/running.png
rename to doc/main/diagrams_source/running.png
diff --git a/doc/main/diagram_source/running.svg b/doc/main/diagrams_source/running.svg
similarity index 100%
rename from doc/main/diagram_source/running.svg
rename to doc/main/diagrams_source/running.svg
diff --git a/doc/main/diagram_source/screen.png b/doc/main/diagrams_source/screen.png
similarity index 100%
rename from doc/main/diagram_source/screen.png
rename to doc/main/diagrams_source/screen.png
diff --git a/doc/main/diagram_source/sd.svg b/doc/main/diagrams_source/sd.svg
similarity index 100%
rename from doc/main/diagram_source/sd.svg
rename to doc/main/diagrams_source/sd.svg
diff --git a/doc/main/diagram_source/sd1.jpg b/doc/main/diagrams_source/sd1.jpg
similarity index 100%
rename from doc/main/diagram_source/sd1.jpg
rename to doc/main/diagrams_source/sd1.jpg
diff --git a/doc/main/diagram_source/sd2.png b/doc/main/diagrams_source/sd2.png
similarity index 100%
rename from doc/main/diagram_source/sd2.png
rename to doc/main/diagrams_source/sd2.png
diff --git a/doc/main/diagram_source/sensor_color_lights.svg b/doc/main/diagrams_source/sensor_color_lights.svg
similarity index 84%
rename from doc/main/diagram_source/sensor_color_lights.svg
rename to doc/main/diagrams_source/sensor_color_lights.svg
index 097d24a..e3108b2 100644
--- a/doc/main/diagram_source/sensor_color_lights.svg
+++ b/doc/main/diagrams_source/sensor_color_lights.svg
@@ -2,21 +2,21 @@
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
@@ -25,7 +25,6 @@
image/svg+xml
-
@@ -40,17 +39,19 @@
guidetolerance="10"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
- inkscape:window-width="1853"
- inkscape:window-height="1145"
+ inkscape:window-width="1856"
+ inkscape:window-height="1136"
id="namedview4"
showgrid="false"
- inkscape:zoom="0.76339286"
- inkscape:cx="161.01621"
- inkscape:cy="109.1048"
- inkscape:window-x="67"
+ inkscape:zoom="0.8152671"
+ inkscape:cx="510.26222"
+ inkscape:cy="335.47288"
+ inkscape:window-x="64"
inkscape:window-y="27"
inkscape:window-maximized="1"
- inkscape:current-layer="svg2" />
+ inkscape:current-layer="svg2"
+ inkscape:pagecheckerboard="0"
+ showguides="false" />
-
2
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';fill:#404140;fill-opacity:1;stroke-width:0.604861">2
1
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';fill:#404140;fill-opacity:1;stroke-width:0.604861">1
+
diff --git a/doc/main/diagrams_source/sensor_colorlightmatrix.svg b/doc/main/diagrams_source/sensor_colorlightmatrix.svg
new file mode 100644
index 0000000..9e8d30c
--- /dev/null
+++ b/doc/main/diagrams_source/sensor_colorlightmatrix.svg
@@ -0,0 +1,157 @@
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/doc/main/diagram_source/sensor_ultrasonic_lights.svg b/doc/main/diagrams_source/sensor_ultrasonic_lights.svg
similarity index 69%
rename from doc/main/diagram_source/sensor_ultrasonic_lights.svg
rename to doc/main/diagrams_source/sensor_ultrasonic_lights.svg
index ff784a8..6544210 100644
--- a/doc/main/diagram_source/sensor_ultrasonic_lights.svg
+++ b/doc/main/diagrams_source/sensor_ultrasonic_lights.svg
@@ -2,21 +2,21 @@
+ inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
@@ -25,7 +25,6 @@
image/svg+xml
-
@@ -40,126 +39,124 @@
guidetolerance="10"
inkscape:pageopacity="1"
inkscape:pageshadow="2"
- inkscape:window-width="1853"
- inkscape:window-height="1145"
+ inkscape:window-width="1856"
+ inkscape:window-height="1136"
id="namedview4"
showgrid="false"
- inkscape:zoom="10.523077"
- inkscape:cx="527.41549"
- inkscape:cy="252.46821"
- inkscape:window-x="67"
+ inkscape:zoom="1.0491594"
+ inkscape:cx="433.68052"
+ inkscape:cy="79.587525"
+ inkscape:window-x="64"
inkscape:window-y="27"
inkscape:window-maximized="1"
- inkscape:current-layer="svg2" />
+ inkscape:current-layer="svg2"
+ inkscape:pagecheckerboard="0" />
-
+ xlink:href="../cad/output/pupdevice-ultrasonic-front.png"
+ id="image1019"
+ x="700"
+ y="74" />
0
1
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';fill:#404140;fill-opacity:1;stroke-width:0.604861">1
2
+ x="760.46619"
+ y="253.91962"
+ style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'Roboto Slab';-inkscape-font-specification:'Roboto Slab';fill:#404140;fill-opacity:1;stroke-width:0.604861">2
3
+
diff --git a/doc/main/diagram_source/store.svg b/doc/main/diagrams_source/store.svg
similarity index 100%
rename from doc/main/diagram_source/store.svg
rename to doc/main/diagrams_source/store.svg
diff --git a/doc/main/diagram_source/store0.png b/doc/main/diagrams_source/store0.png
similarity index 100%
rename from doc/main/diagram_source/store0.png
rename to doc/main/diagrams_source/store0.png
diff --git a/doc/main/diagram_source/terminal.png b/doc/main/diagrams_source/terminal.png
similarity index 100%
rename from doc/main/diagram_source/terminal.png
rename to doc/main/diagrams_source/terminal.png
diff --git a/doc/main/diagram_source/terminal.svg b/doc/main/diagrams_source/terminal.svg
similarity index 100%
rename from doc/main/diagram_source/terminal.svg
rename to doc/main/diagrams_source/terminal.svg
diff --git a/doc/main/ev3devices.rst b/doc/main/ev3devices.rst
index ec6c9fd..c6dc088 100644
--- a/doc/main/ev3devices.rst
+++ b/doc/main/ev3devices.rst
@@ -9,7 +9,7 @@ Motors
.. _fig_ev3motors:
-.. figure:: ../main/images/ev3motors_label.png
+.. figure:: ../main/diagrams/ev3motors.png
:width: 100 %
EV3-compatible motors. The arrows indicate the default positive direction.
@@ -84,7 +84,7 @@ Motors
Touch Sensor
^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_ev3_touch.png
+.. figure:: ../main/cad/output/ev3device-touch.png
:width: 18 %
.. autoclass:: pybricks.ev3devices.TouchSensor
@@ -92,7 +92,7 @@ Touch Sensor
Color Sensor
^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_ev3_color.png
+.. figure:: ../main/cad/output/ev3device-color.png
:width: 18 %
.. autoclass:: pybricks.ev3devices.ColorSensor
@@ -104,7 +104,7 @@ Each method of this class puts the sensor in a different *mode*. Switching
modes takes about one second on this sensor. To make sure that your program
runs quickly, use only of these methods in your program.
-.. figure:: ../main/images/sensor_ev3_ir.png
+.. figure:: ../main/cad/output/ev3device-infrared.png
:width: 60 %
.. autoclass:: pybricks.ev3devices.InfraredSensor
@@ -112,7 +112,7 @@ runs quickly, use only of these methods in your program.
Ultrasonic Sensor
^^^^^^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_ev3_ultrasonic.png
+.. figure:: ../main/cad/output/ev3device-ultrasonic.png
:width: 22 %
.. autoclass:: pybricks.ev3devices.UltrasonicSensor
@@ -120,7 +120,7 @@ Ultrasonic Sensor
Gyroscopic Sensor
^^^^^^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_ev3_gyro.png
+.. figure:: ../main/cad/output/ev3device-gyro.png
:width: 18 %
.. autoclass:: pybricks.ev3devices.GyroSensor
diff --git a/doc/main/geometry.rst b/doc/main/geometry.rst
index 86b2104..0e1077d 100644
--- a/doc/main/geometry.rst
+++ b/doc/main/geometry.rst
@@ -41,7 +41,7 @@ though the *hub* accelerates backward.
.. _fig_imuexamples:
-.. figure:: ../main/images/imuexamples_label.png
+.. figure:: ../main/diagrams/imuexamples.png
:width: 100 %
How to configure the ``top_side`` and ``front_side`` settings for three
diff --git a/doc/main/hubs/cityhub.rst b/doc/main/hubs/cityhub.rst
index 0e04408..4172fc1 100644
--- a/doc/main/hubs/cityhub.rst
+++ b/doc/main/hubs/cityhub.rst
@@ -3,7 +3,7 @@
City Hub
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/cityhub.png
+.. figure:: ../../main/cad/output/hub-city.png
:height: 15 em
.. autoclass:: pybricks.hubs.CityHub
diff --git a/doc/main/hubs/essentialhub.rst b/doc/main/hubs/essentialhub.rst
index c127711..5cf6cb0 100644
--- a/doc/main/hubs/essentialhub.rst
+++ b/doc/main/hubs/essentialhub.rst
@@ -3,8 +3,8 @@
Essential Hub
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/essentialhub.png
- :height: 15 em
+.. figure:: ../../main/cad/output/hub-essential.png
+ :width: 30%
.. note:: Pybricks support for this hub is in beta.
diff --git a/doc/main/hubs/ev3brick.rst b/doc/main/hubs/ev3brick.rst
index 91805cc..810428f 100644
--- a/doc/main/hubs/ev3brick.rst
+++ b/doc/main/hubs/ev3brick.rst
@@ -1,7 +1,7 @@
MINDSTORMS EV3 Brick
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/ev3brick.png
+.. figure:: ../../main/cad/output/ev3device-ev3.png
:height: 15 em
.. autoclass:: pybricks.hubs.EV3Brick
diff --git a/doc/main/hubs/index.rst b/doc/main/hubs/index.rst
index e29cd03..76088ee 100644
--- a/doc/main/hubs/index.rst
+++ b/doc/main/hubs/index.rst
@@ -17,36 +17,36 @@
.. pybricks-classlink:: MoveHub
-.. figure:: ../../main/images/movehub.png
- :height: 10 em
+.. figure:: ../../main/cad/output/hub-move.png
+ :width: 30%
:target: movehub.html
.. pybricks-classlink:: CityHub
-.. figure:: ../../main/images/cityhub.png
- :height: 10 em
+.. figure:: ../../main/cad/output/hub-city.png
+ :width: 20%
:target: cityhub.html
.. pybricks-classlink:: TechnicHub
-.. figure:: ../../main/images/technichub.png
- :height: 10 em
+.. figure:: ../../main/cad/output/hub-technic.png
+ :width: 25%
:target: technichub.html
-.. pybricks-classlink:: PrimeHub
-
-.. figure:: ../../main/images/primehub.png
- :height: 10 em
- :target: primehub.html
-
.. pybricks-classlink:: InventorHub PrimeHub
-.. figure:: ../../main/images/inventorhub.png
- :height: 10 em
+.. figure:: ../../main/cad/output/hub-inventor.png
+ :width: 25%
+ :target: primehub.html
+
+.. pybricks-classlink:: PrimeHub
+
+.. figure:: ../../main/cad/output/hub-prime.png
+ :width: 25%
:target: primehub.html
.. pybricks-classlink:: EssentialHub
-.. figure:: ../../main/images/essentialhub.png
- :height: 10 em
+.. figure:: ../../main/cad/output/hub-essential.png
+ :width: 20%
:target: essentialhub.html
diff --git a/doc/main/hubs/movehub.rst b/doc/main/hubs/movehub.rst
index af56454..3ef1c0f 100644
--- a/doc/main/hubs/movehub.rst
+++ b/doc/main/hubs/movehub.rst
@@ -5,7 +5,7 @@ Move Hub
.. _fig_movehub:
-.. figure:: ../../main/images/movehub_label.png
+.. figure:: ../../main/diagrams/movehub.png
:height: 15 em
.. autoclass:: pybricks.hubs.MoveHub
diff --git a/doc/main/hubs/primehub.rst b/doc/main/hubs/primehub.rst
index c76b85c..354d11b 100644
--- a/doc/main/hubs/primehub.rst
+++ b/doc/main/hubs/primehub.rst
@@ -3,7 +3,7 @@
Prime Hub / Inventor Hub
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/primeinventorhub.png
+.. figure:: ../../main/cad/output/hub-spike-inventor.png
:height: 15 em
@@ -23,7 +23,7 @@ Prime Hub / Inventor Hub
.. rubric:: Using the hub status light
- .. figure:: ../../main/images/primehub_light_label.png
+ .. figure:: ../../main/diagrams/primehub_light.png
:width: 22 em
.. automethod:: pybricks.hubs::PrimeHub.light.on
@@ -36,7 +36,7 @@ Prime Hub / Inventor Hub
.. rubric:: Using the light matrix display
- .. figure:: ../../main/images/primehub_display_label.png
+ .. figure:: ../../main/diagrams/primehub_display.png
:width: 22 em
.. automethod:: pybricks.hubs::PrimeHub.display.orientation
@@ -57,7 +57,7 @@ Prime Hub / Inventor Hub
.. rubric:: Using the buttons
- .. figure:: ../../main/images/primehub_buttons_label.png
+ .. figure:: ../../main/diagrams/primehub_buttons.png
:width: 22 em
.. automethod:: pybricks.hubs::PrimeHub.buttons.pressed
diff --git a/doc/main/hubs/technichub.rst b/doc/main/hubs/technichub.rst
index 9ac9eb2..befeb22 100644
--- a/doc/main/hubs/technichub.rst
+++ b/doc/main/hubs/technichub.rst
@@ -3,7 +3,7 @@
Technic Hub
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/technichub.png
+.. figure:: ../../main/cad/output/hub-technic.png
:height: 15 em
.. autoclass:: pybricks.hubs.TechnicHub
diff --git a/doc/main/images/bluetooth_on_label.png b/doc/main/images/bluetooth_on_label.png
deleted file mode 100644
index e1d9da1..0000000
Binary files a/doc/main/images/bluetooth_on_label.png and /dev/null differ
diff --git a/doc/main/images/bluetooth_pair_label.png b/doc/main/images/bluetooth_pair_label.png
deleted file mode 100644
index fe37a00..0000000
Binary files a/doc/main/images/bluetooth_pair_label.png and /dev/null differ
diff --git a/doc/main/images/cityhub.png b/doc/main/images/cityhub.png
deleted file mode 100644
index b449624..0000000
Binary files a/doc/main/images/cityhub.png and /dev/null differ
diff --git a/doc/main/images/compat_cityhub_false_label.png b/doc/main/images/compat_cityhub_false_label.png
deleted file mode 100644
index f714f46..0000000
Binary files a/doc/main/images/compat_cityhub_false_label.png and /dev/null differ
diff --git a/doc/main/images/compat_cityhub_true_label.png b/doc/main/images/compat_cityhub_true_label.png
deleted file mode 100644
index 96d11f0..0000000
Binary files a/doc/main/images/compat_cityhub_true_label.png and /dev/null differ
diff --git a/doc/main/images/compat_essentialhub_false_label.png b/doc/main/images/compat_essentialhub_false_label.png
deleted file mode 100644
index 8112d90..0000000
Binary files a/doc/main/images/compat_essentialhub_false_label.png and /dev/null differ
diff --git a/doc/main/images/compat_essentialhub_true_label.png b/doc/main/images/compat_essentialhub_true_label.png
deleted file mode 100644
index 0d0fcf5..0000000
Binary files a/doc/main/images/compat_essentialhub_true_label.png and /dev/null differ
diff --git a/doc/main/images/compat_inventorhub_false_label.png b/doc/main/images/compat_inventorhub_false_label.png
deleted file mode 100644
index b2ae133..0000000
Binary files a/doc/main/images/compat_inventorhub_false_label.png and /dev/null differ
diff --git a/doc/main/images/compat_inventorhub_true_label.png b/doc/main/images/compat_inventorhub_true_label.png
deleted file mode 100644
index f648e4d..0000000
Binary files a/doc/main/images/compat_inventorhub_true_label.png and /dev/null differ
diff --git a/doc/main/images/compat_movehub_false_label.png b/doc/main/images/compat_movehub_false_label.png
deleted file mode 100644
index ee4844e..0000000
Binary files a/doc/main/images/compat_movehub_false_label.png and /dev/null differ
diff --git a/doc/main/images/compat_movehub_true_label.png b/doc/main/images/compat_movehub_true_label.png
deleted file mode 100644
index b3ea3c4..0000000
Binary files a/doc/main/images/compat_movehub_true_label.png and /dev/null differ
diff --git a/doc/main/images/compat_primehub_false_label.png b/doc/main/images/compat_primehub_false_label.png
deleted file mode 100644
index 8112d90..0000000
Binary files a/doc/main/images/compat_primehub_false_label.png and /dev/null differ
diff --git a/doc/main/images/compat_primehub_true_label.png b/doc/main/images/compat_primehub_true_label.png
deleted file mode 100644
index 0d0fcf5..0000000
Binary files a/doc/main/images/compat_primehub_true_label.png and /dev/null differ
diff --git a/doc/main/images/compat_technichub_false_label.png b/doc/main/images/compat_technichub_false_label.png
deleted file mode 100644
index 2bd7736..0000000
Binary files a/doc/main/images/compat_technichub_false_label.png and /dev/null differ
diff --git a/doc/main/images/compat_technichub_true_label.png b/doc/main/images/compat_technichub_true_label.png
deleted file mode 100644
index 16e1827..0000000
Binary files a/doc/main/images/compat_technichub_true_label.png and /dev/null differ
diff --git a/doc/main/images/connecting_label.png b/doc/main/images/connecting_label.png
deleted file mode 100644
index dfb7602..0000000
Binary files a/doc/main/images/connecting_label.png and /dev/null differ
diff --git a/doc/main/images/devicebrowser_label.png b/doc/main/images/devicebrowser_label.png
deleted file mode 100644
index 0b5f590..0000000
Binary files a/doc/main/images/devicebrowser_label.png and /dev/null differ
diff --git a/doc/main/images/energymeter.png b/doc/main/images/energymeter.png
deleted file mode 100644
index a426c7f..0000000
Binary files a/doc/main/images/energymeter.png and /dev/null differ
diff --git a/doc/main/images/essentialhub.png b/doc/main/images/essentialhub.png
deleted file mode 100644
index a1bb59c..0000000
Binary files a/doc/main/images/essentialhub.png and /dev/null differ
diff --git a/doc/main/images/etcher_label.png b/doc/main/images/etcher_label.png
deleted file mode 100644
index b101581..0000000
Binary files a/doc/main/images/etcher_label.png and /dev/null differ
diff --git a/doc/main/images/ev3brick.png b/doc/main/images/ev3brick.png
deleted file mode 100644
index 24f627f..0000000
Binary files a/doc/main/images/ev3brick.png and /dev/null differ
diff --git a/doc/main/images/ev3motors_label.png b/doc/main/images/ev3motors_label.png
deleted file mode 100644
index 9cf5682..0000000
Binary files a/doc/main/images/ev3motors_label.png and /dev/null differ
diff --git a/doc/main/images/existingproject_label.png b/doc/main/images/existingproject_label.png
deleted file mode 100644
index bf15530..0000000
Binary files a/doc/main/images/existingproject_label.png and /dev/null differ
diff --git a/doc/main/images/files_label.png b/doc/main/images/files_label.png
deleted file mode 100644
index 5ec8a32..0000000
Binary files a/doc/main/images/files_label.png and /dev/null differ
diff --git a/doc/main/images/firstprogram_label.png b/doc/main/images/firstprogram_label.png
deleted file mode 100644
index a6110db..0000000
Binary files a/doc/main/images/firstprogram_label.png and /dev/null differ
diff --git a/doc/main/images/hubsoverview.png b/doc/main/images/hubsoverview.png
deleted file mode 100644
index cf85253..0000000
Binary files a/doc/main/images/hubsoverview.png and /dev/null differ
diff --git a/doc/main/images/imuexamples_label.png b/doc/main/images/imuexamples_label.png
deleted file mode 100644
index 7265a5e..0000000
Binary files a/doc/main/images/imuexamples_label.png and /dev/null differ
diff --git a/doc/main/images/inventorhub.png b/doc/main/images/inventorhub.png
deleted file mode 100644
index c92d84b..0000000
Binary files a/doc/main/images/inventorhub.png and /dev/null differ
diff --git a/doc/main/images/light.png b/doc/main/images/light.png
deleted file mode 100644
index 3669add..0000000
Binary files a/doc/main/images/light.png and /dev/null differ
diff --git a/doc/main/images/manualrun_label.png b/doc/main/images/manualrun_label.png
deleted file mode 100644
index 2fe4796..0000000
Binary files a/doc/main/images/manualrun_label.png and /dev/null differ
diff --git a/doc/main/images/messaging_label.png b/doc/main/images/messaging_label.png
deleted file mode 100644
index d232f34..0000000
Binary files a/doc/main/images/messaging_label.png and /dev/null differ
diff --git a/doc/main/images/messaging_network_label.png b/doc/main/images/messaging_network_label.png
deleted file mode 100644
index c03a12d..0000000
Binary files a/doc/main/images/messaging_network_label.png and /dev/null differ
diff --git a/doc/main/images/movehub.png b/doc/main/images/movehub.png
deleted file mode 100644
index e9d9c28..0000000
Binary files a/doc/main/images/movehub.png and /dev/null differ
diff --git a/doc/main/images/movehub_label.png b/doc/main/images/movehub_label.png
deleted file mode 100644
index 0d51c02..0000000
Binary files a/doc/main/images/movehub_label.png and /dev/null differ
diff --git a/doc/main/images/newproject_label.png b/doc/main/images/newproject_label.png
deleted file mode 100644
index 44c8dd4..0000000
Binary files a/doc/main/images/newproject_label.png and /dev/null differ
diff --git a/doc/main/images/nxtbrick.png b/doc/main/images/nxtbrick.png
deleted file mode 100644
index 9a237ac..0000000
Binary files a/doc/main/images/nxtbrick.png and /dev/null differ
diff --git a/doc/main/images/onoff_label.png b/doc/main/images/onoff_label.png
deleted file mode 100644
index 48847f4..0000000
Binary files a/doc/main/images/onoff_label.png and /dev/null differ
diff --git a/doc/main/images/orientation_essentialhub_label.png b/doc/main/images/orientation_essentialhub_label.png
deleted file mode 100644
index 5b946c1..0000000
Binary files a/doc/main/images/orientation_essentialhub_label.png and /dev/null differ
diff --git a/doc/main/images/orientation_inventorhub_label.png b/doc/main/images/orientation_inventorhub_label.png
deleted file mode 100644
index 0fa3844..0000000
Binary files a/doc/main/images/orientation_inventorhub_label.png and /dev/null differ
diff --git a/doc/main/images/orientation_movehub_label.png b/doc/main/images/orientation_movehub_label.png
deleted file mode 100644
index 17fbdd3..0000000
Binary files a/doc/main/images/orientation_movehub_label.png and /dev/null differ
diff --git a/doc/main/images/orientation_primehub_label.png b/doc/main/images/orientation_primehub_label.png
deleted file mode 100644
index 5b946c1..0000000
Binary files a/doc/main/images/orientation_primehub_label.png and /dev/null differ
diff --git a/doc/main/images/orientation_technichub_label.png b/doc/main/images/orientation_technichub_label.png
deleted file mode 100644
index 17f827b..0000000
Binary files a/doc/main/images/orientation_technichub_label.png and /dev/null differ
diff --git a/doc/main/images/orientation_tiltsensor_label.png b/doc/main/images/orientation_tiltsensor_label.png
deleted file mode 100644
index 8457539..0000000
Binary files a/doc/main/images/orientation_tiltsensor_label.png and /dev/null differ
diff --git a/doc/main/images/overview_label.png b/doc/main/images/overview_label.png
deleted file mode 100644
index 0c8bf77..0000000
Binary files a/doc/main/images/overview_label.png and /dev/null differ
diff --git a/doc/main/images/pfmotor.png b/doc/main/images/pfmotor.png
deleted file mode 100644
index 6750363..0000000
Binary files a/doc/main/images/pfmotor.png and /dev/null differ
diff --git a/doc/main/images/powereduphubs.png b/doc/main/images/powereduphubs.png
deleted file mode 100644
index 15995fe..0000000
Binary files a/doc/main/images/powereduphubs.png and /dev/null differ
diff --git a/doc/main/images/primehub.png b/doc/main/images/primehub.png
deleted file mode 100644
index a1bb59c..0000000
Binary files a/doc/main/images/primehub.png and /dev/null differ
diff --git a/doc/main/images/primehub_buttons_label.png b/doc/main/images/primehub_buttons_label.png
deleted file mode 100644
index d7b118e..0000000
Binary files a/doc/main/images/primehub_buttons_label.png and /dev/null differ
diff --git a/doc/main/images/primehub_display_label.png b/doc/main/images/primehub_display_label.png
deleted file mode 100644
index 8fd5625..0000000
Binary files a/doc/main/images/primehub_display_label.png and /dev/null differ
diff --git a/doc/main/images/primehub_light_label.png b/doc/main/images/primehub_light_label.png
deleted file mode 100644
index 76b195b..0000000
Binary files a/doc/main/images/primehub_light_label.png and /dev/null differ
diff --git a/doc/main/images/primeinventorhub.png b/doc/main/images/primeinventorhub.png
deleted file mode 100644
index e2e4f2e..0000000
Binary files a/doc/main/images/primeinventorhub.png and /dev/null differ
diff --git a/doc/main/images/projectstructure_label.png b/doc/main/images/projectstructure_label.png
deleted file mode 100644
index 73d09e3..0000000
Binary files a/doc/main/images/projectstructure_label.png and /dev/null differ
diff --git a/doc/main/images/pupdcmotors_label.png b/doc/main/images/pupdcmotors_label.png
deleted file mode 100644
index 95965aa..0000000
Binary files a/doc/main/images/pupdcmotors_label.png and /dev/null differ
diff --git a/doc/main/images/pupdevicesoverview.png b/doc/main/images/pupdevicesoverview.png
deleted file mode 100644
index 1304d13..0000000
Binary files a/doc/main/images/pupdevicesoverview.png and /dev/null differ
diff --git a/doc/main/images/pupmotors_label.png b/doc/main/images/pupmotors_label.png
deleted file mode 100644
index 7628eb1..0000000
Binary files a/doc/main/images/pupmotors_label.png and /dev/null differ
diff --git a/doc/main/images/pupremote.png b/doc/main/images/pupremote.png
deleted file mode 100644
index f01d4eb..0000000
Binary files a/doc/main/images/pupremote.png and /dev/null differ
diff --git a/doc/main/images/rcxmotor.png b/doc/main/images/rcxmotor.png
deleted file mode 100644
index 0d1f437..0000000
Binary files a/doc/main/images/rcxmotor.png and /dev/null differ
diff --git a/doc/main/images/running_label.png b/doc/main/images/running_label.png
deleted file mode 100644
index 828fa7b..0000000
Binary files a/doc/main/images/running_label.png and /dev/null differ
diff --git a/doc/main/images/sd_label.png b/doc/main/images/sd_label.png
deleted file mode 100644
index 7505dbd..0000000
Binary files a/doc/main/images/sd_label.png and /dev/null differ
diff --git a/doc/main/images/sensor_color.png b/doc/main/images/sensor_color.png
deleted file mode 100644
index 5223ba4..0000000
Binary files a/doc/main/images/sensor_color.png and /dev/null differ
diff --git a/doc/main/images/sensor_color_lights_label.png b/doc/main/images/sensor_color_lights_label.png
deleted file mode 100644
index c771906..0000000
Binary files a/doc/main/images/sensor_color_lights_label.png and /dev/null differ
diff --git a/doc/main/images/sensor_colordistance.png b/doc/main/images/sensor_colordistance.png
deleted file mode 100644
index 4207a97..0000000
Binary files a/doc/main/images/sensor_colordistance.png and /dev/null differ
diff --git a/doc/main/images/sensor_colorlightmatrix_label.png b/doc/main/images/sensor_colorlightmatrix_label.png
deleted file mode 100644
index 79a2d13..0000000
Binary files a/doc/main/images/sensor_colorlightmatrix_label.png and /dev/null differ
diff --git a/doc/main/images/sensor_ev3_color.png b/doc/main/images/sensor_ev3_color.png
deleted file mode 100644
index 4f46752..0000000
Binary files a/doc/main/images/sensor_ev3_color.png and /dev/null differ
diff --git a/doc/main/images/sensor_ev3_gyro.png b/doc/main/images/sensor_ev3_gyro.png
deleted file mode 100644
index c045205..0000000
Binary files a/doc/main/images/sensor_ev3_gyro.png and /dev/null differ
diff --git a/doc/main/images/sensor_ev3_ir.png b/doc/main/images/sensor_ev3_ir.png
deleted file mode 100644
index 134d164..0000000
Binary files a/doc/main/images/sensor_ev3_ir.png and /dev/null differ
diff --git a/doc/main/images/sensor_ev3_touch.png b/doc/main/images/sensor_ev3_touch.png
deleted file mode 100644
index c3317bd..0000000
Binary files a/doc/main/images/sensor_ev3_touch.png and /dev/null differ
diff --git a/doc/main/images/sensor_ev3_ultrasonic.png b/doc/main/images/sensor_ev3_ultrasonic.png
deleted file mode 100644
index 844e7b5..0000000
Binary files a/doc/main/images/sensor_ev3_ultrasonic.png and /dev/null differ
diff --git a/doc/main/images/sensor_ev3dev.png b/doc/main/images/sensor_ev3dev.png
deleted file mode 100644
index 1654946..0000000
Binary files a/doc/main/images/sensor_ev3dev.png and /dev/null differ
diff --git a/doc/main/images/sensor_force.png b/doc/main/images/sensor_force.png
deleted file mode 100644
index cd193cc..0000000
Binary files a/doc/main/images/sensor_force.png and /dev/null differ
diff --git a/doc/main/images/sensor_lump.png b/doc/main/images/sensor_lump.png
deleted file mode 100644
index aa553c8..0000000
Binary files a/doc/main/images/sensor_lump.png and /dev/null differ
diff --git a/doc/main/images/sensor_nxt_color.png b/doc/main/images/sensor_nxt_color.png
deleted file mode 100644
index 108bedb..0000000
Binary files a/doc/main/images/sensor_nxt_color.png and /dev/null differ
diff --git a/doc/main/images/sensor_nxt_light.png b/doc/main/images/sensor_nxt_light.png
deleted file mode 100644
index 79fd76b..0000000
Binary files a/doc/main/images/sensor_nxt_light.png and /dev/null differ
diff --git a/doc/main/images/sensor_nxt_sound.png b/doc/main/images/sensor_nxt_sound.png
deleted file mode 100644
index cae02f3..0000000
Binary files a/doc/main/images/sensor_nxt_sound.png and /dev/null differ
diff --git a/doc/main/images/sensor_nxt_temp.png b/doc/main/images/sensor_nxt_temp.png
deleted file mode 100644
index e225819..0000000
Binary files a/doc/main/images/sensor_nxt_temp.png and /dev/null differ
diff --git a/doc/main/images/sensor_nxt_touch.png b/doc/main/images/sensor_nxt_touch.png
deleted file mode 100644
index 9feb016..0000000
Binary files a/doc/main/images/sensor_nxt_touch.png and /dev/null differ
diff --git a/doc/main/images/sensor_nxt_ultrasonic.png b/doc/main/images/sensor_nxt_ultrasonic.png
deleted file mode 100644
index 5cc8b32..0000000
Binary files a/doc/main/images/sensor_nxt_ultrasonic.png and /dev/null differ
diff --git a/doc/main/images/sensor_proximity.png b/doc/main/images/sensor_proximity.png
deleted file mode 100644
index 5970bfc..0000000
Binary files a/doc/main/images/sensor_proximity.png and /dev/null differ
diff --git a/doc/main/images/sensor_pup.png b/doc/main/images/sensor_pup.png
deleted file mode 100644
index eeef1e0..0000000
Binary files a/doc/main/images/sensor_pup.png and /dev/null differ
diff --git a/doc/main/images/sensor_rj12_bluegreen.png b/doc/main/images/sensor_rj12_bluegreen.png
deleted file mode 100644
index b46f5f6..0000000
Binary files a/doc/main/images/sensor_rj12_bluegreen.png and /dev/null differ
diff --git a/doc/main/images/sensor_rj12_brown.png b/doc/main/images/sensor_rj12_brown.png
deleted file mode 100644
index 4ea50af..0000000
Binary files a/doc/main/images/sensor_rj12_brown.png and /dev/null differ
diff --git a/doc/main/images/sensor_rj12_gray.png b/doc/main/images/sensor_rj12_gray.png
deleted file mode 100644
index 7959d89..0000000
Binary files a/doc/main/images/sensor_rj12_gray.png and /dev/null differ
diff --git a/doc/main/images/sensor_rj12_green.png b/doc/main/images/sensor_rj12_green.png
deleted file mode 100644
index 4d8cc0f..0000000
Binary files a/doc/main/images/sensor_rj12_green.png and /dev/null differ
diff --git a/doc/main/images/sensor_tilt.png b/doc/main/images/sensor_tilt.png
deleted file mode 100644
index fb81209..0000000
Binary files a/doc/main/images/sensor_tilt.png and /dev/null differ
diff --git a/doc/main/images/sensor_ultrasonic.png b/doc/main/images/sensor_ultrasonic.png
deleted file mode 100644
index 6cfc0b6..0000000
Binary files a/doc/main/images/sensor_ultrasonic.png and /dev/null differ
diff --git a/doc/main/images/sensor_ultrasonic_front.png b/doc/main/images/sensor_ultrasonic_front.png
deleted file mode 100644
index cb15280..0000000
Binary files a/doc/main/images/sensor_ultrasonic_front.png and /dev/null differ
diff --git a/doc/main/images/sensor_ultrasonic_lights_label.png b/doc/main/images/sensor_ultrasonic_lights_label.png
deleted file mode 100644
index e88fdfe..0000000
Binary files a/doc/main/images/sensor_ultrasonic_lights_label.png and /dev/null differ
diff --git a/doc/main/images/store_label.png b/doc/main/images/store_label.png
deleted file mode 100644
index 48121ea..0000000
Binary files a/doc/main/images/store_label.png and /dev/null differ
diff --git a/doc/main/images/technichub.png b/doc/main/images/technichub.png
deleted file mode 100644
index d779700..0000000
Binary files a/doc/main/images/technichub.png and /dev/null differ
diff --git a/doc/main/images/terminal_label.png b/doc/main/images/terminal_label.png
deleted file mode 100644
index a78899b..0000000
Binary files a/doc/main/images/terminal_label.png and /dev/null differ
diff --git a/doc/main/index.rst b/doc/main/index.rst
index ece5271..56eadf7 100644
--- a/doc/main/index.rst
+++ b/doc/main/index.rst
@@ -1,84 +1,40 @@
Pybricks Documentation
==================================================================
+`Pybricks `_ is Python coding for smart LEGO® hubs.
+Run MicroPython scripts
+directly on the hub, and get full control of your motors and sensors.
+
+Pybricks runs on LEGO® BOOST, City, Technic, MINDSTORMS®, and SPIKE®. You
+can code using Windows, Mac, Linux, Chromebook, and Android.
+
+To run Pybricks MicroPython scripts, you must install the Pybricks firmware
+on your hub. Check `pybricks.com/install`_ to learn how.
+
.. only:: main
- `Pybricks `_ is Python coding for smart LEGO® hubs.
- Run MicroPython scripts
- directly on the hub, and get full control of your motors and sensors.
-
- Pybricks runs on LEGO® BOOST, City, Technic, MINDSTORMS®, and SPIKE®. You
- can code using Windows, Mac, Linux, Chromebook, and Android.
-
- **What's on this page?**
-
- This page provides API documentation and short example snippets. If you're
- new to Pybricks, or if you're looking for bigger example projects, check out
- the `Pybricks website`_ instead.
-
-
.. note:: Are you using LEGO MINDSTORMS EV3? Check out the
`EV3 documentation`_ instead.
+.. rubric:: Programmable hubs
- **Installation**
+.. figure:: ../main/cad/output/hub-all.png
+ :width: 100 %
+ :target: hubs/index.html
- To run Pybricks MicroPython scripts, you must update the firmware on the
- hub. To get started, click one of the platforms below.
-
- .. list-table::
-
- * - **Technic, City, and BOOST Move Hubs**
- - **SPIKE Essential/Prime, and MINDSTORMS Inventor Hubs**
-
- * - .. figure:: ../main/images/powereduphubs.png
- :target: https://pybricks.com/install/technic-boost-city/
-
- - .. figure:: ../main/images/primeinventorhub.png
- :target: https://pybricks.com/install/spike-mindstorms/
-
- Once installed, Pybricks works the same for all hubs.
- check out the Pybricks modules in the left hand menu to see what
- you can do.
-
- **Get involved!**
-
- Got questions or issues? Please share your
- findings on our `support page`_ so we can make Pybricks even better.
- *Thank you!*
-
-.. only:: ide
-
- .. note::
-
- **You are using a new beta version of Pybricks!**
-
- This is great for trying the very latest features, but some things
- might not work.
-
- If in doubt, use the `latest stable release`_. Please report any
- issues via our `support page`_. Thanks!
-
- To begin, install the Pybricks firmware on your hub. Check
- `pybricks.com/install`_ to learn how.
-
- Use the ☰ menu to navigate all available classes, methods, and tools. A few
- commonly used devices and classes are listed below for quick reference.
-
- .. rubric:: Programmable hubs
-
- .. figure:: ../main/images/hubsoverview.png
- :width: 100 %
- :target: hubs/index.html
-
- .. rubric:: Powered Up motors and sensors
-
- .. figure:: ../main/images/pupdevicesoverview.png
- :width: 100 %
- :target: pupdevices/index.html
+.. rubric:: Powered Up motors and sensors
+.. figure:: ../main/cad/output/pupdevice-all.png
+ :width: 100 %
+ :target: pupdevices/index.html
+.. figure:: ../main/cad/output/pupdevice-motors.png
+ :width: 100 %
+ :target: pupdevices/motor.html
+.. figure:: ../main/cad/output/pupdevice-dcmotors.png
+ :width: 70 %
+ :target: pupdevices/dcmotor.html
.. _support page: https://github.com/pybricks/support/issues/
.. _EV3 documentation: https://pybricks.com/ev3-micropython/
diff --git a/doc/main/iodevices/analogsensor.rst b/doc/main/iodevices/analogsensor.rst
index 2017233..031dffe 100644
--- a/doc/main/iodevices/analogsensor.rst
+++ b/doc/main/iodevices/analogsensor.rst
@@ -5,7 +5,7 @@ EV3 Analog Sensor
This class is only available on EV3.
-.. figure:: ../../main/images/sensor_rj12_brown.png
+.. figure:: ../../main/cad/output/iodevice-rj12brown.png
:width: 25 %
.. autoclass:: pybricks.iodevices.AnalogSensor
diff --git a/doc/main/iodevices/dcmotor.rst b/doc/main/iodevices/dcmotor.rst
index 18b1f16..5570cbe 100644
--- a/doc/main/iodevices/dcmotor.rst
+++ b/doc/main/iodevices/dcmotor.rst
@@ -6,7 +6,7 @@ EV3 DC Motor
This class is specifically for on EV3. For Powered Up DC Motors, just use
the :class:`DCMotor ` class.
-.. figure:: ../../main/images/rcxmotor.png
+.. figure:: ../../main/cad/output/iodevice-dcmotor.png
:width: 40 %
.. autoclass:: pybricks.iodevices.DCMotor
diff --git a/doc/main/iodevices/ev3devsensor.rst b/doc/main/iodevices/ev3devsensor.rst
index 70a81b0..7d46f2f 100644
--- a/doc/main/iodevices/ev3devsensor.rst
+++ b/doc/main/iodevices/ev3devsensor.rst
@@ -5,8 +5,8 @@ Ev3dev sensors
This class is only available on EV3.
-.. figure:: ../../main/images/sensor_ev3dev.png
- :width: 70 %
+.. figure:: ../../main/cad/output/iodevice-rj12pcbbox.png
+ :width: 30 %
EV3 MicroPython is built on top of ev3dev, which means that a sensor
may be supported even if it is not listed in this documentation. If so, you can
diff --git a/doc/main/iodevices/i2cdevice.rst b/doc/main/iodevices/i2cdevice.rst
index b94d996..39a39d7 100644
--- a/doc/main/iodevices/i2cdevice.rst
+++ b/doc/main/iodevices/i2cdevice.rst
@@ -10,7 +10,7 @@ Generic I2C Device
.. _support page: https://github.com/pybricks/support/issues/
-.. figure:: ../../main/images/sensor_rj12_bluegreen.png
+.. figure:: ../../main/cad/output/iodevice-rj12cyan.png
:width: 25 %
.. autoclass:: pybricks.iodevices.I2CDevice
diff --git a/doc/main/iodevices/index.rst b/doc/main/iodevices/index.rst
index 98a82c4..e04fe43 100644
--- a/doc/main/iodevices/index.rst
+++ b/doc/main/iodevices/index.rst
@@ -16,12 +16,12 @@ This module has classes for generic input/output devices.
.. pybricks-classlink:: PUPDevice
-.. figure:: ../../main/images/sensor_pup.png
- :width: 70 %
+.. figure:: ../../main/cad/output/iodevice-pupdevice.png
+ :width: 50 %
:target: pupdevice.html
.. pybricks-classlink:: LWP3Device
-.. figure:: ../../main/images/powereduphubs.png
- :width: 70 %
+.. figure:: ../../main/cad/output/hub-lwp3.png
+ :width: 80 %
:target: lwp3device.html
diff --git a/doc/main/iodevices/lumpdevice.rst b/doc/main/iodevices/lumpdevice.rst
index bf01d93..f0f21da 100644
--- a/doc/main/iodevices/lumpdevice.rst
+++ b/doc/main/iodevices/lumpdevice.rst
@@ -5,7 +5,7 @@ EV3 UART Device
This class is only available on EV3.
-.. figure:: ../../main/images/sensor_rj12_green.png
+.. figure:: ../../main/cad/output/iodevice-rj12green.png
:width: 25 %
.. autoclass:: pybricks.iodevices.LUMPDevice
diff --git a/doc/main/iodevices/lwp3device.rst b/doc/main/iodevices/lwp3device.rst
index 598a06b..10af18a 100644
--- a/doc/main/iodevices/lwp3device.rst
+++ b/doc/main/iodevices/lwp3device.rst
@@ -6,7 +6,7 @@ LEGO Wireless Protocol v3 device
This is an experimental class. It has not been well tested and may be
changed in future.
-.. figure:: ../../main/images/powereduphubs.png
- :width: 25 %
+.. figure:: ../../main/cad/output/hub-lwp3.png
+ :width: 80 %
.. autoclass:: pybricks.iodevices.LWP3Device
diff --git a/doc/main/iodevices/pupdevice.rst b/doc/main/iodevices/pupdevice.rst
index 9c12fa9..8c0ac00 100644
--- a/doc/main/iodevices/pupdevice.rst
+++ b/doc/main/iodevices/pupdevice.rst
@@ -3,8 +3,8 @@
Powered Up Device
^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/sensor_pup.png
- :width: 70 %
+.. figure:: ../cad/output/iodevice-pupdevice.png
+ :width: 60 %
.. autoclass:: pybricks.iodevices.PUPDevice
:no-members:
diff --git a/doc/main/iodevices/uartdevice.rst b/doc/main/iodevices/uartdevice.rst
index 0c647a1..0bdf45b 100644
--- a/doc/main/iodevices/uartdevice.rst
+++ b/doc/main/iodevices/uartdevice.rst
@@ -9,7 +9,7 @@ Generic UART Device
.. _support page: https://github.com/pybricks/support/issues/
-.. figure:: ../../main/images/sensor_rj12_gray.png
+.. figure:: ../../main/cad/output/iodevice-rj12grey.png
:width: 25 %
.. autoclass:: pybricks.iodevices.UARTDevice
diff --git a/doc/main/messaging.rst b/doc/main/messaging.rst
index 3f1ce35..3e9bb1e 100644
--- a/doc/main/messaging.rst
+++ b/doc/main/messaging.rst
@@ -18,7 +18,7 @@ EV3 bricks as shown in :numref:`fig_bluetooth_on`.
.. _fig_bluetooth_on:
-.. figure:: ../main/images/bluetooth_on_label.png
+.. figure:: ../main/diagrams/bluetooth_on.png
:width: 100 %
:alt: bluetooth_on
:align: center
@@ -33,7 +33,7 @@ The connection will be made when you run your programs, as described below.
.. _fig_bluetooth_pair:
-.. figure:: ../main/images/bluetooth_pair_label.png
+.. figure:: ../main/diagrams/bluetooth_pair.png
:width: 100 %
:alt: bluetooth_pair
:align: center
@@ -57,7 +57,7 @@ and the client can send a message to the server.
.. _fig_messaging:
-.. figure:: ../main/images/messaging_label.png
+.. figure:: ../main/diagrams/messaging.png
:width: 90 %
:alt: messaging
:align: center
@@ -128,7 +128,7 @@ is shown in :numref:`fig_messaging_network`.
.. _fig_messaging_network:
-.. figure:: ../main/images/messaging_network_label.png
+.. figure:: ../main/diagrams/messaging_network.png
:width: 90 %
:alt: messaging
:align: center
diff --git a/doc/main/nxtdevices.rst b/doc/main/nxtdevices.rst
index c02bd0b..ba478bf 100644
--- a/doc/main/nxtdevices.rst
+++ b/doc/main/nxtdevices.rst
@@ -12,7 +12,7 @@ your programs using the :mod:`Motor <.ev3devices>` class.
NXT Touch Sensor
^^^^^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_nxt_touch.png
+.. figure:: ../main/cad/output/nxtdevice-touch.png
:width: 18 %
.. autoclass:: pybricks.nxtdevices.TouchSensor
@@ -23,7 +23,7 @@ NXT Touch Sensor
NXT Light Sensor
^^^^^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_nxt_light.png
+.. figure:: ../main/cad/output/nxtdevice-light.png
:width: 18 %
.. autoclass:: pybricks.nxtdevices.LightSensor
@@ -31,7 +31,7 @@ NXT Light Sensor
NXT Color Sensor
^^^^^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_nxt_color.png
+.. figure:: ../main/cad/output/nxtdevice-color.png
:width: 18 %
.. autoclass:: pybricks.nxtdevices.ColorSensor
@@ -63,7 +63,7 @@ NXT Color Sensor
NXT Ultrasonic Sensor
^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_nxt_ultrasonic.png
+.. figure:: ../main/cad/output/nxtdevice-ultrasonic.png
:width: 24 %
.. autoclass:: pybricks.nxtdevices.UltrasonicSensor
@@ -71,7 +71,7 @@ NXT Ultrasonic Sensor
NXT Sound Sensor
^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_nxt_sound.png
+.. figure:: ../main/cad/output/nxtdevice-sound.png
:width: 18 %
.. autoclass:: pybricks.nxtdevices.SoundSensor
@@ -79,7 +79,7 @@ NXT Sound Sensor
NXT Temperature Sensor
^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../main/images/sensor_nxt_temp.png
+.. figure:: ../main/cad/output/nxtdevice-temperature.png
:width: 32 %
.. autoclass:: pybricks.nxtdevices.TemperatureSensor
@@ -87,7 +87,7 @@ NXT Temperature Sensor
NXT Energy Meter
^^^^^^^^^^^^^^^^^
-.. figure:: ../main/images/energymeter.png
+.. figure:: ../main/cad/output/nxtdevice-energy.png
:width: 30 %
.. autoclass:: pybricks.nxtdevices.EnergyMeter
diff --git a/doc/main/parameters/side.rst b/doc/main/parameters/side.rst
index 6f6164e..45a629e 100644
--- a/doc/main/parameters/side.rst
+++ b/doc/main/parameters/side.rst
@@ -33,30 +33,30 @@ Side
**Prime Hub**
- .. figure:: ../../main/images/orientation_primehub_label.png
+ .. figure:: ../../main/diagrams/orientation_primehub.png
:height: 17 em
**Inventor Hub**
- .. figure:: ../../main/images/orientation_inventorhub_label.png
+ .. figure:: ../../main/diagrams/orientation_inventorhub.png
:height: 17 em
**Essential Hub**
- .. figure:: ../../main/images/orientation_essentialhub_label.png
+ .. figure:: ../../main/diagrams/orientation_essentialhub.png
:height: 17 em
**Move Hub**
- .. figure:: ../../main/images/orientation_movehub_label.png
+ .. figure:: ../../main/diagrams/orientation_movehub.png
:height: 17 em
**Technic Hub**
- .. figure:: ../../main/images/orientation_technichub_label.png
+ .. figure:: ../../main/diagrams/orientation_technichub.png
:height: 17 em
**Tilt Sensor**
- .. figure:: ../../main/images/orientation_tiltsensor_label.png
+ .. figure:: ../../main/diagrams/orientation_tiltsensor.png
:height: 17 em
diff --git a/doc/main/pupdevices/colordistancesensor.rst b/doc/main/pupdevices/colordistancesensor.rst
index d22c3ce..f5c587f 100644
--- a/doc/main/pupdevices/colordistancesensor.rst
+++ b/doc/main/pupdevices/colordistancesensor.rst
@@ -3,7 +3,7 @@
Color and Distance Sensor
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/sensor_colordistance.png
+.. figure:: ../../main/cad/output/pupdevice-colordistance.png
:width: 35 %
.. autoclass:: pybricks.pupdevices.ColorDistanceSensor
diff --git a/doc/main/pupdevices/colorlightmatrix.rst b/doc/main/pupdevices/colorlightmatrix.rst
index a0d77e1..25ef724 100644
--- a/doc/main/pupdevices/colorlightmatrix.rst
+++ b/doc/main/pupdevices/colorlightmatrix.rst
@@ -3,7 +3,7 @@
Color Light Matrix
^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/sensor_colorlightmatrix_label.png
+.. figure:: ../../main/diagrams/sensor_colorlightmatrix.png
:width: 35 %
.. autoclass:: pybricks.pupdevices.ColorLightMatrix
diff --git a/doc/main/pupdevices/colorsensor.rst b/doc/main/pupdevices/colorsensor.rst
index cde1edd..a897c79 100644
--- a/doc/main/pupdevices/colorsensor.rst
+++ b/doc/main/pupdevices/colorsensor.rst
@@ -3,7 +3,7 @@
Color Sensor
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/sensor_color_lights_label.png
+.. figure:: ../../main/diagrams/sensor_color_lights.png
:width: 70 %
.. autoclass:: pybricks.pupdevices.ColorSensor
diff --git a/doc/main/pupdevices/dcmotor.rst b/doc/main/pupdevices/dcmotor.rst
index bb85f85..d10b76e 100644
--- a/doc/main/pupdevices/dcmotor.rst
+++ b/doc/main/pupdevices/dcmotor.rst
@@ -5,7 +5,7 @@ Motors without rotation sensors
.. _fig_pupdcmotors:
-.. figure:: ../../main/images/pupdcmotors_label.png
+.. figure:: ../../main/diagrams/pupdcmotors.png
:width: 70 %
:alt: pupmotors
:align: center
diff --git a/doc/main/pupdevices/forcesensor.rst b/doc/main/pupdevices/forcesensor.rst
index 23866b4..abab947 100644
--- a/doc/main/pupdevices/forcesensor.rst
+++ b/doc/main/pupdevices/forcesensor.rst
@@ -3,7 +3,7 @@
Force Sensor
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/sensor_force.png
+.. figure:: ../../main/cad/output/pupdevice-force.png
:width: 35 %
.. autoclass:: pybricks.pupdevices.ForceSensor
diff --git a/doc/main/pupdevices/index.rst b/doc/main/pupdevices/index.rst
index 34d9d66..9d49215 100644
--- a/doc/main/pupdevices/index.rst
+++ b/doc/main/pupdevices/index.rst
@@ -25,72 +25,72 @@
.. pybricks-classlink:: DCMotor
-.. figure:: ../../main/images/pupdcmotors_label.png
+.. figure:: ../../main/cad/output/pupdevice-dcmotors.png
:width: 70 %
:target: dcmotor.html
.. pybricks-classlink:: Motor
-.. figure:: ../../main/images/pupmotors_label.png
+.. figure:: ../../main/cad/output/pupdevice-motors.png
:width: 100 %
:target: motor.html
.. pybricks-classlink:: TiltSensor
-.. figure:: ../../main/images/sensor_tilt.png
+.. figure:: ../../main/cad/output/pupdevice-tilt.png
:width: 35 %
:target: tiltsensor.html
.. pybricks-classlink:: InfraredSensor
-.. figure:: ../../main/images/sensor_proximity.png
+.. figure:: ../../main/cad/output/pupdevice-infrared.png
:width: 35 %
:target: infraredsensor.html
.. pybricks-classlink:: ColorDistanceSensor
-.. figure:: ../../main/images/sensor_colordistance.png
+.. figure:: ../../main/cad/output/pupdevice-colordistance.png
:width: 32 %
:target: colordistancesensor.html
.. pybricks-classlink:: PFMotor
-.. figure:: ../../main/images/pfmotor.png
+.. figure:: ../../main/cad/output/pupdevice-pfmotor.png
:width: 95 %
:target: pfmotor.html
.. pybricks-classlink:: ColorSensor
-.. figure:: ../../main/images/sensor_color.png
+.. figure:: ../../main/cad/output/pupdevice-color.png
:width: 32 %
:target: colorsensor.html
.. pybricks-classlink:: UltrasonicSensor
-.. figure:: ../../main/images/sensor_ultrasonic.png
+.. figure:: ../../main/cad/output/pupdevice-ultrasonic.png
:width: 37 %
:target: ultrasonicsensor.html
.. pybricks-classlink:: ForceSensor
-.. figure:: ../../main/images/sensor_force.png
+.. figure:: ../../main/cad/output/pupdevice-force.png
:width: 35 %
:target: forcesensor.html
.. pybricks-classlink:: ColorLightMatrix
-.. figure:: ../../main/images/sensor_colorlightmatrix_label.png
+.. figure:: ../../main/diagrams/sensor_colorlightmatrix.png
:width: 35 %
:target: colorlightmatrix.html
.. pybricks-classlink:: Light
-.. figure:: ../../main/images/light.png
- :width: 90 %
+.. figure:: ../../main/cad/output/pupdevice-light.png
+ :width: 35 %
:target: light.html
.. pybricks-classlink:: Remote
-.. figure:: ../../main/images/pupremote.png
+.. figure:: ../../main/cad/output/pupdevice-remote.png
:width: 50 %
:target: remote.html
diff --git a/doc/main/pupdevices/infraredsensor.rst b/doc/main/pupdevices/infraredsensor.rst
index 179c5b1..b8986d9 100644
--- a/doc/main/pupdevices/infraredsensor.rst
+++ b/doc/main/pupdevices/infraredsensor.rst
@@ -3,7 +3,7 @@
Infrared Sensor
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/sensor_proximity.png
+.. figure:: ../../main/cad/output/pupdevice-infrared.png
:width: 35 %
.. autoclass:: pybricks.pupdevices.InfraredSensor
diff --git a/doc/main/pupdevices/light.rst b/doc/main/pupdevices/light.rst
index a5a12c9..983a627 100644
--- a/doc/main/pupdevices/light.rst
+++ b/doc/main/pupdevices/light.rst
@@ -3,8 +3,8 @@
Light
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/light.png
- :width: 90 %
+.. figure:: ../../main/cad/output/pupdevice-light.png
+ :width: 35 %
.. autoclass:: pybricks.pupdevices.Light
:no-members:
diff --git a/doc/main/pupdevices/motor.rst b/doc/main/pupdevices/motor.rst
index 5542097..96b7388 100644
--- a/doc/main/pupdevices/motor.rst
+++ b/doc/main/pupdevices/motor.rst
@@ -5,7 +5,7 @@ Motors with rotation sensors
.. _fig_pupmotors:
-.. figure:: ../../main/images/pupmotors_label.png
+.. figure:: ../../main/diagrams/pupmotors.png
:width: 100 %
:alt: pupmotors
diff --git a/doc/main/pupdevices/pfmotor.rst b/doc/main/pupdevices/pfmotor.rst
index 2543db0..24985f9 100644
--- a/doc/main/pupdevices/pfmotor.rst
+++ b/doc/main/pupdevices/pfmotor.rst
@@ -9,7 +9,7 @@ use this technique to control medium, large, extra large, and train
motors. The infrared range is limited to about 30 cm, depending on the angle
and ambient conditions.
-.. figure:: ../../main/images/pfmotor.png
+.. figure:: ../../main/cad/output/pupdevice-pfmotor.png
:width: 95 %
Powered Up
diff --git a/doc/main/pupdevices/remote.rst b/doc/main/pupdevices/remote.rst
index 85ab4d0..fae164d 100644
--- a/doc/main/pupdevices/remote.rst
+++ b/doc/main/pupdevices/remote.rst
@@ -3,7 +3,7 @@
Remote Control
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/pupremote.png
+.. figure:: ../../main/cad/output/pupdevice-remote.png
:width: 60 %
.. autoclass:: pybricks.pupdevices.Remote
diff --git a/doc/main/pupdevices/tiltsensor.rst b/doc/main/pupdevices/tiltsensor.rst
index 5fc816e..6d36331 100644
--- a/doc/main/pupdevices/tiltsensor.rst
+++ b/doc/main/pupdevices/tiltsensor.rst
@@ -3,7 +3,7 @@
Tilt Sensor
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/sensor_tilt.png
+.. figure:: ../../main/cad/output/pupdevice-tilt.png
:width: 35 %
.. autoclass:: pybricks.pupdevices.TiltSensor
diff --git a/doc/main/pupdevices/ultrasonicsensor.rst b/doc/main/pupdevices/ultrasonicsensor.rst
index 2b6858d..4898d0a 100644
--- a/doc/main/pupdevices/ultrasonicsensor.rst
+++ b/doc/main/pupdevices/ultrasonicsensor.rst
@@ -3,7 +3,7 @@
Ultrasonic Sensor
^^^^^^^^^^^^^^^^^^^^^^^^^
-.. figure:: ../../main/images/sensor_ultrasonic_lights_label.png
+.. figure:: ../../main/diagrams/sensor_ultrasonic_lights.png
:width: 80 %
.. autoclass:: pybricks.pupdevices.UltrasonicSensor