Skip to content

Add heltec rcc6 - #2981

Open
Quency-D wants to merge 4 commits into
meshcore-dev:devfrom
Quency-D:heltec-rcc6
Open

Quency-D wants to merge 4 commits into
meshcore-dev:devfrom
Quency-D:heltec-rcc6

Conversation

@Quency-D

@Quency-D Quency-D commented Jul 18, 2026 •

Copy link
Copy Markdown
Contributor

This PR adds Heltec RCC6 support as a new ESP32-C6 board target for MeshCore.

It introduces the heltec_rcc6 board definition, variant files, and PlatformIO environments for the core RCC6 firmware matrix: repeater, room server, companion radio over BLE/USB/WiFi, and KISS modem, with display and without-display variants where applicable.

The RCC6 display path uses the NV3001B driver with an opt-in software SPI transport and ESP32-C6 fast GPIO support. The default NV3001B hardware SPI behavior remains unchanged for existing boards.

@Quency-D Quency-D changed the title Heltec rcc6 Add heltec rcc6 Jul 18, 2026
@IoTThinks

Copy link
Copy Markdown
Contributor

We will check and optimize power consumption of this board.
Love its small size.

@IoTThinks

Copy link
Copy Markdown
Contributor

I can merge this PR for rc52 fine: #3032
This PR for rcc6 has many breaking changes in 2 display files and unable to merge to my variant.

Are they intentional?
I would expect minimum changes in variant support.

@IoTThinks IoTThinks left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a breaking and major change.
It breaks the PR of rc52.

}

void NV3001BDisplay::writeCommand(uint8_t cmd) {
void NV3001BDisplay::beginTransport() {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a breaking and major change.
It breaks the PR of rc52.

digitalWrite(PIN_TFT_SCL, LOW);
#else
spi.beginTransaction(SPISettings(SPI_FREQUENCY, MSBFIRST, SPI_MODE0));
#endif

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a breaking and major change.
It breaks the PR of rc52.

int cursor_x = 0;
int cursor_y = 0;

void beginTransport();

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a breaking and major change.
It breaks the PR of rc52.

@Quency-D

Copy link
Copy Markdown
Contributor Author

I can merge this PR for rc52 fine: #3032 This PR for rcc6 has many breaking changes in 2 display files and unable to merge to my variant.

Are they intentional? I would expect minimum changes in variant support.

No, this wasn't intentional. I developed the display support for RCC6 and RC52 independently and didn't consider compatibility between the two implementations at the time.

My plan was to wait until one of the PRs is merged, then update the other to resolve the conflicts and ensure both boards are supported.

Thanks for pointing this out!

@IoTThinks

Copy link
Copy Markdown
Contributor

I have merged rc52 into my variant for power consumption testing.

You may help to adjust this PR a bit to fit RC32 (already merged) and RC52 (merged to my variant).
We would like to test Rcc6 too.

Quency-D and others added 2 commits November 12, 2026 14:18
Preserve SPI bus injection and platform-specific initialization alongside the RCC6 software SPI transport. Keep explicit nullptr construction compatible on ESP32.

This branch has not been deployed

No deployments
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.

2 participants