diff --git a/docs/assets/docs/arduino-schematic.pdf b/docs/assets/docs/arduino-schematic.pdf
new file mode 100644
index 00000000..35622e7f
Binary files /dev/null and b/docs/assets/docs/arduino-schematic.pdf differ
diff --git a/docs/assets/docs/servo-schematic.pdf b/docs/assets/docs/servo-schematic.pdf
new file mode 100644
index 00000000..4d4343b9
Binary files /dev/null and b/docs/assets/docs/servo-schematic.pdf differ
diff --git a/docs/assets/img/kit/arduino_headers.png b/docs/assets/img/kit/arduino_headers.png
new file mode 100644
index 00000000..2590a716
Binary files /dev/null and b/docs/assets/img/kit/arduino_headers.png differ
diff --git a/docs/assets/img/kit/arduino_pinout.png b/docs/assets/img/kit/arduino_pinout.png
new file mode 100644
index 00000000..ce523b74
Binary files /dev/null and b/docs/assets/img/kit/arduino_pinout.png differ
diff --git a/docs/assets/img/kit/battery.jpg b/docs/assets/img/kit/battery.jpg
new file mode 100644
index 00000000..9d2d5acd
Binary files /dev/null and b/docs/assets/img/kit/battery.jpg differ
diff --git a/docs/assets/img/kit/power_hat.svg b/docs/assets/img/kit/power_hat.svg
new file mode 100644
index 00000000..9fb7a64c
--- /dev/null
+++ b/docs/assets/img/kit/power_hat.svg
@@ -0,0 +1,359 @@
+
+
+
+
diff --git a/docs/assets/img/kit/sbv4.png b/docs/assets/img/kit/sbv4.png
new file mode 100644
index 00000000..4289ccb0
Binary files /dev/null and b/docs/assets/img/kit/sbv4.png differ
diff --git a/docs/assets/img/kit/sbv4_diagram.png b/docs/assets/img/kit/sbv4_diagram.png
new file mode 100644
index 00000000..3af1436a
Binary files /dev/null and b/docs/assets/img/kit/sbv4_diagram.png differ
diff --git a/docs/assets/img/kit/servo-assembly.jpg b/docs/assets/img/kit/servo-assembly.jpg
deleted file mode 100644
index 8dd47bc4..00000000
Binary files a/docs/assets/img/kit/servo-assembly.jpg and /dev/null differ
diff --git a/docs/assets/img/kit/servo-assembly.png b/docs/assets/img/kit/servo-assembly.png
deleted file mode 100644
index 3a915796..00000000
Binary files a/docs/assets/img/kit/servo-assembly.png and /dev/null differ
diff --git a/docs/kit/arduino.md b/docs/kit/arduino.md
new file mode 100644
index 00000000..de5db94c
--- /dev/null
+++ b/docs/kit/arduino.md
@@ -0,0 +1,47 @@
+# Arduino
+
+This board allows you to control GPIO pins and analogue pins. More specifically, it's an [Arduino Uno](https://store.arduino.cc/arduino-uno-rev3>).
+
+
+
+## Headers
+
+We have supplied 2 screw terminal headers for your Arduino, allowing you to easily and securely attach your sensors.
+
+## The reset button
+
+The small button next to the USB socket allows you to instantly reboot the Arduino in case it
+isn't working. This isn't a guaranteed fix, but may solve some problems.
+
+## GPIO Pins
+
+The Arduino allows you to connect your kit to your own electronics. It has fourteen digital I/O pins, and six analogue input pins. The analogue pins can read an analogue signal from 0 to 5V and the digital pins can receive or send digital signals at 0V & 5V. The board also has a couple of ground pins, as well as some pins fixed at 3.3V and 5V output to supply power to your sensors.
+
+
+
+## Ultrasound Sensors
+
+Ultrasound sensors are a useful way of measuring distance. Ultrasound sensors communicate with the kit using two wires. A signal is sent to the sensor on the trigger pin, and the length of a response pulse on the echo pin can be used to calculate the distance.
+
+!!! warning
+ Ultrasound should only be considered accurate up to around two metres, beyond which the signal can become distorted and produce erroneous results.
+
+The sensor has four pin connections: ground, 5V (sometimes labelled
+*vcc*), *trigger* and *echo*. Most ultrasound sensors will label which
+pin is which. The ground and 5V should be wired to the ground and 5V
+pins of the Arduino respectively. The trigger and echo pins should be
+attached to two different digital IO pins. Take note of these two pins,
+you'll need them to use the sensor.
+
+!!! tip
+ If the sensor always returns a distance of zero, it might mean the *trigger* and *echo* pins are connected the wrong way! Either change the pin numbers in the code, or swap the connections.
+
+## Designs
+
+The schematic diagrams for the Arduino is below, as
+well as the source code of the firmware on the Arduino. You do not need
+this information to use the board but it may be of interest to some
+people.
+
+- [Arduino Uno Schematic](../assets/docs/arduino-schematic.pdf)
+- [Firmware Source](https://github.com/sourcebots/arduino-fw)
diff --git a/docs/kit/batteries.md b/docs/kit/batteries.md
new file mode 100644
index 00000000..83eea391
--- /dev/null
+++ b/docs/kit/batteries.md
@@ -0,0 +1,64 @@
+# Batteries
+
+{ width="50%" }
+
+Your robot uses lithium-ion polymer (LiPo) batteries.
+These are similar to those used in laptops, and are small and light for
+the amount of energy they contain. This is great for your robot but it
+is vital to treat such a high concentration of energy with respect. If
+you do not, there is a serious risk of fire and injury. To avoid this,
+you should follow the safety information on this page closely, at all
+times.
+
+!!! warning
+ You must not use any batteries, chargers, bags or cables not explicitly authorised by SourceBots.
+
+## Warnings
+
+- Never leave batteries unattended when they are in use.
+- Always place the batteries in the provided bag when not in use.
+- If a battery has any cuts, nicks, exposed copper on wires or is
+ bulging to the point of no longer being squishy, contact us
+ immediately.
+
+!!! danger
+ Disobeying the above warnings greatly increases the risk of damage to your battery, which can have **fatal consequences**. If you have any questions or doubts, talk to a member of staff immediately.
+
+## Storing batteries
+
+When your batteries are not actively in use, they should be safely
+stored. You must disconnect the batteries from all electrical equipment,
+and place them in the battery charging bag. You should then store the
+charging bag in a safe location.
+
+## Operating batteries
+
+To use your batteries, you must connect them to the power board. Do not
+tamper with the cable or connect the batteries to anything other than
+the power board (or the charger when charging).
+
+During operation, the battery is protected by over-current protection
+and a fuse in the power board. If any equipment is short circuited, the
+over-current protection will activate, protecting the battery. In
+extreme circumstances the fuse may blow to prevent damage to the
+battery. This is an important safety feature: do not, under any
+circumstances, bypass the fuse. It is not user serviceable and if it has
+blown then the power board must be replaced. If you suspect the fuse has
+blown then please contact us straight away.
+
+Mechanical damage to a battery can be dangerous, and a puncture or large
+force applied to a battery causes a serious risk of fire. To avoid this,
+your battery should be shielded from mechanical damage while you operate
+it. Secure your battery to your robot, so that it does not move or fall
+off while the robot moves. You should also build a compartment for the
+battery to be placed in, so that accidental collisions do not damage the
+battery.
+
+## Flat batteries
+
+When the battery has been almost completely discharged, the Power Board
+will automatically turn off and the LED marked “Power / Flat Battery
+Indicator” in the [diagram](./power-board.md) will
+flash red and green. You should immediately disconnect the battery. Flat
+batteries should be given to a facilitator in exchange for a freshly charged
+battery.
diff --git a/docs/kit/index.md b/docs/kit/index.md
index 8aab7d0a..133d034f 100644
--- a/docs/kit/index.md
+++ b/docs/kit/index.md
@@ -4,8 +4,12 @@ title: Kit
## Boards
-Besides the Raspberry Pi, there are 3 main controller boards on your robot:
+Your kit consists of 5 main "boards":
-| [Motor Board](./motor-board.md) | [Power Board](./power-board.md) | [Servo Assembly](./servo-assembly/index.md) | [Raspberry Pi](./pi.md) |
-|---|---|---|---|
-|  |  |  |  |
+| [Motor Board](./motor-board.md) | [Power Board](./power-board.md) | [Servo Board](./servo-board.md) | [Arduino](./arduino.md) | [Raspberry Pi](./pi.md) |
+|---|---|---|---|---|
+|  |  |  |  |  |
+
+It should be noted that only the Raspberry Pi and Power Board are required for your kit to work. The other boards will provide useful features to help your robot work.
+
+You will also need a [Battery](./batteries.md) to use your kit, although this may not be supplied to you immediately.
diff --git a/docs/kit/motor-board.md b/docs/kit/motor-board.md
index 77995de9..ebc9f9b5 100644
--- a/docs/kit/motor-board.md
+++ b/docs/kit/motor-board.md
@@ -36,7 +36,7 @@ The case measures 70x84x20mm. Don’t forget that the cables will stick out.
You can access the schematics and source code of the firmware on the motor board in the following places. You do not need this information to use the board but it may be of interest to some people.
- [Full Schematics](../assets/docs/motor-schematic.pdf)
-- [Firmware Source](https://github.com/sourcebots/motor-v4-fw)
+- [Firmware Source](https://github.com/srobo/motor-v4-fw)
- [Hardware Source](https://github.com/sourcebots/motor-v4-hw)
[^1]: Can be sustained for one second, on a single channel.
diff --git a/docs/kit/pi.md b/docs/kit/pi.md
index d3a9b2a7..02081a1c 100644
--- a/docs/kit/pi.md
+++ b/docs/kit/pi.md
@@ -1,15 +1,36 @@
----
-title: Raspberry Pi
----
+# Raspberry Pi
-The [Raspberry Pi 3](https://www.raspberrypi.org/products/raspberry-pi-3-model-b/) provided with your kit is what runs the code you write and controls the other peripheral boards.
+!!! danger
+ Do not re-flash or edit the SD card. This will stop your robot working!
-
+{ width="50%" }
-The Raspberry Pi is enclosed in a plastic case to protect the delicate components, and allow for easier mounting to your robot. It is powered using a micro-USB cable from one of the power board's 5V outputs.
+The brain of your robot is a Raspberry Pi 3B+. This handles the running of your python code, recognition of markers and sends control commands to the other boards.
-## Included software
-The software included on the Raspberry Pi allows it to run your robot. No graphical or user-required software is installed. You _do not_ need to connect to your Raspberry Pi from a computer in order to use your robot.
+## Power Hat
-!!! warning
- Please do not attempt to modify the software on the Raspberry Pi. It has been configured and tested in its current configuration. Unauthorized modifications may damage your robot or prevent accurate debugging.
+Your Raspberry Pi has a Pi Power Hat mounted on the top. This allows you to connect power to it using a 3.81mm CamCon.
+
+{ width="200" }
+
+### Indicator LEDs
+
+There are 4 indicator LEDs on the Pi Power Hat.
+
+All LEDs will turn on at boot. After the Pi detects a USB stick, the LEDs work as follows:
+
+1. This LED will illuminate bright green when your Raspberry Pi is on. You may also notice it flicker during boot.
+2. This LED will illuminate green when your code has finished without error.
+3. This LED will illuminate yellow whilst your code is running.
+4. This LED will illuminate red if your code has crashed.
+
+!!! tip
+ The LEDs may take a few seconds to update after you insert or remove your USB.
+
+## Technical Details
+
+Your robot is running a customised version of the [Raspberry Pi OS](https://www.raspberrypi.com/software/) operating system.
+
+When a USB stick is inserted, the SourceBots software will look for a file named `robot.py`, and then execute it.
+
+The output of your code is written to a file named `log.txt` on the USB stick.
diff --git a/docs/kit/power-board.md b/docs/kit/power-board.md
index e46407a8..e78282fb 100644
--- a/docs/kit/power-board.md
+++ b/docs/kit/power-board.md
@@ -22,13 +22,13 @@ They should be used to connect to the motor board power input, though can also
be used to power other devices. These are enabled when your robot code is
started and can also be turned on or off from your code.
-There are two 5V connectors that can be used to connect low-current devices that take 5V inputs, such as the Raspberry Pi and the servo shield.
+There are two 5V connectors that can be used to connect low-current devices that take 5V inputs, such as the Raspberry Pi.
-There is also a Micro USB B connector which should be used to connect the Raspberry Pi for control of the power board.
+There is also a Micro USB B connector which should be connected to the Raspberry Pi for control of the power board.
Finally, there are connectors for external Start and On|Off switches. You may connect any latching switch for the On|Off switch, or a push-to-make button for the Start button.
-!!! note
+!!! tip
If you intend to use only the internal On|Off switch, a CamCon must be plugged into the On|Off connector with a wire connecting one pin to the other pin on the same connector. Your power board should already have one of these plugged in.
## Indicators
@@ -37,11 +37,11 @@ Finally, there are connectors for external Start and On|Off switches. You may co
| PWR\|FLAT | Green when powered Flashing red and green when the battery is low | Green |
| 5V | Green when 5V is being supplied | Green |
| H0–1, L0–3 | Green when the corresponding output is on [^1] Red when the output's current limit is reached | Off |
-| RUN\|ERROR | Orange on power-up, or USB reset Flashing green when ready to run Solid green when running or booting | Orange |
+| RUN\|ERROR | Orange on power-up, or USB disconnection Flashing green when ready to run Solid green when running or booting | Orange |
[^1]: The outputs only turn on when your program runs (specifically, when the `Robot` object is created).
-On power-up, the Power Board will emit some beeps, which are related to the version of the firmware it has installed.
+On power-up and when waiting for the start button, the Power Board will beep once.
If the Power Board starts beeping (and all the outputs turn off) then this means that the whole board's current limit has been triggered.
@@ -70,5 +70,5 @@ The case measures 83x99x24mm. Don’t forget that the cables will stick out.
You can access the schematics and source code of the firmware for the power board in the following places. You do not need this information to use the board but it may be of interest to some people.
- [Full Schematics](../assets/docs/power-schematic.pdf)
-- [Firmware Source](https://github.com/sourcebots/power-v4-fw)
+- [Firmware Source](https://github.com/srobo/power-v4-fw)
- [Hardware Source](https://github.com/sourcebots/power-v4-hw)
diff --git a/docs/kit/servo-assembly/GPIO.md b/docs/kit/servo-assembly/GPIO.md
deleted file mode 100644
index 6ba21676..00000000
--- a/docs/kit/servo-assembly/GPIO.md
+++ /dev/null
@@ -1,12 +0,0 @@
----
-title: GPIO
----
-
-The Arduino allows you to connect your kit to your own electronics. It has fourteen digital I/O pins, and six analogue. The analogue pins can read an analogue signal from 0 to 5V. The board also has a couple of ground pins, as well as some pins fixed at 3.3V and 5V output.
-
-The pin layout of the servo assembly is the same as an Arduino Uno.
-
-!!! note
- The Arduino communicates with the servo shield using two of the analogue input pins (4 and 5), and with the Raspberry Pi using two of the digital IO pins (0 and 1). These four pins are therefore reserved, and using them may cause the Arduino or servo shield to behave unusually.
-
-
diff --git a/docs/kit/servo-assembly/index.md b/docs/kit/servo-assembly/index.md
deleted file mode 100644
index e560723b..00000000
--- a/docs/kit/servo-assembly/index.md
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: Servo Assembly
----
-
-The servo assembly allows you to control GPIO pins, analogue pins, and servos. It's comprised of an [Arduino Uno](https://store.arduino.cc/arduino-uno-rev3), and a [servo shield](https://learn.adafruit.com/adafruit-16-channel-pwm-slash-servo-shield).
-
-
-
-## The servo shield
-The servo shield enables you to control up to sixteen servos. It's attached to the top of the Arduino, passing its pins through.
-
-## The reset button
-The reset button allows you to instantly reboot the Arduino in case it isn't working. This is not a guaranteed fix, but may solve some problems.
-
-
-## Designs
-The schematic diagrams for both the Arduino and shield are below, as well as the source code of the firmware on the Arduino. You do not need this information to use the board but it may be of interest to some people.
-
-- [Servo Shield Schematic](https://cdn-learn.adafruit.com/assets/assets/000/036/269/original/adafruit_products_schem.png)
-- [Arduino Uno Schematic](https://www.arduino.cc/en/uploads/Main/Arduino_Uno_Rev3-schematic.pdf)
-- [Firmware Source](https://github.com/sourcebots/servo-firmware)
diff --git a/docs/kit/servo-assembly/servos.md b/docs/kit/servo-assembly/servos.md
deleted file mode 100644
index 2d052c48..00000000
--- a/docs/kit/servo-assembly/servos.md
+++ /dev/null
@@ -1,11 +0,0 @@
----
-title: Servos
----
-
-By itself, an Arduino is incapable of driving servos, without a lot of hard work and pin munging. So we're using a shield instead! This shield allows control of sixteen servos.
-
-## Connecting your servos
-There are a total of sixteen servo connectors, grouped into four groups of four. Servo cables are connected with 0V (the black or brown wire) towards the side of the reset button.
-
-## Power
-The Arduino itself is powered entirely over USB. If you wish to use servos, you'll need to supply an additional 5V through the connector on the shield from the [power board](../power-board.md). There are two red LEDs next to the power input that will turn on if the board is correctly powered.
diff --git a/docs/kit/servo-assembly/ultrasound.md b/docs/kit/servo-assembly/ultrasound.md
deleted file mode 100644
index 7bd3fff9..00000000
--- a/docs/kit/servo-assembly/ultrasound.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-title: Ultrasound
----
-
-Ultrasound sensors are a useful way of measuring distance. Ultrasound sensors communicate with the kit using two wires. A signal is sent to the sensor on the _trigger_ pin, and the length of a response pulse on the _echo_ pin can be used to calculate the distance.
-
-!!! warning
- Ultrasound should only be considered accurate up to around two metres, beyond which the signal can become distorted and produce erroneous results.
-
-## Wiring up the sensor
-The sensor has four pin connections: ground, 5V (sometimes labelled _vcc_), _trigger_ and _echo_. Most ultrasound sensors will label which pin is which. The ground and 5V should be wired to the ground and 5V pins of the Arduino respectively. The trigger and echo pins should be attached to two different digital IO pins. Take note of these two pins, you'll need them to [use the sensor](../../../api/arduino#ultrasound-sensors).
-
-!!! tip
- If the sensor always returns a distance of zero, it means the _trigger_ and _echo_ pins are connected the wrong way! Either change the pin numbers in the code, or swap the connections.
diff --git a/docs/kit/servo-board.md b/docs/kit/servo-board.md
new file mode 100644
index 00000000..58d33b82
--- /dev/null
+++ b/docs/kit/servo-board.md
@@ -0,0 +1,61 @@
+# Servo Board
+
+The Servo Board can be used to control up to 12 RC servos. Many devices
+are available that can be controlled as servos, such as RC motor speed
+controllers, and these can also be used with the board.
+
+## Board Diagram
+
+
+
+## Indicators
+
+| LED | Meaning | Initial power-up state |
+|-------|----------------------|------------------------|
+| Power | The board is powered | On
+
+## Connectors
+
+There are 8 servo connections on the left-side of the board, and 4 on
+the right. Servo cables are connected vertically, with 0V (the black or
+brown wire) at the bottom of the board.
+
+For the servo board to operate correctly, you must connect it to the 12V
+power rail from the power board. A green LED will light next to the
+servo board 12V connector when it is correctly powered and the 8 outputs
+on the left-side of the board can be used.
+
+To use the 4 auxillary outputs on the right-side of the board, 5V needs to be connected to the auxillary input.
+
+## Case Dimensions
+
+The case measures 68x68x21mm. Don't forget that the cables will stick
+out.
+
+## Range of servos
+
+When using the majority of servos that we supply, you will find that the
+servo will only turn about 90 degrees.
+
+## Specification
+
+| Parameter | Value |
+|----------------------------------|-------------|
+| Number of servo channels | 12 |
+| Nominal input voltage | 11.1V ± 15% |
+| Output voltage | 5.5V |
+| Maximum total output current[^1] | 10A |
+
+## Designs
+-------
+
+You can access the schematics and source code of the firmware on the
+servo board in the following places. You do not need this information to
+use the board but it may be of interest to some people.
+
+- [Full Schematics](../assets/docs/servo-schematic.pdf)
+- [Firmware Source](https://github.com/srobo/servo-v4-fw/)
+- [Hardware designs](https://github.com/sourcebots/servo-v4-hw)
+
+[^1]: If the auxiliary input is connected, outputs 8-11 have an independent
+ maximum current.