Project

# Title Team Members TA Documents Sponsor
49 Move Displaying Chess Board
Jeanjuella Tipan
Matthew Trela
Tim Chen
Wenjing Song
# Move Displaying Chess Board

Team Members:
- Matthew Trela (mtrela2)
- Tim Chen (taianc2)
- Jeanjuella Tipan (jtipa2)

# Problem

Chess is a game with a high barrier to entry and often the hardest part of the game for kids to pick up is how the pieces move, where a piece can move, and if a move is legal. Existing boards that tackle this problem are very expensive and not a practical option for an elementary or middle school chess club.

# Solution

A physical chess board which shows all legal moves for a piece once it is picked up. The movement of pieces will be detected with a sensor array of reed switches and a board state in memory. The squares will be lit up by an addressable strip of LED lights cut into 8 equal sections and daisy chained together. This chessboard will also optionally display the best move with a small chess engine in the MCU’s flash memory. The chess board will include a UI to turn best moves on and off, to handle the edge case of promoting to something besides a queen, and to display information like if an illegal move is played.

# Solution Components

## Subsystem 1, Piece Detection Array

This subsystem detects the location of each piece using magnets attached to the bottom of the pieces and an array of 64 reed switches. Since the microcontroller can not handle 64 separate sensors we will use 4 I2C GPIO expanders.

- Reed Switches: Standex-Meder Electronics SW GP560/15-20 AT
- Magnets: Magnet Applications N42P062062
- I2C 16 input GPIO expander: Microchip Technology MCP23017-E/ML

## Subsystem 2, LED Move Display

This subsystem provides feedback to the user. An addressable LED strip is placed under the board in 8 segments, one for each rank. The segments will be connected with clip connectors for replacing each segment when necessary. When a piece is lifted as detected by subsystem 1, the MCU calculates the legal moves and sends a signal to the LEDs to illuminate target squares in a specified color (for example: green for legal moves, red for capturable piece).

- Addressable LED strip: SEZO WS2812B ECO LED Strip Light 16.4 FT
- 3Pin LED Strip Connector: DFRobot FIT0861

## Subsystem 3, Microcontroller and UI

The microcontroller will handle all of the logic of our chess system. There will be a simple control loop which polls every sensor so see if the board state has changed. If a piece has been picked up, the microcontroller uses the current board state to see what piece was picked up, what its legal moves are, and then controls the LED strip accordingly. We will use logic to check for error or desync and have a recovery protocol through the UI if detected. This control loop can be interrupted by input from the UI like to turn on best moves. UI is a monochrome OLED screen with some buttons for selecting options. When best moves are on, the board puts the current state into a small chess engine locally stored in the MCU and displays the best move using the LEDs. This happens every time the board state changes.

- MCU: ESP32-WROOM-32-N4
- OLED Display: UCTRONICS 0.96 Inch OLED Module 12864 128x64

## Subsystem 4, Power supply

A portable power supply is used to power the LEDs, sensors, microcontroller, and UI display. A capacitor prevents sudden surges or dips in from crashing the microcontroller.

- Power bank: VOLTME Portable charger, 10000mAh 5V/3A
- Capacitor: Chemi-Con ESMG160ETD102MJ16S

# Criterion For Success

Describe high-level goals that your project needs to achieve to be effective. These goals need to be clearly testable and not subjective.

- LEDs can be selectively turned on by the MCU for all 64 squares
- Move display and best move display can be turned on and off with the UI controls
- All legal moves are accurately displayed by LEDs, including rules such as en passente, castling, and the first move of pawns
- Pieces can be detected accurately when lifted off, being displayed on the UI display
- Detect pieces picked up and show legal moves in under 1 second
- Display the best move in under 3 seconds
- We can detect and recover from two pieces on the same square
- We can detect and recover from multiple pieces being picked up at the same time and switched

# Alternatives

Existing solutions include commercial products that cost around $300 or more. They perform almost the exact same functions as what we propose to do. It is hard to determine the exact sensor method other boards use but we saw RFID and other more extensive methods. Our implementation attempts to use the simplest possible sensing apparatus and make up the difference in hardware. There does not exist a product that is both affordable and offers the functionality of displaying moves on the board.

Monitor for Dough and Sourdough Starter

Jake Hayes, Abhitya Krishnaraj, Alec Thompson

Monitor for Dough and Sourdough Starter

Featured Project

Team Members:

- Jake Hayes (jhayes)

- Abhitya Krishnaraj (abhitya2)

- Alec Thompson (alect3)

# Problem

Making bread at home, especially sourdough, has become very popular because it is an affordable way to get fresh-baked bread that's free of preservatives and other ingredients that many people are not comfortable with. Sourdough also has other health benefits such as a lower glycemic index and greater bioavailability of nutrients.

