Edison Aviles’s Status Report for 03/25

This week my main focus was to work on the validation script as well as the communication script. I worked closely with Mukundh to make sure we figured out a logical approach to writing the programs that will be ran on the RPi. We concluded on a model that is initialized based on a button press from the board, after that our javascript is called to establish connection with Lichess.org, once connection is established, we ask the user to input a move (currently the way moves are inputted are through the terminal – for testing purposes), once a move is entered it is validated on the python script and if the move is valid then we can send it to lichess. The Javascript will serve as a “hub” for communication between the user and lichess. In order to keep track of the current game state, we are passing a FEN string back and forth between the Python script every time a game state update is sent from Lichess. The Javascript sends the current state FEN and the last move made and updates the fen if the move is valid. We have made significant progress on the software side this week, we simply need to fix some minor bugs that are preventing move validation after a few moves.

I also helped test some of the game pieces that Mukundh 3D printed. I made sure that the magnets fit into the pieces and calculated the voltage drop across the LED while varying the distance between the piece and the sensors.

By next week I hope to fix the bugs that are affecting our validation and communication scripts. I also hope to have the scripts running correctly from the RPi. I also hope to have a better understanding of how the arduino will be communicating with the RPi script.

Juan Mejia’s status Report for 3/25/23

This week the task that I was assigned to work on was getting the communication between the Arduino and the Raspberry Pi up and running. I was able to accomplish this using serial communication on the Arduino and using the the pySerial module on the Raspberry Pi. I was able to achieve a sub 2 second communication between the devices from start up. I am back on schedule with my work and currently waiting for the PCB to arrive in order to communicate the PCB with the other systems. This week I hope to communicate the Raspberry Pi with our Web-App.

Team Status Report for 03/25

The most significant risk at the moment is our ability to vary magnetic strength precisely to ensure accurate piece detection. We have ordered different strength magnets and printed a couple of pieces and a chess board, to test our circuitry and sensors. We plan to use pre-made pieces which would compromise on the accessibility feature we plan to have.

Currently, we have no major design updates. We have been user-testing our hardware to get an understanding of what works best for our user given our budget and timeframe.

Mukundh Balajee’s Status Report for 03/25

This week, I was able to finish modeling all our pieces and print a couple out to test that their behavior with the magnet and sensor is as expected. I was also able to determine the magnetic strength required for each unique piece and have our order ready to be placed on Tuesday. I was also able to work on the Software side with Edison to help ensure our code functions as expected. I was able to make a script to validate a user’s move made on the board and pass the information along through various other checks and finally over to lichess.org. I was also able to work on our arduino code, to help read the output of the Hall Effect Sensor.

Currently, we have been able to stick to our schedule, by making progress over spring break, and are a little behind on manufacturing the board.

I hope to complete the manufacturing of the board by next week, and also upload our code into the RPi. We hope to have full connectivity barring our hardware. This will enable full gameplay from a software application.

Juan Mejia’s Status Report for 3/18

This week I focused on designing and fabricated our PCB. I used an online PCB designing tool called easyeda.com. It allowed me to set up all the components for needed for a row of the board. This week I also worked on a ethics assignment that was due this week. The last thing I worked on was the setting up the Raspberry Pi OS, so that it can be ready for our Web-App communication. In terms of of keeping up with schedule, I am a bit behind in terms of the hardware design, however a lot of work was able to get done and we should be back on track by Monday. By Wednesday, the logic to control the logic on the muxs will be completed on the Arduino. I will also by Friday have the board laser cut and engraved the braille.

Edison Aviles’s Status Report For 03/18

This week I worked alongside Mukundh to make progress on both the hardware and software aspects of the project. I utilized a large portion of the JavaScript code written to communicate with lichess.org from our web application, in order to communicate from our move validation script with lichess.org. I setup some of the endpoints that we will later call from our python script once moves have been validated. Mukundh and I made modifications to the existing python script to communicate with the JavaScript code and vice versa. We drew out some diagrams in order to better understand how we want information to flow and case based on the current chessboard state. This helped us understand our needs and better approach challenges that arose as we worked on the code.

Furthermore, I worked closely with Mukundh to debug, setup, and test our hall effect sensor circuit. We wrote a basic arduino script to measure voltage drop across and LED based on the polarity of the magnet and distance from the magnet to the sensor. I also setup two parallel circuits on a breadboard in order to test for sensor sensitivity, that is if the surounding sensors would pickup noise or the magnetic field on the neighbording tile. In order to accomplish this I simply measured the distance between the sensors to be 2 inches – which is the size of a tile, and varied the distance between the magnet and sensor. I found that after 0.5 inches, the sensor was able to detect a change in magnetic field and the voltage across the LED varied noticeably.

