Status Update: October

Oct. 13, 2022

So, the 100 days to offload hasn’t worked out too well. I have a lot I want to say on this blog (not sure if anyone’s reading) but it takes a long time to sit down and write it. I’ll try to pick things up again, or maybe just continue posting now and then.

So what am I up to these days?

Having graduated high school, I am now a freshman at the University of Wisconsin, Madison, planning to double major in computer engineering and computer science. So far, I’m really liking it here! People are really nice, and the environment is really relaxing. So far the weather’s been good - but that will likely change in the coming months. The resources at UW Madison are also phenomenal.

I’m leaving AmadorUAVs, the autonomous drones club I co-founded and led as president, behind. As a first time competing high school in an international competition with a bunch of colleges and only 2 or 3 other high schools, we managed to score 2nd place (out of 71) total. I’m still in shock on how that happened, but I guess the past four years of work (and lots of it) paid off. Winning this competition has also given our club some recognition back home and has attracted more members and sponsors. I wish Dylan, Kush, Aditi, Aayush, Olivia, and the rest of the team the best of luck moving forward. And for me, its time to find something else to keep me busy.

Existing projects that I will continue to work on include Project Mikro, an attempt to make a very low cost, open hardware and open source software drone. Unlike your average cheap COTS toy drone, use of open hardware, the open source PX4 autopilot, and a focus on modularity in the design will allow it to retain the control performance usually only seen on high end custom builds, including a solid extended kalman filter, dynamic notch filtering, position control, and autonomous flight (the last two are when the optional GPS is installed). Paired with a fresh suite of Invensense inertial measurement units, magnetometers, and barometers to replace the MPU6050 crap that’s so common in the hobby world, my friends and I think it will really work out well. I’ll write future articles on the specifics of the design. Currently, Vincent, Kai and I are working on the flight controller while a couple of other friends back home flesh out the frame and propulsion stack.

I’ve started a new project, picofusion. The goal here is to create a very small, embeddable PCB that functions as a high performance altitude and heading reference system. It will use the EKF code in PX4 to perform filtering and fusion of sensor data and publish it over UART, I2C/SPI, and CAN. It’s also embeddable, using castellated holes so we can solder it onto carrier boards to add AHRS functionality. And most importantly, it will be open hardware. More on this in the near future, as the supplies for assembling the first revision arrive this week!

On the educational side of things, I’m trying to continue to develop my knowledge in more low level/embedded topics. I want to continue learning more about operating systems, and maybe write a toy kernel to play with. I picked up Tanenbaum’s MINIX book, Operating Systems: Design and Implementation, at the library a couple weeks back. While it’s old, it should give me enough relevant knowledge for what I want to do. Besides, this is the book Linus Torvalds read while writing Linux :)

I also want to learn Verilog and HDLs (hardware description languages) in general. My toy project goal here is to write a simple 8 bit (maybe pipelined) RISC processor that I can emulate.

That’s all for this article! I hope the coming weeks and months (and the next four years) continue to be exciting. I’m going to be write some articles on my current thoughts of language design. There’s a lot I want to cover - the continued use of Java in college CS curriculums, Rust in the Linux kernel, my chanigng thoughts on Python, and newer languages (Go, Zig, Rust, Hare, Carbon). I also want to discuss Lua and Julia a bit, especially from the performance aspect.