AI-Powered Adventure Text Game
Hardware- 19 Devlogs
- 25 Total hours
GAH DAMN MY PCB IS WORKING!!! Timelapse below!
I spent the last few hours carefully soldering my new PCB. I decided to use 0805 for all smd component cuz in my last project, I used 0603 ones and it was PURE TORTURE to solder them all lol. lessen learnt!
Overall, I absolutely love the pcb outcome its nicer than I expected especially the ws2812b led and all those smd resistor (they look so sci-fi xD).
However there was one flaw, I forgot about the ESP32 antenna. I’m forced to awkwardly fit the antenna on the pcb back (right beside my Great Wave silkscreen print). Luckily it didn’t block it lol. This is something I needa keep in mind the next time!
You might be wondering what’s that tiny pin header I used there. It’s just a pin header, but for the design, I wanted it to be ultra slim, so I designed a PCB sandwich layout. The battery fits perfectly between the e-paper pcb and my pcb. However the problem with normal pin headers is that they are super chunky, they have like 9mm gap. That instantly ruin the whole vibe…
So after hours of digging in aliexpress, I found those low profile pin header. They are SUPER PERFECT for my project (6mm gap), which is exactly my battery thickness!!! Anyways the low profile pin header was NOT CHEAP at all… well at least its so worth it.
Other than soldering the PCB, I did a few adjustment to the firmware, including: rotary encoder logic improvement - I used interrupt pin logic to read it, they place the rotary encoder at the toppest priority (if theres any changes in pin state, the esp32 instantly ignore everything and focus on the encoder).
That’s all for now, stay tuned! its so fun
Today I worked on a WiFi prompt to let user choose whether they want to connect to a different wifi or existing one, because this device is supposed to be portable, working anywhere, so this is very important. However, I’m still figuring out how to show the WiFi name… wm.getWiFiSSID() didn’t work though.
Btw, all my hardware had already arrived just now!! (after slow ahh aliexpress) I can’t wait to solder them, so stay tuned lol XD
In the last few days, I made a few changes to my project:
What’s next?
After the text formatting is stable, i’ll be focusing on text generation and choice logic!! xD
Added automatic text wrapping, improved code logic and added low battery screen
Sent PCB design to JLCPCB for manufacturing (the silkscreen boutta look fire!!)
Finalised PCB schematics and tested with breadboard. PCB is ready to be manufactured!!
Added WS2812B Neopixel on the PCB and rerouted PCB
Finalised schematics circuit, now starting PCB layout!!
Updated UI interface to fit longer question and answer
Designed first schematics for custom PCB
Added ADC reading from battery pin to calculate percentage
I implemented random seed for Gemini and reinforced the prompt because the AI keep generating the same question and answer over and over again
Finally implemented Gemini 3.1 Flash Lite into my e-paper ai quiz! Took a long long time debugging errors. Next I’m gonna optimise the ui
Removed variable dummy placeholder to prepare for API implementation. Also fixed navigation bug when switching pages.
Added hourglass loading screen and improved code logic
Implemented full quiz logic in Arduino IDE (Gemini API yet to do)
Added logic pages system using partial refresh in Arduino IDE
Initialise e-paper screen and wifi in Arduino IDE
UI Design for quiz interface