Maggie’s Status Report for 2026-10-10

This week, I’ve been mainly working on drafting the design report. I also placed the GPS module breakout board order, and while waiting of the delivery, I worked on familiarizing myself with FreeRTOS since we need to switch from bare-metal given the increasing software complexity and timing management need.

I read the official docs since we will be using an ESP modified version of vanilla FreeRTOS to learn about configurations and APIs to use it in the Raffia app. The next step would be converting the existing testing functions running in an infinite loop into RTOS tasks.

Besides, I also explored embedded UI approaches. After comparing a couple different framework options such as Embedded Wizard, I decided to go with LGVL given its lightweight and compatibility with Mac since that’s my dev environment. Over the next few weeks, we will continue refining the UI based on the implemented functionalities to make it more intuitive.

The firmware development is still on schedule. Depending on the PCB arrival time, I might need to work on as many scaffolds as possible over the next two weeks to reduce the integration work later.

Team Status Report for 2026-10-03

This week, we completed our design review presentation and have made progress on both software tracks, which is the emulator and instruction decoding and baseline ESP32-P4 firmware development. We’ve also made a preliminary physical enclosure design.

Our most significant schedule risk right now is that we haven’t placed the orders for the PCB, GPS, and LoRa modules. This could delay the PCB bringup and development of the peripheral drivers. Therefore, our immediate next step is to finalize and order all of them at the beginning of next week. Since we have gotten the ESP32-P4 dev board, while waiting for the delivery, we will continue the emulator development and build the firmware scaffolds using placeholder peripherals.

The primary design change happened this week was moving the embedded framework from esp-hal to ESP-IDF. This was a necessary change since esp-hal doesn’t support our MCU’s silicon revision. This change doesn’t affect our hardware choices, system requirements or emulator development but incurred some additional setup and implementation work as it uses different interfaces. However, it was a quick pivot and doesn’t affect our overall timeline or development plan.

Here are some photos of what we worked on this past week:

Maggie’s Status Report for 2026-10-03

We had our design review presentation earlier this week. During the later half of the week, the ESP32-P4 dev board arrived, and I started working on setting up and implementing the firmware framework for the peripherals.

Since we haven’t ordered the LoRa and GPS module yet, I did the development on a ICM20948 IMU as a placeholder. For now, I had a breadboard setup, including the ESP32-P4-WiFi6 dev board, an LED for signalling, and the IMU, connected via jumper wires. The dev board is connected to and powered by a MacBook over USB-C, and it supplies 5V via VBUS to power the LED and the IMU.

I first worked on setting up the toolchain and dependencies for compiling, flashing and running the firmware. Originally, I was planning to use the esp-hal since it’s in Rust and will make the later integration with the Palm emulator easier. However, I found it’s not compatible with our MCU’s silicon revision, since it requires v3.x or newer while we have a v1.x. Therefore, I switched to using the ESP-IDF framework and configured it for the board’s v1.3 chip and 360MHz clock.

Once that was sorted out, I worked on familiarizing myself with the hardware and the framework and then testing several interfaces that will be needed (and could be reused) by the final GPS and LoRa modules. I ran a LED Control test by controlling one of the board’s GPIO pins using PWM with ESP-IDF to achieve a simple pulsing effect. This verifies GPIO and PWM, and we could also later use the LED as a status indicator. 

Then I tested both I2C and SPI by checking the data transmission between the Mac and the IMU. The IMU has 9 DoFs, so for simplicity, I skipped the magnetometer and only tested the accelerometer and gyroscope. I was able to successfully see measurement readings from the IMU every 100ms using the IDF monitor tool.

After that, I tested UART by having the MCU receive inputs from the Mac in the IDF monitor, and the inputs could also be used to control the start and end of IMU readings.

For next week, I will place the GPS and LoRa module breakout board orders and start working on the software for those peripherals. Depending on when they arrive, the goal is to either have correct GPS measurement with parsed latitude, longitude and timestamp outputs or successful message transmission and reception via LoRa. While waiting for the delivery, I will also start preparing the driver interfaces so that I can move on to testing as soon as the hardware arrives to make sure we are still on schedule. Besides that, we will also work on the design report.

Maggie’s Status Report for 2026-09-26

This week, I was mainly working on the system design and architecture of how the major processing, communication, display, and power subsystems interact with each other. This includes the esp32p4 MCU, GPS and LoRa modules, touchscreen, battery charging and protection, voltage regulation, and thermal monitoring. I then worked on creating the system block diagrams and preparing the corresponding design slides.

I also worked on comparing our processor and peripheral options and helped finalize the specific modules we would like to proceed with, with a main focus on their processing power, power needs, development support, and compatibility. After finalizing these decisions, I have started working on developing the GPS firmware.

My work is currently on schedule overall, although the hardware selection phase took a bit longer than initially expected because we reconsidered a few different processor architectures. The main processor (and the corresponding dev board) and initial peripherals have been finalized now, so we have a stable architecture that we can start developing on.

I’m currently working on developing and testing the GPS and LoRa interfaces. This will be done on the dev board while the custom PCB is still being designed. In terms of GPS, the goal is to complete a minimal version that reliably reports latitude, longitude, fix status, and timestamps before we start adding more complicated configuration and power management features.

Next week, I plan to complete the first functional version of the GPS interface (specifically the driver configuration and message NMEA message parsing) and begin LoRa message transmission, and the expected deliverables will be committed GPS code and potentially an updated system diagram and LoRa bring-up code.

Maggie’s Status Report for 2026-09-19

We received many valuable and constructive feedbacks on our proposal, and Tucker did our proposal presentation earlier this week. Based on the feedbacks we received, we refined our design to place more emphasis on our target audiences’ perspectives and tuned the requirements to be more measurable around those specific use cases.

My primary focus this week was exploring the overall system architecture and integration strategy. I read project blogs using similar tech stacks as what we might do, researched components that may be required or beneficial to our implementation, and compared their tradeoffs in processing power, capabilities, and cost.

Next week, I plan to begin developing and testing the GPS and LoRa communication firmware. We will also  finalize the first batch of components needed for development, including the dev boards, processor, LoRa and GPS modules, and other essential peripherals, and then place the order. So far, we are still on schedule.