Skip to content

feat(core): added multi core - #28

Merged
husamettinarabaci merged 1 commit into
developfrom
feat/multi-core
Oct 21, 2025
Merged

husamettinarabaci merged 1 commit into
developfrom
feat/multi-core

Conversation

@husamettinarabaci

Copy link
Copy Markdown
Member

System is configured for working multi-core. DDS task is working on the Core-1 and others on the Core-0


🧩 Affected Module(s)

Mark the modules impacted by this PR:

  • Firmware
  • Hardware
  • Mechanic
  • Documentation
  • CI / Infra

This pull request introduces several improvements and refactorings to the firmware codebase, focusing on better naming consistency, improved task management, and enhanced error handling. The most significant changes include the introduction of multicore task spawning for improved concurrency, renaming variables for clarity, and correcting a spelling error in the error enum and its usage. Additionally, minor enhancements were made to USB MIDI packet processing and main loop status reporting.

Multicore and Task Management Improvements:

  • Refactored firmware/src/main.rs to use multicore task spawning: tasks are now distributed between two executors running on separate cores, with dds_task running on core 1 and other tasks (AT, USB, RGB, and a new main loop) running on core 0 for better parallelism and responsiveness. Also added a main_loop_task to blink the LED and report system status via AT commands. [1] [2]

Naming Consistency and Clarity:

  • Renamed variables such as ver to version_param or id_param in AT command handlers for improved clarity and maintainability. [1] [2]

Error Handling and Consistency:

  • Fixed a spelling error in the Error enum: changed InvalidDataLenght to InvalidDataLength and updated all references to this error throughout the codebase, ensuring consistent error reporting. [1] [2] [3]

USB MIDI Packet Processing:

  • Improved USB MIDI packet handling by skipping empty packets and ensuring the MIDI mutex is locked only once per batch of packets, which may improve performance and reduce contention. [1] [2]

Minor Build and Import Cleanups:

  • Removed unused license-file entry from Cargo.toml and performed minor import cleanups in main.rs. [1] [2]

Let me know if you want to discuss any specific part of these changes in more detail!

System is configured for working multi-core. DDS task is working on the Core-1 and others on the Core-0
@github-project-automation github-project-automation Bot moved this to 📥 Inbox / Ideas in hexaTune Project Oct 21, 2025
@github-actions github-actions Bot added module:firmware Firmware type:infra Infrastructure, CI/CD, build system labels Oct 21, 2025
@husamettinarabaci
husamettinarabaci merged commit e023c78 into develop Oct 21, 2025
9 checks passed
@husamettinarabaci
husamettinarabaci deleted the feat/multi-core branch October 21, 2025 16:33
@github-project-automation github-project-automation Bot moved this from 📥 Inbox / Ideas to Done in hexaTune Project Oct 21, 2025
husamettinarabaci added a commit that referenced this pull request Oct 22, 2025
* feat(setup): added basic at command (#19)

Added basic at command implementation. It support usb-midi sysex protocol

* feat(setup): setted up pre commit hooks (#20)

Added reuse prettier commitlint hook

* feat(setup): setted up pre commit hooks (#21)

Added reuse prettier commitlint hook 3

* feat(async): setted up async tasks (#23)

Added rgb usb at async tasks and channel before firmware update

* feat(firmware): added basic firmware update (#24)

Added simple bootsel FWUPDATE command to At

* feat(com): passed first communication (#25)

Communicated with mobile app first time

* feat(freq): added basic freq handler (#27)

Added simple at freq handler not check and control

* feat(core): added multi core (#28)

System is configured for working multi-core. DDS task is working on the Core-1 and others on the Core-0

* feat(core): at command is made by id based (#29)

Changed all message types to at command base and id forced for all at command

* docs(basic): added basic docs Added simple documantation for version v1.0.0 (#30)
husamettinarabaci added a commit that referenced this pull request Oct 30, 2025
* feat(setup): added basic at command (#19)

Added basic at command implementation. It support usb-midi sysex protocol

* feat(setup): setted up pre commit hooks (#20)

Added reuse prettier commitlint hook

* feat(setup): setted up pre commit hooks (#21)

Added reuse prettier commitlint hook 3

* feat(async): setted up async tasks (#23)

Added rgb usb at async tasks and channel before firmware update

* feat(firmware): added basic firmware update (#24)

Added simple bootsel FWUPDATE command to At

* feat(com): passed first communication (#25)

Communicated with mobile app first time

* feat(freq): added basic freq handler (#27)

Added simple at freq handler not check and control

* feat(core): added multi core (#28)

System is configured for working multi-core. DDS task is working on the Core-1 and others on the Core-0

* feat(core): at command is made by id based (#29)

Changed all message types to at command base and id forced for all at command

* docs(basic): added basic docs Added simple documantation for version v1.0.0 (#30)

* feat(multicore): fixed multicore

Fixed channel for multicore tasks

* feat(multicore): fixed multicore

Fixed channel for multicore tasks
@husamettinarabaci husamettinarabaci mentioned this pull request Mar 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

module:firmware Firmware type:infra Infrastructure, CI/CD, build system

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant