Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feature Request] ESP32 and/or ESP8266 support? #9223

Closed
1 of 4 tasks
jmding8 opened this issue May 27, 2020 · 23 comments
Closed
1 of 4 tasks

[Feature Request] ESP32 and/or ESP8266 support? #9223

jmding8 opened this issue May 27, 2020 · 23 comments

Comments

@jmding8
Copy link

jmding8 commented May 27, 2020

Feature Request Type

  • Core functionality
  • Add-on hardware support (eg. audio, RGB, OLED screen, etc.)
  • Alteration (enhancement/optimization) of existing feature(s)
  • New behavior

Description

There are many inexpensive ESP32 and ESP8266 based dev boards with on-board bluetooth, li-po charging, wifi, and sometimes OLED screens. These seem like a great upgrade from our usual Teensy and Pro Micro dev boards given how feature rich they are, and the fact that they are even cheaper in a lot of cases than the Pro Micro.

Example 1

Example 2

Overall, it seems like moving away from the relatively expensive, hard to find, and frequently unavailable community-developed hardware solutions like the BlueNano, and towards the ecosystem of modern dev boards like these might enable significantly more wireless keyboards to start showing up. The missing piece seems to be QMK support

I was pretty surprised to not find any discussion about these dev boards in the keyboard community. Would it be possible to get official QMK support for them Or are there some technical reasons why it would not be possible?

@MxBlu
Copy link
Contributor

MxBlu commented May 27, 2020

I remember looking at this a few years back, one of the reasons is because the ESP8266's USB port is actually going through a UART to USB bridge, so you can't use it to enumerate as a HID device and send HID reports. You can, however, implement something like V-USB if you put your mind to it, but that would require using other pins and wiring your own usb cable/port from it.

Basically, it's not ideal. They're good IoT boards, but I don't see them being too useful as a USB keyboard.

Also regarding the bluetooth stack, I've seen work on a nicer approach to managing the bluetooth stack in QMK. Not sure how things will proceed from there, but that approach might work if that is the case.

@fauxpark
Copy link
Member

The ESP chips run on the Xtensa architecture, which is completely different to the platforms we currently support (ARM and AVR). It would likely be a significant effort to add this entirely new one given that ChibiOS almost certainly would not accept it. Most importantly though, whoever does this would then be responsible for maintaining it.

@uyoyo117
Copy link

uyoyo117 commented Aug 1, 2020

maybe add UART sending of key code, this way any board can simply be used as a bridge

@eroldan
Copy link

eroldan commented Oct 22, 2020

ESP32-S2 supports USB https://www.espressif.com/en/news/espressif-announces-%E2%80%A8esp32-s2-secure-wi-fi-mcu

@tzarc
Copy link
Member

tzarc commented Oct 22, 2020

This should cover what's required, specifically the section "Adding support for a new MCU Family": Selecting an Arm MCU

@christiangda
Copy link

christiangda commented Dec 7, 2020

Could be great use 1 or 2 of these

https://heltec.org/project/wifi-kit-32/ adapting ESPUSB library

integrated with the custom keyboards.

  • Bluetooth
  • WIFI
  • OLED
  • Battery charger and connector
  • Reset button
  • More Memory and CPU!
  • etc

all of these only ~$10

Or the new ESP32-S2 chipset with USB Console

~ $7 Dev Kit ESP32-S2-SAOLA-1R

~$9 ESP32-DEVKITC-32D

The best Option, using the chipset ESP32-S2
~ $8 Dev kit LILYGO

@stale
Copy link

stale bot commented Mar 16, 2021

This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity occurs.
For maintainers: Please label with bug, in progress, on hold, discussion or to do to prevent the issue from being re-flagged.

@stale stale bot added the stale Issues or pull requests that have become inactive without resolution. label Mar 16, 2021
@JesusFreke
Copy link

I was poking at this a bit today and managed to get something.. well. not working. but at least compiling and linking. You can follow along over at https://hackaday.io/project/178232-lalboard/log/190758-investigating-qmk-on-the-esp32 if you're interested.