In terms of schedule, right now we have been able to start picking up on a lot of the areas we had originally fallen behind. With most of our basic sensor testing done and a better understanding of our hardware needs we hope to make large strides on our chessboard next week. On the other hand, with respect to software progress, we hope to finish most of the scripts by early next week according to schedule.

Team Status Report for 03/18

Our current risks are the arrival of our PCBs on time and the manufacturing of our hardware components, which involves laser cutting the board, 3D printing the pieces, and ordering the PCBs and the required components to make the connections on the PCB. We have Juan working on this and placing the orders this weekend so that we can test our circuits and place our order for all 8 columns soon. We also plan to split the task of printing the pieces and have Mukundh and Edison also involved in the manufacturing of the board.

We decided that instead of 3D printing the board, we were gonna laser cut it, to give it the same textures as before. This was a cheaper option given the scale of our board. Apart from this, we have been modifying our software systems. We are reconsidering the use of the Web Application, and also how we want to store, send/receive, and handle data to ensure minimal latency.

Mukundh Balajee’s Status Report for 3/18

This week, I was able to test our Hall Effect Sensors, which arrived late.  I designed the circuit needed for each tile and tested out our magnets. I was also able to place the order for the magnets, on my own, to ensure it arrives on time, and we can decide our magnetic strength range for each unique piece. On the software side, I was able to help make our code modular, and separate it into different scripts. I was able to make major progress on the move validation, and integration with lichess.org. Our code currently has endpoints that can be connected to for full functionality. Once our PCB arrives and we can connect the hardware portion.

Currently, my progress is on schedule. I was able to catch up over spring break and keep our progress on schedule till this week. We have been behind on our hardware side, however, Edison and I have been able to catch up on a lot of the work on the software side of our project.

By next week, we hope to have our board laser cut, and PCB tested and ready for use. e also plan to have our pieces made (with magnets inside the piece and pegs placed at the bottom), and 3D print all the pieces. We plan to have some form of established communication between our board and RPi.

Edison Aviles’s Status Report 03/11

For the past two weeks, my main focus has been updating the web application logic to load and update the displayed FEN entirely based on communication from lichess.org. This proved to be difficult since the formatting of the JSON strings being received from lichess.org isn’t in the form of a FEN, it’s actually being sent as an array of moves made during that specific game, ordered from first move to latest move. From this list, I then have to calculate the actual FEN to then display. From here I continue to receive moves in the form of an array of all the moves made in the game and filter out the old moves in order to apply the new moves on the displayed board. Furthermore, I worked with Mukundh to finalize some final tocuhes of the move verification script using Stockfish. We added some classes and methods to mainstream the code and make it easier to understand. Apart from this, the team focused a lot of time on working on the system design report which was submitted last Friday.

In terms of software on the web application portion and Stockfish portion, the team is on track to finish everything on time. This next week we want to push communication between the web app, lichess.org, and the RPi in order to make sure we can play an entire chess game from the RPi and view the game from our web application.

In terms of new technologies used – In order to complete the software portion of the project, I’ve had to learn how to use various libraries including Chess.JS, React Chessboard, Stockfish, and Lichess.org’s public API. I will also have to learn how to use the RPi and the available drivers in order to use the RPi speakers. The team chose to use these specific technologies, mostly based on the fact they all have extensive documentation and have previously been used in similar projects to the one we aim to complete.

Team Report for 03/11

Currently, the delay in the arrival of our Hall Effect sensors, adds an extra time crunch to send our PCB out for fabrication as soon as possible, which would involve testing the sensors as soon as they arrive. Mukundh and Juan are currently learning how to use Autodesk and Eagle to help with PCB Fabrication, and they have also gone over their circuits to check for any theoretical flaws they were able to identify. We have moved our schedule around and worked on future tasks to help keep us somewhat on track.

We decided to get rid of an Arduino Uno, and instead just use an 8-channel ADC, as we realized that this was a cheaper option and did exactly what an Arduino Uno would do. This helps us use our budget for other purposes and be economically wise.

As highlighted in our individual Status Reports, for this week, we have identified some technical challenges which we would haveto overcome. For instance, Juan and Mukundh are learning how to use AutoDesk and Eagle, Edison and Mukundh are learning how to use an RPI as this is their first time using it, and also how to connect the RPito a web app and to the Physical Board.

Below is our updated gantt chart which takes into consideration the delays we’ve experienced with the delivery of our sensors. Due to these set backs, we’ve had to readjust the dates for sensor testing, as well as PCB fabrication – since our PCB will be based on the results of our testing.

Schedule