Group Weekly Update (week 3)

One of our top risks right now is the functionality of the hall effect sensors.  They arrived this week and Austin will be running tests with them tomorrow.  He discovered that he may have made a miscalculation in regards to the magnet strengths, so there is a slightly higher risk going into the testing that we might have to redo the squares.  He went back and did some more calculations to determine the next best magnets to get if the ones we got don’t seem to work.  In addition, we have begun to explore the possibility of keeping track of pieces in the software, based on the assumption that the users set up the board correctly at the beginning of each game.  Because this would greatly affect the complexity of the project, we are currently considering it as a viable back-up if the sensors struggle to differentiate between the different pieces, and will have a further update on this next week.

Currently the FPGA work is on the backburner. David will focus most of his attention towards getting the basic board up and running asap. The stockfish integration is still being hashed out, so depending on these next couple of weeks, we’ll have a better idea if its a feasible goal. The evaluate function of stockfish is the most computationally expensive in terms of CPU time, so that would be the first place to start accelerating stockfish specifically. This is a place that other accelerator’s have neglected, so it would be a relatively novel implementation.

Since we ended up reversing much of the changes we discussed last week, we are back to looking towards a very similar schedule to what we originally discussed, and are planning on sticking to the schedule that is on our presentation.

Austin Milford-Rosales (amilford) weekly update

Status Report

Austin Milford-Rosales

 

My primary goal at the front end of this week was to finish the hardware sections of the slides and effectively communicate that knowledge to Chris (our presenter) to make sure that the presentation came out well.  After starting work on them last Saturday, I continued on Sunday, making the block diagram in powerpoint (since my hand drawings are pretty bad and revising slides to communicate our goals more effectively.

In addition, we spent a fair amount of time working on finishing the definition of our project.  The previous week, Professor Mai had suggested adding in some FPGA acceleration of portions of a chess AI.  We held a prolonged team meeting sunday before we did our final edit run of the slides to determine the feasibility of that addition, and ended up deciding against implementing any FPGA component in the project.

After our presentations, I began doing some work on the design document, and reviewing some of my previous calculations.  Our first parts arrived, and I have laid out the kinds of tests I want to conduct with the hall effect sensors and began gathering materials (acrylic and wood of various thicknesses) to use when testing the parts.  In addition, I found a physics major friend of mine before the parts had arrived and went over my calculations with him, and I found a slight error. Although the magnets we purchased will work, they will only be able to create fields within half of the range that the sensors can detect.  If the sensors are not very precise, then this will cause additional problems, and we will have to order another round of magnets to test before getting all the pieces. I hope to have that determined by Sunday evening.

In addition, after our presentation, another member of the class approached us and mentioned he’d worked on a similar project for another class, and that he only detected the presence of pieces, but not which kinds of pieces were on which squares.  He then had the users affirm that the starting game state was accurate, and kept track of all piece placements in software. We are currently debating whether or not to switch to this approach in our group, and although it would make things much easier, I am a bit concerned it would decrease the complexity of the project a bit too much.  My ability to get the magnet sensors working appropriately over the next week will definitely play a role in our whether or not we switch our approach to this aspect of the project.

Austin Milford-Rosales (amilford) weekly update 2/23/2019

My primary goal this week was to figure out what I need to build one magnet detection square.  In order to accomplish this, I first had to revisit physics 2 to relearn how magnetic fields work and are measured.  After doing this, I took into consideration the magnitude of fields that our hall effect sensors will be able to detect, and came up with what seemed like a reasonable board thickness (since our sensors will be under the board, and the pieces will be above the board).  These numbers were a range of -45 to 45 mT and a thickness of 1/8 inches. With these in hand, I settled on a set of N42 magnets with a disc diameter of 1 inch and a thickness of 1/16 inches. Their measured surface field was 819 Gauss, and one Tesla is equivalent to 10,000 Gauss.  As distance r increases, magnetic field decreases with respect to 1/r. Since the surface field is assuming a point in the center of the magnet, the surface field is at a distance of 1/32 inches, and our board will be 4 times as thick, so it will be ¼ the strength on the other side.  As a result, this magnet should be detectable at 20 mT by the detector if it is flush against the board. I plan on using thin spacers to elevate magnets higher to change the field for different pieces. I placed an order for the appropriate magnets and sensors, and hope to settle on a spacing system next week and also determine any changes that must be made based on differences between my readings/calculations and how the sensors and magnets actually end up working.

In addition to this, I started my basic circuit design.  I have already designed a testing circuit I can use with my arduino, since the actual raspberry pi and ADC will be arriving later than the sensor and magnets.  Conveniently, the input voltage can range pretty significantly, so for testing purposes a single sensor can be powered straight from the arduino. I also spent time researching analog multiplexers to use for each row.  Our plan is to have an 8-input ADC that receives input from 8 8-to-1 muxes, which will receive input from the 8 squares on each row. I found one that looks like it should suit our purposes. The CD74HC4051-EP is an 8-to-1 digitally controlled analog multiplexer, so it will be easy to send lines from one pin on the raspberry pi to all the multiplexers and then sweep the 8 inputs to the ADC.  I am behind right now, but am bottlenecked by not having parts to run tests with yet. I hope to drop a lot of hours into testing after the presentations next week to try and catch myself back up in time to have a form of functioning square before leaving for spring break.