Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pling!

hero image

Overview

pling! is a custom low profile wireless split keyboard designed around a few ideas:

  • optimize the layout for my skinny long fingers
  • embrace the internals instead of hiding it
  • keep the structure and build process minimal (no hotswap, no headers, no jumper pads)

full image 1

The pling! features:

  • Gateron KS27 Low Profile switches
  • 54 key layout with 3 keys in the thumb cluster
  • Xiao BLE microcontorller (nrf52840) runnign ZMK firmware (indicator LEDs too)
  • Flippable PCB
  • Long ass 250mah battries
  • Acrylic + 3D Printed body
  • No hotswap sockets, no headers for the microcontroller. Set it and forget it, for good or for worse.

Gallery

Images are up in the images folder. I'd like to create a prettier gallery sometime.

btw did i tell you how pretty the indicator LEDs look through the frosted acrylic?

indicator

Build Guide

BOM and Build Guide can be found here.

PCB Gerbers

The PCB is flippable without needing any jumper pads (like the corne, which are a nightmare to figure out). The KiCad source files and gerbers can be found here.

Do note that the source KiCad files are a mess and I've yet to clean them up. But the gerbers zip is perfectly adequate and I used the same to order pcbs from jlc.

PCB1

Firmware

The firmware I use can be found in my zmk-config repo. It doesn't yet support zmk studio because I prefer to use keymap editor, but I plan to add support for zmk studio soon.

Layout

This is the default colemak layout I use with additional layers for special characters, numbers, etc.

layout

Case

The stl files for the 3d printed case and the dxf files for the acrylic cutout can be found here.

Problems

As flawless as I'd like to claim my design is, this version has some issues that I noticed while building it. Please keep them in mind:

  • The screw placements are a bit weird. The ones for the acrylic plate are very close to the switches (just barely fit) and don't look symmetric. There aren't properly spaced screw holes for the body either, I use two of the acrylic holes for the body in my personal build.
  • no hotswaps and no headers. I added this in features but ofcourse there are downsides, I just find this way more straightforward and there's much less room for error. And I'd rather build a new one than changing the switches on these. You could still desolder them :).

Credits

I actually built half a split keyboard 4 years ago. It wasn't that good. I have been planning to design and build a better once since then but I've kept putting it off due to multiple reasons. Thanks to these mentions for helping me finish this keep.

  • The Ergonaut One keyboard has been a huge inspiration for the design and the pcb layout.
  • My friends at college for moral and technical support.

About

The official repository for the pling! wireless low profile split keyboard.

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
GitHub - b-init/pling: The official repository for the pling! wireless low profile split keyboard. · GitHub
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pling!

hero image

Overview

pling! is a custom low profile wireless split keyboard designed around a few ideas:

  • optimize the layout for my skinny long fingers
  • embrace the internals instead of hiding it
  • keep the structure and build process minimal (no hotswap, no headers, no jumper pads)

full image 1

The pling! features:

  • Gateron KS27 Low Profile switches
  • 54 key layout with 3 keys in the thumb cluster
  • Xiao BLE microcontorller (nrf52840) runnign ZMK firmware (indicator LEDs too)
  • Flippable PCB
  • Long ass 250mah battries
  • Acrylic + 3D Printed body
  • No hotswap sockets, no headers for the microcontroller. Set it and forget it, for good or for worse.

Gallery

Images are up in the images folder. I'd like to create a prettier gallery sometime.

btw did i tell you how pretty the indicator LEDs look through the frosted acrylic?

indicator

Build Guide

BOM and Build Guide can be found here.

PCB Gerbers

The PCB is flippable without needing any jumper pads (like the corne, which are a nightmare to figure out). The KiCad source files and gerbers can be found here.

Do note that the source KiCad files are a mess and I've yet to clean them up. But the gerbers zip is perfectly adequate and I used the same to order pcbs from jlc.

PCB1

Firmware

The firmware I use can be found in my zmk-config repo. It doesn't yet support zmk studio because I prefer to use keymap editor, but I plan to add support for zmk studio soon.

Layout

This is the default colemak layout I use with additional layers for special characters, numbers, etc.

layout

Case

The stl files for the 3d printed case and the dxf files for the acrylic cutout can be found here.

