February, 2026 Hello friends! It's been a really busy term so far for this project. If you haven't caught up on it yet, check out what we did for our first term: [[TTRPG Table - Junior Project - Fall Term]] We hit the ground running on both software and hardware, since we need the bulk of the table built by mid-march, with Spring term left for minor bug fixes and time to prep for conventions. # Custom PCB The first big part of my work for the project was designing a custom PCB for the hexes, which hold the ESP8266s, LEDs, and Servo motors. I got the schematic fleshed out a bit more since we had made the first prototype with breadboards, and whipped up the first rev of the PCB in KiCAD: ![[image-21.png]] I had initially designed the LEDs to be triggered through some 2n3904 transistors, but I didn't like that there was a potential for really high unregulated current draw, so I took to the web and found some LED drivers. I ended up going with `BCR421UW6` model which I found on Digikey. I ordered my parts and first rev of PCBs from OSHPark, and soldered them all nicely together once they arrived. And then they didn't turn on. # Here comes the debug Honestly I really love root cause debug, so as dramatic as I am while writing this, I had a blast figuring out what was wrong. First I detected that some of the LEDs were shorted since I added way too much solder paste, so I went ahead and fixed that. Once that was fixed, I verified that my enable voltages were getting from the ESP8266 to the enable pin on the LED driver. ![[image-22.png]] I noticed that the voltage was really low at the LED driver enable pin, then realized that I had left my current-limiting resistors for the original design with the 2n3904s in there (which were not needed anymore) so I took them out and solder-bridged the pads. Measuring again after that I verified that we were getting the right voltage expected (3.3V rather than 1.2V)! But the LEDs still weren't turning on 🤔 After some more digging, I was poking around with my multimeter and realized that when I shorted the enable pins to one of the output pins, the LEDs turned on. This was where I made some wrong assumptions and screwed some stuff up. I assumed that I had designed the schematic wrong, having tied the 5V to one side of the LEDs and the output of the LED driver to the other side. Turns out this was actually correct (and I had soldered my LEDs backwards lol), but I went down a bit of an unfortunate rabbit hole. I tried cutting the 5V traces to the one side of the LED and replacing them with ground, then feeding the LED driver with a 5V input instead of the 3.3V from the esp8266. This *did* work, which it really shouldn't have, because I fundamentally was misunderstanding how the LED driver worked in the first place. With that bad knowledge I went and redesigned my PCB with rev 2 and ordered it. That night I was laying in bed wondering why I had put the 5V rail on the one side of the LEDs in the first place if the LED driver was supposed to supply the power. # My mistake That's when I pulled up the datasheet with my husband and realized that I totally misunderstood the schematic that it had shown. ![[image-23.png]] The LED driver is supposed to be a regulated *out*, as in, *out from the LED*. between the cathode and ground. I had originally assumed it went between 5V and the LED input, which was incorrect. Once I realized this, I went back to my first PCB design and just reversed the LED polarity, discovering that my whole problem all along was soldering my LEDs backwards. ![[image-25.png|596x487]] Sheesh. But look at how pretty it is now! Once I discovered that I could get the other PCBs I had to easily work without cutting traces, I built up the other ones so I could test my pogo connector design. The idea is that pogo connectors will magnetize the entirety of the hexes all together, distributing power without needing any wires. ![[image-26.png|507x568]] And on the first try it worked great! I had two sets of code running on the ESP32s separately (different colors and levels of brightness), and as soon as I let the pogo connector magnetize and connect, it booted the next hex up right away and set the LED color which was super exciting. # Learning experience All of that was a big learning experience. In my rev 3 of the PCB, I went back to my original design and only made a few design tweaks for parts placement and routing, like making the LED package a bit bigger so shorting was less of an issue, and tweaking the pogo connector placement for better alignment. My team members have been busy as well, one of them is working on the servo code and building the physical table that the hexes will sit in, and the other is writing the Dungeon Master GUI for the touchscreen. The next biggest things we have to work on are having the raspberry pi talk to multiple hexes in a row: we've got it successfully talking to one or two at a time, so now it's time to scale. We're rewriting some of the code to make it faster and more responsive as well, which is taking a bit of time. But we'll get there! ## Biggest problems so far The biggest issues we've had so far is mostly funding, as we haven't gotten any funding from the college yet for the project. We reached out to a few game companies to see if they would sponsor it but to no avail, so a lot of the parts have come out of our personal funds so far. Hopefully that won't be the case for the rest of the project, but we will have to see! --- # Winter term - Post finals update Hello friends! The above info was a project update fairly early in the term, I'm writing this section now in mid March now that the term is over. Once I had the PCB design validated, I was finally able to order the finalized versions and start working on testing more of the power delivery and 3D printed cases. ![[image-30.png|575]] I was a doofus and forgot to run a design check on my PCBs after fixing the issues I had mentioned earlier in the term, so there was still one trace that was shorted, but thankfully an easy fix with an x-acto knife. The next biggest issue we ran into was simply scaling up the project build--we had received all of our parts except the pogo connectors. Due to a commitment we had made to demo our project at a convention near the end of the term, we had to order a lot of them from Amazon (which was very expensive). I tried ordering our bulk order from China as soon as I had some funds available, but I completely forgot about the Chinese Lunar New Year and they wouldn't ship our package out until after the 2-week holiday. Although it was distressing, we turned our attention to making what we had work and building up what we could for the official demo! ![[image-31.png|545]] In the above photo you can see our first iteration of the case bottom, which supported the PCB and pogo connectors. At this point, my teammate had done a ton of work to fix some latency issues we were having in the code process, and was able to update the code to be a lot faster for addressing each individual hex. Another teammate had also started work on implementing the servo code, which is still in progress. We had built functionality into the code to see and address multiple hex tiles at once, giving us the ability to address each one individually! We got the frame of our table cut and engraved (there will be more underneath to hold the hexes at a certain level), with the aim that we'll keep building up all the PCBs to be able to fill the whole table up by the end of spring term. ![[image-32.png|541]] This image below comes from the day before our project demo at the convention--we had (of course) *finally* received the pogo connector shipment from china that afternoon, so I was scrambling to solder all of them together so we had as many hex tiles as possible! The case tops also turned out really well, I think. ![[image-33.png|578]] Unfortunately you can also see the ESP8266s through the top of the translucent case lol, so I'll be soldering those upside down such that they're on the bottom side of the PCB instead of the top, and it won't interfere with the LED display. ![[image-34.png]] This was part of our table at the demo, in which we had some hex tiles out for display, some of the 3D printed caps, and of course the main touchscreen + the working hexes themselves. Everything performed great for the demonstration, and we got tons of feedback from people who loved DnD that it was a super neat idea to make a modular map! All in all we did a *ton* of work this term to get the beta prototype of our project mostly done, and we've got a good list of things to tidy up for our next and final term. My main goals will be to finish assembling the rest of the tiles (~52, I think), finalizing the servo mounting setup, and helping to implement some more features on the GUI. Until next time! ~thallia