Skip to content

RGB v3 - SK6812 mini-e RGB support#90

Open
tiadobatima wants to merge 5 commits into
josefadamcik:masterfrom
tiadobatima:mini-e
Open

RGB v3 - SK6812 mini-e RGB support#90
tiadobatima wants to merge 5 commits into
josefadamcik:masterfrom
tiadobatima:mini-e

Conversation

@tiadobatima

Copy link
Copy Markdown
Contributor
  • Rerouting all switches RGBs.
  • Changed all the underglow and layer indicator RBGs to mini-e as well

@tiadobatima tiadobatima marked this pull request as ready for review June 16, 2021 03:56
@tiadobatima tiadobatima mentioned this pull request Jun 16, 2021
@DaneEvans

DaneEvans commented Jun 16, 2021

Copy link
Copy Markdown
Collaborator

[x] Footprint reviewed to datasheet
[x] Footprint correctly flipped onto back side
[x] Footprint pin 1 marking
Issues - there is a second pin 1 marking on the switches. My apologies if it stems from the work I did on it
[x] power rails connected
[x] Din and Dout connected correctly
[x] Board revision
Issues - the board needs a new revision number. It's probably 3.0, and feel free to add your name on either a silk screen or copper layer
[x] DFM check
Issues - DOut on switches 14, 21 and 22 have an acute angle, likely ok for modern manufacturers, but still considered against best practice
[x] DRC
[x] Unconnected nets check

There are a few traces that I would clean up aesthetically, but they're not an issue.
The addition of the UND and BL silk screen is inaccurate, the backlight is optional at that point.

Overall, I'd happily get a prototypes set made (it's been through a lot more review than my 1.0 set), but understand that there's always a chance that we missed something.
And we probably should have someone get a set of boards made up before merging it into here.

Todo :
[] Remove excess pin 1 marking from footprint
[] Increment board revision
[] Clean up acute angles in traces
[] Physical prototype

@tiadobatima

Copy link
Copy Markdown
Contributor Author
  • Remove excess pin 1 marking from footprint:
    • I got rid of a front silk layer on pad 1 (dout). Is this the marking you're speaking of?
  • Increment board revision
    • I changed the revision on the PBC's text and added my name, but I'm not sure if there are other places I should change the revision.
  • Clean up acute angles in traces
    • I think I addressed the acute angles on switches 14, 21, 22
  • The addition of the UND and BL silk screen is inaccurate, the backlight is optional at that point
    • Do you mean only the &BL silk by J4 (pins 2-3)? If yes, I did remove that now too.

Other changes:

  • I added a silk around on pad 1 (dout) to match the notched pin of the RGB, to make it less error prone for the user when soldering.
  • Rerouted a few other traces that I didn't like how I did it initially. I'm sure many others can be improved.

Thanks!!!

@DaneEvans

DaneEvans commented Jun 17, 2021

Copy link
Copy Markdown
Collaborator

Looks good, that's all the necessary changes from me

  • LED header has an extra vcc silk screen, same with LED

@tiadobatima

Copy link
Copy Markdown
Contributor Author

Fixed the extra vcc silk on the LED header

@josefadamcik

Copy link
Copy Markdown
Owner

It looks cool to me. Thanks for the contribution!

I haven't reviewed the board in detail though, I thinks 2 pairs of eyes are enough. From my side I am ok with merging this into master. But I would leave the final word with @DaneEvans since it's the RGB version.

And we probably should have someone get a set of boards made up before merging it into here.

This is indeed the better approach. People are impatient and tend to start building or even selling the designI too soon. But as I said above, I am leaving this decision to you.

@DaneEvans

Copy link
Copy Markdown
Collaborator

My concern is the LED footprints, as far as I know I was the only one to look at them (even if it was 4 months apart). If it was just the routing I'd say merge it.

Maybe there's a compromise where we merge in the PCB files, but not the generated Gerber's. That way it should only be people that know what they are doing that get one built.

@DaneEvans

Copy link
Copy Markdown
Collaborator

@tiadobatima are you planning on getting boards made in the near future?

@tiadobatima

Copy link
Copy Markdown
Contributor Author

