The 4x12 ortholinear keyboard kit made by through hole components only.
Atmega328p with VUSB on QMK firmware.
12x4 ortholinear usb keyboard made by Through Hole components ONLY.
License: MIT License
The 4x12 ortholinear keyboard kit made by through hole components only.
Atmega328p with VUSB on QMK firmware.
First off, thanks so much for this wonderful design!
I have been putting together a BOM list on Octopart to make ordering the parts easier but I was wondering if anyone could give it a once over and confirm that parts are correct. I am very new to electronics and it seems the there are a lot of options!
https://octopart.com/bom-tool/7GAE4qNw
Thanks, Ben.
The keyboard was working perfectly fine, but now the backspace key is not working properly and is instead outputting "#" while the windows key is not outputting any data. Initially, I thought it was the EEPROM and as I had that issue before but after I tried the fix in #15 but it did not fix any issue.
Any idea what the cause might be.
I just ran into this issue on macOS and thought I would open an issue just in case others have it too. When using the default avr-gcc (8.2.0) that's installed with homebrew, I get the following output when running make plaid:default:program
:
QMK Firmware 0.6.308
WARNING:
Some git sub-modules are out of date or modified, please consider running:
make git-submodule
You can ignore this warning if you are not compiling any ChibiOS keyboards,
or if you have modified the ChibiOS libraries yourself.
Making plaid with keymap default and target program
avr-gcc (GCC) 8.2.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before:
text data bss dec hex filename
0 14666 0 14666 394a .build/plaid_default.hex
Creating load file for EEPROM: .build/plaid_default.eep [OK]
Copying plaid_default.hex to qmk_firmware folder [OK]
Checking file size of plaid_default.hex [OK]
* The firmware size is fine - 14666/32768 (18102 bytes free)
avrdude: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.00s
avrdude: Device signature = 0x1e950f (probably m328p)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file ".build/plaid_default.hex"
avrdude: input file .build/plaid_default.hex auto detected as Intel Hex
avrdude: ERROR: address 0x8002a7 out of range at line 920 of .build/plaid_default.hex
avrdude: read from file '.build/plaid_default.hex' failed
avrdude: safemode: Fuses OK (E:FC, H:D0, L:D7)
avrdude done. Thank you.
make[1]: *** [program] Error 1
make: Make finished with errors
*** [plaid:default:program] Error 1
I found a similar issue mentioned on Reddit and was able to work around it in the same way, by installing avr-gcc version 7.
Maybe this would be worth mentioning in the Firmware section of the docs? I'd be happy to add a section for it and open a pull request, just let me know if that would be helpful.
In the file https://github.com/hsgw/plaid/blob/master/doc/en/bootloader.md it says "If you buy kit, already burn bootloader in ATMEGA328p" but it's not clear what this means, or what you should do if you bought a kit. Also, I'm unsure how much of this applies to the Plaid Gold, which is what I have. Some if the documentation doesn't apply, I know, but it's not clear which does and doesn't.
There's also the line "When you burn bootloader to raw ATMEGA328p, don't forget write fuse bits." but it doesn't explain what's involved in writing the fuse bits, or how you can find out.
The section for what to do with Windows is also a bit simple. It doesn't give you any clues on how to use Zadig. The software suggests the USB item should be plugged in and chosen from a list, but in the Plaid documentation you're not asked to plug in the USB cable until the next step (Enter bootloader mode).
After building the Plaid all the keypresses were registering correctly, except one dead key. I was trying to trace this but since then only some of the keypresses work, and they dont match the keys that I'm pressing. A lot of the keys seem to trigger some combination with ctrl and alt too.
I've tried reflashing the firmware, but nothing seems to affect it. Any idea what I've done wrong?
I had my Plaid working for a month. Now I want to flash a new layout.
I understand that to enter bootloader mode, I have to:
However, when I pushed the BOOT button, it just output "edc", i.e the keys on the 4th column, so now I cannot enter bootloader mode to flash my new layout.
Again, aside from the BOOT button, all the other keys of my Plaid still works fine.
How should I go about solving this? Thanks.
I saw this post but couldn't find any info.
I would like to connect OLED screen (SSD1306) and have some questions:
I have double and triple checked the soldering and looked at it under the scope but all looks good. After getting it all done I connected it via USB and I heard the Windows USB detection sound. That is when it showed that the device connected is having issues and gave an unknown descriptor message in device manager. Suggestions on what to do next?
This was purchased from Mechboards with pre-flash with a bootloader. https://mechboards.co.uk/shop/kits/plaid-kit/
Hi,
a 1.5k series resistor (R7, R8) for the led's seems a bit high. My led glow so low, that it's not visible during the date.
Is a value 470Ω, or even less not better?
How much is the signal from the Atmega328P 3V or 5V?
If i calculate the series resistor for a red led, it suggest's a 150Ω resistor.
When attempting to flash main.hex
from the bootloader repository, avrdude throws the following error:
$avrdude -u -c usbtiny -p m328p -P usb -b 115200 -V -e -U flash:v:"C:\Users\tenkir\Downloads\USBaspLoader-plaid\USBaspLoader-plaid\firmware\main.hex":a
avrdude.exe: AVR device initialized and ready to accept instructions
Reading | ################################################## | 100% 0.01s
avrdude.exe: Device signature = 0x1e950f (probably m328p)
avrdude.exe: erasing chip
avrdude.exe: verifying flash memory against C:\Users\tenkir\Downloads\USBaspLoader-plaid\USBaspLoader-plaid\firmware\main.hex:
avrdude.exe: load data flash data from input file C:\Users\tenkir\Downloads\USBaspLoader-plaid\USBaspLoader-plaid\firmware\main.hex:
avrdude.exe: input file C:\Users\tenkir\Downloads\USBaspLoader-plaid\USBaspLoader-plaid\firmware\main.hex auto detected as Intel Hex
avrdude.exe: input file C:\Users\tenkir\Downloads\USBaspLoader-plaid\USBaspLoader-plaid\firmware\main.hex contains 30868 bytes
avrdude.exe: reading on-chip flash data:
Reading | ################################################## | 100% -0.00s
avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x7000
0xff != 0x6b
avrdude.exe: verification error; content mismatch
avrdude.exe done. Thank you.
If I then attempt to put the keyboard into bootloader mode, all USB devices on the system stop working until the keyboard is unplugged,
I have a screw with a bad thread (one of the long ones). I can make do with three for now, but I'll see how much to replace it if I can find out the diameter, or specification generally, for it. Thanks.
Running make results in the following errors on Windows:
PS C:\dev\qmk_firmware> make plaid:default
0 [main] sh 12400 sync_with_child: child 10744(0x1BC) died before initialization with status code 0xC0000142
106 [main] sh 12400 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
0 [main] sh 5636 sync_with_child: child 10812(0x1C8) died before initialization with status code 0xC0000142
94 [main] sh 5636 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
0 [main] sh 15020 sync_with_child: child 8084(0x1B8) died before initialization with status code 0xC0000142
94 [main] sh 15020 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
0 [main] sh 568 sync_with_child: child 13728(0x1B4) died before initialization with status code 0xC0000142
129 [main] sh 568 sync_with_child: *** child state waiting for longjmp
/usr/bin/sh: fork: Resource temporarily unavailable
make: *** [plaid:default] Error 128
I had no issues entering bootloader mode or getting USBasp recognized. I have pulled the latest qmk firmware package from git.
Any help is appreciated.
Hello,
I bought a Plaid kit from keycapsss.com. As far as I understand the bootloader is already flashed. I have the latest libusbk drivers installed for the device.
I can compile a Keyboard Layout in QMK however when I try to compile and flash the default layout, as in the documentation, i get the following exception:
`QMK Firmware 0.15.5
Making dm9records/plaid with keymap default and target flash
avr-gcc.exe (GCC) 8.4.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before:
text data bss dec hex filename
0 16822 0 16822 41b6 .build/dm9records_plaid_default.hex
Copying dm9records_plaid_default.hex to qmk_firmware folder [OK]
Checking file size of dm9records_plaid_default.hex [OK]
It seems that the default Keyboard Layout and firmware was already on the chip because when I thest the board (by connecting the switch pads with a wire) it works
I've plugged the board in and it's recognised as USBasp by Zadig while the Device Manager shows it under 'libusb-win32 devices' as 'USBaspLoader'. Is that enough, or do I still need libusbK?
What does libusbK do here?
But seriously, I have the Plaid Gold kit and I've got two differently sized spacers, 5 mm and 8 mm, but the guide says you should have nuts that connect the back plate. Does that mean I'm missing something? I only have 10 5 mm spacers, which is not enough to secure all the screws.
the slots for R1,4,6,7 are shorter than the standard size for these resistors.
I was able to mount them anyway by bending the leg under each resistor to match the hole, but please consider allocating more space, especially considering all of these resistors have (visually, I don't know if there is a trace there) enough space next to them.
Where can I find it?
There's nothing in the guide that explains what these are for, and they don't seem to be included in normal use. What is their purpose?
Anyone has recommendation on best place to get PCB made? Any particular gotcha to look for? Is the bottom PCB required or just for mechanical purpose?
Can i change 100mA to 500mA fuse?
Hi,
I would be so helpful to have the parts organised either through octopart.com or with some serial numbers, I'm able to find them but its a bit difficult when the "Value" term is used as a generic attribute.
Thanks
I'm curious what it would take to add a rotary encoder to the Plaid?
Some related links:
Can i program it to midi controller with mattix 16 buttons? How can i upload midi code to this board?
Which variant is the micro USB socket? The footprint looks like a through-hole connector but I cannot find anything online that matches the 5 pin, through-hole, 2 rows configuration on the board.
Symbols seem to be not displaying correctly, I'm using Kicad 5.1 BTW. I've done some research and most of it points that I need some libraries to be installed. Could you point me to the ones needed to the project?
Thanks for the files too!
I'm typing this up on a plaid and it's pretty hard going. There's lag in polling key presses, mostly after a period of not typing anything.
I've burned the bootloader myself using the standard fuse bit settings. It burns successfully and keymaps can be subsequently uploaded.
Hey guys, I managed to solder all the components into the PCB including switches. Currently trying to burn the bootloader from my mac but have had no luck just yet.
Should LEDs turn on once connected?
I've used the direction in the bootloader.md file and also in the _alpha file with no luck :( can somebody point me in the direction that I can burn the bootloader and then load the qmk firmware?? THANKS!
Is this what you get when a bootloader needs to be installed?
Are there any specific instructions on how to install the bootloader or do you follow the Readme on this page?
Is everything already set up that needs setting up?
Does it work the same way with the Plaid Gold?
Thanks,
Cris
Edit: To be clear, I have the Plaid Gold all soldered and I also happen to have an Arduino Mega 2560 board which it seems I could use to install a bootloader. I'm really out of my depth here, so any help would be appreciated.
Edit 2: I'm going to leave this up in case I asked any valid questions (I'll let someone else decide that), but I realised I soldered the USB-C connector on the wrong side of the board. I don't know why it didn't occur to me that you could do that, but it didn't.
I know the Plaid Kit is shipped without a switch plate but I would like to know if there's any compatible plate (maybe with some modding).
I've added Mill-Max sockets to made it hot-swappable but then discovered that this doesn't work all that well when you don't have a plate. I'm still pretty new to this hobby so If there's another way to make hot-swap work without a plate I would also appreciate it to be informed about those options. Thanks a lot!
Currently the PCB is laid out for micro-USB.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.