Mukundh Balajee’s Status Report for 03/11

For this week, I was mainly focused on assessing the different sections of our design report, to ensure we tackle every portion of our project with careful consideration. Apart from that, we were able to finalize our pieces and have them 3D printed for our first prototype. Our sensors are still stuck with the vendor, which has pushed our sensor testing off by one more week. We have been in touch with Quinn and our TA about this.

Currently, we followed a similar strategy to last week and moved our schedule around to account for the delay of the sensors. We got a head start on our web app, scripts that will run on the RPi, and also communication between the RPi and lichess.org. This has helped us stay somewhat on track with our schedule and get some future work out of the way.

Next week, we hope to receive our sensors, test them and send the PCB for fabrication. We also plan to finalize our board and the components we will be attaching to it. Apart from this, we plan to work on integrating the sensors and the RPi to ensure we have proper data collection.

After this week’s design report, we were able to come up with different subsystems required for our system, and we realized that we have some extra learning to do for PCB Fabrication, using an RPi and uploading scripts to it, communicating between RPi and web app and RPi and physical board. We plan on reading through datasheets for different components in our circuitry and on our board, to help us get an efficient circuitry and have correct connections and functionality.

Juan Mejia’s Status Report for 2/25/23

This week was mostly focused on the fabrication of the physical board tiles and pieces. I started designing the pieces from scratch, however Mukundh found existing 3D models and took over the work on Rhino. I designed a test board that has a 2×2 tile design to represent the black and white tiles( see attached picture). There was delay in the arrival of the hall effect sensors because we had to order new ones, so the unit testing that I wanted to do this week, didn’t get done. I have begun setting up the circuit for the PCB, need to call AutoDesk to ask for the correct library for the hall effect sensor.

This coming week I hope to finish 3D printing all the pieces for the board that we need for testing and finalizing the dimensions and design for the tiles and chess pieces. Once the hall effect sensors arrive, I plan on working with Mukundh to do the unit testing and finish designing the row PCB, in order to send it for fabrication. I also hope to get the micro SD for the Raspberry Pi, in order to set up the OS and connect it to our WebApp.

Mukundh Balajee Status Report for 2/25

For this week, I was able to design our board on Rhino, and 3D print a test piece to make sure our pieces and board were as expected. I was able to access the Stockfish API and use it to generate and play a game.

This week, we had to reorder our Hall Effect Sensors as we initially ordered the wrong parts. This has set us back a little bit, so we were able to catch up on other tasks and get ahead on them to make up for this loss of time.

By next week, we hope to test our circuit and start/send our board for PCB Fabrication. We also hope to have our chess board modeled with Braille notations and spaces for external elements. We also plan on setting up our RPi and uploading our scripts to make sure we can proceed with further development of the accessible features.

Edison Aviles’s Status Report for 2/25

This week my main focus was to combine the concepts I was working with last week to display a live and interactive board on the website. This was a difficult process since I wanted to avoid using any unnecessary APIs since it would require reading more documentation and familiarizing myself with more libraries. However, after hitting a wall and not being able to figure out any way to embed the live game into our team website I decided to look into different chessboard APIs. I came across Chessground and Chess.js – Chessground is able to display an interactive chessboard on your website and Chess.js is able to add functionality to it. After learning how to create a pretty basic working chessboard I began learning how to incorporate lichess.org API calls to create a live copy of the actual lichess.org game. In order to accomplish this I establish a seek stream, which updates the page once a game is found by passing the unique game id into the page url – which I can then access. After accessing the game id I can establish a stream of all the moves being made on that specific game. I could then make moves on the local board, POST that information to lichess and wait for the opponent to make a move and then replicate that move on the board. The state update is limited to 500ms given lichess’s latency limit, so there is some slight lag between the live game and the game displayed on the web application, but it’s not very noticeable and we had already accounted for the limit in our system requirements.

I also contributed to project management by reevaluating the schedule and establishing weekly to do lists to keep track of what needs to be accomplished on a week to week basis.

Right now, I’m not behind on the web application process – I’d say I’ve made a lot of progress on this specific portion of the project. I do need to solidify some basic parts of the website, however I feel by focusing on board functionality and communication with live games I’ll be able to allow the rest of the team to progress and integrate while I finish portions of the UI and user experience.

I want to finalize all of the play game functionalities – seeking a game against a live opponent and seeking a game against a computer. Moreover I want to add the UI for the play game page and finalize implementing the mobile view designs. I would also like to start testing communication between RPi and web application to have a concrete idea of what has to be done once we return from spring break. I want to focus on making as much progress as possible on the web application before leaving for spring break since I do not plan on working that week.

Video of current state of board:

https://drive.google.com/file/d/1umWu0pNsFbKbg3nYzfbZqnBq-ESkGbsc/view?usp=sharing

Juan Mejia’s Status Report for 2/18/23

This week was focused on designing the test circuit in order to figure out the output for the hall effect sensors. The other categories that I focused on were researching the proper components from Raspberry and designing the chess pieces in CAD.  In order to achieve the connectivity, I requested the Compute IO board from ECE resources, but I have found it difficult to find an available Compute 4 Board. I might need to pivot to using a Raspberry 4 Board. For the CAD, I managed to design the rook and pawn pieces manually, but after the suggestion of Mukundh I am going to use 3D models for piece found online. After meeting with Will and Professor Gary, our team updated our schedule for the nest two weeks, so we our on schedule. This coming week, I hope to work with Mukundh to get a understanding of the hall effect sensors and start using AutoDesk for the PCB.