Problems

As flawless as I'd like to claim my design is, this version has some issues that I noticed while building it. Please keep them in mind:

  • The screw placements are a bit weird. The ones for the acrylic plate are very close to the switches (just barely fit) and don't look symmetric. There aren't properly spaced screw holes for the body either, I use two of the acrylic holes for the body in my personal build.
  • no hotswaps and no headers. I added this in features but ofcourse there are downsides, I just find this way more straightforward and there's much less room for error. And I'd rather build a new one than changing the switches on these. You could still desolder them :).

Credits

I actually built half a split keyboard 4 years ago. It wasn't that good. I have been planning to design and build a better once since then but I've kept putting it off due to multiple reasons. Thanks to these mentions for helping me finish this keep.

  • The Ergonaut One keyboard has been a huge inspiration for the design and the pcb layout.
  • My friends at college for moral and technical support.

About

The official repository for the pling! wireless low profile split keyboard.

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - b-init/pling: The official repository for the pling! wireless low profile split keyboard. · GitHub
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pling!

hero image

Overview

pling! is a custom low profile wireless split keyboard designed around a few ideas:

  • optimize the layout for my skinny long fingers
  • embrace the internals instead of hiding it
  • keep the structure and build process minimal (no hotswap, no headers, no jumper pads)

full image 1

The pling! features:

  • Gateron KS27 Low Profile switches
  • 54 key layout with 3 keys in the thumb cluster
  • Xiao BLE microcontorller (nrf52840) runnign ZMK firmware (indicator LEDs too)
  • Flippable PCB
  • Long ass 250mah battries
  • Acrylic + 3D Printed body
  • No hotswap sockets, no headers for the microcontroller. Set it and forget it, for good or for worse.

Gallery

Images are up in the images folder. I'd like to create a prettier gallery sometime.

btw did i tell you how pretty the indicator LEDs look through the frosted acrylic?

indicator

Build Guide

BOM and Build Guide can be found here.

PCB Gerbers

The PCB is flippable without needing any jumper pads (like the corne, which are a nightmare to figure out). The KiCad source files and gerbers can be found here.

Do note that the source KiCad files are a mess and I've yet to clean them up. But the gerbers zip is perfectly adequate and I used the same to order pcbs from jlc.

PCB1

Firmware

The firmware I use can be found in my zmk-config repo. It doesn't yet support zmk studio because I prefer to use keymap editor, but I plan to add support for zmk studio soon.

Layout

This is the default colemak layout I use with additional layers for special characters, numbers, etc.

layout

Case

The stl files for the 3d printed case and the dxf files for the acrylic cutout can be found here.

Problems

As flawless as I'd like to claim my design is, this version has some issues that I noticed while building it. Please keep them in mind:

  • The screw placements are a bit weird. The ones for the acrylic plate are very close to the switches (just barely fit) and don't look symmetric. There aren't properly spaced screw holes for the body either, I use two of the acrylic holes for the body in my personal build.
  • no hotswaps and no headers. I added this in features but ofcourse there are downsides, I just find this way more straightforward and there's much less room for error. And I'd rather build a new one than changing the switches on these. You could still desolder them :).

Credits

I actually built half a split keyboard 4 years ago. It wasn't that good. I have been planning to design and build a better once since then but I've kept putting it off due to multiple reasons. Thanks to these mentions for helping me finish this keep.

  • The Ergonaut One keyboard has been a huge inspiration for the design and the pcb layout.
  • My friends at college for moral and technical support.

About

The official repository for the pling! wireless low profile split keyboard.

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - b-init/pling: The official repository for the pling! wireless low profile split keyboard. · GitHub
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pling!

hero image

Overview

pling! is a custom low profile wireless split keyboard designed around a few ideas:

  • optimize the layout for my skinny long fingers
  • embrace the internals instead of hiding it
  • keep the structure and build process minimal (no hotswap, no headers, no jumper pads)

full image 1

The pling! features:

  • Gateron KS27 Low Profile switches
  • 54 key layout with 3 keys in the thumb cluster
  • Xiao BLE microcontorller (nrf52840) runnign ZMK firmware (indicator LEDs too)
  • Flippable PCB
  • Long ass 250mah battries
  • Acrylic + 3D Printed body
  • No hotswap sockets, no headers for the microcontroller. Set it and forget it, for good or for worse.

