Alexis’s Status Report 4/19

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week I worked on laser cutting the grid, making 3D printed holders for the pogo pins on the grid, assembling, integration of our final product, verification testing and user testing. For the grid I was able to cut all the pieces out and wood glue it together, letting it set for 24 hours before we started playing around with it. Before that I had used scrap cardboard to ensure that everything would fit together and that it was an appropriate height. I found that I didn’t add enough tolerance and therefore had to modify some dimensions. I also initially had engravings to make way for the wires but it did not cut deep enough and took too long to do the engravings so we ended up laying out the wires in the back nicely and taping it down. I also printed out the holders for the pogo pins which helped to align it to its position on the grid ensuring that each pin was straight and flush to the board. These proved to be super helpful when installing the pogo pins and minimized variability in its positioning. I also added standoffs as I realized there would be some wiring on the back side that I didn’t want to get squished when laying flat on the table. I then worked on integrating with the soldered perf board and solidifying all our connections: removing jumpers when possible, soldering the joints and heat shrinking it to provide insulation. There was quite a lot of debugging and retesting connections as it got jumbled while migrating the test board to the grid, however we were successfully able to finish and start testing. I also discovered that there may be manufacturing defects with some of our pogo pins as there are times when the male pogo pins don’t come to the same height and one is sunked down (look here for reference) which may also attribute to some loose connections and why we may have troubles receiving ACKs sometimes. As for verification and testing I worked on uploading 16 different words to each block and at different positions. The way I did this was first starting out with block 1 on position 0, block 2 on position 1 and so on. I then wrote some code to recording the start and end of uploading a word associated with a particular position. I noted all the times and shifted all the blocks down by one so that now I had block 16 on position 0, block 1 on position 1 and so on. I continued this for 16 times and was able to see satisfying results with around 200 ms on average to upload varying lengths of words. I also conducted user tests where we set up the user to play NYT Connections and then Connexus and take a survey. I recruited about 5 people for user testing. I also made sure to weigh and check the size of the block which we found that the weight was 181g and so far everything is meeting our original design requirements. I also am working on graphs for displaying testing metrics for the final presentation.

Look here for more photos and videos!

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

My progress is now on schedule as I have finished the grid and integrating everything. The only thing that is left is more user testing.

What deliverables do you hope to complete in the next week?

More user testing and possibly making minor cosmetic changes. I will also be starting on the poster and looking at comments for the final report.

As you’ve designed, implemented and debugged your project, what new tools or new knowledge did you find it necessary to learn to be able to accomplish these tasks? What learning strategies did you use to acquire this new knowledge?

The new knowledge I have acquired is all the mechanical knowledge such as using the Epilog laser cutters and using Solid works to get the correct dxf files. I also learned that a lot of my designs were a bit of trial and error, I tried to use scrap material where I could to practice and then moved onto our actual product, but you can see that hear and there some of the mess-ups I had along the way, but once I got the hang of it everything became really easy. I also learned more about micropython and creating a protocol for the picos to communicate with the RPi. I enjoyed making a class abstraction to better structure my code so that it was easy for integration. I also became a lot more comfortable at soldering as repeating the same actions while scaling became a routine for me. I also learned how challenging it can be to scale as now there are so many moving parts and variability in places you didn’t know existed, but I think that my team and I came up with a good plan and we have been executing it well to ensure organization such as labeling the blocks and modularizing testing to ensure connectivity and functionality.

Alexis’s Status Report for 4/12

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

I have been working on assembly for the 8 additional blocks that we had, mostly laser cutting, hot gluing, spraying the blocks, and soldering all the pogo pins with the 6 pin header since these pogo pins were surface mounts. I also helped Nicole to create a 2nd test bed and created a “bridge wire” from the main board to the mini-breadboard of the second testbed so that we can daisy chain and get the wires we needed from the RPi5. I also worked on planning out how we would cut out all of our wood to assemble the grid with a CAD and researched into how another team was incorporating their pogo pins into their design. I came up with a new 3D printed pogo pin holder to ensure that the pogo pins are placed onto the grid in an organized and systematic way so that we can easily assemble the grid without variability. I did box joints for the grid so that we can apply wood glue to hold it in place and I also made the cut outs for the button and the LCDs. I made some design changes which was to reduce the spacing between rows and move the row LCDs to the right side of the board above the buttons. I also helped come up with some trade-off studies to prove our design choices as well as created a survey that we will ask users to fill out during user testing.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I am currently slightly behind schedule as I was supposed to finish the grid but we expanded to 16 blocks and I also had to come up with a solution for the pogo pins. Since I have the files now I will be doing an initial cardboard cut out to confirm the design and then I’ll be able to assemble the grid itself.

