WR#3 - Rediscovering Joy in Engineering
This article reflects on my life from the week of
07-15-2024
to07-21-2024
.
I’ve been slowly improving my study habits this week. I also started CS50 to refresh my knowledge of C, which I realized I had forgotten after taking my last C course, CPSC 259, a year ago. Once I finish the course, I should grind some LeetCode to better prepare for interviews.
Finding Joy in Engineering Again
Second year of engineering was a challenging period. Despite cool projects such as the FPGA RISC Machine, Reflow Oven Controller, and Remote-Controlled Robot, the experience felt rushed and lacked the joy I once associated with engineering. Long lab hours and unending assignments made it a tough year overall.
The turning point came this week with my involvements in UBC Rocket. Successfully setting up Wi-Fi communication for the Thrust Vector Rocket brought back the excitement I had been missing. The sense of accomplishment when establishing a working connection was exhilarating, especially after analyzing the network protocol like a spy beforehand. Moving forward, I aim to seek out and cherish more of these fulfilling moments.
UBC Rocket
UBC Rocket is an engineering student design team at the University of British Columbia dedicated to the design, manufacture, and launch of suborbital rockets. I’m currently contributing to the Thrust Vector Rocket, our self-landing rocket project.
We are still waiting for the new ESC installation to start tuning the PID. In the meantime, I established Wi-Fi communications between the rocket and my laptop using a custom-made ESP-12F I had at home.
Wi-Fi Station Communication
It turns out the custom-made ESP-12F is designed for children aged 3-12 in China and is highly specialized, connecting only to a dedicated Android app and WeChat, with limited customization. It is also impossible to code the ESP-12F since it is soldered onto a custom PCB board. I managed to establish communication with the Android app using a MacBook android simulator, but the app itself is again very basic and lacks customization.
I considered giving up and buying a cheap Bluetooth Low Energy module instead (which we might do next year), but I decided to try reverse engineer the communication protocol between the ESP-12F and the Android app first by listening to their communication using a network analyzer tool like Wireshark.
Of course I had to first spend a day learning network concepts (this website was particularly helpful), but in the end I managed to reverse-engineer the communication protocol and incorporated it into the code.
Python Code Snippet
1 |
|
I also created a neat GUI with tkinter
, allowing us to remotely control the rocket with style 😎:
However, it is still impossible to send sensor data back from the rocket through the ESP-12F since I cannot code it. I am essentially mimicking the Android app. This functionality is sufficient for the Launch Canada Competition in a month, where we are showcasing the hover ability of our Thrust Vector Rocket instead of flying it. We will likely switch to a Bluetooth/radio module or an actual ESP-12F next year.
Baidu Netdisk Rant
I tried to download a data sheet for the custom ESP-12F, which was stored on Baidu Netdisk, the Chinese equivalent of Google Drive. The experience was terrible.
Instead of downloading from browser, a desktop app is required, which opens with unavoidable 5-second ads, is bloated with random functions, and has an incredibly slow download speed despite having great Wi-Fi connection. Consistently getting sub 150 KB/s in 2024 is absurd. It took a day to download 4 GB. (I later found out you need to buy VIP to unlock high speed download.)
This app is so poorly designed and frustrating no wonder it has a 1.2-star rating on the MacBook App Store.
The “datasheet” turned out to be 4 GB of an Android app APK and a 720p video explaining the product, with no actual data sheet. This experience, along with the terrible documentation I encountered for the JP Hobby ESC, emphasized the importance of providing detailed documentation to consumers. I vow to provide such for my future products to avoid such frustrations.
First Time going to the Casino
My friends recently all started going to the casino to play poker for some reason. I decided to tag along one night to see what’s up. I ended up losing $50 while a friend lost $150. The only person who made a profit (+$72) had lost $100 the previous day, so it doesn’t even count. What was alarming was that my first thought after losing $50 (despite having no job) was to watch poker videos to comeback and play again. Thankfully, once I got home and my adrenaline lowered, I realized how dangerous this mentality was and decided to avoid the casino in the future. (My friends went back the next day; they desperately need help 🙏)
Hitting Silver in League
Besides the degen casino trip, I also managed to climb to Silver this week in League of Legends! (I uninstalled the same day, too many brain rot activities, I am pretty satisfied with silver)