Edison Aviles’s Status Report for 2/18

This week, my main goal was to setup the project’s web application and gain some understanding of the lichess.org API. I started the week by working on some basic UI designs and flow diagrams for the frontend portion of the web application – these were for the most important portions of the project, i.e. the homepage, searching for game flow diagram, etc. After finalizing these, I began setting up the web application and opted to use a reactjs frontend connected to an expressjs backend – I chose these two frameworks since I’m familiar with both from previous internship experiences. After having a fullstack web application setup, I began tinkering with the lichess.org API with the specific goal of making moves during a live game. After lots of reading and a few lichess.org temporary bans (I was accidentally spamming the website with requests), I was able to make moves using standard chess notation from my local frontend application. I was also able to seek or create games and receive game updates to the backend.

As of right now, I’m on schedule with the tasks I have to complete. For the following week, I will continue working on the web application for the most part. I hope to be able to start, play, and view an entire chess game from our web application by next week and hopefully begin the process of adding OAuth or some Authentication to the web app.

Most of the principles I applied in the progress I made were taught in 17-437 Web Application Development. Although, the process of writing unit tests was not taught in the course, I learned all about the communication between the backend and frontend which allowed me to write concise tests for my entire system.

Team Status Report for 2/18

We are currently in the process of testing our circuit for the detection of magnetic fields, which is the most crucial part of our project. As mentioned during our presentations, piece detection is one of our big technical challenges. We hope to challenge this task with the help of multiple online resources, which have similar applications to our circuit. As a contingency plan, we think we hope to follow different circuits we have found online, and possibly add modifications to fit our requirements. We have also focused our energy to familiarizing ourselves with the lichess.org API we’re using for our web application backend and have made good progress at implementing some functions that will be necessary in future iterations of our board (i.e. making moves on an ongoing chess game).

Our team focused on two principles of engineering – testability and integrity. We want our design to be easily testable as well as guarantees integrity across the board. We did this by dividing the system into easy to test subsystems to guarantee integrity at each point of the design. By unit testing each component we can then focus our energy into testing the integration of all the subsystems as a whole.

 

Mukundh Balajee’s Status Report for 2/18

This week, I worked with Juan and started working on our circuit to detect magnetic fields with the Hall Effect sensors. We decided to try mimicking the circuit on a breadboard, before sending it out for PCB fabrication. We were able to place orders for specific parts we need for our project, and we started working on designing our chess board. We are planning on making the current designs for the chess board, as accessible as possible (for our visually impaired users) by adding braille annotations.

 

Our progress for the project has been on track. We were able to modify our schedule and push our goal of sending out the board for fabrication a couple of weeks later. We instead plan on working on a breadboard, and perfecting the circuit before fabrication. Edison has been able to make a good progress on the website and has it connected to lichess.org currently.

By next week, we hope to be able to print out our board, test our circuits out and be able to detect pieces on the board on our web app (if possible).

Edison Aviles’s Status Report for 2/11

This week, my main goal was to conduct research on the API’s we plan on using in our project’s design. We had originally planned to use chess.com as our chess API, but upon reading the API’s documentation we quickly realized that it wouldn’t be viable since chess.com didn’t allow for POST requests for moves to be made in live chess games. Upon more research I came across lichess.org. After thoroughly reading their API’s documentation, I found that their API would be perfect for our project. Lichess.org’s API allows us to do various game specific moves through GET and POST requests, for example we can initiate games, make moves, and even surrender a game through the use of their API. By doing this research before starting to build the full stack infrastructure for our application it’ll allow us to make less mistakes and have a clearer understanding of what to do in terms of API calls.

My other focus for the week was to better understand hall effect sensors and how these could potentially be used to not only identify between black or white pieces, but also between specific types of pieces. I spoke with professor Gary Fedder on a potential solution that uses variations in electromagnetic field strengths to help us identify specifically what piece is placed on a tile. We can achieve this by varying magnet positions in each piece, varying the polarity of the magnets, or even varying the number of magnets in each piece. By being able to validate what piece is on each tile we can guarantee the integrity of the board at all times, even if pieces are accidentally knocked over. This research will help us in the near future while we finalize design plans for the project.

During next week, I hope to finalize designs for the software side of the project as well as starting to implement a local instance of our project’s web application.

 

Lichess.org API documentation: https://lichess.org/api

Hall Effect Sensors: https://www.electronics-tutorials.ws/electromagnetism/hall-effect.html

Juan Mejia’s Status Report for 2/11/23

For today’s progress report there was mostly planning and learning done this week. Since one of our biggest obstacles in designing our board is creating the PCB, we have a to learn how to use Eagle/AutoDesk. Me and Mukundh are in charge of designing the PCB so we both have to be able to make proper decisions when using the required software. My main goal after Wednesday’s presentation was finding and watching tutorials online, some of which I will link in this post. The goal for the next status report is to have a primitive PCB design that could serve the purpose of our project. I would say that on my end, I am a bit behind schedule. In order to get back on schedule, I plan on getting as much hands on experience I can this week with the Eagle at the computers in ANSYS. I am also beginning to research how I am going to design the engraving on chess pieces so that they can distinguishable.

Some Examples of the Youtube videos that I watched: