Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
7835729
Added RAPID field to all files and updated automation to pull this ne…
paulbuzzby Aug 14, 2025
f25f58f
docs: update KiCad exports [skip ci]
github-actions[bot] Aug 14, 2025
e422781
Fix to for the all_project_bom export
paulbuzzby Aug 14, 2025
8b5dc3c
docs: update KiCad exports [skip ci]
github-actions[bot] Aug 14, 2025
b629a7b
Updated Readme
paulbuzzby Aug 15, 2025
d7759f3
V2.1 Boards ready for fabrication
IanSuper7 Aug 16, 2025
212d794
docs: update KiCad exports [skip ci]
github-actions[bot] Aug 16, 2025
4fc55e7
Adding 3D printable motor mount
paulbuzzby Aug 25, 2025
a7deb03
Updated readme to include non BOM parts
paulbuzzby Aug 28, 2025
6a7cbff
Added David's example line follow code.
paulbuzzby Aug 29, 2025
efb83db
Updated sample code for line follower and LF diagnostics
IanSuper7 Aug 29, 2025
880f46b
Rename BasicLIneFollower as LineFollower as it performs all required …
IanSuper7 Aug 29, 2025
e5e249f
Add MIT license to diagnostics
IanSuper7 Aug 30, 2025
0175bdc
Updated sample code from David
paulbuzzby Aug 31, 2025
dd58bc7
Merge branch 'V2.1-prefab' of https://github.com/ukmars/gemini into V…
paulbuzzby Aug 31, 2025
0c13d79
added screen to readme
paulbuzzby Aug 31, 2025
f401880
Readme Update with more screen options
paulbuzzby Aug 31, 2025
b3867bf
revert sample code file name change
micromouseonline Sep 2, 2025
9386a9d
Merge branch 'main' into V2.1-prefab
micromouseonline Sep 2, 2025
f601ca4
renew the file name change for GeminiLineFollower.py
micromouseonline Sep 2, 2025
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
2 changes: 1 addition & 1 deletion .github/workflows/kibot-autodiscover.yml
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ jobs:

out_path = 'docs/all_projects_bom.csv'
# Desired column order (first column = project name)
cols = ['Project','Reference','Value','Qty','Note','Description','RSONLINE']
cols = ['Project','Reference','Value','Qty','Note','Description','RSONLINE','RAPID']

rows = []
for p in bom_paths:
Expand Down
78 changes: 76 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,76 @@
# gemini
Respository for hardware and software components of UKMARSBOT gemini

# Overview

Here is the UKMARS repository for our Gemini Micromouse. A robot capable of competing in our half size line following, Full Size Wall following and Full Size Maze Solving competitions.

The Gemini robot is a second revision of the clubs first robot UKMARSBOT https://github.com/ukmars/ukmarsbot
Gemini has been designed so that the core microprocessor can be changed without having to change the chassis or sensor configuration. This has been done with what we call a mezzanine board. This "Mez" board connects the microprocessor to the chassis and the sensors.

At present the robot has been designed around the Raspberry Pi Pico (w) to facilitate the use of MicroPython as a control language for the robot. This is taught is schools and allows schools to use the robot as part of their teaching aid. The Pico allows for other languages as well with the first alternative being C.

It is possible to build a Gemini robot using all commercially available parts.

In the future we hope to offer different Mez boards to allow a range of microcontrollers to be used. We are always looking for help from the community. So if you would like to design a mez board for a different microcontroller please get in touch.


This repo will contain all you need in order to build your own Gemini robot and get ready to compete in our competitions

The groups website can be found https://ukmars.org/

A step by step build guide can currently be found https://ukmars.org/projects/gemini/

This "main" repo contains details relevant to the very latest PCB's that have been produced and distributed to schools and group members. If you know you have a different version board than the latest (unlikely) you can find relevant KiCad documents in a release relating to your board. You will see a link to this on the right of this message

