OpenStickCommunity / OpenStickCommunity/GP2040-CE

Protobuf splitting to reduce size of what is accessed at runtime

Open
#1,141 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C++
Stars
2.5k
Forks
666
Avg merge
1d 19h
Merged PRs (30d)
7

Description

From @arntsonl in #1123:

Memory size is getting pretty big, I think its a good time to think about board settings vs user settings protobuf packages. We're at the point where calling protobuf breaks our core1 usb code, so we might want to think deeper on how to break up those two components.

So user settings MUST be under a certain size to ensure we don't break usb host, and board settings can be some big size.

My intuition is that the whole config is a "user config" in that it can be changed by the user, so rather than board vs. user, an alternative way to think about this is firmware initialization config (can be loaded at boot, isn't changed at runtime (instead only changed via webconfig)) vs. runtime config (changes at runtime, e.g. profile number, LS/DP/RS, etc.).

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the referenced discussion in issue #1123, then trace where the protobuf configuration is accessed during firmware initialization, runtime changes, and core1 USB handling. The scope is not yet settled; done would require an agreed split that keeps runtime-accessed user settings within the USB size constraint without losing board or initialization configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
embedded-iot
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.