I wasn't planning to print them for myself yet, since I got the original mini working, but I could.
The main thing for me isn't even the printing, but finding time to solder it, but I guess I just need to solder LED to confirm the pads.

So far, I just assumed the dimensions are correct (didn't you take component from Corne, or something, Dane?). Tonight I can give an extra pair of eyes on the footprints too before we merge with or without the Gerbers.

@tiadobatima

Copy link
Copy Markdown
Contributor Author

Hello @DaneEvans @josefadamcik...

I looked into the footprints in the last couple of days and I placed a real mini-e that I have around on a current mini PCB to have an idea of the tolerances, and I think we have room to make the edge cut hole for the mini-e a bit smaller. I think the pads are fine where they are, but we could make them a big bigger towards the cut if we indeed choose to make the cut smaller.

It's not a big deal to keep the current mini-e footprint as is. It looks like it'll work just fine, but I think making the hole smaller would give less wiggle room for the LED to move when soldering it, which was one of the main sources of expletives uttered in this house in the last while. I think it would just make people's lives a bit easier.

The downside is that making the hole smaller would probably make the board a bit less flexible and there will be less room for errors.

These are the measurements:

Mini

Mini-e

What do you think?

@josefadamcik

Copy link
Copy Markdown
Owner

@tiadobatima

  • Size: 3.20mm x 2.80mm

  • Current edge cut: 3.60mm x 3.10mm

  • Proposed edge cut: 3.30mm x 2.90mm. Or maybe a bit bigger.

To be honest, I am not experienced enough with PCB manufacturing to be able to know how the tolerances are and what is safe and what is not (0.1mm might be still huge gap or already too small). I would personally check mini-e footprints for other boards or in KiCad library and size of the opening there to have some other input.

My gut feeling is it should be ok but it would require a test build.

@DaneEvans

DaneEvans commented Jun 24, 2021 via email

Copy link
Copy Markdown
Collaborator

@tiadobatima

Copy link
Copy Markdown
Contributor Author

Ooops... I missed your replies.
If @DaneEvans doesn't think we should change the hole size I think this ready for real life testing.

I was thinking of ordering the boards to test them, but I'm gonna be moving next month, so I won't have time to work on them anytime soon. I'm very sorry.

I'll be happy to make any small touchups/fixes to the traces if needed be, though.

@fi0

fi0 commented Jul 1, 2021

Copy link
Copy Markdown

There're some low cost manufacturers which CNC at 0.2mm tolerance.

@fi0

fi0 commented Jul 1, 2021

Copy link
Copy Markdown

So, a safe dimension should be 3.60mm x 3.20mm.

@DaneEvans

DaneEvans commented Jul 1, 2021 via email

Copy link
Copy Markdown
Collaborator

@fi0

fi0 commented Jul 1, 2021

Copy link
Copy Markdown

I suggest we should make the cutout slightly larger than the current one, so a majority of manufacturers can be used.

Apart from that, the Kailh sockets NPTH doesn't have enough tolerance. The recommended PCB layout is 3mm in diameter (for +/-0.05mm tolerance). It's common to see +/-0.075mm or +/-0.08mm. And one manufacturer even states +/-0.2mm. So the size of NPTH holes should be increased as well.

@brianlow

Copy link
Copy Markdown
Contributor

In case it helps, I've assembled a board with SK6812 MINI-E here: #40. I didn't have any trouble soldering with the cutout size used.

@josefadamcik josefadamcik added the enhancement New feature or request label Aug 22, 2021
@l4u

l4u commented Aug 28, 2021

Copy link
Copy Markdown

@tiadobatima Are the underglows mounted on the front side or the back side? If they are on the front side, they could interfere with the key switches.

@DaneEvans

DaneEvans commented Aug 28, 2021 via email

Copy link
Copy Markdown
Collaborator

@l4u

l4u commented Aug 28, 2021

Copy link
Copy Markdown

@DaneEvans yes, specifically the droplight D36. When the key switches is inserted from the Front side, both the droplight and per key lighting for RGB 2.1 are mounted on the Back side.
For the mini-e branch, it seems that the droplight are mounted on the Front, while the per key lightings are on the Back.

@tiadobatima

Copy link
Copy Markdown
Contributor Author

Hi @l4u ...
This is a good question, since these mini-e are soldered a bit differently from the original RGB version from @DaneEvans.
All LEDs in the mini-e version are soldered exactly the same way: The light facing up.

@DaneEvans

Copy link
Copy Markdown
Collaborator

Apologies, you're right. I looked at the wrong pcb file!

Given that the mini-e's have 0.8 mm behind the LED, you're right and the downward pointing LED's will not work if they are close to a switch, A few of them do look to be too close, and should be redone to point out from the board, or moved to be away from the switches.

@trougnouf

trougnouf commented Dec 18, 2021

Copy link
Copy Markdown
Contributor

I got it working. It seems fine as it is but needs to be documented before merging imo.

IMG_20211218_205851

Right side:
Indicator (1): soldered on the back side, ground on the bottom-right
drop lighting (2-7): soldered on the front side, ground on the top-right
per-key underlighting (8-36): soldered on the back, ground on the bottom-left

Left side:
Indicator (1): soldered on the back side, ground on the bottom-right
Drop lighting (2-7): soldered on the front side, ground on the bottom-left
per-key underlighting (8-36): soldered on the back side, ground on the top-right

edit: I finished soldering the LEDs. LED36 doesn't work on either side (even after replacing it on the 1st). Maybe/hopefully it's a software issue.

IMG_20211218_224324

@Cirromulus

Cirromulus commented Dec 21, 2021

Copy link
Copy Markdown

edit: I finished soldering the LEDs. LED36 doesn't work on either side (even after replacing it on the 1st). Maybe/hopefully it's a software issue.

This is indeed a software issue. When using all LEDs, the map is not correct anymore. Attached patch works for me.

diff --git a/keyboards/sofle/keymaps/rgb_default/config.h b/keyboards/sofle/keymaps/rgb_default/config.h
index c34da8382b..edecca70e0 100644
--- a/keyboards/sofle/keymaps/rgb_default/config.h
+++ b/keyboards/sofle/keymaps/rgb_default/config.h
@@ -49,8 +49,7 @@
 
 
 #ifdef RGB_MATRIX_ENABLE
-#define RGBLED_NUM 35    // Number of LEDs
-#define RGBLED_NUM 35    // Number of LEDs
+#define RGBLED_NUM 37    // Number of LEDs, see keymap.c for matching value
 #define DRIVER_LED_TOTAL RGBLED_NUM
 #endif
 
@@ -71,7 +70,7 @@
 
     #define RGBLED_NUM 70
 	//#define RGBLED_SPLIT
-	#define RGBLED_SPLIT { 35, 35 } // haven't figured out how to use this yet
+	#define RGBLED_SPLIT { 37, 37 } // haven't figured out how to use this yet
 
 	//#define RGBLED_NUM 30
     #define RGBLIGHT_LIMIT_VAL 120
diff --git a/keyboards/sofle/keymaps/rgb_default/keymap.c b/keyboards/sofle/keymaps/rgb_default/keymap.c
index 30f374f296..d1964d3305 100644
--- a/keyboards/sofle/keymaps/rgb_default/keymap.c
+++ b/keyboards/sofle/keymaps/rgb_default/keymap.c
@@ -24,43 +24,57 @@
 #define HSV_OVERRIDE_HELP(h, s, v, Override) h, s , Override
 #define HSV_OVERRIDE(hsv, Override) HSV_OVERRIDE_HELP(hsv,Override)
 
+#define NUM_INDICATORS 1
+#define NUM_UNDERGLOW 6
+#define START_BACKLIGHT (NUM_INDICATORS + NUM_UNDERGLOW)
+#define START_OUTER_FN_KEYS (START_BACKLIGHT + 1) // +1!
+#define NUM_OUTER_FN_KEYS 4
+#define START_INNER_KEYS (START_BACKLIGHT)
+#define START_THUMB (START_BACKLIGHT + 19)		// why 19? Tja
+#define NUM_BACKLIGHT 29
+#define LEFTRIGHT_SPLIT (NUM_INDICATORS + NUM_UNDERGLOW + NUM_BACKLIGHT)
 // Light combinations
 #define SET_INDICATORS(hsv) \
-	{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
-    {35+0, 1, hsv}
+	{0, NUM_INDICATORS, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
+    {LEFTRIGHT_SPLIT+0, NUM_INDICATORS, hsv}
 #define SET_UNDERGLOW(hsv) \
-	{1, 6, hsv}, \
-    {35+1, 6,hsv}
+	{NUM_INDICATORS, NUM_UNDERGLOW, hsv}, \
+    {LEFTRIGHT_SPLIT+NUM_INDICATORS, NUM_UNDERGLOW, hsv}
 #define SET_NUMPAD(hsv)     \
-	{35+15, 5, hsv},\
-	  {35+22, 3, hsv},\
-	  {35+27, 3, hsv}
+	{LEFTRIGHT_SPLIT+15, 5, hsv},\
+	  {LEFTRIGHT_SPLIT+22, 3, hsv},\
+	  {LEFTRIGHT_SPLIT+27, 3, hsv}
 #define SET_NUMROW(hsv) \
 	{10, 2, hsv}, \
 		{20, 2, hsv}, \
 		{30, 2, hsv}, \
-	  {35+ 10, 2, hsv}, \
-	  {35+ 20, 2, hsv}, \
-	  {35+ 30, 2, hsv}
+	  {LEFTRIGHT_SPLIT+ 10, 2, hsv}, \
+	  {LEFTRIGHT_SPLIT+ 20, 2, hsv}, \
+	  {LEFTRIGHT_SPLIT+ 30, 2, hsv}
 #define SET_INNER_COL(hsv)	\
 	{33, 4, hsv}, \
-	  {35+ 33, 4, hsv}
+	  {LEFTRIGHT_SPLIT+ 33, NUM_OUTER_FN_KEYS, hsv}
 
 #define SET_OUTER_COL(hsv) \
-	{7, 4, hsv}, \
-	  {35+ 7, 4, hsv}
+	{START_OUTER_FN_KEYS, NUM_OUTER_FN_KEYS, hsv}, \
+	  {LEFTRIGHT_SPLIT + START_OUTER_FN_KEYS, NUM_OUTER_FN_KEYS, hsv}
+
 #define SET_THUMB_CLUSTER(hsv) 	\
-	{25, 2, hsv}, \
-	  {35+ 25, 2, hsv}
+	{START_THUMB, 2, hsv}, \
+	  {LEFTRIGHT_SPLIT+ START_THUMB, 2, hsv}
+
 #define SET_LAYER_ID(hsv) 	\
-	{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
-    {35+0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
-		{1, 6, hsv}, \
-    {35+1, 6, hsv}, \
-		{7, 4, hsv}, \
-	  {35+ 7, 4, hsv}, \
-		{25, 2, hsv}, \
-	  {35+ 25, 2, hsv}
+	{0, NUM_INDICATORS, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
+    {LEFTRIGHT_SPLIT+0, NUM_INDICATORS, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
+		{NUM_INDICATORS, NUM_UNDERGLOW, hsv}, \
+    {LEFTRIGHT_SPLIT+NUM_INDICATORS, NUM_UNDERGLOW, hsv}, \
+	{START_OUTER_FN_KEYS, NUM_OUTER_FN_KEYS, hsv}, \
+	  {LEFTRIGHT_SPLIT + START_OUTER_FN_KEYS, NUM_OUTER_FN_KEYS, hsv}, \
+		{START_THUMB, 2, hsv}, \
+	  {LEFTRIGHT_SPLIT+ START_THUMB, 2, hsv}
 
 
 enum sofle_layers {
@@ -350,10 +364,7 @@ const rgblight_segment_t PROGMEM layer_numpad_lights[] = RGBLIGHT_LAYER_SEGMENTS
 	SET_INDICATORS(HSV_ORANGE),
     SET_UNDERGLOW(HSV_ORANGE),
 	SET_NUMPAD(HSV_BLUE),
-    {7, 4, HSV_ORANGE},
-    {25, 2, HSV_ORANGE},
-    {35+6, 4, HSV_ORANGE},
-    {35+25, 2, HSV_ORANGE}
+    SET_THUMB_CLUSTER(HSV_ORANGE)
     );
 // _SWITCHER   // light up top row
 const rgblight_segment_t PROGMEM layer_switcher_lights[] = RGBLIGHT_LAYER_SEGMENTS(
@@ -408,8 +419,6 @@ static void render_logo(void) {
 static void print_status_narrow(void) {
     // Print current mode
     oled_write_P(PSTR("\n\n"), false);
-    oled_write_ln_P(PSTR("Dane\nEvans"), false);
-
     oled_write_ln_P(PSTR(""), false);
 
 	//snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Undef-%ld", layer_state)
diff --git a/keyboards/sofle/rev1/rev1.c b/keyboards/sofle/rev1/rev1.c
index 88a28e6a40..f24e02c179 100644
--- a/keyboards/sofle/rev1/rev1.c
+++ b/keyboards/sofle/rev1/rev1.c
@@ -18,6 +18,7 @@
 
 #ifdef RGB_MATRIX_ENABLE
   // Physical Layout
+  // Note, that if STATUS_LED is enabled, all of this is +1!
   // Columns
   // 0  1  2  3  4  5  6  7  8  9  10 11 12 13
   //                                           ROWS

@trougnouf

trougnouf commented Dec 21, 2021

Copy link
Copy Markdown
Contributor

Thank you @Cirromulus ! Sadly I destroyed (at least) one of the halves when I soldered the rotary encoders on the wrong side and tried to flip them around, it was the very last part to solder and I'm waiting for some new bits in the mail, looking forward to trying that out! I like that you added a comment for the STATUS_LED also :)

@trougnouf

trougnouf commented Dec 26, 2021

Copy link
Copy Markdown
Contributor

All done :) But I don't quite understand what needs to be increased in rev1.c/g_led_config for the LEDs position to work correctly when the STATUS_LED is present, can you clarify @Cirromulus ?

@Cirromulus

Cirromulus commented Dec 26, 2021

Copy link
Copy Markdown

The rgb_default keymap uses RGB_LIGHT, not RGB_MATRIX, so if you use the default, this does not apply.
But if you use a keymap with RGB_MATRIX enabled, the exact number of LEDs and their order is important.
I did not yet test it with RGB_MATRIX enabled, but looking into the values there seemed a discrepancy between comments and implementation. The comment recognizes the STATUS_LED (position 01), so my comment is somewhat misleading, sorry.

@trougnouf

trougnouf commented Dec 26, 2021

Copy link
Copy Markdown
Contributor

I used the rgb_default keymap. Do you know of a keymap (or settings) that would behave properly? Right now some of the underglow seems mixed up with the regular lights. (I tried to increase the first part of g_led_config by 1 but per your comment that didn't fix it.)

IMG_20211226_151817
IMG_20211226_151833

edit: It seems to work with the following, and setting the number of LEDs in config.h:

// Light combinations
#define SET_INDICATORS(hsv) \
	{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
    {36+0, 1, hsv}
#define SET_UNDERGLOW(hsv) \
	{1, 6, hsv}, \
    {36+1, 6,hsv}
#define SET_NUMPAD(hsv)     \
	{36+15, 5, hsv},\
	  {36+22, 3, hsv},\
	  {36+27, 3, hsv}
#define SET_NUMROW(hsv) \
	{10, 2, hsv}, \
		{20, 2, hsv}, \
		{30, 2, hsv}, \
	  {36+ 10, 2, hsv}, \
	  {36+ 20, 2, hsv}, \
	  {36+ 30, 2, hsv}
#define SET_INNER_COL(hsv)	\
	{33, 4, hsv}, \
	  {36+ 33, 4, hsv}

#define SET_OUTER_COL(hsv) \
	{8, 4, hsv}, \
	  {36+ 8, 4, hsv}
#define SET_THUMB_CLUSTER(hsv) 	\
	{26, 2, hsv}, \
	  {36+ 26, 2, hsv}
#define SET_LAYER_ID(hsv) 	\
	{0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
    {36+0, 1, HSV_OVERRIDE_HELP(hsv, INDICATOR_BRIGHTNESS)}, \
		{1, 6, hsv}, \
    {36+1, 6, hsv}, \
		{8, 4, hsv}, \
	  {36+ 8, 4, hsv}, \
		{26, 2, hsv}, \
	  {36+ 26, 2, hsv}

@Cirromulus

Copy link
Copy Markdown

The +1 is only for keymaps using RGB_MATRIX, and you seem to use rgb_default which uses RGB_LIGHT.
This one is fixed with my diff, that calculates the correct offset depending on the Macro values. So no (less) hardcoded values.

@climent

climent commented Dec 27, 2021

Copy link
Copy Markdown
Contributor

I was toying with KiCad today and ended up doing a complete cleanup of the RGB, before I noticed this PR.

One thing I realized (and I implemented) is that the "jumper switches" for the different segments of LEDs can be replaced for 2 simple bypass tabs (same as the ones used for OLEDs). Let me explain:

LED -o-> Indicator LED ---oo---> Drop Light LEDs ---o---> Per Key LEDs
      `----| bypass |-----´`------| bypass |-------´

In that setup, if the Indicator LED is connected, the 1st bypass should be open. If the LED is missing, then should be closed.
Similarly if the Drop Light LEDs are present, the bypass should be open. If they are missing, it should be closed. And the Per Key LEDs can be either present or missing.

This way all configurations are possible and the setup and the build process are much more simple and easier to explain and solder.

I have the code branched from a copy of the upstream git repo, and I am trying to figure out how I can rejoin it into my git fork so that I can create a PR for you to play with and see how i implemented the schematic.

Thoughts?

@climent

climent commented Dec 27, 2021

Copy link
Copy Markdown
Contributor

I have the code branched from a copy of the upstream git repo, and I am trying to figure out how I can rejoin it into my git fork so that I can create a PR for you to play with and see how i implemented the schematic.

I managed to create a PR #130 with the code. I do not expect it to be merged, just added it for visibility.

@k-loh

k-loh commented Mar 15, 2022

Copy link
Copy Markdown

@Cirromulus Does the PCB in this PR have full SK6812 mini-e support with just your code changes, or is something else needed?

@Cirromulus

Copy link
Copy Markdown

This means that you need to flip the footprint (not rotate, not flip twice) So for pointing through, you have a pattern like 1 2 3 4

I forgot to do that before my PCB-Order. Luckily, I bought both mini-e as well as the standard SK6812 (with the different pinout). This way, I soldered the standard minis to the bottom and reversed the DIN/DOUT path by connecting cables instead of pin header jumpers.

If you do that, it should fit.
As to my knowledge, @tiadobatima did not change anything since, so either do it yourself (with a nice PR ;) ) or do it "my" way by buying both kinds and use the old LEDs for the back-light.

Perhaps Dane did this already, as he wanted to flip the outline: #90 (comment)

@trougnouf

trougnouf commented Mar 16, 2022

Copy link
Copy Markdown
Contributor

If you do that, it should fit. As to my knowledge, @tiadobatima did not change anything since, so either do it yourself (with a nice PR ;) ) or do it "my" way by buying both kinds and use the old LEDs for the back-light.

There is no need to get the old LEDs for backlight, just solder them the way I described in #90 (comment) because the documentation does not match.

@scchow

scchow commented Sep 24, 2022

Copy link
Copy Markdown

Hi all. Thank you for your work in getting mini-e support for the Sofle working. I am interested in getting this PCB printed; however, following the thread in this PR, I am confused whether the Drop-Through LED (D31-D37) pads are still flipped or whether the issue has been solved.

To provide a summary of what I understand has been done with regards to the drop through lighting:


It sounded like in the original PR, @tiadobatima made an incorrect assumption that the drop through lighting was facing up, when they should be facing down.

To fix this issue, @DaneEvans suggested to flip the footprint for the drop through lighting:

This means that you need to flip the footprint (not rotate, not flip twice) So for pointing through, you have a pattern like
1 2
3 4

then for the one that points out you have to have
2 1
4 3

But it sounds like this has not been implemented to my knowledge.

@Cirromulus flipped the LEDs, but that did not flip the pads for the board he printed, but was able to get his to work with some clever soldering and by using some of the standard SK6812 LEDs for the drop through.

I forgot to do that before my PCB-Order. Luckily, I bought both mini-e as well as the standard SK6812 (with the different pinout). This way, I soldered the standard minis to the bottom and reversed the DIN/DOUT path by connecting cables instead of pin header jumpers. @DaneEvans, shall I do a PR with flipped droplight LEDs, or could you do it?

On the other hand, it sounds like @trougnouf was able to print the board from this PR without modifications and get the lighting to work without flipping the pads by soldering the LEDs in a specific way:

Right side:
Indicator (1): soldered on the back side, ground on the bottom-right
drop lighting (2-7): soldered on the front side, ground on the top-right
per-key underlighting (8-36): soldered on the back, ground on the bottom-left

Left side:
Indicator (1): soldered on the back side, ground on the bottom-right
Drop lighting (2-7): soldered on the front side, ground on the bottom-left
per-key underlighting (8-36): soldered on the back side, ground on the top-right


Please let me know if I have misunderstood any of these comments.

My question is:

Do the pads still need flipping, or can I get away with just printing the board from this PR and following @trougnouf's instructions?

If we still need to flip the pads, let me know and I give it a shot; however I am still very new at KiCAD and PCB design in general, so I may need some guidance and mentorship to make sure I don't accidentally break anything while making the modifications.

Thanks for your help!

@Cirromulus

Copy link
Copy Markdown

Well, I think it depends on the rgb-leds that you have.
I did not flip the pads, and I had to reverse the in/output with bodge wires using the "old" flat leds. The others could be the newer ones with the fins.

@scchow

scchow commented Sep 25, 2022

Copy link
Copy Markdown

Thanks for the quick response!

I was planning on using these SK6812 Mini-Es from Aliexpress, which I had assumed to be the newer kind with fins. I am still putting together the BOM, so I have flexibility in terms of what parts to purchase.

I would like to avoid bodge wires if possible, so I was curious as to how @trougnouf was able to get their board to work, since it sounded like they didn't swap the pads, but was still able to use the newer LEDs without much bodging. Were the LEDs meant to be soldered the way trougnouf described, or was it a workaround?

If the proper way to implement the drop through LEDs without workarounds/hacks is to flip the pads, I wouldn't mind giving it a shot in my spare time. :)

@trougnouf

trougnouf commented Sep 26, 2022

Copy link
Copy Markdown
Contributor

I was planning on using these SK6812 Mini-Es from Aliexpress, which I had assumed to be the newer kind with fins. I am still putting together the BOM, so I have flexibility in terms of what parts to purchase.

I would like to avoid bodge wires if possible, so I was curious as to how @trougnouf was able to get their board to work, since it sounded like they didn't swap the pads, but was still able to use the newer LEDs without much bodging. Were the LEDs meant to be soldered the way trougnouf described, or was it a workaround?

Those are the same LEDs I got ( https://www.aliexpress.com/item/4000475685852.html ), and as far as I'm concerned it works well with the orientation described on #90 (comment) , this should be merged as the main Sofle RGB (until someone proposes something better), and it's just a documentation issue.

@scchow

scchow commented Sep 27, 2022

Copy link
Copy Markdown

Hi @trougnouf, Thanks for the response! Just to make sure I really understood your explanation about where to solder each LED correctly, I created a series of figures below, where the GND pad is circled in red.

Did I correctly interpret your instructions?

Right side:
Indicator (1): soldered on the back side, ground on the bottom-right
drop lighting (2-7): soldered on the front side, ground on the top-right
per-key underlighting (8-36): soldered on the back, ground on the bottom-left

image
image

Left side:
Indicator (1): soldered on the back side, ground on the bottom-right
Drop lighting (2-7): soldered on the front side, ground on the bottom-left
per-key underlighting (8-36): soldered on the back side, ground on the top-right
image
image


If these figures are correct, does that means the pads were placed correctly all along?
The position of the ground pads in the figures above actually match those in the KiCAD model!

One thing that may have caused some confusion is that in KiCAD, the labeling of the pads on the back side of the board look reversed in the default view.
This is because the pads are displayed as though you were looking through the front of board. This gives the impression that the back side GND pads are supposed to be on the bottom right for the per-key LEDs, leading to confusion on which side to solder the LEDs.

Default View of the Back Copper Traces in Green: Note the 2 GND label for the per-key LEDs appear to be on the bottom right.
image
But in reality, when you are soldering, you are looking at the back of the board straight on.

By using the View > Flip Board function, we can get the more useful display of the pad labels, with the ground pads of the per-key LEDs being on the bottom left, which matches @trougnouf's instructions.

Flipped View of the Back Copper Traces in Green: Note the 2 GND pads for the per-key LEDs are actually on the bottom left, which is how you should actually solder them.
image

@trougnouf

Copy link
Copy Markdown
Contributor

@scchow

Yes, that looks correct. :)

@Cringely

Cringely commented Oct 17, 2022

Copy link
Copy Markdown

If someone wanted to build this, would they be using the files found in this PR or those found in PR#130?

Edit: disregard, I see now that #130 is a cleanup of existing RGB v2.1 while this PR is a proposed v3.
I'm brand new to the world of PCB anything, were the electrical enhancements and/or label cleanups that @climent add in their PRs also included here from @tiadobatima's effort?

scchow added a commit to scchow/qmk_firmware that referenced this pull request Dec 24, 2022
- Started from rgb_default
- Incorporated information from:
  josefadamcik/SofleKeyboard#90
  Regarding updated LEDs for experimental version of
  Sofle RGB v3.0 with SK6812 mini-e RGB
@scchow

scchow commented Dec 31, 2022

Copy link
Copy Markdown

Just wanted to give an update. I was able to build a Sofle using the files from this PR (with SK6812 mini-E). I followed the led placement instructions from @trougnouf (summarized by my diagrams above) and all keys/LEDs/OLEDs seem to work.

I am running into an issue where if I enable RGB with RGBLight, when the keyboard wakes from sleep after a while, it freezes on the first key pressed, but that is probably more of a firmware/QMK issue.

Thanks for everyone's help and guidance on my first split keyboard build! Happy New Year!

image

@Cringely

Cringely commented Jan 30, 2023

Copy link
Copy Markdown

I was also able to complete a build from this PR, outside of docu updates everything seems good.

This is stock wireless ZMK right now, with only a special config to get LEDs running. Also running on 750mah batteries.

image
image

@markwkm

markwkm commented Jan 29, 2024

Copy link
Copy Markdown

I've successfully built this too.
sofle-rgb-v3

@tiadobatima

Copy link
Copy Markdown
Contributor Author

Hello all, I'm so sorry I've been AWOL for so long. Turns out moving to a farm is not that easy 🤷
First of all, I'm happy folk got a real board going. Thank you so much for the testing it blindly. I'll try to document these changes in this PR.

Second, I saw @climent 's improvement on the LED jumpers and implemented it in a different branch, because I didn't want to make more changes on a branch people are already using, so I'll likely create a separate PR for it. @climent would you mind taking at this branch to make sure I didn't butcher your idea please? https://github.com/tiadobatima/SofleKeyboard/tree/mini-e%2Bbypass

@adamclerk

Copy link
Copy Markdown

I built one as well https://www.youtube.com/watch?v=klI25hiqJlc

@DaneEvans

Copy link
Copy Markdown
Collaborator

@tiadobatima Looks like people are happy - Can you generate the Gerbers, clean up the folders (I think this is R3, add a folder for R2 and drop the old project files in there)

I'd do it, but then I'd need to MR to yours, get approval, then come back here, and do it all over again

@DaneEvans DaneEvans changed the title SK6812 mini-e RGB support RGB v3 - SK6812 mini-e RGB support Jun 21, 2025
@Kyokatarz

Kyokatarz commented Nov 4, 2025

Copy link
Copy Markdown

Wished I saw this sooner 😭 Now I'm stuck with the hard to solder 3535

@SMQuazi

SMQuazi commented Jun 13, 2026

Copy link
Copy Markdown

I see there's a conflict for the branch. Is it still safe to use? Will I be missing out some more modern features?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.