# What's everybody working on? (September Edition)

**URL:** <https://ziggit.dev/t/whats-everybody-working-on-september-edition/17434>\
**Category:** Showcase\
**Tags:** community, wewo\
**Created:** [September 1, 2026, 6:42am UTC](https://ziggit.dev/t/whats-everybody-working-on-september-edition/17434 "2026-09-01T06:42:06Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![AlexandreBlais42](https://ziggit.dev/user_avatar/ziggit.dev/alexandreblais42/32/5835_2.png) [@AlexandreBlais42](https://ziggit.dev/u/AlexandreBlais42)\
**Post date:** [September 1, 2026, 12:46pm UTC](https://ziggit.dev/t/whats-everybody-working-on-september-edition/17434/7 "2026-09-01T12:46:04Z")

</div>

I’ve been working on programming an [ECU](https://en.wikipedia.org/wiki/Electronic_control_unit), [BMS](https://en.wikipedia.org/wiki/Battery_management_system) and various sensors for an electric race motorcycle. I’m in a team of ~20 students builting a motocycle for the [MotoStudent competition](https://www.motostudent.com/).

We’re using a few different types of microcontrollers and so far I have used Zig to target STM32 microcontrollers. I’m using ST’s hardware abstraction library directly with no issues. Inspired by TigerBeetle, I’m building a deterministic simulation test for the ECU. It has proven more difficult than I originally thought, but I’m getting there.

One of the few issues I encountered was that the `objcopy` from the build system produced binaries that were way to large (hundreds of `Mo`s!) to flash onto the microcontroller. This issue is already [tracked](https://github.com/ziglang/zig/issues/25653) and I’ve mitigated it by using `llvm-objcopy` directly.

Most of the source code is private, but I’ve built a [CAN database parsing library](https://codeberg.org/AlexBlais/dbc_parser) I can share. CAN is a message-oriented protocol typically used on vehicles that allows different components of that vehicle to exchange data. A CAN database (`*.dbc` file) is a proprietary file format that describes what are the messages, their “signals” (fields), how signals are encoded, which component sends them and receives them. I got tired of the database getting out of sync with the source code, so I made a library that ingests a `*.dbc` file in a `build.zig` and generates all the message definitions as well as encoding/decoding functions. So far it has been working flawlessly.

I also built a [package](https://codeberg.org/AlexBlais/stlink) that packages [another project](https://github.com/stlink-org/stlink) required to flash the microcontroller and can be used as a build step. So now, when somebody else wants in the team wants to program and flash an STM32, they have one less system dependency to worry about.

---

_[View the full topic](https://ziggit.dev/t/whats-everybody-working-on-september-edition/17434)._