Gallery

Images are up in the images folder. I'd like to create a prettier gallery sometime.

btw did i tell you how pretty the indicator LEDs look through the frosted acrylic?

indicator

Build Guide

BOM and Build Guide can be found here.

PCB Gerbers

The PCB is flippable without needing any jumper pads (like the corne, which are a nightmare to figure out). The KiCad source files and gerbers can be found here.

Do note that the source KiCad files are a mess and I've yet to clean them up. But the gerbers zip is perfectly adequate and I used the same to order pcbs from jlc.

PCB1

Firmware

The firmware I use can be found in my zmk-config repo. It doesn't yet support zmk studio because I prefer to use keymap editor, but I plan to add support for zmk studio soon.

Layout

This is the default colemak layout I use with additional layers for special characters, numbers, etc.

layout

Case

The stl files for the 3d printed case and the dxf files for the acrylic cutout can be found here.

Problems

As flawless as I'd like to claim my design is, this version has some issues that I noticed while building it. Please keep them in mind:

  • The screw placements are a bit weird. The ones for the acrylic plate are very close to the switches (just barely fit) and don't look symmetric. There aren't properly spaced screw holes for the body either, I use two of the acrylic holes for the body in my personal build.
  • no hotswaps and no headers. I added this in features but ofcourse there are downsides, I just find this way more straightforward and there's much less room for error. And I'd rather build a new one than changing the switches on these. You could still desolder them :).

Credits

I actually built half a split keyboard 4 years ago. It wasn't that good. I have been planning to design and build a better once since then but I've kept putting it off due to multiple reasons. Thanks to these mentions for helping me finish this keep.

  • The Ergonaut One keyboard has been a huge inspiration for the design and the pcb layout.
  • My friends at college for moral and technical support.

About

The official repository for the pling! wireless low profile split keyboard.

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' GitHub - b-init/pling: The official repository for the pling! wireless low profile split keyboard. · GitHub
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pling!

hero image

Overview

pling! is a custom low profile wireless split keyboard designed around a few ideas:

  • optimize the layout for my skinny long fingers
  • embrace the internals instead of hiding it
  • keep the structure and build process minimal (no hotswap, no headers, no jumper pads)

full image 1

The pling! features:

  • Gateron KS27 Low Profile switches
  • 54 key layout with 3 keys in the thumb cluster
  • Xiao BLE microcontorller (nrf52840) runnign ZMK firmware (indicator LEDs too)
  • Flippable PCB
  • Long ass 250mah battries
  • Acrylic + 3D Printed body
  • No hotswap sockets, no headers for the microcontroller. Set it and forget it, for good or for worse.

Gallery

Images are up in the images folder. I'd like to create a prettier gallery sometime.

btw did i tell you how pretty the indicator LEDs look through the frosted acrylic?

indicator

Build Guide

BOM and Build Guide can be found here.

PCB Gerbers

The PCB is flippable without needing any jumper pads (like the corne, which are a nightmare to figure out). The KiCad source files and gerbers can be found here.

Do note that the source KiCad files are a mess and I've yet to clean them up. But the gerbers zip is perfectly adequate and I used the same to order pcbs from jlc.

PCB1

Firmware

The firmware I use can be found in my zmk-config repo. It doesn't yet support zmk studio because I prefer to use keymap editor, but I plan to add support for zmk studio soon.

Layout

This is the default colemak layout I use with additional layers for special characters, numbers, etc.

layout

Case

The stl files for the 3d printed case and the dxf files for the acrylic cutout can be found here.

Problems

As flawless as I'd like to claim my design is, this version has some issues that I noticed while building it. Please keep them in mind:

  • The screw placements are a bit weird. The ones for the acrylic plate are very close to the switches (just barely fit) and don't look symmetric. There aren't properly spaced screw holes for the body either, I use two of the acrylic holes for the body in my personal build.
  • no hotswaps and no headers. I added this in features but ofcourse there are downsides, I just find this way more straightforward and there's much less room for error. And I'd rather build a new one than changing the switches on these. You could still desolder them :).

