Skip to content

feat: [$500 Bounty] Refactor panda to use source + header file structure#2389

Open
Kasionchen wants to merge 2 commits intocommaai:masterfrom
Kasionchen:feat-2171-20260421004210
Open

feat: [$500 Bounty] Refactor panda to use source + header file structure#2389
Kasionchen wants to merge 2 commits intocommaai:masterfrom
Kasionchen:feat-2171-20260421004210

Conversation

@Kasionchen
Copy link
Copy Markdown

Description

This PR refactors the panda firmware to use separate source (.c) and header (.h) files instead of having all implementation in header files.

Changes Made

  • Refactored the following driver modules to use proper source/header separation:
    • board/drivers/led.h -> led.c + led.h
    • board/drivers/pwm.h -> pwm.c + pwm.h
    • board/drivers/bootkick.h -> bootkick.c + bootkick.h
    • board/drivers/fan.h -> fan.c + fan.h
    • board/drivers/clock_source.h -> clock_source.c + clock_source.h
    • board/drivers/registers.h -> registers.c + registers.h
    • board/drivers/simple_watchdog.h -> simple_watchdog.c + simple_watchdog.h

Benefits

  • Clean separation of interface and implementation
  • Easier to add new drivers
  • Better code organization following standard C practices
  • Improved build system compatibility

Bounty: This PR addresses issue #2171 which has a $500 bounty for a clean refactor.

Co-Authored-By: Kasionchen kasion.chen@gmail.com

The PR commaai#2389 refactored driver modules from header-only to .c+.h structure.
New .c files in board/drivers/ were not added to the SConscript build system,
causing undefined reference errors during linking.
@Kasionchen Kasionchen closed this May 9, 2026
@Kasionchen Kasionchen reopened this May 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant