70
kenogo
66d

The PCB I designed for my custom keyboard just arrived :D

Comments
  • 8
    I need details:
    What kind of switches do you plan on using?
    Backlight LEDs in a solid color, rgb or none at all?
    And most importantly: Can you recommend building a keyboard over buying one from the store? I'm still searching for a good 105Key with german layout :/
  • 4
    The resistor and ic layout is curious. Hope it won't block keys (not block, but pressing down unevenly)
  • 2
    @jespersh This is the backside of the PCB, the switches get mounted on the other side, so they won't be blocked by anything :)
  • 4
    @ThermalCube I've ordered Cherry MX Browns. I don't really fancy backlight, so that's not gonna be included. I don't think there's any real use in building a keyboard yourself besides making the experience and being able to fully customize it to your needs. If you just want a standard layout keyboard and don't want to flash your own firmware on it or anything, it's gonna be a LOT cheaper to just buy one from the store. This keyboard build is probably gonna cost almost 200€ when it's done, and it's just a 40% keyboard, so it's really not economic ^^

    I want to use mine with Plover, a software that turns your keyboard into a stenotype machine, so I've designed it in a way that will make it work well with Plover, while also being able to work as a normal keyboard. You can actually get a similar design at www.olkb.com but in that case, it is actually more expensive than what I'm doing (because olkb isn't a big manufacturer but just one guy selling keyboard parts).
  • 3
    What IC are you using?
  • 2
    @j4cobgarby An atmega32u4 microcontroller. It works with USB, you're even able to flash your firmware on it over USB :)
  • 2
    @kenogo oh that's cool! Isn't that what the arduino uses? Or am I wrong about that?

    Also, how would you flash it over USB?
  • 1
    @j4cobgarby Yeah it is what the Arduino uses! Simple, there are connections for a mini USB port at the top of the PCB. I can then use a software called avrdude to flash over that USB connection.
  • 2
    @kenogo oh, and then you don't need any expensive chip programming equipment? Sounds great
  • 2
    I’’m highly interested in any details as I wrecked my keyboard today. Are schematics, PCB layout and firmware available somewhere? What’s your solution for the case aka enclosure?
  • 0
    @j4cobgarby Yeah exactly :) Those aren't that expensive though, but it's still about 20 bucks saved especially since I need a USB connection for my keyboard anyways
  • 1
    @lastNick gerber files and schematics are at https://github.com/kenogo/planck

    As for the case, I'm gonna do some woodworking for that, I haven't worked out any design with software, I'm just gonna improvise :)
  • 0
    @kenogo thanks! One last question: how does the atmega tell a computer that it's a keyboard, and how does it send keypresses?
  • 2
    @j4cobgarby There are libraries for handling that, like LUFA http://fourwalledcubicle.com/LUFA.p... I don't actually know the details of how these work. I assume that some sequence of bits is sent over USB when the device is plugged in to identify what kind of device it is. But I still need to read up on how exactly USB works on that level, so I might very much be wrong.
  • 5
    @kenogo looks slick! Please keep sharing your progress ++
  • 3
    @kenogo thanks for the link! What software did you use to design the pcb?
  • 3
    @j4cobgarby It's called KiCad :)
  • 0
    @kenogo KiCad is awesome!

    Do you know where i could find a tutorial for wiring up and programming the atmega?
  • 1
    @j4cobgarby Nah sorry, I don't know. It's tedious, but everything you need is in the manual, that's how I am doing this.
  • 0
    @j4cobgarby Almost every Arduino tutorial that uses the same Atmega should be fine.
  • 0
    @lastNick Not really, Arduino has its own programming language that only runs on Arduino devices because they have a different bootloader on the microcontroller. I suppose you could flash the bootloader on your atmega aswell, but I feel like if you're doing that, you can just aswell buy an arduino and play with that…

    Usually, you program your AVR chips in C and cross-compile with avr-gcc. There are tutorials for that out there, I don't know if there are specific ones for the atmega32u4 though.
  • 0
    @kenogo In the atmega datasheet, you mean? I can't find anything about how to wire it up, let alone program it via USB
  • 1
    @j4cobgarby Yeah there should be information about the complete pinout, including what kind of resistors you need to put before each pin (e.g. 22 Ohms in front of the USB data pins), how high your decoupling capacitance should be, and so on…

    If those terms mean nothing to you, I'd say it's probably best to pick up some book about embedded systems design. I can't recommend any because I just had a course in electronics at university and we didn't have a book, and it also wasn't specific to embedded systems… :-/

    If you have a specific thing in mind that you want to do with a specific microcontroller, I'm willing to explain what you need to do and why. You can hit me up on telegram (username is same as here). I believe there are also forums out there and they probably also include "newbie sections", let me google real quick
  • 1
    @j4cobgarby Here, check that out: https://avrfreaks.net/forum/... Haven't read it myself but it looks really useful at first glance!
  • 1
    @kenogo Thanks a lot! Yeah I guess I need to read the datasheet through more thoroughly. I may well message you on Telegram if I have any problems which I can't solve elsewhere, but I'll try not to bother you as much as possible
  • 1
    @j4cobgarby Yeah that's the spirit :) Good luck and have fun learning!
Your Job Suck?
Get a Better Job
Add Comment