What deliverables do you hope to complete in the next week?

I will have the grid assembled, help debug the 16 block set up, and complete the user testing / verification tests that I have for the parts that I am responsible.

Verification Testing

I will be performing the battery life endurance test which we have already been doing informally and the blocks’ batteries have been able to last for weeks with several days of 2 – 4 hours of being on while we are testing. I will also be working on the trade-off tests for checking different delay times for the upload_words function as well as experimenting with different UART baud rates to show how we came to the decision to use certain specs. The blocks were my subsystems that I am responsible for and I will be weighing and measuring each block to ensure that it meets the requirements of being <4"x4"x4" and <400g. We purchased blocks that were already 3.3"x3.3"x3.3" so the measurements are already satisfied and I will just need a scale for measure but I also did this informally and it seems to meet this requirement. I will also be working on UART Send & Receive to test how 10 words are sent from RPi5 and using the time module we will collect data on the latency it takes from the upload word query to receiving an ACK on RPi 5 side. This will be performed on all of the blocks. In addition I will my other teammates by writing any scripts that help us collect our data and I will be recruiting people to take part in our user study as well as come up with more questions that would allow us to show how Connexus compares to NYT Connections.

Alexis’s Status Report for 3/29

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week I worked on integration test, error handling on the pico, font size changes, and on spraying the blocks. I was integration testing the website and grid with Nicole and we discovered an edge case where the web app seemed to have errored out while attempting to retrieve a definition for a word that does not exist in the Merriam Webster API. This sparked a move towards doing error handling across the board as we found some additional bugs during our Wednesday meeting with Professor Mukherjee and our TA Ankit. We discovered that there was an issue while the RPi 5 was uploading the words to the blocks and if any of the blocks are moved out of their position slightly during that transmission, there seems to be an bug where the buffer seems to append on the word retrieval during the upload and ACK phase which causes part of our command that we received from the RPi 5 to be displayed on the LCD and appended to the current word itself. I worked on doing error handling in regards to making the queries have a more strict format and dynamically removing any bad data we receive during a transmission from Rpi 5. This created a more robust system for us and handles potential edge cases where we receive bad data and shouldn’t be displaying it on the LCD. In addition, I added dynamic font size changes where words that have a length greater than 9 will decrease a font size down and then greater than 14 will decrease another font size down. This handles another edge case for lengthy words. In regards to the blocks I worked on spraying those with a frosted coat to cover the circuitry and they look great.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I am currently slightly behind schedule as I need to assemble and cut the grid but we were discussing the best routes to help guide the alignment of the blocks to the pogo pins with the additional magnets that we purchased. I did purchase the wood that we need for the grid this week but I need to make the dxf files for laser cutting and assembling. I will be working on this tomorrow (Sunday) and will laser cut by Monday.

What deliverables do you hope to complete in the next week?

I will have the grid assembled by next week. We also are expanding to 16 blocks and so I will be working on manufacturing those: soldering battery holders to adapters, soldering pogo pins onto perf boards + soldering on the wires for those, soldering the double sided male/female header pins, laser cutting the blocks, and spraying them.

Alexis’s Status Report for 3/22

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week I worked on getting the upload 4 words to the row working and creating a test bed for a grid set up. While I was trying to get a row working I felt that our testing setup was inefficient and a bit messy so I decided to layout the initial grid. I worked on creating all the slots for the blocks and wiring everything up so that we can test code more easily and also show our proof of concept. Also I finished soldering the rest of the wires for another 5 sets of male (grid) pogo pins as well as 3 more female (block) pogo header pins. With this set up, it helped us to identify and create a testing plan as well so that we can figure out what components may not be working as intended. We found a few pogo pins that needed to be resoldered as well as some picos’ UART lines were broken and we had to switch to a different set. We ended up using UART0 on pins 16 and 17 and I worked on soldering on the female header pins and wiring those to female pogo pins, which allowed us to get a 2nd row of blocks working. I tested our embedded controller and ensured that we were able to get all 8 blocks working with our upload_words function. I also worked on filling out our testing sheet and testing components individually via continuity test to isolate any parts that need to be re-done. I originally had wanted to work on laser cutting and the 3D component holder this week but instead switched gears to the grid set up as I felt that was more of a priority for us to be able to reach our goals.

