Comments (11)
It's a wireless keyboard, and is not reprogrammable. QMK has specific hardware requirements, it won't run on just anything. Most mass produced keyboards are not compatible.
from qmk_firmware.
It's a wireless keyboard, and is not reprogrammable. QMK has specific hardware requirements, it won't run on just anything. Most mass produced keyboards are not compatible.
There are several, separate questions:
-
Has the Logitech MX Keys S a non-locked bootloader or not? Can we replace it firmware by our own?
-
You say "It's a wireless keyboard, and is not reprogrammable.", what do you mean?
Most of wireless gadgets, peripherals, etc. are programmable/updatable and nothing itself in wirelessly technology doesn't prevent it. Also, AFAIK, Logitech MX Keys S support firmware updates by Logitech.
QMK has specific hardware requirements, it won't run on just anything.
- Yup, but if the points above are solved, we maybe can change this? AFAIK QMK have already wided the supported tech stack of it.
from qmk_firmware.
Feel free to do the research on all of your above points and report back. Once you have answers to those questions, we can then assess the feasibility of someone porting QMK to it.
Fair warning; none of the QMK team will do so -- it'll need to be community-led by people such as yourself.
from qmk_firmware.
Fair warning; none of the QMK team will do so -- it'll need to be community-led by people such as yourself.
I understand this, but I have heard very talented people in this project and I wonder if anyone have any information or thoughts about this? I'm fairly new in embedded development. Could we keep one ticket open for this (e.g. flashing Logitech HID devices in general)?
And for the point two I would like to hear what @fauxpark meant? I'm new in these, but nevertheless that sounds weird.
from qmk_firmware.
Regarding wireless, this is our usual response on Discord:
Currently Bluetooth/Wireless support within QMK Firmware is very limited. Consider using ZMK Firmware if wireless is your priority.
There are a few factors as to why this is the case - the main one tends to be wireless radio firmwares are generally incompatible with QMK's license, the GPL. This is usually due to regulatory constraints - QMK's license requires entire source code to be provided by manufacturers, which would also apply to any radio firmware if embedded within QMK. Radio firmwares are provided by manufacturers in binary form, thus cannot be compiled into QMK Firmware.
If the radio firmware were instead provided as source code, people could rebuild it and increase its transmission power, which would cause regulatory breaches - this is why radio firmwares are only provided as binaries.
Because of this fact, virtually any QMK-compatible Bluetooth/Wireless keyboard will use a secondary module which runs the wireless radio code external to QMK.
I'd be very surprised if the Logitech board in question would be any different.
As for not being reprogrammable -- it may technically be possible, but it's unlikely to be done with standard tooling available with QMK. Very few mass-produced pieces of hardware use standard off-the-shelf microcontrollers specifically set up for DIY. Things are usually locked down to their own ecosystem, and if prior attempts with other pieces of hardware are anything to go by, you'll spend a significant length of time trying to even get proper access to write to flash. If it's a bootloader that requires signed firmware updates... you'll be out of luck.
from qmk_firmware.
And there's no real point keeping the ticket open -- stalebot will automatically close it due to inactivity. If it's an unknown or incompatible microcontroller, adding support to the underlying libraries (before you even think about QMK) may well take 6 months or more, even for skilled embedded engineers.
from qmk_firmware.
And there's no real point keeping the ticket open -- stalebot will automatically close it due to inactivity. If it's an unknown or incompatible microcontroller, adding support to the underlying libraries (before you even think about QMK) may well take 6 months or more, even for skilled embedded engineers.
I'd agree with this for closed, those Logitech wireless peripheral devices has been always using NRF52840. I've been searching and found the older MX Keys teardown, it revealed to be using NRF52840 too. So I don't think MX Keys S is different either.
from qmk_firmware.
Regarding wireless, this is our usual response on Discord:
Currently Bluetooth/Wireless support within QMK Firmware is very limited. Consider using ZMK Firmware if wireless is your priority.
There are a few factors as to why this is the case - the main one tends to be wireless radio firmwares are generally incompatible with QMK's license, the GPL. This is usually due to regulatory constraints - QMK's license requires entire source code to be provided by manufacturers, which would also apply to any radio firmware if embedded within QMK. Radio firmwares are provided by manufacturers in binary form, thus cannot be compiled into QMK Firmware.
If the radio firmware were instead provided as source code, people could rebuild it and increase its transmission power, which would cause regulatory breaches - this is why radio firmwares are only provided as binaries.
Because of this fact, virtually any QMK-compatible Bluetooth/Wireless keyboard will use a secondary module which runs the wireless radio code external to QMK.
Thanks for info, but I can't understand that reason. I understand that if manufacturers want to use QMK and add drivers for wireless cards, them need to the drivers open-source. Anyway, AFAIK we can develop support for any propietary wireless card if we want to, right? Also Linux kernel with GPL license run on devices with proprietary firmwares.
from qmk_firmware.
As for not being reprogrammable -- it may technically be possible, but it's unlikely to be done with standard tooling available with QMK. Very few mass-produced pieces of hardware use standard off-the-shelf microcontrollers specifically set up for DIY. Things are usually locked down to their own ecosystem, and if prior attempts with other pieces of hardware are anything to go by, you'll spend a significant length of time trying to even get proper access to write to flash. If it's a bootloader that requires signed firmware updates... you'll be out of luck.
Agree, but since Logitech can update them with Bluetooth and/or USB, also we should have able to do the same after flashing own firmware. We have able to flash own firmware if and only if the bootloader isn't locked.
from qmk_firmware.
And there's no real point keeping the ticket open -- stalebot will automatically close it due to inactivity. If it's an unknown or incompatible microcontroller, adding support to the underlying libraries (before you even think about QMK) may well take 6 months or more, even for skilled embedded engineers.
The first thing to investigating is, are the bootloaders of Logitech HID devices locked or not? I think there might have be some volunteers interesting make this first step to use open-source firmware on them.
from qmk_firmware.
We eagerly await your PR.
from qmk_firmware.
Related Issues (20)
- [Bug] rgb matrix effect bug. HOT 5
- [Bug] autoshift interferes with autocorrect HOT 2
- stdint.h: No such file or directory when compiling HOT 9
- [Bug] Dead link in documentation PR checklists
- [Bug] "make crkbd:default" fails with "eeprom_write_qword" redefined error HOT 1
- [Bug] `AttributeError: module 'idna' has no attribute 'IDNAError'` when I run `qmk` HOT 8
- [Feature Request] Speedup setup HOT 3
- [Bug] annepro2/c18 glitchy rgb matrix effects
- [keyboard] Add Framework 16 HOT 4
- Any way to customise the RGB Ligting (not a matrix)? HOT 2
- [Bug] GitHub-built .hex file doesn't quite match the one built by `qmk userspace-compile` HOT 4
- [Bug] Media keys' functions (⏯️, ⏮️, ⏭️, 🔉, 🔊, 🔇) don't get flashed to my keyboards in newly-generated .hex files HOT 3
- [Bug] NKRO distorts keymap on Drop CTRL board HOT 2
- Language related send_string issue HOT 4
- how to use two uart in qmk? HOT 2
- Testing
- [Bug] compile_commands.json breaks VSCode clangd intellisense by defining non-existent macros HOT 13
- [Bug] GMMK Numpad Matrix LEDs not working
- [Feature Request] Support docker build in qmk_userspace repos
- [Feature Request] Change permissive-hold behavior for multiple tap-hold keys
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from qmk_firmware.