A 42-Key Hotswap BLE Keyboard

P42 HSBLE DIY Keyboard

Just like the P18 Macropad, this 40% keyboard features hotswap-pability, allocation for rotary encoder and uses cheap pro micro OR a not so cheap Bluefruit LE from Adafruit micro-controllers for wireless connectivity

Update  20200707: I placed encoder nets on the wrong pins. Thus, the encoders will not function. Manual rewire of connections are necessary to enable the rotary encoder slots.

Update 20200918: Encoder nets has been fixed in revision 1. Rotary encoder under the promicro can now be used. I also made the LEDs cascade but disable LEDs on promicro. I thought that the power won't be enough. Through enough, it is not. I had one kit with a promicro with RGB LEDs wired and it is not acting well. Brightness is low and only does one mode. 

Update 20201005: I was able to test the current PCB with Feather Bluefruit LE 32U4 and it does not work. I realized that there are pins on the feather that could not be used, 6 in total based on my testing. Revision on the matrix is necessary to enable Feather BLE.

PCB Front


PCB Back

Pin Guide

/* pin-out for PROMICRO */
#define MATRIX_ROW_PINS { D1, D0, D4, C6 }
#define MATRIX_COL_PINS { D7, E6, B4, B5, D2, D3, F7, B1, B3, B2, B6 }

/* pin-out for BLUEFRUIT 
#define MATRIX_ROW_PINS { F7, F6, F5, F4 }
#define MATRIX_COL_PINS { F1, F0, B1, B2, B3, D2, C7, D6, B7, B6, B5 }
*/

/* Encoder position for PROMICRO */
#define ENCODERS_PAD_A { F5, F6 }

/* Encoder position for BLUEFRUIT 
#define ENCODERS_PAD_A { C6, D7 }
*/

/* RGBLIGHT - BLUEFRUIT ONLY (DO:D1)
#define RGB_DI_PIN D3
#undef RGBLED_NUM
#define RGBLED_NUM 40

Layout options with PROMICRO

Unlike P18, and as shown in the image below, having two rotary encoders  is not an option with this keyboard. You can force to install two rotary encoders but both will function the same. 




Layout Options with BLUEFRUIT LE




Programming


Default hex file may be downloaded from: https://github.com/pabile/P42/tree/master/docs


Update 20200710:

As of writing, this version is not yet merged with QMK master repository. To configure and compile, please us my branch.

sudo git pull origin pabile

Navigate to keyboards/pabile/p42/keymaps/default/ then edit with the keymap/layout of your liking. 

Update 20200920: QMK's repository is now updated with P42. Please check your PCB version. Please update your QMK copy with those from master and delete copies from my branch (or at least do nit use while i am not through updating it).

As a general rule, please test the micro-controller before soldering. Promicros that comes with my kits are pre-flashed with my default layout and should be detected as P42. This was done to test the micro controllers that I release and to be able to immediately test the kit after assembly.

PCB and Top Plate Photos






Bonus photos





Thingiverse link for bottom cover: https://www.thingiverse.com/thing:4524962

Comments

  1. Daang. Rotary encoder support and hotswap on a 40%? Nice. The exposed pro micro is definitely a plus too. I think these would be perfect to pair with those peel away sockets from keeb.io.

    ReplyDelete

Post a Comment