If you have found your way here without knowing about the UKMARS group, welcome. Becoming a member of UKMARS automatically gets you a set of PCB to build your own Gemini robot. All you have to do is source the parts and build.

# Technology details

All of the boards have been designed using the latest version 8 release of KiCad. They may get upgraded to version 9 but this is not a priority at the moment and the automations we have in place are not compatible with v9.

You do not need KiCad installed in order to view the boards or the schematics

# Build details

The docs folder contains schematics, PCB renders and BOM lists. These are built directly from the KiCad and the component choices listed in the schematic represents the groups default choice of component. They are not necessarily the only option and builders are free to change the spec of components if they feel they have suitable technical knowledge to do so.
In addition to the components listed in the \docs\all_projects_bom.csv you will also need the following components to build a mouse.


# Supplier details

## Components

The following is a list of recommended UK supplier for the passive components of the board. Due to shipping costs we do recommend trying to source all passive components from one supplier if at all possible.

RSonline - https://uk.rs-online.com/web/

Rapid electronics - https://www.rapidonline.com/

Farnell - https://uk.farnell.com/

## Robot bits, Microprocessors and other

The following sites can be used to find the components not available from the above suppliers

https://thepihut.com/

https://shop.pimoroni.com/ - Motors and Encoders

https://www.amazon.co.uk/ - good for batteries and the DC motor controller

## Mechanical Parts not in the BOM

| Item | Description | part numbers and supplier options |
| --------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| Encoders and encoder cables | These can be ordered along side the motor so you might have already looked at these<br>You will need two 6 pin 1mm pitch JST-SH cables to connect the motor encoder to the main board. An adaptor is used to convert the JST-SH cable to 2.54 pitch to connect it to J1 and J2 | |
| Encoder adapter board | This board converts JST-SH to 2.54 pins.<br>This does make soldering of the robot easier.<br>You can omit this part if you are comfortable soldering wires from a JST-SH cable direct to the chassis board | https://thepihut.com/products/breakout-for-6-pin-jst-sh-style-connector-side-entry |
| JST_SH cables | These cables connect the motor encoder to the chassis.<br><br>If you are comfortable soldering small cables direct to the chassis then you can use the second option. You DO NOT need the JST-SH adaptor board if you solder the wires direct to the chassis. This option is for experienced builders only as it increases the risk of problems with motors and/or encoders reading being reversed. | https://thepihut.com/products/jst-gh-1-25mm-pitch-6-pin-cable-100mm-long<br><br><br>https://amzn.eu/d/hsau12j |
| Wheels and Tyres | Pololu Wheel 32×7mm Pair available in black or white or you could 3D print some and use O rings for tyres | Pi Hut SKU: POL-1087 or SKU: POL-1088<br><br>https://thepihut.com/products/pololu-wheel-32x7mm-pair-black |
| Motor Mounts | You need 2 motor mounts. They can be 3D printed if you have the capability or you can buy the Polulo ones.<br><br>3D print models can be found in the \mechanical folder. GeminiN20MotorMount.STL - Print upside down | Pi Hut code SKU: POL-989<br><br>https://thepihut.com/products/pololu-micro-metal-gearmotor-bracket-pair-black |
| Battery and connector | The battery should be a PP3 9Volt block Lithium Ion rechargeable one with micro USB charging socket and ideally charge level LEDs on the side.<br>Ideally 1200mAH capacity or greater | https://amzn.eu/d/i8hoP5S<br><br>https://amzn.eu/d/cmckSHt<br><br>Rapid Online Order Code: 18-0092 |
| Nuts and bolts | If you are using 3D printed mounts which have 3mm holes in them you need 4 M3 x 30mm flat head polyamide bolts. Pack of M3 polyamide nuts 8 required<br><br>M3 x 10mm plastic spacers or 10mm piece of plastic tubing<br><br>Ebay is a good place to order small quantities of M3 hardware | Rapid Online Order Code: 51-3852<br><br>Rapid-Online Order Code: 51-3437<br><br>https://www.ebay.co.uk/str/kaysfasteners<br><br> |
| Stand Offs | Used for mounting connecting the sensor and mez board to the chassis<br><br>Lots of ways to do this but a pack of standoff's makes this simple.<br><br>A nylon screw and nut can be used as a skid | https://amzn.eu/d/eMlVNY3<br><br> |
|Screen|Not required, but a screen can be helpful. The important thing with a screen is the pin order which needs to be Gnd, Vcc, SCL, SDA left to right. Other screens can be used but will require custom connectors <br> *Warning* The screens available from Pimoroni can be used but their GND and Vcc pins are reversed when compared to the mez board connector. EXTREME care needs to be taken if wiring these|https://a.aliexpress.com/_EJEPBEO <br> https://amzn.eu/d/ffaTN75

