My Week in Code #4

Hello everyone. Another light week here. Let’s go over everything.

BeagleConnect Freedom

Zephyr

While BeagleConnect Freedom has had good Zephyr support for a while, the base devicetree had some missing features that would require overlays. This would sometimes cause confusion among beginners. So, I created a PR to provide better defaults.

I also created another PR regarding some other cleanup.

MicroPython

MicroPython support for Zephyr v3.7.0 was finally merged last week. I would like to thank Maureen Helm for all the amazing work.

I have created a PR to add BeagleConnect Freedom support to upstream MicroPython. It only supports SPI, I2C, and FLASH for now, but once the base support is accepted, I will expand to include support for everything possible with v3.7.0.

BeaglePlay Zephyr

BeaglePlay cc1352p7 support was finally merged last week. While it was initially scheduled for Zephyr v3.7.0, it ended up being delayed. However, I hope that having upstream Zephyr support helps people create some amazing projects.

Similar to BeagleConnect Freedom, I also cleaned up the BealgePlay devicetree. Here is the PR

BeagleBoard Imager Rust Utility

Continuing from last week, there was a lot more development on the Rust-based imager utility.

Support for more firmware file types

BeagleBoard Rust Imager now supports flashing Ti-TXT, Intel Hex to BeagleConnect Freedom. This should help with using BeagleConnect Freedom using CCStudio.

I also ended up flashing a firmware that disabled BSL, so I need to figure out how to flash a firmware that enables BSL again.

Better Cross compile

I want the imager utility to work on aarch64, specifically on BeaglePlay, BeagleY-AI, etc. However, the dependence on OpenSSL and libudev made cross-compiling a bit difficult.

I was able to simplify local development using cross. However, using cross on Gitlab CI was much more difficult than I initially expected. Additionally, BeagleBoard Gitlab only had one Docker-in-Docker runner, so I opted for a more manual approach. My CI config should serve as a good starting point for anyone in a similar situation.

Ending Thoughts

That is all for the week. Hopefully, this series helps keep people updated about my work and attracts potential contributors.

Consider supporting me if you like my work.

Helpful links