Month: October 2022

Team Status Report 10/29

This week Patrick spent time researching how to access data from the board (interfacing the board with the RPi), Vikram spent time soldering and checking that the components of the PCB board were as expected, and Ryan spent time fixing bugs on PGN export notation and setting a basic theme for the website. All in all, things are ready to be implemented and are on track for the end of the semester, but more readily, on track for the midsemester demo.

Patrick’s Status Report for 10/29

I spent this week working on the firmware, which will control the ADC and multiplexers on the board. I learned the basics of SPI, which is used to send/receive data with the ADC. I finished writing the control logic in the legality check program, and used a useful C++ library, wiringPi, to add in the controls for the SPI and GPIO pins on the Pi.

After writing most of that firmware, I realized that I don’t have a micro SD to load the program onto the RPi. I ordered one, but it won’t be here by monday to test with the actual board, so I am translating the program into an Arduino sketch. We can use this simple sketch program to ensure that the ADC, multiplexers, and sensors on the board are functioning as expected. Translating my C++ firmware into Arduino is fairly straightforward, as the wiringPi library was made to be similar to Arduino functions.

Overall I am on schedule, and next week I should be able to start working with Ryan on how to send moves from my program to his webapp/server.

Vikram’s Status Update for 10/29

This week, I finished designing and printing all of the threaded board standoffs and used them to assemble the full chess board from the 4 segments along with pieces of FR4. Once the board was fully assembled, we soldered all of the jumper resistors to make all the electrical connections between the 4 board segments. After doing this, I tested the sensor outputs to ensure all 64 sensors were making good contact with all pins. We also tested power regulation and the LED control.

Progress is still on schedule as we will begin the integration process between hardware and firmware this coming week in preparation for the interim demo.

In the next week, I hope to have the board in a state where the computer can sample a board state using all of the sensors. This means Patrick and I will need to work together on integrating the firmware with the ADC and multiplexers.

Ryan’s Status Report for 10/29

Coming back from fall break, I was able to work productively on sending PGN notation to chess.com. Since there was a bug that was found previously, most of this weeks work was focused on fixing the transportation of notation from the website to chess.com. Furthermore, I need to find a good way to ensure that the user has an account for chess.com logged in (and this way can ensure that we are not making unnecessary requests to chess.com). Other than that, I focused on applying a theme to the website, but need to come up with better design details in the coming weeks. Finally, I will focus on integrating my design with Patrick’s interface next week (and the coming weeks) to prepare for the demo on 11/7.

We are on track! I will not need additional time or help to finish my side of the project. Next week during class I will focus on soldering and working on the physical board with Vikram and Patrick!

Patrick’s Status Report for 10/22

During the week of 10/9 to 10/15, almost all of my work on the project was directed to the Design Review Report. It took several hours of writing and editing, and in the end I think we created a very thorough description of our design.

I have mostly used the week of fall break to relax, but I was able to spend some time researching and thinking about what I will do to implement the board’s firmware. The firmware will run on the RPi and communicate with the ADC over SPI and control the multiplexers with gpio logic signals. I have never used SPI before, so I read up on it a bit and found a C++ library that should make using it easier. I’m writing the firmware in C++ because I am already using it for the Legality Check software. I’ll hopefully be able to write the firmware next week and test it with the assembled board over next weekend.

All in all, I am on schedule and have no concerns at the moment.

Ryan’s Status Report for 10/22

This week was fall break, and no substantive work was completed during this week.

While this may sound disheartening to hear at first, I am still on track to complete my portion of the project at the designated deadlines. This is due to the fact that we had already planned for the time lost during fall break. My project still is on track to be completed well before the end of the end of the semester (official deadline at the end of the semester) and include two weeks for integrating my software with Patrick and Vikram’s code. In the coming week, I will demonstrate the ability of my software to receive arbitrary notation (currently from an input text file) and the ability of my software to send code to chess.com. Furthermore, my website now has the ability to individualize users (login and password).