> All of the options here are what UKMARS believe to be the best starting options for schools and new builders. It does not represent the only options available. If you have suitable experience and knowledge feel free to swap components as you see fit. If you do deviate from the build guide and/or suggested components please make sure to mention this if you encounter problems.


1 change: 1 addition & 0 deletions config.kibot.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ outputs:
- { field: "Note" }
- { field: "Description" }
- { field: "RSONLINE" }
- { field: "RAPID" }
# IMPORTANT: stop KiBot “fixing” your Value text
parse_value: false # <- don’t canonicalize 1k/1000 or strip 1%, 5%, etc.
normalize_values: false # <- keep your exact units/prefixes
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 14 additions & 14 deletions docs/UKMARSBOT_LineSensorBasic/UKMARSBOT_LineSensorBasic_bom.csv
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
Reference,Value,Qty,Note,Description,RSONLINE
C1 C2,100uF,2,,Polarized capacitor,739-6799
D5,Line,1,,,"""228-6004 or 228-5562 or 713-3974 or 813-4845"""
D4,Radius,1,,,"""228-6004 or 228-5562 or 713-3974 or 813-4845"""
D6,S/Finish,1,,,"""228-6004 or 228-5562 or 713-3974 or 813-4845"""
D1 D2 D7,TLCR5800,3,,,818-7540
J1,Conn_01x16,1,https://uk.rs-online.com/web/p/pcb-sockets/6816820 Need to be cut down,"Generic connector, single row, 01x16, script generated (kicad-library-utils/schlib/autogen/connector/)",681-6820
Q1 Q6,BC337-40,2,,,671-1119
Q2 Q3 Q4 Q5,BPW85C,4,,,815-1263
R4 R16,10K,2,,,707-7745
R3 R5 R17,10R,3,,,707-8580
R2 R15,390R,2,,,707-7634
R1,50R,1,,Resistor,
R7 R8 R9 R10 R11 R12 R14,680R,7,,,707-8211
Reference,Value,Qty,Note,Description,RSONLINE,RAPID
C1 C2,100uF,2,,Polarized capacitor,176-3779,11-4109
D5,Line,1,,,"""228-6004 or 228-5562 or 713-3974 or 813-4845""",56-0405
D4,Radius,1,,,"""228-6004 or 228-5562 or 713-3974 or 813-4845""",56-0400
D6,S/Finish,1,,,"""228-6004 or 228-5562 or 713-3974 or 813-4845""",56-0410
D1 D2 D7,TLCR5800,3,,,818-7540,55-0066
J1,Conn_01x16,1,https://uk.rs-online.com/web/p/pcb-sockets/6816820 Need to be cut down,"Generic connector, single row, 01x16, script generated (kicad-library-utils/schlib/autogen/connector/)",681-6820,19-0087
Q1 Q6,BC337-40,2,,,671-1119,50-3113
Q2 Q3 Q4 Q5,BPW85C,4,,,815-1263,
R4 R16,10K,2,,,707-7745,62-0394
R3 R5 R17,10R,3,,,707-8580,62-0326
R2 R15,390R,2,,,707-7634,62-0360
R1,47R,1,,Resistor,707-8817,62-0334
R7 R8 R9 R10 R11 R12 R14,680R,7,,,707-8211,64-0068
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 12 additions & 12 deletions docs/UKMARSBOT_RP2040Chassis/UKMARSBOT_RP2040Chassis_bom.csv
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
Reference,Value,Qty,Note,Description,RSONLINE
BT1,9v Battery,1,,PP3 9v Battery,
C2,0.1uF,1,Maximum height is 10mm,Unpolarized capacitor,538-1433
C1,0.22uF,1,Maximum height is 10mm,Unpolarized capacitor,194-0629
C3 C4,"100uF, 16V",2,Maximum height is 10mm,,176-3779
D1,1N5401,1,Polarity protection diode,,628-9451
J3 J4 J6 J7,Conn_01x06,4,"Might be easier and cheaper to just cut from bigger lengths 0.1"" pitch, polarised, any type",https://uk.rs-online.com/web/p/pcb-headers/6812994,681-2994
J1 J2,Pololu Item #4772,2,"6 pin 0.1"" breakout 6 pin header, 0.1"", male","Single row, 01x06, JST-SH breakout",
M1 M2,N20 MOTOR,2,Sidways or regular would work for starting out 50:1 gearbox is recommended commercial mounts need bushing for screws,https://shop.pimoroni.com/products/micro-metal-motor-encoder?variant=39888423321683,NA
R1,47K,1,,Resistor,707-8369
U1,DVR8833_DC_Controller,1,,DC Motor Controller https://amzn.eu/d/csv7cRr as an option,
U2,LM7805_TO220,1,,"Positive 1A 35V Linear Regulator, Fixed Output 5V, TO-220",793-1346
Reference,Value,Qty,Note,Description,RSONLINE,RAPID
BT1,9v Battery,1,,PP3 9v Battery,,
C2,0.1uF,1,Maximum height is 10mm,Unpolarized capacitor,538-1433,11-4110
C1,0.22uF,1,Maximum height is 10mm,Unpolarized capacitor,194-0629,11-3442
C3 C4,"100uF, 16V",2,Maximum height is 10mm,,176-3779 176-3779 ,11-4109
D1,1N5401,1,Polarity protection diode,,628-9451,
J3 J4 J6 J7,Conn_01x06,4,"Might be easier and cheaper to just cut from bigger lengths 0.1"" pitch, polarised, any type",https://uk.rs-online.com/web/p/pcb-headers/6812994,681-2994,01-5723 08-5765 78-0566
J1 J2,Pololu Item #4772,2,"6 pin 0.1"" breakout 6 pin header, 0.1"", male","Single row, 01x06, JST-SH breakout",,22-0795
M1 M2,N20 MOTOR,2,Sidways or regular would work for starting out 50:1 gearbox is recommended commercial mounts need bushing for screws,https://shop.pimoroni.com/products/micro-metal-motor-encoder?variant=39888423321683,NA,
R1,47K,1,,Resistor,707-8369,62-0410
U1,DVR8833_DC_Controller,1,,DC Motor Controller https://amzn.eu/d/csv7cRr as an option,,
U2,LM7805_TO220,1,,"Positive 1A 35V Linear Regulator, Fixed Output 5V, TO-220",793-1346,
Binary file modified docs/UKMARSBOT_RP2040Chassis/UKMARSBOT_RP2040Chassis_schematic.pdf
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
12 changes: 6 additions & 6 deletions docs/UKMARSBOT_RP2040Mezzanine/UKMARSBOT_RP2040Mezzanine_bom.csv
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Reference,Value,Qty,Note,Description,RSONLINE
D1 D2,LED,2,,Light emitting diode,"""228-6004 or 228-5562 or 713-3974 or 813-4845"""
J1 J2 J3 J4 J5,Conn_01x16,5,Might be easier and cheaper to just cut from bigger lengths Cut from a bigger strip of 2.54 header,"Generic connector, single row, 01x16, script generated (kicad-library-utils/schlib/autogen/connector/) Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/) Generic connector, single row, 01x04, script generated",681-3007 681-2994
R1 R2,680R,2,,Resistor,707-8211
SW1 SW2 SW3,TACT_SW,3,,TACT switch 6mm 4.5mm,479-1390P
U1,Pico,1,,,
Reference,Value,Qty,Note,Description,RSONLINE,RAPID
D1 D2,LED,2,,Light emitting diode,"""228-6004 or 228-5562 or 713-3974 or 813-4845""",56-0400 and 56-0405
J1 J2 J3 J4 J5,Conn_01x16,5,Might be easier and cheaper to just cut from bigger lengths Cut from a bigger strip of 2.54 header,"Generic connector, single row, 01x16, script generated (kicad-library-utils/schlib/autogen/connector/) Generic connector, single row, 01x06, script generated (kicad-library-utils/schlib/autogen/connector/) Generic connector, single row, 01x04, script generated",681-3007 681-2994,08-7948 01-5723 01-5835
R1 R2,680R,2,,Resistor,707-8211,64-0068
SW1 SW2 SW3,TACT_SW,3,,TACT switch 6mm 4.5mm,479-1390P,78-3821
U1,Pico,1,,,,08-7949 and 75-1230
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
Reference,Value,Qty,Note,Description,RSONLINE
C1 C2,"100uF, 16v",2,,Unpolarized capacitor,739-6799
D1 D2 D3,LED,3,,Light emitting diode,"""228-6004 or 228-5562 or 713-3974 or 813-4845"""
DLED1 DLED2 FLED1,TLCR5800,3,,Light emitting diode,818-7540
FPD1 LDPD1 RDPD1,BPW85C,3,,Photodiode,815-1263
J1,Conn_01x16,1,https://uk.rs-online.com/web/p/pcb-sockets/6816820 Can also be found on ebay slightly cheaper,"Generic connector, single row, 01x16, script generated (kicad-library-utils/schlib/autogen/connector/)",681-6820
Q1 Q2,BC337-40,2,,"NPN transistor, emitter/base/collector",671-1119
R4 R6,10K,2,,Resistor,707-7745
R7 R8 R9,10R,3,,Resistor,707-8580
R15,1k8,1,,Resistor,707-8675
R11 R13,2k2,2,,Resistor,707-8255
R2,33R,1,,Resistor,707-8805
R1 R3,390R,2,,Resistor,707-7634
R10 R12 R14,680R,3,,Resistor,707-8211
Reference,Value,Qty,Note,Description,RSONLINE,RAPID
C1 C2,"100uF, 16v",2,,Unpolarized capacitor,739-6799,11-4119
D1 D2 D3,LED,3,,Light emitting diode,"""228-6004 or 228-5562 or 713-3974 or 813-4845""",56-0400 or 56-0405 or 56-0410
DLED1 DLED2 FLED1,TLCR5800,3,,Light emitting diode,818-7540,
FPD1 LDPD1 RDPD1,BPW85C,3,,Photodiode,815-1263,
J1,Conn_01x16,1,https://uk.rs-online.com/web/p/pcb-sockets/6816820 Can also be found on ebay slightly cheaper,"Generic connector, single row, 01x16, script generated (kicad-library-utils/schlib/autogen/connector/)",681-6820,19-0087
Q1 Q2,BC337-40,2,,"NPN transistor, emitter/base/collector",671-1119,50-3113
R4 R6,10K,2,,Resistor,707-7745,62-0394
R7 R8 R9,10R,3,,Resistor,707-8580,62-0326
R15,1k8,1,,Resistor,707-8675,62-0376
R11 R13,2k2,2,,Resistor,707-8255,62-0378
R2,33R,1,,Resistor,707-8805,62-0334
R1 R3,390R,2,,Resistor,707-7634,62-0360
R10 R12 R14,680R,3,,Resistor,707-8211,
Binary file not shown.
Loading