Credits

I actually built half a split keyboard 4 years ago. It wasn't that good. I have been planning to design and build a better once since then but I've kept putting it off due to multiple reasons. Thanks to these mentions for helping me finish this keep.

  • The Ergonaut One keyboard has been a huge inspiration for the design and the pcb layout.
  • My friends at college for moral and technical support.

About

The official repository for the pling! wireless low profile split keyboard.

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - b-init/pling: The official repository for the pling! wireless low profile split keyboard. · GitHub
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pling!

hero image

Overview

pling! is a custom low profile wireless split keyboard designed around a few ideas:

  • optimize the layout for my skinny long fingers
  • embrace the internals instead of hiding it
  • keep the structure and build process minimal (no hotswap, no headers, no jumper pads)

full image 1

The pling! features:

  • Gateron KS27 Low Profile switches
  • 54 key layout with 3 keys in the thumb cluster
  • Xiao BLE microcontorller (nrf52840) runnign ZMK firmware (indicator LEDs too)
  • Flippable PCB
  • Long ass 250mah battries
  • Acrylic + 3D Printed body
  • No hotswap sockets, no headers for the microcontroller. Set it and forget it, for good or for worse.

Gallery

Images are up in the images folder. I'd like to create a prettier gallery sometime.

btw did i tell you how pretty the indicator LEDs look through the frosted acrylic?

indicator

Build Guide

BOM and Build Guide can be found here.

PCB Gerbers

The PCB is flippable without needing any jumper pads (like the corne, which are a nightmare to figure out). The KiCad source files and gerbers can be found here.

Do note that the source KiCad files are a mess and I've yet to clean them up. But the gerbers zip is perfectly adequate and I used the same to order pcbs from jlc.

PCB1

Firmware

The firmware I use can be found in my zmk-config repo. It doesn't yet support zmk studio because I prefer to use keymap editor, but I plan to add support for zmk studio soon.

Layout

This is the default colemak layout I use with additional layers for special characters, numbers, etc.

layout

Case

The stl files for the 3d printed case and the dxf files for the acrylic cutout can be found here.

Problems

As flawless as I'd like to claim my design is, this version has some issues that I noticed while building it. Please keep them in mind:

  • The screw placements are a bit weird. The ones for the acrylic plate are very close to the switches (just barely fit) and don't look symmetric. There aren't properly spaced screw holes for the body either, I use two of the acrylic holes for the body in my personal build.
  • no hotswaps and no headers. I added this in features but ofcourse there are downsides, I just find this way more straightforward and there's much less room for error. And I'd rather build a new one than changing the switches on these. You could still desolder them :).

Credits

I actually built half a split keyboard 4 years ago. It wasn't that good. I have been planning to design and build a better once since then but I've kept putting it off due to multiple reasons. Thanks to these mentions for helping me finish this keep.

  • The Ergonaut One keyboard has been a huge inspiration for the design and the pcb layout.
  • My friends at college for moral and technical support.

About

The official repository for the pling! wireless low profile split keyboard.

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' GitHub - b-init/pling: The official repository for the pling! wireless low profile split keyboard. · GitHub
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pling!

hero image

Overview

pling! is a custom low profile wireless split keyboard designed around a few ideas:

  • optimize the layout for my skinny long fingers
  • embrace the internals instead of hiding it
  • keep the structure and build process minimal (no hotswap, no headers, no jumper pads)

full image 1

The pling! features:

  • Gateron KS27 Low Profile switches
  • 54 key layout with 3 keys in the thumb cluster
  • Xiao BLE microcontorller (nrf52840) runnign ZMK firmware (indicator LEDs too)
  • Flippable PCB
  • Long ass 250mah battries
  • Acrylic + 3D Printed body
  • No hotswap sockets, no headers for the microcontroller. Set it and forget it, for good or for worse.

Gallery

Images are up in the images folder. I'd like to create a prettier gallery sometime.

btw did i tell you how pretty the indicator LEDs look through the frosted acrylic?

indicator

Build Guide

BOM and Build Guide can be found here.

PCB Gerbers

