This project aims to create an autonomous robot capable of playing an intelligent, over-the-board game of chess against a human opponent. The system uses a three-axis, cantilevered, overhead gantry to move parallel to the chess board. Each axis is driven by a stepper motor, the horizontal axes using belts and the vertical axis using a rack and pinion. A crosspoint array of reed switches embedded in the physical chess board allows for piece detection, and with software record of the board state, piece recognition. This system is orchestrated by an MSP432E401Y microcontroller, with chess moves being pulled from the open-source Stockfish chess engine, running on a Raspberry Pi 3A+. All communication between the Raspberry Pi and MSP432 is done through a universal asynchronous receiver-transmitter (UART) serial connection.
This repository contains all schematic and PCB files for the system, generated in KiCad. Files can be graphically viewed at CADLab. In this document, <LGR>
will indicate your local path to the GIT repo.
- Clone this repo onto your local machine.
- Open
<LGR>/Boards/Main_Board/_Top_Level/Main_Board.kicad_pro
with KiCad to view the main project. - In KiCad, open
Main_Board.kicad_sch
to view the schematic, orMain_Board.kicad_pcb
to view the PCB.
- Create the following new directories:
<LGR>/Boards/<YOUR_BOARD_NAME>
<LGR>/Boards/<YOUR_BOARD_NAME>/_DFM
<LGR>/Boards/<YOUR_BOARD_NAME>/_DFM/Gerber
<LGR>/Boards/<YOUR_BOARD_NAME>/_Top_Level
- Open KiCad
- Select
File
->New Project
- A
Create New Project
window will pop up. In the window, navigate to<LGR>/Boards/<YOUR_BOARD_NAME>/_Top_Level
- Enter the file name
<YOUR_BOARD_NAME>.kicad_pro
and clickSave
- Create a new directory:
<LGR>/Boards/<YOUR_BOARD_NAME>/<SUBSHEET_NAME>
- Open
<LGR>/Boards/<YOUR_BOARD_NAME>/_Top_Level/<YOUR_BOARD_NAME>.kicad_sch
in the KiCad Schematic Editor - Select
Place
->Add Sheet
- Click to place the symbol
- A
Sheet Properties
window will pop up. Add the following entry:- Sheet Name:
<DESCRIPTIVE_NAME>
, Sheet File:../<SUBSHEET_NAME>/<COMPONENT_NAME>.kicad_sch
- Sheet Name:
- Right click the component and select
Import Sheet Pin
to place the hierarchical labels
Note: We no longer use a custom path for project libraries. We instead use relative paths from ${KIPRJMOD}
- Install the library:
- Download an external library
- Ex: A model for the DRV8824QPWPRQ1 can be found under 'ECAD Model'
- Unzip the download to get a
*.epw
file - Download the Library Loader tool from Mouser
- Register/login to the Library Loader tool
- Click
Open ECAD Model
and select the downloaded*.epw
file - By default the output is in
~/Downloads/LIB_GET.zip
. Unzip it - Copy the unzipped contents into:
<LGR>/Project_Libraries/<LIBRARY_NAME>
- Download an external library
- Import the symbol:
- In the KiCad Schematic Editor, go to:
Preferences
->Manage Symbol Libraries
->Project Specific Libraries
- Add the following entry by clicking the
+
button:- Nickname:
<LIBRARY_NAME>
, Library Path:${KIPRJMOD}/../../../Project_Libraries/<LIBRARY_NAME>/KiCad/<LIBRARY_NAME>.lib
- Nickname:
- Select
Migrate Libraries
- Place the device in KiCad by going to
Place
->Add Symbol
and search for<LIBRARY_NAME>
- In the KiCad Schematic Editor, go to:
- Add the footprint:
- In the KiCad PCB Editor, go to:
Preferences
->Manage Footprint Libraries
->Project Specific Libraries
- Add the following entry by clicking the
+
button:- Nickname:
<LIBRARY_NAME>
, Library Path:${KIPRJMOD}/../../../Project_Libraries/<LIBRARY_NAME>/KiCad
- Nickname:
- In the KiCad PCB Editor, go to:
- Update the symbol field to make exporting the BOM easier:
- Right click on the symbol and click
Properties
- Click
Edit Library Symbol
. This should open a symbol editing window. - Go to
File -> Symbol Properties
- Use the
+
button to add the fieldsDatasheet
,Manufacturer's Part Number
,Digikey Part Number
,Mouser Part Number
,Digikey Link
, andMouser Link
in that order (with that exact spelling/capitalization)- The
Datasheet
should be a URL to the datasheet, and theDigikey link
andMouser link
fields should be links to the part's product page
- The
- Uncheck the
Show
field for everything except theReference
andValue
fields - If the part has a meaningful value (e.g., a 10k resistor), add that value in the
Value
field - In the
Footprint
field, select the folder icon and search for<LIBRARY_NAME>
in the popup - Double click the result to associate the footprint you imported with the symbol you imported
- Note: The footprint field might show something like
<LIBRARY_NAME>:<SEEMINGLY_RANDOM_STRING>
, this is okay
- Note: The footprint field might show something like
- Click
Ok
and close the library editor - In the schematic, either right click the symbol and select
Update
or delete and re-add the symbol. The fields should now be included correctly
- Right click on the symbol and click