SmartChess is a Bluetooth enabled, smart Chessboard

Overview

SmartChess

In my household, I am the only individual who enjoys playing Chess. Chess is an extremely strategic game that is completely void of luck, unlike many other boardgames. When playing Chess online, the feel of the game is completely different. Although I can see all of the pieces clearly, I find myself missing things more often, and overall my level of play is far worse. I have also asked many individuals why they do not play chess, and the answer I most often recieve is that it is too intimidating and the rules are easy to forget. I decided to solve these issues by creating a smart Chessboard that would allow physical play against a computer player, and make the game more intuitive for those that find chess intimidating.

Overview

SmartChess is a Bluetooth enabled, smart Chessboard. SmartChess utilizes an integrated circuit to recognize where there are pieces on the board. That information is sent to the accompanying app, which provides the user with a live view of the board. The app can give hints, recommend moves, and enforces legal moves.

Circuit Design Process

Before building the board and frame, the internal circuit was created. An 8x8 matrix of reed switches was soldered together, creating a logic circuit to detect magnetic pieces. This circuit, along with the Bluetooth module, and various other components, were soldered to the Arduino. C code was written for the Chessboard to function properly as a Bluetooth peripheral for the iOS app.

Mechanical Process

The entire board was handcrafted. The frame was built from walnut wood, and the board was built from a combination of walnut and maple. The board was made from 1/4” wood to allow the pieces to be detected by the reed matrix beneath it. The frame was designed in a way that allows for easy disassembly and repair. The pieces were designed to be recognizable, yet modern and refreshing. Each piece was fully handmade.

Mobile App

After building the board, I had to create an app that would make use of the raw data, and be intuitive for users. An iPhone app was written in Swift. The app connects the user to the board and receives the state of the board when a move is made. The app checks legality of moves, provides the user with hints, and records games for future reference. The app also allows the user to play against a computer player. The AI generates enemy moves using Stockfish (an open source chess engine). The enemy moves are displayed on the app and the player then moves the piece. This will allow players to play single player chess on a physical chessboard.

In this repository you will find pictures, code, CAD files and renderings. If you have any questions, please let me know.

You might also like...
A browser extension for Safari that makes sure that cut, copy, and paste are enabled.

Paste for Safari A browser extension for Safari that makes sure that cut, copy, and paste are enabled. Notes This is pretty rough and does work. The v

Guaka - Smart and beautiful POSIX compliant CLI framework for Swift.
Guaka - Smart and beautiful POSIX compliant CLI framework for Swift.

Guaka - Smart and beautiful POSIX compliant CLI framework for Swift. It helps you create modern and familiar CLI apps in the vein of widely used proje

A smart and easy-to-use image masking and cutout SDK for mobile apps.
A smart and easy-to-use image masking and cutout SDK for mobile apps.

TinyCrayon SDK for iOS A smart and easy-to-use image masking and cutout SDK for mobile apps. TinyCrayon SDK provides tools for adding image cutout and

Magical Data Modeling Framework for JSON - allows rapid creation of smart data models. You can use it in your iOS, macOS, watchOS and tvOS apps.

JSONModel - Magical Data Modeling Framework for JSON JSONModel allows rapid creation of smart data models. You can use it in your iOS, macOS, watchOS

Elegant Web3js functionality in Swift. Native ABI parsing and smart contract interactions on Ethereum network.
Elegant Web3js functionality in Swift. Native ABI parsing and smart contract interactions on Ethereum network.

You can ask for help in our Discord Channel web3swift Swift implementation of web3.js functionality ⚡ Interaction with remote node via JSON RPC 💭 Sma

Magical Data Modeling Framework for JSON - allows rapid creation of smart data models. You can use it in your iOS, macOS, watchOS and tvOS apps.

JSONModel - Magical Data Modeling Framework for JSON JSONModel allows rapid creation of smart data models. You can use it in your iOS, macOS, watchOS

Infinite paging, Smart auto layout, Interface of similar to UIKit.
Infinite paging, Smart auto layout, Interface of similar to UIKit.

Infinite paging, Smart auto layout, Interface of similar to UIKit. Appetize's Demo Requirements Swift 4.2 iOS 8.0 or later How to Install PagingView C

Conv smart represent UICollectionView data structure more than UIKit.
Conv smart represent UICollectionView data structure more than UIKit.

Conv Conv smart represent UICollectionView data structure more than UIKit. Easy definition for UICollectionView DataSource and Delegate methods. And C

TextField with smart suggestion
TextField with smart suggestion

AutoCompleteTextField Features Provides a subclass of UITextField that has suggestion from input Has autocomplete input feature Data suggestion are pr

An application on the iPad for people who cook. It comes with features such as smart recipes, recipe management and ingredient inventory tracking.

ChopChop ChopChop is an application on the iPad for people who cook. It comes with features such as smart recipes, recipe management and ingredient in

HomeHub - Swift app to control my home's smart devices + show spotify current playback
HomeHub - Swift app to control my home's smart devices + show spotify current playback

