qmk_firmware/keyboards/handwired/bluepill
Fernando Pazos Estévez cf19cb0dbe Add Bluepill (stm32f103) handwired keyboard (#4126)
* Main folder

Main folder with some changes like the base layout and matrix for uploading in a future to the qmk repositorie

* First Commit

Firsts non previously commited changes:
-Changed to keyboards/handwired
-Basic credit to Xydane
-70% Layout

* Modified file structure for several keyboards

As I don't want to create several folders and overcrowd the main folders I made a few modifications to being able of configure several keyboards as revisions of the main keyboard.
Added a second variant.
Compiling tests went right but I haven't tried it on the controller.

* Starting leds

* Started dual color leds PWM functions and configs

I started to create the PWM functions and configs based on internet examples, it doesn't compile yet

* Backtraced a bit to establish and try debug before continuing the pwm

Just this, algo some doc as a new pinout image, space cadet modification to try if it works and little more

* Deleted unuseful stuff

After trying the reestructure to being compatible with several keyboards and that it worked I deleted the other keyboard.
Added space cadet shift to ISO.
Finally I couldn't debug everything and I'm getting quite frustrated to continue much more than just adding pwm leds

* Changed again Iso fix for Space Cadet

* Renamed keyboard, future pull

I just renamed the keyboard and made some simplifying changes in order to make a pull request sometime soon.

I'm too frustrated, tired and knowledge limited to achive using the PWM for leds, I didn't even get to use the debug mode...

I intend to end basic led color change using layers (if I can), document everything properly and make a pull request so other users can continue/use this project.

* Writed Readme.md file

I also corrected a previous compilation problem and ordered a bit the keymaps

* Corrected readme

* Try to add layer activated light

* Revert "Try to add layer activated light"

This reverts commit 205af820d845dab08988f329b9f062f558060220.

* Progress to fork

Coming back to work, upcoming pull

* Linked image

Corrected readme

* Some cleanning

Added images to readme, som cleaning, burning after commit.

* Almost finished (working)

Finally

* Finished bluepill firmware

Just finished and tried layer dependant led colors. Going for merge

* Deleted innecesary stuff and trailing spaces

Just as commit title said.

* Coding conventions

Just modified some files to respect coding conventions

* Deleted XXXXXX define

Checking some other PR seen this improvement

* Changes suggested on PR

Firs doing the easy changes

* More changes for the PR

-I also deleted one unused function for led toggling on matrix.c (Now it uses layer dependent baklight, algo on of on start)
-Deleted commented function on keymaps.

Right now only needs testing and all pragma replaces.

* Almost every pragma change on PR

That's almost finished, only waiting for reply due to compiling errors

* Revert "Almost every pragma change on PR"

This reverts commit 07f23aa862b370cdf0ae37d6f2130c9e9856f491.

* Revert last commit

I moddified by mistake a file from another keyboard

* Solved last pragma

Compiles fine.
Now I only need to test it, I say you if it works to include it in the main repository.
2018-10-22 11:45:45 -07:00
..
bluepill70
boards/GENERIC_STM32_F103
keymaps
ld
bluepill.c
bluepill.h
config.h
readme.md
rules.mk

readme.md

BluePill handwired

Keyboards using a BluePill controller (generic Chinese STM32F103C8T6) and based on the KC64 of Xydane.

Keyboard Maintainer: FPazos, but I hope to leave the project in better hands. Hardware Supported: Bluepill STM32F103C8T6 Hardware Availability: Everywhere

Make example for BluePill70 (after setting up your build environment):

make handwired/bluepill/bluepill70:default

See build environment setup then the make instructions for more information.

Read everything before using it.

Introduction

First of all thanks to Xydane at GeekHack for his advice and his repository, without it you couldn't be reading this.

That's was an attempt to create a firmware using an STM32F103C8T6, and in a "future", also developing a revision for split keyboards. But... As I'm mainly a web developer I didn't even get to debug the controller, not to speak about ChibiOS. So I just structured everything, created a working 70% layout and leave the project to someone with more knowledge and patience.

Resistor fix

If you want to use the Bluepill USB port, it's very likely that you need to solder a 1.8 kΩ between PA12 and 3.3V. That depends on the PC's motherboard but I needed, more info here.

No bootloader

Neither Xydane or I used the bootloader, the code for it is commented and you can use it if you want. I didn't achieve to run it and just used a serial programmer (FTDI, ST-LINK).

Adding layouts and revisions

If you want to create new layouts just add them to the keymaps folder. If you prefer to develop a more complex revision just copy the bluepill70 folder, rename it and create a new keymap in /keymap.c (I tried to divide the project even more but it didn't worked).

Pinout

That's the pinout;

    A5  A15   A10   A9  A8  B15  B14  B13   B12  B11  B10  B1   B0      A7      A6      
B9  ESC| F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10| F11| F12| PSC| PGU| PGD
B8  GRA| 1  | 2  | 3  | 4  | 5  | 6  | 7  | 8  | 9  | 0  | '  | ¡  |   BCKS  | DEL
B7  TAB| Q  | W  | E  | R  | T  | Y  | U  | I  | O  | P  | `  | +  |         | HOM
B6  CAP| A  | S  | D  | F  | G  | H  | J  | K  | L  | Ñ  | ´  | Ç  |   ENTER | END
B5  LSI| <  | Z  | X  | C  | V  | B  | N  | M  | ,  | .  | -  |   RSHIF | UP | FNT
A4  LCT| WIN| ALT|               ESPACE             | ALG| FN | RCT| LEF| DOW| RIG

And the wiring: ISO Wiring ANSI Wiring

It also uses: PC13: Caps Lock led.

Backlight dual color leds, my version is for common anode that's more common, for leds with common anode just replace the palSetPad with palClearPad and viceversa. PA1: Backlight color A. PA0: Backlight color B.