Month: November 2022

Patrick’s Status Report for 11/19

This week I wanted to test my firmware on the RPi. Unfortunately, we discovered that the library I had used to write the RPi SPI and GPIO transactions, WiringPi, is no longer supported and we could not download it onto the RPi. I had to find other libraries – spidev for the SPI transactions and pigpio for the GPIO control.

Therefore, I rewrote the firmware to utilize these libraries. The new libraries are not as straightforward to use as WiringPi was, but I am confident that I understand them now and will be able to get the firmware working all the same. I also ordered some cables for the Pi that I didn’t have, so I can test the firmware with my Pi next week while we’re on break.

The lack of progress this week sets me a bit further behind schedule. That said, I will be staying in Pittsburgh over Thanksgiving break and will have some time to dedicate to getting this back on track. This combined with the slack time we have makes me still confident that we will finish on schedule.

Team Status Report 11/19

This week in class was spent printing out the acrylic for the top of the chess board. After spending some time working on the acrylic, we now have a completed hardware device!

That means the rest of the work is divided into Patrick’s and Ryan’s sections where our team is working on brushing up the software. Our last piece of software before we finish is to connect the Raspberry Pi to everything else and send data on the moves that are being played to the user account. Currently, Patrick is finishing up the code to map each move, and Ryan is working on a new setup (an alternative to the REST API) that can more efficiently send moves!

We are currently a little behind of where we wanted to be, but should have plenty of time to catch up over Thanksgiving break!

Vikram’s Status Report for 11/19

This week, I worked on finishing up the mechanical parts of the board. I laser cut some acrylic and engraved it with a chess board pattern that matches out sensor layout on the PCB. Also as part of the board mechanical work, I modeled a very simple magnet holder for the bottom of the pieces.

As part of testing, I tried to quantify the power use of the board. We know the rough power usage of the Raspberry Pi, so in order to verify that our battery capacity is long enough for 10 hours of use, we needed to know the power use of all components aside from the Pi. To last 10 hours, the entire system will need a little over 10.5 Ah of capacity. Our board can fit up to 24 Ah of batteries, so we have more than enough battery capacity.

Progress is still a bit behind in terms of the testing plan, but some tests like accuracy and power have been done. Many of the other tests rely on software integration with the firmware, and since these aspects of the project are behind, the testing is also behind. We will be using our slack time in the next week or two to finalize everything. We also will parallelize as much as possible.

For the next week, I hope to have all the piece and magnet assemblies done as well as have the acrylic attached to the board.

Ryan’s Status Report 11/19

This week I prioritized working on using the Raspberry Pi to communicate with the website. While originally I planned to use a REST API to have the Pi communicate with the board, I found that the optimal solution was to create two sets of user accounts on the website. The first set of user accounts would be regular user accounts, and the second set of user accounts would be “Pi” accounts, with each Pi account uniquely corresponding to a board. From that, the user accounts can register a Pi account to tie their board to their user account. Finally, this setup will allow the pi to connect with the user account (and therefore can send moves to the website).

All in all, we are a little bit behind where wanted to be this week, but Thanksgiving break will give us ample opportunity to catch up!

Ryan’s Status Report 11/12

This week I focused on working on a HTML and CSS scheme to make my website more pleasing to look at. While I acknowledge that this part of the project is not that important functionally, it is important from the point of view of the demo and the presentation. It is important that the project looks as polished as it is functionally sound. Other than that, I will work on matching up with Patrick to complete some Pi work next week.

While we are slightly behind on testing, this is nothing to be worried about as we can quickly catch up on this work next week!

Team Status Report for 11/12

This week, we had the interim demo. Vikram and Patrick were able to show off the sensing functionality of the board and firmware, and demonstrated that it can accurately detect the presence of a white piece, black piece, or no piece on each square. Ryan demo’d the account creation, game creation, and game PGN export features of the website.

The upcoming weeks will involve integration with the RPi and the machining of the final board surface and pieces. Our largest risk is that the remaining integration takes longer than anticipated. We are almost a week behind our initial schedule, which leaves us with one week of slack time remaining. We will be making up some time by running some hardware tests in parallel with integration work. As long as integration is not extremely difficult, we should get it done with time remaining for user testing.

We are not making any changes to our requirements or our design this week.

Patrick’s Status Report for 11/12

We had the interim demos this week, which went well. We were able to get the firmware and board working perfectly, so our sensor demo functioned exactly as planned.

Once the firmware was working on the Arduino, I translated into the c++ that will eventually run on the RPi. This was not too difficult, due to the RPi SPI interface using the WiringPi library being quite similar to Arduino. However, there were some differences that I had to be sure I understood. I also took the opportunity to slightly rearrange the sensor read order – the Arduino firmware writes the sensor data into an array column by column, while the sensors are read row by row, which was confusing and a bit inefficient. The new c++ firmware is easier to read as a result. I was also able to finish implementing the output state logic for the legality check using the GPIO functions of the WiringPi library. The large remaining concern here is that my programs still have to be tested on the RPi itself.

I plan on testing my code on the RPi next week. Again, working on firmware integration took longer than expected, so I am about a week behind schedule. I will aim to get the code functioning so that user testing and remaining hardware testing can begin the week of 11/21.

Vikram’s Status Report for 11/12

This week, we continued preparing for the interim demo. This included preparing some chess pieces for the board to validate piece detection. After the demo, I worked on preparing the acrylic board top by purchasing new acrylic and starting the design to be engraved on the panel. I also looked into buying a new set of chess pieces that allow a magnet to be more easily inserted into the base.

Progress for the hardware validation and testing with a microcontroller is on schedule in that this section of the project is complete and the system has passed our accuracy tests for piece detection. The overall progress for testing and integrating the hardware through to the website and testing the full-scale project is in progress, but about a week behind. To remedy this we will be trying to integrate performance tests during the integration. The latency and power use metrics can be done during this process. We also have two weeks of slack time to work with if necessary.

For the next week, I hope to have all the pieces ready to go with magnets in them as well as to have the acrylic top engraved.

Patrick’s Status Report for 11/5

This week, we decided on our goals for the upcoming design demo on Monday. Our goal for the hardware/firmware side is to be able to read the sensors on the chess board, accurately identify the state of each square (White/Black/No piece), and represent the board graphically (with ascii).

To that end, I spent all of my time this week working with Vikram to get the firmware working and debug the board and code. There were numerous problems that we had to fix, including incorrect SPI usage, a mismatch of the rows and columns in my code, poor connections on the board and more. All in all, we have the board almost entirely working, with just one remaining issue with a piece on square being read as being on two squares. We will tackle this issue tomorrow and hope to have the sensor reading perfect by Monday.

This integration and debugging work took longer than expected, and as a result I was unable to sort out the software interface with Ryan. This goal will be pushed back to next week. I am not concerned by this delay, because it is a lower priority aspect of the project (not needed for the demo) and we have plenty of slack time scheduled.

Team Status Report for 11/5

This week, we spent the entire time preparing the hardware, firmware, and website for the interim demo.

The most significant risks to the project as of now are that integration takes too long and that we cannot meet a certain goal we set for ourselves. The issue of time is managed by the fact that we have two weeks of planned slack time. We also can run tests like power consumption while the board is not perfectly accurate.

As of now, no changes have been made to our requirements, our design, or our schedule. If we experience a few days of delay in progress, then we will likely end up using some of our two weeks of slack time.

Below is a picture of the computer correctly seeing pieces on the board (N is no piece, B is a black piece, and W is a white piece).