The PCB is flippable without needing any jumper pads (like the corne, which are a nightmare to figure out). The KiCad source files and gerbers can be found here.

Do note that the source KiCad files are a mess and I've yet to clean them up. But the gerbers zip is perfectly adequate and I used the same to order pcbs from jlc.

PCB1

Firmware

The firmware I use can be found in my zmk-config repo. It doesn't yet support zmk studio because I prefer to use keymap editor, but I plan to add support for zmk studio soon.

Layout

This is the default colemak layout I use with additional layers for special characters, numbers, etc.

layout

Case

The stl files for the 3d printed case and the dxf files for the acrylic cutout can be found here.

Problems

As flawless as I'd like to claim my design is, this version has some issues that I noticed while building it. Please keep them in mind:

  • The screw placements are a bit weird. The ones for the acrylic plate are very close to the switches (just barely fit) and don't look symmetric. There aren't properly spaced screw holes for the body either, I use two of the acrylic holes for the body in my personal build.
  • no hotswaps and no headers. I added this in features but ofcourse there are downsides, I just find this way more straightforward and there's much less room for error. And I'd rather build a new one than changing the switches on these. You could still desolder them :).

Credits

I actually built half a split keyboard 4 years ago. It wasn't that good. I have been planning to design and build a better once since then but I've kept putting it off due to multiple reasons. Thanks to these mentions for helping me finish this keep.

  • The Ergonaut One keyboard has been a huge inspiration for the design and the pcb layout.
  • My friends at college for moral and technical support.

About

The official repository for the pling! wireless low profile split keyboard.

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); GitHub - b-init/pling: The official repository for the pling! wireless low profile split keyboard. · GitHub
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

pling!

hero image

Overview

pling! is a custom low profile wireless split keyboard designed around a few ideas:

  • optimize the layout for my skinny long fingers
  • embrace the internals instead of hiding it
  • keep the structure and build process minimal (no hotswap, no headers, no jumper pads)

full image 1

The pling! features:

  • Gateron KS27 Low Profile switches
  • 54 key layout with 3 keys in the thumb cluster
  • Xiao BLE microcontorller (nrf52840) runnign ZMK firmware (indicator LEDs too)
  • Flippable PCB
  • Long ass 250mah battries
  • Acrylic + 3D Printed body
  • No hotswap sockets, no headers for the microcontroller. Set it and forget it, for good or for worse.

Gallery

Images are up in the images folder. I'd like to create a prettier gallery sometime.

btw did i tell you how pretty the indicator LEDs look through the frosted acrylic?

indicator

Build Guide

BOM and Build Guide can be found here.

PCB Gerbers

The PCB is flippable without needing any jumper pads (like the corne, which are a nightmare to figure out). The KiCad source files and gerbers can be found here.

Do note that the source KiCad files are a mess and I've yet to clean them up. But the gerbers zip is perfectly adequate and I used the same to order pcbs from jlc.

PCB1

Firmware

The firmware I use can be found in my zmk-config repo. It doesn't yet support zmk studio because I prefer to use keymap editor, but I plan to add support for zmk studio soon.

Layout

This is the default colemak layout I use with additional layers for special characters, numbers, etc.

layout

Case

The stl files for the 3d printed case and the dxf files for the acrylic cutout can be found here.

Problems

As flawless as I'd like to claim my design is, this version has some issues that I noticed while building it. Please keep them in mind:

  • The screw placements are a bit weird. The ones for the acrylic plate are very close to the switches (just barely fit) and don't look symmetric. There aren't properly spaced screw holes for the body either, I use two of the acrylic holes for the body in my personal build.
  • no hotswaps and no headers. I added this in features but ofcourse there are downsides, I just find this way more straightforward and there's much less room for error. And I'd rather build a new one than changing the switches on these. You could still desolder them :).

Credits

I actually built half a split keyboard 4 years ago. It wasn't that good. I have been planning to design and build a better once since then but I've kept putting it off due to multiple reasons. Thanks to these mentions for helping me finish this keep.

  • The Ergonaut One keyboard has been a huge inspiration for the design and the pcb layout.
  • My friends at college for moral and technical support.

About

The official repository for the pling! wireless low profile split keyboard.

Topics

Resources

Stars

15 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors