Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
b60c2b4
Kit Index Page
trickeydan Jul 13, 2019
ad36394
Servo Board Docs
trickeydan Jul 13, 2019
5029877
Arduino Hardware Docs
trickeydan Jul 13, 2019
71d2a3f
Raspberry Pi Docs
trickeydan Jul 13, 2019
adc3e6d
Raspberry Pi Docs
trickeydan Jul 13, 2019
e29c6f3
Battery Safety Information
trickeydan Jul 13, 2019
833006d
Apply suggestions from code review
trickeydan Jul 15, 2019
b015b6d
Fix problems from review
trickeydan Jul 23, 2019
ee331e5
Fix problems from review
trickeydan Jul 23, 2019
c511fa7
Fix problems from review
trickeydan Jul 23, 2019
ac00c9c
Replace weird Unicode quotes with ASCII ones
kierdavis Aug 7, 2019
0e6b32f
Replace weird Unicode quotes with ASCII ones
kierdavis Aug 7, 2019
1977f58
Merge pull request #42 from sourcebots/api-docs-kier
trickeydan Aug 7, 2019
a1009cd
Merge pull request #42 from sourcebots/api-docs-kier
trickeydan Aug 7, 2019
4ee3498
Add servo range comment.
trickeydan Aug 12, 2019
96164fb
Merge pull request #54 from sourcebots/drive-ejection
trickeydan Aug 12, 2019
61e3e66
Add Indicator LEDs to the docs
trickeydan Aug 13, 2019
9851b17
Add images and typo to docs for pi power hat
trickeydan Aug 14, 2019
9b2af9b
Merge pull request #64 from sourcebots/add-pi-power
trickeydan Aug 14, 2019
f4e739a
Clarify raspi page
tpoomlmly Aug 8, 2022
c8cd6a1
Clarify arduino docs
tpoomlmly Aug 8, 2022
efb0efa
Remove systemd mention
tpoomlmly Aug 8, 2022
032a200
Merge pull request #287 from sourcebots/docs-22
tpoomlmly Aug 9, 2022
f62d55b
Merge pull request #287 from sourcebots/docs-22
tpoomlmly Aug 9, 2022
651d139
Pull in sbot's RPi docs
RealOrangeOne Jul 9, 2023
d594838
Make note about external power button a tip
RealOrangeOne Jul 9, 2023
3e60b3c
Pull in sbot's Arduino docs
RealOrangeOne Jul 9, 2023
97c87cd
Pull in sbot's batteries docs
RealOrangeOne Jul 9, 2023
bf19f1d
Remove servo assembly
RealOrangeOne Jul 9, 2023
80951bb
Pull in sbot's Servo board docs
RealOrangeOne Jul 9, 2023
fdf4d86
Add arduino to kit index page
RealOrangeOne Jul 9, 2023
7f88967
Note minimum board and battery requirements
RealOrangeOne Jul 9, 2023
d168587
Fix spellings
RealOrangeOne Jul 9, 2023
082a4cb
Reference SR firmwares
RealOrangeOne Jul 9, 2023
b9473ff
Arduino ammendments
WillB97 Jul 10, 2023
62e4f4c
power board ammendments
WillB97 Jul 10, 2023
cfbf791
Pi ammendments
WillB97 Jul 10, 2023
85090f8
Servo board ammendments
WillB97 Jul 10, 2023
8389c8d
Improve wording
WillB97 Jul 12, 2023
4f21cf4
Merge pull request #209 from sourcebots/docs/kit-wb
RealOrangeOne Jul 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added docs/assets/docs/arduino-schematic.pdf
Binary file not shown.
Binary file added docs/assets/docs/servo-schematic.pdf
Binary file not shown.
Binary file added docs/assets/img/kit/arduino_headers.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/kit/arduino_pinout.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/kit/battery.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
359 changes: 359 additions & 0 deletions docs/assets/img/kit/power_hat.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/kit/sbv4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/assets/img/kit/sbv4_diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/assets/img/kit/servo-assembly.jpg
Binary file not shown.
Binary file removed docs/assets/img/kit/servo-assembly.png
Binary file not shown.
47 changes: 47 additions & 0 deletions docs/kit/arduino.md
Original file line number Diff line number Diff line change
@@ -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>).

![Arduino Uno](../assets/img/kit/arduino_headers.png)

## 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.

![Pin Map](../assets/img/kit/arduino_pinout.png)

## 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)
64 changes: 64 additions & 0 deletions docs/kit/batteries.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Batteries

![LiPo Battery](../assets/img/kit/battery.jpg){ 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.
12 changes: 8 additions & 4 deletions docs/kit/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -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](../assets/img/kit/mcv4b.png) | ![Power Board](../assets/img/kit/pbv4.png) | ![Servo Assembly](../assets//img/kit/servo-assembly.png) | ![Pi](../assets/img/kit/pi.jpg) |
| [Motor Board](./motor-board.md) | [Power Board](./power-board.md) | [Servo Board](./servo-board.md) | [Arduino](./arduino.md) | [Raspberry Pi](./pi.md) |
|---|---|---|---|---|
| ![Motor Board](../assets/img/kit/mcv4b.png) | ![Power Board](../assets/img/kit/pbv4.png) | ![Servo Board](../assets/img/kit/sbv4.png) | ![Arduino](../assets/img/kit/arduino_headers.png) | ![Pi](../assets/img/kit/pi.jpg) |

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.
2 changes: 1 addition & 1 deletion docs/kit/motor-board.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
41 changes: 31 additions & 10 deletions docs/kit/pi.md
Original file line number Diff line number Diff line change
@@ -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!

![Raspberry Pi 3](https://www.raspberrypi.org/app/uploads/2017/05/Raspberry-Pi-3-462x322.jpg)
![Raspberry Pi 3B+](../assets/img/kit/pi.jpg){ 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.

![Pi Power Hat](../assets/img/kit/power_hat.svg){ 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.
12 changes: 6 additions & 6 deletions docs/kit/power-board.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -37,11 +37,11 @@ Finally, there are connectors for external Start and On|Off switches. You may co
| PWR\|FLAT | Green when powered<br />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]<br />Red when the output's current limit is reached | Off |
| RUN\|ERROR | Orange on power-up, or USB reset <br />Flashing green when ready to run<br /> Solid green when running or booting | Orange |
| RUN\|ERROR | Orange on power-up, or USB disconnection <br />Flashing green when ready to run<br /> 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.

Expand Down Expand Up @@ -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)
12 changes: 0 additions & 12 deletions docs/kit/servo-assembly/GPIO.md

This file was deleted.

21 changes: 0 additions & 21 deletions docs/kit/servo-assembly/index.md

This file was deleted.

11 changes: 0 additions & 11 deletions docs/kit/servo-assembly/servos.md

This file was deleted.

14 changes: 0 additions & 14 deletions docs/kit/servo-assembly/ultrasound.md

This file was deleted.

61 changes: 61 additions & 0 deletions docs/kit/servo-board.md
Original file line number Diff line number Diff line change
@@ -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

![Board Diagram](../assets/img/kit/sbv4_diagram.png)

## 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.