#notetoself Promicro Unlocking Extra Pins and Torture Test

Goal

Force 2 EC11 rotary encoders and enable 40 WS2812B RGB LED on P42 with just the pro-micro. 

Unlocking extra pins

The internet told me that the two extra pins are B0 and D5 and they can be found at these locations...

Removing the component/resistor on these pads were quit easy. Placing the wires were quit hard. I placed super glue on the wires to keep it steady.

Update: Modifications on the PCB

RGB LEDs were intentionally disconnected with promicro on P42 rev1 (aka P42i). I was thinking that it is a way to protect the controller. Anyhow, below is the jumpers necessary to enable RGB on P42i. The newly opened B0 became the DIN pin.


P42i schematics (little was changed from prior version)


Test

I plugged the modified pro-micro on my pc and flashed it with my default firmware. All still looks good and seems to function well. So I soldered the promicro on my PCB. 


Please excuse my soldering. I tried to make it as light as i could thinking that it will be easier to remove in an event of failure. I'll have this fixed after my tests. 

Configurations for my P42i...

rules.mk
ENABLE_ENCODER = yes 
RGBLIGHT_ENABLE = yes

config.h
#define RGB_DI_PIN B0 
#define RGBLIGHT_SLEEP 
#define RGBLED_NUM 40 
#define RGBLIGHT_HUE_STEP 8 
#define RGBLIGHT_SAT_STEP 8 
#define RGBLIGHT_VAL_STEP 8 
#define RGBLIGHT_LIMIT_VAL 40 
#define RGBLIGHT_ANIMATIONS 
#define RGBLIGHT_LED_MAP { 0,1,2,3,4,5,6,7,8,9,19,18,17,16,15,14,13,12,11,10,20,21,22,23,24,25,26,27,28,29,39,38,37,36,35,34,33,32,31,30}

keymap.c
void encoder_update_user(uint8_t index, bool clockwise) { 
    if (index == 0) { 
      if (clockwise) {  
        rgblight_step(); 
      } else {  
        rgblight_step_reverse();  
      } 
    } else if (index == 1) { 
      if (clockwise) { 
        rgblight_increase_hue(); 
      } else { 
       rgblight_increase_sat(); 
      } 
    } 
}

...and everything works!


Thoughts

So, I was able to pull 2 additional pins out of promicro. I was also able to power up 40 RGB LEDs from its VCC. The only issue is that I could only put brightness value up to 40 out of 255 (QMK default). I tried higher number but the promicro fails to function.

...I need to get my hands on a Feather Bluefruit LE then I'm done.

Update 20200918: I am having issues with the RGB LEDs where I am only getting one mode. I guess this is because of the power the LEDs are getting. ...still investigating.

Comments