Vikram’s Status Report for 10/22

In the past two weeks, I ordered and received the PCBs and all of the components. I have also assembled all of the board and done some initial hardware testing to make sure there are no shorts anywhere on the board. Other tests I have run so far are for the power regulation, user interface (buttons, LED control), and the sensors to ensure they are all functioning correctly. The remaining tests are to be done with the multiplexers and ADC using an Arduino or the Raspberry Pi.

The other main part I’ve worked on is the chess board mechanical tasks. I designed and 3D printed standoffs for the board. I also cut some FR4 scrap to glue on the PCBs for support when linking them together.

I am still on schedule since the board is nearly ready for the beginning of integration work with firmware and the bulk of the mechanical aspects of the board are done.

In the next week, I plan to finish the mechanical aspects of the project and begin testing of the multiplexer and ADC interface with firmware.

Team Status Report for 10/8

This week we had our design presentation. We received some interesting questions, fortunately none that made us seriously question our decisions. We look forward to receiving the peer review feedback.

We decided to increase the size of the squares on the board to 2 inches, to allow the battery holders to fit better on the underside of the PCBs. This size increase means the PCBs will cost an additional $30, which is not a concern as we are still safely under-budget. The pieces we sourced will be just a bit small for the board, which should be no problem. We also decided that our MVP will be simply detecting white or black pieces, as before. We will leave the ability to differentiate between knights, bishops, rooks and queens for pawn promotion as a stretch goal. For now, we will simply assume that all promotions are to queens (this will cover the vast majority of situations anyway). We also received feedback during the design presentation regarding ways to determine the identity of the promoted piece in software, which we are considering.

The biggest risks that our project faces are still part shipping time and part stock. We are managing these issues by doing schematics and picking parts early as well as by monitoring stock of any components that are low. We are also looking at alternative vendors that may have more stock. We should order the PCBs next week, and our contingency plan if they take a long time to arrive is to get a head start working on the physical board in the meantime. Another risk we identified previously is that something is done incorrectly on the circuit boards. We have been managing this risk, as Vikram shares his progress on the schematic and layout with Patrick and Ryan. We still believe we will have enough money left over to order a second revision if absolutely necessary, but the circuit boards themselves should have room to rework and modify the design.

There have been no changes to the schedule.

Patrick’s Status Report for 10/8

All the class time this week was spent on Design Report presentations. Outside of class, I continued to work on the legality check program. I incorporated the legal move generation from stockfish 11, and it can now generate a list of legal moves given a position, and check the legality of a new move using that list. It remembers the previous position and can be reset to it (for the case of an illegal move being played). Currently, it takes moves in ‘pure algebraic coordinate notation’ as input (e.g. a3a8, which represents a piece moving from square a3 to square a8). I started working on the function to translate the output of the sensors to this coordinate notation. Next week I should begin work on the firmware, interfacing with the sensors through the ADC and multiplexers, and finish up the translation of boards to coordinates. I have the skeleton written already for the state logic to control LEDs on the board based on whether a move was legal or illegal, but I have to incorporate the interactions with the RPi’s GPIO pins with those functions. Overall, I am on schedule and have no current concerns.

Vikram’s Status Report for 10/8

This week, after doing the design presentation, I spent nearly all my time working on the layout and routing for the PCB. Throughout this process, I had to do some reworking of the schematic, but this was relatively minor compared to the other board work. The board is completely routed and ready to order. I will be doing some final checks and will review the entire board with the rest of the group.

My progress is still on schedule, but the ordering and shipping time may cause the board to arrive later than expected. This means that I may not receive the board and BOM until fall break or at the beginning of the week after fall break. This can be mitigated by making the mechanical board this week and during fall break since I planned to do that after break.

For the next week, I hope to have most, if not all, of the mechanical aspects of the board finished. This includes 3D printed standoffs and the laser cut board top.