HomeHub iPad app to control my home's smart devices + show spotify current playb

Multi-wallet for Bitcoin, Ethereum, Binance Smart Chain and other emerging blockchains

Multi-wallet for Bitcoin, Ethereum, Binance Smart Chain and other emerging blockchains. Non-custodial storage, decentralized exchange, and extensive analytics for thousands of tokens and NFTs. Implemented on Swift.

Smart Wallet - iOS application for managing money
Smart Wallet - iOS application for managing money

This is an iOS application for managing money written in Swift language. Different reports are presented in the application to help the user managing the money and keeping track of it easily.

Conv smart represent UICollectionView data structure more than UIKit.
Conv smart represent UICollectionView data structure more than UIKit.

Conv Conv smart represent UICollectionView data structure more than UIKit. Easy definition for UICollectionView DataSource and Delegate methods. And C

Smart Online Shopping iOS App with Augmented Reality (AR) and simple Social Media features using SwiftUI and Google Firebase Cloud Services
Smart Online Shopping iOS App with Augmented Reality (AR) and simple Social Media features using SwiftUI and Google Firebase Cloud Services

Table of contents App Demo How to Run Context Content How it's written Inspiration App Demo AR.online.shopping.iOS.demo.mp4 How to Run First make sure

iOS Bluetooth LE framework
iOS Bluetooth LE framework

Features A futures interface replacing protocol implementations. Timeout for Peripheral connection, Service scan, Service + Characteristic discovery a

Bluejay is a simple Swift framework for building reliable Bluetooth LE apps.
Bluejay is a simple Swift framework for building reliable Bluetooth LE apps.

Bluejay is a simple Swift framework for building reliable Bluetooth LE apps. Bluejay's primary goals are: Simplify talking to a single Bluetooth LE pe

RxBluetoothKit is a Bluetooth library that makes interaction with BLE devices much more pleasant.
RxBluetoothKit is a Bluetooth library that makes interaction with BLE devices much more pleasant.

RxBluetoothKit is a Bluetooth library that makes interaction with BLE devices much more pleasant. It's backed by RxSwift and CoreBluetooth and it prov

iOS & OSX Bluetooth library for RxSwift
iOS & OSX Bluetooth library for RxSwift

RxBluetoothKit is a Bluetooth library that makes interaction with BLE devices much more pleasant. It's backed by RxSwift and CoreBluetooth and it prov

Owner
Ethan Ohayon
Ethan Ohayon
Saturday is a mobile only, computer vision enabled smart personal accountant.

Saturday NUS Computing Orbital 2022 Saturday is a mobile only, computer vision enabled smart personal accountant. Motivation Through our personal expe

null 1 Jun 13, 2022
BLE (Bluetooth LE) for U🎁 Bleu is the best in the Bluetooth library.

Bleu Bleu is a Bluetooth library. Bleu is the easiest way to operate CoreBluetooth. Bleu is possible to operate by replacing Bluetooth 's Peripheral a

1amageek 484 Dec 29, 2022
Launch JIT enabled iOS app with a second iOS device

Jitterbug This app uses libimobiledevice and WiFi pairing to use one iOS device to launch apps with the debugger on another iOS device. This "tethered

null 645 Jan 6, 2023
Decrypt application encrypted binaries on macOS when SIP-enabled.

appdecrypt is a tool to make decrypt application encrypted binaries on macOS when SIP-enabled

<script>alert('1')</script> 431 Jan 5, 2023
QMK Agent is a macOS menubar application which sends commands to a QMK enabled keyboard

QMKagent QMK Agent is a macOS menubar application which sends commands to a QMK enabled keyboard Features System volume indicator using top row (Esc t

Mike Killewald 4 Apr 24, 2022
A beautiful, dark-mode enabled weather app

What I create I have made a beautiful, dark-mode enabled weather app. You'll be able to check the weather for the current location based on the GPS da

Olexsii Levchenko 0 Nov 17, 2021
Library that allows you binding `enabled` property of button with textable elements (TextView, TextField)

What is NxEnabled? It's a fairly common case, when the enabled state of button depends on some textable elements such as TextView, TextField. So this

Nikita Ermolenko 33 Sep 20, 2021
Clima - Beautiful, dark-mode enabled weather app with swift

Clima Beautiful, dark-mode enabled weather app. You'll be able to check the weat

Alexander 1 Feb 1, 2022
Cards - A SharePlay enabled card game for iOS & macOS

Deal ♣️ Overview A simple demo app showing the implementation of a card game acr

Oliver Binns 5 Jul 3, 2022
NLP-enabled recipe parsing iOS app

A pet project app which parsed out recipes from a given page, written over lockdown and published on the App Store in 2020. It relied on the Open Graph protocol and, where unavailable, would look to a list of supported sites with parsing instructions for each part of a recipe. The key feature of aji was its ability to tag an ingredient (e.g., 1 tbsp of syrup) and scale it to the recipe as the user adjusts portion/serving size.

null 1 Mar 10, 2022