@stale stale bot removed the stale Issues or pull requests that have become inactive without resolution. label Mar 24, 2021
@tzarc
Copy link
Member

tzarc commented Mar 24, 2021

Given that esp32 is supported by RIOT-OS, perhaps that would be worth investigating as a HAL?
At this stage we don't have the bandwidth to support or maintain HAL libraries for just QMK, which is why we've been contemplating integrating established projects like RIOT-OS or TinyUSB to provide extra hardware support. Ultimately, we can rely on upstream maintenance instead of letting things bit-rot like the current ATSAMD51 support for the Massdrop boards.

@stale
Copy link

stale bot commented Jun 22, 2021

This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity occurs.
For maintainers: Please label with bug, in progress, on hold, discussion or to do to prevent the issue from being re-flagged.

@stale stale bot added the stale Issues or pull requests that have become inactive without resolution. label Jun 22, 2021
@bilogic
Copy link

bilogic commented Jul 20, 2021

@JesusFreke

Given that esp32 is supported by RIOT-OS, perhaps that would be worth investigating as a HAL?
At this stage we don't have the bandwidth to support or maintain HAL libraries for just QMK, which is why we've been contemplating integrating established projects like RIOT-OS or TinyUSB to provide extra hardware support. Ultimately, we can rely on upstream maintenance instead of letting things bit-rot like the current ATSAMD51 support for the Massdrop boards.

Do you have a fork or something? I have the Logitech RF protocol working on the ESP8266 https://github.com/bilogic/logitech-unifying-device

@stale stale bot removed the stale Issues or pull requests that have become inactive without resolution. label Jul 20, 2021
@JesusFreke
Copy link

Yeah, I have a fork that's integrated with esp-idf, not RIOT-OS. But I don't have it published or anything yet. And It's not really an approach that would be acceptable to merge into mainline qmk. It basically builds qmk as a esp-idf module, and uses esp-idf to build the whole project.

@helman
Copy link

helman commented Aug 2, 2021

@JesusFreke do you mind sharing your work, i'm currently building dactyl manuform, and thinking about to add a bluetooth support.
I saw a mitosis hardware that is leveraging ble module for it split kb, but not sure if that would be possible to modify it as the main bl connection to devices. ;)

@bilogic
Copy link

bilogic commented Aug 2, 2021

@JesusFreke yea, I'm keen to see what it can do too!

@stale
Copy link

stale bot commented Jan 9, 2022

This issue has been automatically marked as stale because it has not had activity in the last 90 days. It will be closed in the next 30 days unless it is tagged properly or other activity occurs.
For maintainers: Please label with bug, in progress, on hold, discussion or to do to prevent the issue from being re-flagged.

@stale stale bot added the stale Issues or pull requests that have become inactive without resolution. label Jan 9, 2022
@jorgeluisrezende
Copy link

any news about it?

@stale stale bot removed the stale Issues or pull requests that have become inactive without resolution. label Mar 8, 2022
@Turegano
Copy link

It's interesting to have alternatives due IC shortage

@oelburk
Copy link

oelburk commented Aug 19, 2022

Any updates on this?

@keyboard-magpie
Copy link
Contributor

zvecr has made significant progress with RIOT support- not with this in mind though.

I'd say it's still a good way away from being at the point where you could be considering adding ESP32...

@tzarc
Copy link
Member

tzarc commented Aug 29, 2022

At this stage asking for status updates is a hindrance rather than a help -- closing this issue until someone either provides an implementation for review, or RIOT gets to the point where this becomes feasible.

@tzarc tzarc closed this as not planned Won't fix, can't repro, duplicate, stale Aug 29, 2022
@PeterHindes
Copy link
Contributor

I'm wondering how hard it would be to get USB keyboard functionality working on an esp32-s3. That could be a good starting point to start delving deeper into the code.

@EntropyValley
Copy link

I may be wrong, but looking through the RIOT docs, it seems like the ESP32 is supported at this point. https://api.riot-os.org/group__cpu__esp32.html

@wdtamagi
Copy link

wdtamagi commented Sep 9, 2023

Is there any guide how to use RIOT with the QMK?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests