Weekly Progress Report: Upstream Greybus Module for Zephyr

Hi all,

I’m Sahil Jaiswal, working on the project Upstream Greybus Module for Zephyr as part of GSoC 2025, under the mentorship of @ayush1325 , @vaishnav , and @moto-timo .

This thread will serve as a weekly log of my progress throughout the summer. Each post will outline the following:

  • :white_check_mark: Accomplishments
  • :hammer_and_wrench: Resolutions to blockers
  • :warning: Ongoing blockers
  • :date: Plans for the current week

Feel free to share any suggestions or feedback. Looking forward to an exciting and productive journey with you all!

2 Likes

Week 0:

Accomplishments:

  • Migrated deployment to GitHub and began reviving existing workflow CI pipeline test file.
  • Received all hardware required for the project.
  • Completed fresh setup of Greybus and Zephyr to start GSoC coding period.

Resolutions to Blockers:

  • Resolved initial setup challenges by performing a clean installation of Greybus and Zephyr environments and used west.yml to setup Greybus in Zephyr workspace.

Ongoing Blockers:

  • N/A

Plans for Next Week:

  • Study BeagleConnect Technology, Greybus, and Zephyr documentation in depth.
  • Begin working on a PPT for an introductory project video.
  • Setup and Explore BeaglePlay and BeagleConnect Freedom.
  • Reviving existing workflow CI pipeline test file.

Week 1:

Accomplishments:

  • Studied BeagleConnect Technology, Greybus, and Zephyr documentation.
  • Created and uploaded an introductory project video to YouTube with a PPT based on my study.
  • Flashed Debian Image on BeaglePlay.
  • Flashed CC1352P7 on BeaglePlay with greybus-host firmware using gb_beagleplay sysfs API.
  • Flashed BeagleConnect Freedom with greybus-node firmware.
  • Identified failing CRC during BeaglePlay CC1352P7 flashing and discussed with mentor.

Resolutions to Blockers:

  • N/A

Ongoing Blockers:

  • N/A

Plans for Next Week:

  • Resume reviving the workflow CI pipeline test file on GitHub.
  • Study Zephyr Twister and testing infrastructure in detail.
  • Analyze Greybus node firmware code, focusing on MikroBUS manifest bits, and perform cleanups.
  • Explore Greybus more on BeaglePlay + BeagleConnect Freedom.
  • Debug BeaglePlay CC1352P7 CRC failing issue with mentor.

Week 2:

Accomplishments:

  • Made MikroBUS support optional in Greybus via a new Kconfig option.
  • Added conditional compilation to MikroBUS-specific code in manifest handling.
  • Reviewed logs on BeagleConnect Freedom to identify failures following the enabling or disabling of MikroBUS support.
  • Verified binary size reduction (~70KB) when MikroBUS support is disabled.
  • Studied Greybus manifest generation and handling for BeagleConnect Freedom.

Resolutions to Blockers:

  • Fixed build errors when configuring MikroBUS support by properly defining Kconfig symbols.

Ongoing Blockers:

  • N/A

Plans for Next Week:

  • Resume work on CI pipeline for testing on GitHub.
  • Implement Zephyr Twister tests for Greybus.
  • Do cleanups on MikroBUS manifest where it is possible.
  • Analyze host-side handling of Greybus on BeaglePlay.
  • Debug BeaglePlay CC1352P7 CRC failing.
  • Test upstream dns_sd support in cc1352-firmware once merged into Zephyr.
1 Like

Week 3:

Accomplishments:

  • Successfully flashed micropython beagleplay_cc1352p7.bin onto the CC1352P7 using cc1352-flasher. Verified REPL functionality on /dev/ttyS1 .
  • Flashed zephyr.bin using cc1352-flasher. Confirmed successful boot via “Hello World!” console output.
  • Verified that the gb-beagleplay driver was disabled via the k3-am625-beagleplay-bcfserial-no-firmware.dtbo overlay. Ensured /dev/ttyS1 was available for direct use.
  • Investigated CRC errors. Identified a temporary resolution and observed recurrence of issues.
  • Began analysis of host-side Greybus behavior on BeaglePlay.

Resolutions to Blockers:

  • N/A

Ongoing Blockers:

  • Recurring CRC failures in gb-beagleplay communication.

Plans for Next Week:

  • Debug recurring Greybus CRC failure.
  • Validate optional MikroBUS manifest against mainline.
  • Continue Fixing CI pipeline for GitHub.
  • Test dns_sd support in CC1352P7 firmware.

Week 4:

Accomplishments:

  • Resolved west command errors and container PATH issues in GitHub Actions workflow.
  • Successfully configured zephyrprojectrtos/ci:latest container with proper environment variables.

Resolutions to Blockers:

  • West Not Found Error: Fixed by setting correct PATH to /opt/python/venv/bin in container.

Ongoing Blockers:

  • Github CI build Failing: No space left on device
  • CRC Failures: Persistent gb-beagleplay communication errors.

Plans for Next Week:

  • Fix GitHub CI build Failing.
  • Validate optional MikroBUS manifest against mainline
  • Debug remaining CRC Failing issues.

Week 5:

Accomplishments:

  • Fixed GitHub CI Build Failures and Resolved “No space left on device” error.
  • Modernized CI Workflow and Successfully updated GitHub Actions workflow from legacy zephyrprojectrtos/ci:v0.11.10 to modern zephyrprojectrtos/ci:latest container.
  • Did a Cleanup and Properly configured CMAKE_PREFIX_PATH for modern Zephyr builds.

Resolutions to Blockers:

  • Github CI build Failing: Fixed by updating to modern container image and properly configuring environment variable.
  • CMake Configuration: Fixed “Could not find ZephyrConfig.cmake” errors by properly extending CMAKE_PREFIX_PATH at runtime.

Ongoing Blockers:

  • CRC Failures: Persistent gb-beagleplay communication errors.

Plans for Next Week:

  • Complete Mid Project Evaluation.
  • Validate optional MikroBUS manifest against mainline Zephyr.
  • Implement detailed logging and debugging for gb-beagleplay communication failures.

Week 6:

Accomplishments:

  • Succesfully Passed Mid Project Evaluation.
  • Migrated cc1352 host firmware repository from GitLab to GitHub.
  • Implemented GitHub Actions CI pipeline for automated firmware builds and artifact upload in cc1352 host firmware.
  • Resolved K_MEM_SLAB_DEFINE_STATIC compilation errors by using __alignof__(struct gb_interface) for automatic alignment detection.

Resolutions to Blockers:

  • N/A

Ongoing Blockers:

  • CRC Failures: Persistent gb-beagleplay communication errors.

Plans for Next Week:

  • Debug and Fix CRC Failures.
  • Implement Twister Based Testing in Greybus Module.

Week 7 Report

Accomplishments:

  • Updated Greybus’s GitHub CI workflow (module.yml and west.yml) for improved efficiency and maintainability.
  • Switched to action-zephyr-setup, resulting in a cleaner and more consistent Zephyr environment setup across CI jobs.
  • Added name-allowlist to prevent unnecessary module imports.
  • Achieved a significant build time reduction from 7–8 minutes down to 3–4 minutes. CI Run Reference (GitHub Actions)

Resolutions to Blockers:

  • N/A

Ongoing Blockers:

  • CRC Failures: Persistent gb-beagleplay communication errors.

Plans for Next Week:

  • Continue debugging and resolving CRC failure issues in Greybus communication.
  • Begin implementing Twister-based testing in the Greybus module.
1 Like