Please click below to see videos of the set up.
Pictures / Videos of Progress

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I am currently on schedule and a little bit ahead as I was able to get to the building of a prototype grid that is a good test bed to test/finish out the software side of our project.

What deliverables do you hope to complete in the next week?

I will print out the 3D component holder, laser cut the on/off switches, and work on thoroughly testing our code end to end (E2E).

Alexis’s Status Report for 3/15

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week I worked on laser cutting all 8 blocks for the ports that were needed. I decided not to do the on/off switch for the battery cut out yet because I wanted to design the CAD for the component holder first before deciding on where it would be as I wasn’t sure of the battery would be elevated or not. I learned and experimented with the Epilog laser cutters in Techspark as these had visual layovers to ensure the correct cutting position which would be more accurate than the rabbit laser cutters. I also had to try different power settings in order to find the right one for our thickness as well as what gave us the cleanest cuts. I found that for laser cutting the LCD on the lid 6% speed, 10% power, 70% frequency, and 2 repetitions gave me the best results. For the bottom ports (pogo and micro-C) a speed of 6%, 5% power, 70% frequency and 4 repetitions.

Aside from that I help to set up the circuitry for the remaining 4 slots and am working on integrating and testing. I am also investigating the connections between pico, LCD, UART, and GND since Wen Hui found some loose wires that tampered with the communication. I am working towards getting that full row set up.
CAD + Grid Pictures

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I am currently slightly behind schedule as we needed to get a full row working this week. I am working over the weekend to catch up so that we are back on track and will hopefully have the full row and submit button working by Sunday.

What deliverables do you hope to complete in the next week?

I will print out the 3D component holder, laser cut the on/off switches, finish a row that is fully implemented, and start working on the next row.

Alexis’s Status Report for 3/8

What did you personally accomplish this week on the project? Give files or photos that demonstrate your progress. Prove to the reader that you put sufficient effort into the project over the course of the week (12+ hours).

This week I help set up the infrastructure for 6 blocks where I soldered the battery case to the adapters and added on wires for GND, TX, and RX for the LCD to pogo pin. We received the rest of the items so I was able able to cut pref boards and solder all the pogo pin pairs onto their respective boards. In addition, I was able to laser cut the LCD opening at the top of the block as well as the pogo pin and USB-C charging port at the bottom. I first experimented with card board and did it on one block after creating the cuts on ink scape software that is compatible with the rabbit laser cutters in tech spark. From that experience I was able to extrapolate the best settings for the acrylic cubes that we had. For now based on how long it took to manufacture just a row of blocks I feel that a PCB is not needed at the moment and so I am focusing my efforts on other things such as CAD for the grid and for the holder of the components inside the block. On the software side, we discussed handshaking signals and functions that would be used / called between game controller and embedded controller to ensure that we are all on the same page as we are developing.

Is your progress on schedule or behind? If you are behind, what actions will be taken to catch up to the project schedule?

I am currently on schedule with my progress! There is an added need for a 3D printed holder of components in the blocks but that will be accounted for with the time that was originally allocated for the PCB constrution.

What deliverables do you hope to complete in the next week?

I hope to finish laser cutting the rest of the blocks this week, come up with a CAD for the holder of components inside each block, and I would establish a full working row with the submit button in conjunction.

Alexis’s Status Report for 2/22

What did you personally accomplish this week on the project? Give files or
photos that demonstrate your progress. Prove to the reader that you put sufficient
effort into the project over the course of the week (12+ hours).

This week I worked on the hardware, prototyping, and communications. I manually soldered the pogo pins onto cut pref boards as the pins were too small to fit on a standard bread board. This was done for just two blocks I then wanted to test the continuity of the pins and wires connected to it so at first I did a simple test with a multi-meter and later on I tested through the UART TX and RX line. I also created a cardboard 3″x3″x3″ with cutouts for the pogo pins, the standard LCD that we had available, and on/off switch for battery. From this cardboard prototype we were able to determine that all the parts we initially planned for would all fit. I also put together the power system and tested it by plugging the micro-usb b into the port of the Rpi to which it was able to turn on. With the initial layout going according to our original plan we felt that we could now order all the remaining parts to build all of the 8 blocks that we need for MVP. We bought acrylic boxes that are 3″x3″x3″ and we got a rough weight of what the blocks feel like and we are on track to meet our dimension and weight design requirements. On the software side, I was able to set up UART between Rpi and the Rpi pico via the pogo pin connection. I did a simple test of sending and receiving a message that is printed onto the console while Wen Hui added more logic to it for a proper protocol. Though I haven’t measured the exact latency we found that it was fairly fast and which I meets our design requirements as well. I am currently working on using the new LCD that we received from wave share on Friday and interfacing with the LCD library.

