

Line sensor mini wide
A simple beginners multi purpose robot platform
- Size
- 28.7 × 81.3 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 37
- Nets
- 25
- Pads
- 88
- Tracks, vias
- 189, 9
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 6 (file 20211014)
- Created
- 30 Jun 2019
- Updated
- 21 Nov 2025
Overview
Line sensor mini wide is an open-source printed circuit board by ukmars, from the ukmars/ukmarsbot repository on GitHub, published under the MIT licence. It is a 2-layer board of 28.7 × 81.3 mm with 37 parts on 25 nets, routed with 189 tracks and 9 vias.
It is built around the BC337. Its parts include 18 resistors, 8 transistors, 7 diodes, 1 capacitor and 1 connector. It belongs with the sensors and measurement and robots and motor control boards of this library.
Main components
1README
README.mdukmarsbot
A simple beginner's multi purpose robot platform
Using inexpensive, readily available materials, components and techniques, the UK Micromouse and Robotics Society (UKMARS) has created a basic robot design that can be used in a variety of common contests such as line following, wall following, drag race and mini-sumo.

Contents
This repository is all about the robot itself. Software is provided in other UKMARS repositories.
- Software examples https://github.com/ukmars/ukmarsbot-examples
- Full maze solving software: https://github.com/ukmars/ukmarsbot-mazerunner
The repository has a number of sections:
- docs contains miscellaneous documentation and datasheets. In there are some notes about design decisions and constraints, processor choice and configuration, and a bit about sensors.
- ecad contains the design files for the various electronic modules that make up the robot. The original development was done with Eagle Version 7 since it was the last 'free' version of Eagle. More recent versions are likely to be developed in KiCad since it is free, unconstrained and multiplatform. You are only likely to need to look in here if you want to modify existing modules or create your own. Either Eagle or KiCad can be used for new development.
- hardware holds subsections for the major parts that make up the robot - the main PCB and all the sensor boards. This is where you find the outputs from the ECAD tools. You don't need to know anything about Eagle or KiCad to use these outputs. For each module you should find a set of gerbers in a zip file so that you can easily order boards from your favourite supplier. Also present should be the schematics in PDF form, images of the finished boards and a parts list (BOM) to help you populate the board and select components. Note that many component choices are up to the builder and there are a number of options possible. Some or all of these elements may be missing or incomplete. Let us know of any shortcomings by raising a new issue on github.
- mechanical contains a number of mechanical CAD files. These are most likely to be STL or STEP files and are for components that can be 3D printed tohelp you make your robot. For example you will find motor mounts and brackets here.
- renders is a place where we keep generated images of the robot and some components. You can get an idea of how your finished robot may look as well as see some of the prototypes that led to the current design.
- resources is really a dump for stuff that does not fit in with the rest. At the tie of writing this is just a section about data logging.
The Processor
Processor power is provided by the Arduino Nano board because it is very cheap and widely available. There is a huge range of sample code available for almost any purpose and support is easily found online. The Arduino software can be installed on any computer and is free.
A proposed pin usage for an Arduino Nano controller can be found in the docs folder.
because the Arduino Nano is a popular processor module, there are many compatible or near-compatible alternative boards available. The processor module socket makes it possible to use some of these directly with only small modifications or, with a little more work you might fit almost any processor. Variants have already been built with STM32 processors and even a Raspberry Pi pico and Zero board.
Bluetooth
Some alternative processors in the Arduino range already have Bluetooth and WiFi built in. If you stick with simpler options - like the Arduino Nano - there is a connector provided for you to attach one of the common HC05 or HC06 Bluetooth modules directly to the board to make a wireless serial connection. Circuitry on the board (V1.1 and later) allowyou to leave the BT module connected during programming. You can then use any serial terminal, including the Arduino terminal, to communicate with the robot over Bluetooth.
Coding
The easiest language for starting coding with the Arduino, and the method most people use, is to create a "Sketch" using the Arduino Integrated Development Environment (IDE). A "Sketch" comprises functions written with C/C++ statements and the Arduino IDE takes care of turning the sketch into a complete program and uploading it to the Arduino board. It can run on any of the major platforms: Windows, Mac and Linux enabling Sketch programs for the Arduino to be readily developed on any PC. The Arduino project has lots of examples and help available for creating code, as well as libraries of functions to carry out specific tasks.
The Arduino IDE requires software to be downloaded and installed on the development PC as well as drivers to enable the developed code to be downloaded using the USB cable onto the Arduino board. All of this software and drivers are free and easy to install as long as you have software install permissions on the PC.
There is also a recently introduced web based development environment, but as yet this does not support all Arduino models and platforms. and still requires various plug ins to be installed on the development PC to use it. Find out more here: https://www.arduino.cc/en/software
A very popular alternative to the Arduino IDE is PlatformIO which can be fully integrated into the excellent VSCode editor. A 'getting started' guide for this environment is available here: https://docs.platformio.org/en/latest/integration/ide/vscode.html
Alternative software environments are available and are identified at the end of this document.
Hardware
The robot hardware is constrained by the various contest events to be within certain dimensional limits. That means that the basic chassis will be smaller than 100mm x 100mm although add-on sensors for individual events will increase the size. The robot is designed to be multipurpose so there is a core hardware setup that provides for a basic wheelchair drive of two motors, encoder feedback for individual motor speed and a minimal interface for user interaction. Components will be modular so that substitutions are easy and to provide the greatest flexibility. Builders are free to make whatever modifications suit their purpose. For example, larger or smaller motors and wheels may be used and a variety of sensor options are possible.
Power Supply
For most purposes, the power supply for the robot will need to be compact, readily available and easy to recharge. Non rechargeable batteries are not economically viable for robot experiment and are, in any case, less environmentally friendly. Safety is a concern and so Lithium Polymer cells are only recommended when part of a regulated and protected pack. Perhaps the most common small battery is the rechargeable PP3 sized pack running at 8.4 Volts or 9 Volts. Rechargeable cells and their chargers can be purchased at supermarkets and online suppliers. More confident, or adventurous builders may install whatever power supply suits them.
Motors
While there is endless variety in small DC electric motors, the N20-based gearmotors are excellent value for money and can be purchased in a huge range of performance characteristics. An example can be found here: Pimoroni 20:1 gearmotor. The common dimensions make it easy to swap motors without changing the mechanical design of the robot. Versions are available with built-in encoders allowing for more accurate control of speed and greater precision in movement of the robot. Normally these would be used in any robot. The drivers for these motors are available on small circuit board modules that can easily be connected with the Arduino Nano.
Materials
It will be possible to build the robot using parts that are commercially readily available and specialist materials will not be required. Access to basic hand tools and soldering equipment will be necessary.
It is likely that some builders will have some access to a 3D printer or a laser cutter or both and the open design of the robot with upgrade paths will allow advanced builders to utilize these tools to create higher performing robots.
Software
The two software repositories mentioned above provide a fairly complete set of examples and code for almost every aspect of programming for the UKMARSBOT platform. Many of the techniques and examples will also be directly applicable to other mobile robot projects.
If the Arduino IDE is not for you, then there are other programming choices to suit you. (None of these have been tried by UKMARS)
-
FlashForth http://flashforth.com/ is a Forth stamp system implemented on the Microchip 8-bit PIC18F and 16-bit PIC24, 30, 33 and the Atmel Atmega microcontroller families. See also https://playground.arduino.cc/CommonTopics/ForthOnArduino/ for other options relating to Forth.
-
For Basic users there appear to be fewer options. One of these is Great Cow basic http://gcbasic.sourceforge.net/Typesetter/index.php/Home. "The Great Cow BASIC suite is robust and fully functional compiler and assembler. Using Great Cow BASIC is the fastest method to program a Microchip PIC or Atmel AVR 8-bit microcontroller for those just starting and the professional user." The host software is cross platform and there is a graphical editor as well as a more traditional IDE.
-
Some users may prefer a visual programming environment similar to Scratch. Several of these are available and more information may be found here Sparkfun Alternative Arduino Interfaces.
Parts
37| Qty | Value | Footprint | References |
|---|---|---|---|
| 8 | 2k0 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R11, R12, R13, R14, R15, R16, R26, R27 |
| 6 | BPW85C | ukmarsbot:Phototransistor_3mm_Vertical_Clear | Q3, Q4, Q5, Q6, Q7, Q8 |
| 5 | 68R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R2, R3, R4, R5, R6 |
| 5 | L-934F3C | LED_THT:LED_D3.0mm | D1, D2, D3, D4, D5 |
| 2 | 10k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R8, R10 |
| 2 | 390 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R7, R9 |
| 2 | BC337 | ukmarsbot:TO-92_Inline_Wide_HandSolder | Q1, Q2 |
| 2 | LED | LED_THT:LED_D3.0mm | D6, D7 |
| 2 | MountingHole | MountingHole:MountingHole_3.2mm_M3 | H1, H2 |
| 1 | 33R | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P7.62mm_Horizontal | R1 |
| 1 | 470uF | Capacitor_THT:CP_Radial_D10.0mm_P2.50mm_P5.00mm | C1 |
| 1 | SENSORS | ukmarsbot:PinHeader_1x14_P2.54mm_Vertical | J1 |
More from ukmars/ukmarsbot
3- 2 layers99.1 × 81.3 mm

