Go to file
Sergey Vlasov 65c9752762
Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx (#12403)
* Fix default ADC_RESOLUTION for ADCv3 (and ADCv4)

Recent ChibiOS update removed ADC_CFGR1_RES_10BIT from the ADCv3 headers
(that macro should not have been there, because ADCv3 has CFGR instead of
CFGR1).  Fix the default value for ADC_RESOLUTION to use ADC_CFGR_RES_10BITS
if it is defined (that name is used for ADCv3 and ADCv4).

* Update ADC docs to match the actually used resolution

ADC driver for ChibiOS actually uses the 10-bit resolution by default
(probably to match AVR); fix the documentation accordingly.  Also add
both ADC_CFGR_RES_10BITS and ADC_CFGR1_RES_10BIT constants (these names
differ according to the ADC implementation in the particular MCU).

* Fix pinToMux() for B12 and B13 on STM32F3xx

Testing on STM32F303CCT6 revealed that the ADC mux values for B12 and
B13 pins were wrong.

* Add support for all possible analog pins on STM32F1xx

Added ADC mux values for pins A0...A7, B0, B1, C0...C5 on STM32F1xx
(they are the same at least for STM32F103x8 and larger F103 devices, and
also F102, F105, F107 families).  Actually tested on STM32F103C8T6
(therefore pins C0...C5 were not tested).

Pins F6...F10, which are present on STM32F103x[C-G] in 144-pin packages,
cannot be supported at the moment, because those pins are connected only
to ADC3, but the ChibiOS ADC driver for STM32F1xx supports only ADC1.

* Add support for all possible analog pins on STM32F4xx

Added ADC mux values for pins A0...A7, B0, B1, C0...C5 and optionally
F3...F10 (if STM32_ADC_USE_ADC3 is enabled).  These mux values are
apparently the same for all F4xx devices, except some smaller devices may
not have ADC3.

Actually tested on STM32F401CCU6, STM32F401CEU6, STM32F411CEU6 (using
various WeAct “Blackpill” boards); only pins A0...A7, B0, B1 were tested.

Pins F3...F10 are inside `#if STM32_ADC_USE_ADC3` because some devices
which don't have ADC3 also don't have the GPIOF port, therefore the code
which refers to Fx pins does not compile.

* Fix STM32F3xx ADC mux table in documentation

The ADC driver documentation had some errors in the mux table for STM32F3xx.
Fix this table to match the datasheet and the actual code (mux settings for
B12 and B13 were also tested on a real STM32F303CCT6 chip).

* Add STM32F1xx ADC pins to the documentation

* Add STM32F4xx ADC pins to the documentation
2021-04-25 11:15:37 +10:00
.github fix CI job: api-data->api_data 2021-03-06 21:26:07 -08:00
.vscode [Keyboard] add rhymestone by marksard (#9708) 2020-09-04 04:14:34 -07:00
api_data Generate api data on each push (#10609) 2020-10-25 14:48:44 -07:00
bin Consistently use bin/qmk when that script is called (#12286) 2021-03-18 16:10:40 -07:00
data Merge remote-tracking branch 'origin/master' into develop 2021-03-24 16:27:28 +00:00
docs Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx (#12403) 2021-04-25 11:15:37 +10:00
drivers Update ADC driver for STM32F1xx, STM32F3xx, STM32F4xx (#12403) 2021-04-25 11:15:37 +10:00
keyboards Merge remote-tracking branch 'origin/master' into develop 2021-04-25 01:14:55 +00:00
layouts Change BOOTMAGIC_ENABLE=yes to use Bootmagic Lite (#12172) 2021-04-12 21:18:52 +02:00
lib Merge remote-tracking branch 'origin/master' into develop 2021-04-15 02:00:59 +00:00
nix [nix] Use niv and poetry2nix to more easily manage dependencies (#11181) 2021-04-03 08:05:46 -07:00
platforms/chibios Add STM32G431 and STM32G474 board definitions. (#11793) 2021-02-06 11:27:46 +11:00
quantum Format code according to conventions (#12680) 2021-04-25 10:34:38 +10:00
tests Missed a couple more #pragma onces (#11351) 2020-12-30 15:44:53 +00:00
tmk_core Merge remote-tracking branch 'origin/master' into develop 2021-04-20 17:52:32 +00:00
users Merge remote-tracking branch 'origin/master' into develop 2021-04-19 09:22:54 +00:00
util Merge remote-tracking branch 'origin/master' into develop 2021-04-15 02:00:59 +00:00
.clang-format fix indent size 2019-06-11 01:51:40 -07:00
.editorconfig QMK CLI and JSON keymap support (#6176) 2019-07-15 12:14:27 -07:00
.gitattributes [nix] Use niv and poetry2nix to more easily manage dependencies (#11181) 2021-04-03 08:05:46 -07:00
.gitignore Add support for producing UF2-format binaries. (#12435) 2021-04-06 16:39:15 +10:00
.gitmodules 2020 May 30 Breaking Changes Update (#9215) 2020-05-30 13:14:59 -07:00
.travis.yml CI: Add workflow for codebase formatting (#7382) 2020-12-10 17:01:51 +00:00
book.json adds redirects for docs 2017-08-19 08:31:54 -04:00
bootloader.mk Adds AT90USB162 support (#11570) 2021-01-29 19:53:56 -08:00
build_full_test.mk Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
build_json.mk Begin the process of deprecating bin/qmk in favor of the global cli (#12109) 2021-03-07 19:10:03 -08:00
build_keyboard.mk Begin the process of deprecating bin/qmk in favor of the global cli (#12109) 2021-03-07 19:10:03 -08:00
build_layout.mk Allow for building layouts from keymap.json files. 2020-07-07 07:27:39 -07:00
build_test.mk Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
CODE_OF_CONDUCT.md updates the coc 2019-08-24 12:43:39 -04:00
common_features.mk Change BOOTMAGIC_ENABLE=yes to use Bootmagic Lite (#12172) 2021-04-12 21:18:52 +02:00
common.mk 2020 November 28 Breaking Changes Update (#11053) 2020-11-28 12:02:18 -08:00
disable_features.mk Add a <FEATURE>_SUPPORTED flag (#9058) 2021-01-30 13:08:58 -08:00
Dockerfile Update docker util script and travis to use new base container 2019-07-14 21:01:38 -07:00
Doxyfile Generate API docs from source code comments (#2491) 2018-03-22 02:50:38 -04:00
doxygen-todo Remove iWRAP protocol (#9284) 2020-08-29 14:30:02 -07:00
LICENSE add an explicit lisence file for github to pickup 2017-11-13 20:50:54 -05:00
license_GPLv2.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_GPLv3.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
license_Modified_BSD.md Clarify the quantum license (#1042) 2017-03-28 15:20:36 -07:00
Makefile Add support for producing UF2-format binaries. (#12435) 2021-04-06 16:39:15 +10:00
message.mk Add support for producing UF2-format binaries. (#12435) 2021-04-06 16:39:15 +10:00
nose2.cfg Setup a python test framework 2019-09-07 07:58:41 -07:00
readme.md Branch point for 2021 May 29 Breaking Change 2021-02-27 12:54:23 -08:00
requirements-dev.txt Remove wave from requirements-dev.txt (#12387) 2021-04-03 09:15:39 -07:00
requirements.txt Add support for tab completion (#12411) 2021-04-14 19:00:22 -07:00
secrets.tar.enc update building for .hex, secrets moving 2017-08-21 21:57:46 -04:00
setup.cfg Use the schema to eliminate custom code (#11108) 2021-01-09 13:34:14 -08:00
shell.nix [nix] Use niv and poetry2nix to more easily manage dependencies (#11181) 2021-04-03 08:05:46 -07:00
show_options.mk add OLED_DRIVER_ENABLE into show_options.mk (#12121) 2021-03-05 20:26:26 +00:00
testlist.mk Ensure single newline at EOF for core files (#11310) 2020-12-28 04:36:32 +11:00
Vagrantfile Remove broken example from Makefile (#9159) 2020-05-21 20:33:20 +01:00

Quantum Mechanical Keyboard Firmware

Current Version Build Status Discord Docs Status GitHub contributors GitHub forks

This is a keyboard firmware based on the tmk_keyboard firmware with some useful features for Atmel AVR and ARM controllers, and more specifically, the OLKB product line, the ErgoDox EZ keyboard, and the Clueboard product line.

THIS IS THE DEVELOP BRANCH

Warning- This is the develop branch of QMK Firmware. You may encounter broken code here. Please see Breaking Changes for more information.

Original readme continues

Documentation

The docs are powered by Docsify and hosted on GitHub. They are also viewable offline; see Previewing the Documentation for more details.

You can request changes by making a fork and opening a pull request, or by clicking the "Edit this page" link at the bottom of any page.

Supported Keyboards

The project also includes community support for lots of other keyboards.

Maintainers

QMK is developed and maintained by Jack Humbert of OLKB with contributions from the community, and of course, Hasu. The OLKB product firmwares are maintained by Jack Humbert, the Ergodox EZ by ZSA Technology Labs, the Clueboard by Zach White, and the Atreus by Phil Hagelberg.

Official Website

qmk.fm is the official website of QMK, where you can find links to this page, the documentation, and the keyboards supported by QMK.