However, the bulk fermentation process (letting the dough rise) can be tricky and requires a lot of attention, which leads to many people giving up on making sourdough. Ideally, the dough should be kept at around 80 degrees F, which is warmer than most people keep their homes, so many people try to find a warm place in their home such as in an oven with a light on; but it's hard to know if the dough is kept at a good temperature. Other steps need to be taken when the dough has risen enough, but rise time varies greatly, so you can't just set a timer; and if you wait too long the dough can start to shrink again. In the case of activating dehydrated sourdough starter, this rise and fall is normal and must happen several times; and its peak volume is what tells you when it's ready to use.

# Solution

Our solution is to design a device with a distance sensor (probably ultrasonic) and a temperature sensor that can be attached to the underside of most types of lids, probably with magnets. The sensors would be controlled with a microcontroller; and a display (probably LCD) would show the minimum, current, and maximum heights of the dough along with the temperature. This way the user can see at a glance how much the dough has risen, whether it has already peaked and started to shrink, and whether the temperature is acceptable or not. There is no need to remove it from its warm place and uncover it, introducing cold air; and there is no need to puncture it to measure its height or use some other awkward method.

The device would require a PCB, microcontroller, sensors, display, and maybe some type of wireless communication. Other features could be added, such as an audible alarm or a graph of dough height and/or temperature over time.

# Solution Components

## Height and Temperature Sensors

Sensors would be placed on the part of the device that attaches to the underside of a lid. A temperature sensor would measure the ambient temperature near the dough to ensure the dough is kept at an acceptable temperature. A proximity sensor or sensors would first measure the height of the container, then begin measuring the height of the dough periodically. If we can achieve acceptable accuracy with one distance sensor, that would be ideal; otherwise we could use 2-4 sensors.

Possible temperature sensor: [Texas Instruments LM61BIZ/LFT3](https://www.digikey.com/en/products/detail/texas-instruments/LM61BIZ%252FLFT3/12324753)

Proximity sensors could be ultrasonic, infrared LED, or VCSEL.\

Ultrasonic: [Adafruit ULTRASONIC SENSOR SONAR DISTANCE 3942](https://www.digikey.com/en/products/detail/adafruit-industries-llc/3942/9658069)\

IR LED: [Vishay VCNL3020-GS18](https://www.mouser.com/ProductDetail/Vishay-Semiconductors/VCNL3020-GS18?qs=5csRq1wdUj612SFHAvx1XQ%3D%3D)\

VCSEL: [Vishay VCNL36826S](https://www.mouser.com/ProductDetail/Vishay-Semiconductors/VCNL36826S?qs=d0WKAl%252BL4KbhexPI0ncp8A%3D%3D)

## MCU

An MCU reads data from the sensors and displays it in an easily understandable format on the LCD display. It also reads input from the user interface and adjusts the operation and/or output accordingly. For example, when the user presses the button to reset the minimum dough height, the MCU sends a signal to the proximity sensor to measure the distance, then the MCU reads the data, calculates the height, and makes the display show it as the minimum height.

Possible MCU: [STM32F303K8T6TR](https://www.mouser.com/ProductDetail/STMicroelectronics/STM32F303K8T6TR?qs=sPbYRqrBIVk%252Bs3Q4t9a02w%3D%3D)

## Digital Display

- A [4x16 Character LCD](https://newhavendisplay.com/4x16-character-lcd-stn-blue-display-with-white-side-backlight/) would attach to the top of the lid and display the lowest height, current height, maximum height, and temperature.

## User Interface

The UI would attach to the top of the lid and consist of a number of simple switches and push buttons to control the device. For example, a switch to turn the device on and off, a button to measure the height of the container, a button to reset the minimum dough height, etc.

Possible switch: [E-Switch RA1113112R](https://www.digikey.com/en/products/detail/e-switch/RA1113112R/3778055)\

Possible button: [CUI Devices TS02-66-50-BK-160-LCR-D](https://www.digikey.com/en/products/detail/cui-devices/TS02-66-50-BK-160-LCR-D/15634352)

## Power

- Rechargeable Lithium Ion battery capable of staying on for a few rounds of dough ([2000 mAh](https://www.microcenter.com/product/503621/Lithium_Ion_Battery_-_37v_2000mAh) or more) along with a USB charging port and the necessary circuitry to charge the battery. The two halves of the device (top and underside of lid) would probably be wired together to share power and send and receive data.

## (stretch goal) Wireless Notification System

- Push notifications to a user’s phone whenever the dough has peaked. This would likely be an add-on achieved with a Raspberry Pi Zero, Gotify, and Tailscale.

# Criterion For Success

- Charge the battery and operate on battery power for at least 10 hours, but ideally a few days for wider use cases and convenience.

- Accurately read (within a centimeter) and store distance values, convert distance to dough height, and display the minimum, maximum, and current height values on a display.

- Accurately read and report the temperature to the display.

- (stretch goal) Inform the user when the dough has peaked (visual, audio, or app based).

Project Videos