- 2 layers27.3 × 80 mm

Ukmarsbot wall sensor advanced
ukmars/ukmarsbot
A simple beginners multi purpose robot platform
31 parts138MIT - 2 layers28.7 × 81.3 mm

Similar boards
- 2 layers50 × 25 mm

Mbus master
roarfred/AmsToMqttBridge
Minimalistic system to read AMS/HAN data from electrical meter
50 parts223 - 2 layers118 × 103.5 mm

- 2 layers

LM80C R6
leomil72/LM80C
A Z80-based homebrew computer withTMS9918, AY-3-8910, Z80 CTC, Z80 PIO, and Z80 SIO
153 parts123GPL-3.0 - 2 layers121 × 68 mm

Freeds sanchez
pablozg/freeds
Derivador de energía solar excedente creado por Pablo Zerón, Diseño PCB por Amcalo, Tester original por Aeizoon, Wiki por Zoilo Mora
42 parts108 - 2 layers56.6 × 57.7 mm

TashTwenty Tiny
lampmerchant/tashtwenty
An interface for the DCD protocol used by Apple's Hard Disk 20.
31 parts35GPL-3.0 - 2 layers52.8 × 149.3 mm

PixelSlasher
CTXz/Video-Glitch-Array
A collection of glitch art circuits dedicated to VGA signal manipulation
22 parts30 - 2 layers37.1 × 24.1 mm

- 2 layers224.2 × 153.7 mm

Questions
How big is the Line sensor mini wide PCB?
It measures 28.7 × 81.3 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Line sensor mini wide use?
37 parts, built around the BC337. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Line sensor mini wide KiCad files?
From the ukmars/ukmarsbot repository on GitHub, at the commit this page was made from: the board is ecad/kicad/line-sensor-mini-wide/line-sensor-mini-wide.kicad_pcb and its schematic ecad/kicad/line-sensor-mini-kes/line-sensor-mini-kes.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the Line sensor mini wide design in my own project?
Its repository publishes it under the MIT licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).