Is your progress on schedule or behind? If you are behind, what actions will be
taken to catch up to the project schedule?

My progress is on schedule. This week was a good determination of whether we needed the PCBs for the blocks and we settled on a plan that I would create a PCB that is on “hold”. After manually building 2 blocks and timing it, we will determine if we need to place the order for these or if we have enough time to just manufacture each ourselves. We will also look into PCB milling at Techspark. But as of right now we are on track!

What deliverables do you hope to complete in the next week?
The deliverables that I have for next week is to get a full E2E of 2 blocks communicating with the Rpi via the multiplexer and laser cut all of the blocks for the ports and slots that we need as well as the battery holders. It would be ideal to get 1 full row working as well. I will work on interfacing with the LCDs on each block and the design for the PCB. I will also produce a CAD for the grid and assemble it when we can ensure everything will fit based on the row we produce.

Alexis’s Status Report for 2/15

This week I worked on the Design Review Slides, making tables to compare the different communication protocols and microcontrollers that we looked at which ultimately helped us decide on what we wanted to move forward with. I also help to quantify our tests and draw connections to our requirements so that we can better measure our success. I also updated some of the diagrams in the solution approach and the power block diagram to reflect the components that we are going to be prototyping with. As for the Rpi, I helped Wen Hui boot up the OS and set up Real VNC viewer. Also, I made CAD models of our proposed block and planned where we will need to make cut outs for the ports and switch of the battery. I also helped order parts this week and acquire some scrap materials to help us make an initial prototype for next week. Also, I went to Techspark to solder jumper cables onto our battery holders, buttons, and header pins on row LCD to make prototyping easier.


My progress is slightly behind schedule according to our initial gantt chart because we need all the parts to come in before we decide if we actually need a PCB or not. For now I am just modeling where things will go and am planning out what the inside of the block will look like so that maybe we can just 3D print holders for all our components if a PCB is not necessary. I am shifting my focus into preparing as much parts as I can so that we could easily merge things together for prototyping a block.

My deliverables for next week is to create a mock on the block in its entirety with a plan for where each component will lie in the block. I also will work on establishing the UART protocol between the Rpi and Rpi pico as well as get the 2 row LCDs working so that we can display the proper category and flash it with a particular color. After getting all the parts I’ll also decide if a PCB is needed or not. If it is needed I will research the etching machines that are down in techspark for faster PCB development.

Alexis’ Status Report for 2/8

This week, I helped finalize several key aspects of our project. After researching LCD options, I identified models with integrated ESP32 (IC) that perfectly suit our needs and offer enhanced functionality. I contributed to developing the narrative for our project proposals and conducted comprehensive research on required components. We have decided to order the LCDs before the actual blocks and prototype with cardboard or similar so that we can determine the final dimensions after everything is put together. I made a trip to techspark to ask about the possibility of laser cutting slots in our pre-made acrylic blocks. I asked about the possibility of drilling too for more complex areas. We devised a plan to be able to do this without too much drilling. I also submitted a borrow request for the Raspberry Pi 5 and picked it up from the receiving office.

Additionally, I explored the possibility of implementing a rechargeable circuit system. The concept involved using a power path IC with a LiPo battery for power management, where the blocks would charge when connected to the grid and switch to battery power when disconnected, ensuring uninterrupted power supply. However, I ultimately decided against this approach as of right now due to the complexity of the circuitry and the time it would take to prototyping and testing. Given our timeline constraints and the need for reliable power delivery, I believe that sticking with a known, absolute power supply solution with the 9V batteries would be best and so I found all the necessary components to make this happen.

Diagram of Power on block

I am on schedule with all of my tasks. Next week I hope to finish selecting the LCD, order all of our preliminary parts, start a PCB (if we decide this is still necessary as this will depend on what LCD + MCU on the block we are getting), and finish the CAD of the blocks and grid maybe even create a mock model out of cardboard for our blocks and use an LCD I already have to get the rows working.