(From a complete beginner)
I've had this idea to build my own keyboard from scratch for a while, and I finally got the time (and motivation) this winter break to go ahead and try it for myself. After a couple days of reading forums and googling circuit design stuff, I've created this schematic for my project in KiCAD.
I was wondering if any kind person would be willing to give me a review of my design?
I'm using a teensy 4.0 and using its pins for digital IO.
For the key switch matrix, I am assuming that cherry switches don't come with their own diodes, so I added my own. Don't know if I need to explicitly make input and output labels, or if normal ones are ok.(for reference rows are input, cols are output)
For the rotary encoder, I've got the switch pins integrated into the matrix (felt cool doing that), and the other pins are directly hooked up to pins on the teensy. I read that bouncing is often an issue with these. Is it better to debounce in hardware? (I was just planning on implementing my own debouncing in software).
Finally, (The part I'm most concerned with...) I wanted to route a female usb-c connector somewhere on the edge of the PCB so that I could use a male to male wire for my computers. I get this error "Different net assigned to a shared pin in another unit of the same component" for the D+ and D- labels. This really prompted this post as I couldn't find any answers online for this error. I'd love it if someone could explain what this means and how to fix it.
I appreciate any criticism and advice that I can get. Thank you.
Schematic:
UPDATE
I have added a Usb C receptacle and plan to run it on USB 2.0. I also found that I don't need pull down resistors on the columns as the teensy has its own input pull down functionality. I'm also planning on replacing the THT diodes with SMD ones later tonight.
Still open to any comments. Curious what people will say about the rotary encoder
Here is a new updated schematic:
Here is my PCB: