Newbie: 1st attempt at lying tracks for a matrix. Anything wrong?

Thank you @huhsh !
I learn and dislearn about USB and laying traces at such a fast rate that I might be radiating EMI myself :joy: When I think I’ve understood something I find another article/paper/whatever that makes me understand I’m not understanding it at all.

I found this. 20 years old! I suppose there may be better material out there, or it’s been posted a hundred times already… but as I’m asking about it here, I’m posting back what I find interesting so anyone can take a look if they wish.

And also…

Going back to what I asked before about internal/external oscillator… I’ve found some answers, so the answer for me is… I want to try the internal oscillator sometime in a breadboard but I don’t think it’s worth the hassle when there’s so much to learn about the proven path, an external crystal or oscillator – they’re not the same thing as I’ve also learned to my surprise :roll_eyes:

It remains to be decided if I go with AVR core or jump to ARM. I’m scared of ARM but I suppose learning with it may be paying off in the long run… if I have a long run, that is.

1 Like

In theory you’d have to do impedance matching, and all that complicated stuff in order to comply to the USB spec.
In practice most keyboards are using USB full speed only, a rather low speed protocol that is quite forgiving.
You can’t imagine what people are doing with their USB trace routing and have something that works fine in the end :wink:
Also consider people that are doing custom made cables with cable lengths are are more or less matching, plus adding weird connectors in between (aviator or other more fancy stuff, JST connectors and cables for USB daughterboards) that do not help at all with signal integrity, and it still works.

So at least having USB datalines close together, with lengths that are reasonably matching, minimising use of vias (use the same number of vias for each dataline), and with a ground plane below them will be amply sufficient.
Kicad allows to route differential pairs, use it and you should be good to go :wink:

Gondolindrim did a great job to simplify the hardware design process for ARM STM32 MCU with its Joker template and all the related documentation.
He also wrote a very good article about the reset circuitry on STM32 MCUs.
All this should make the use of an ARM MCU much easier than before, will be bit more involved than ATMEGA but not by much.
I am switching to ARM MCU because ATMEGA are very old technology, constantly out of stock, and became crazy expensive for what they are.
I’d suggest you do the same :wink:

1 Like

Sorry I left this in draft response

A: 2u stab positions
B: Spacebar

I have only had a couple of experiences with plate stabs and have seen this combo configurations on all of them. My guess is the spacebar shouldn’t have a huge hole in in the tighter cut out reduces that. Why they weren’t used on all of them :man_shrugging: maybe that part of the metal would be too thin.

Note the nubs on the stabilizer part cut outs from the picture on the south side, are where the bar goes. Many reverse the spacebar so the wire is on the north side.

Edit if you are planning on using the universal daughter board I wouldn’t worry about the usb traces too much just a relatively straight line for m connector to mcu

2 Likes

Thanks for your answer and your patience @Rico !

Most of my questions are overcomplicating things that are usually done following a ‘recipe’, and they work in most cases. I’ll probably do it myself where what I’m able to learn isn’t enough to at least have a general understanding of what this or that are supposed to do and why.
I started with this ‘project’ just to learn and eventually design+build my own custom keyboard – but I’m in no hurry and I care about learning small bits of electronics while keeping it within the ‘working knowledge’ level needed for the project so i don’t overreach myself.
I’ve always been interested in electronics though I didn’t followed that path education-wise so I lack the deeper understanding you can achieve with an engineering degree. That means I have LOTS to learn and this project is an opportunity to deal with MCU, USB, crystal/oscillators, EMI…
I would love to learn how to design a board that was high-quility from an engineering POV but I’m settling for an approximation of that goal within my lifespan :joy:

But, point taken.

Regarding MCU core, I’ve been thinking about it and.
I don’t remember if I said this before, but I’m not going to use any existing firmware. I’m going to do it myself from the ground up or die trying :crazy_face:
So, being realistic, what I know about programming microcontrollers is so rusty I might as well consider I’m starting from zero and go step by step with a simpler design with less peripherals, memory spaces, boot modes, etcetera. As I say, getting the keyboard done is important but in the end, to me, learning from the process of developing one is the real goal.
From that perspective, ARM Cortex M is too much for me right now. AVR has millions of examples, application notes, code developed for it, and is a piece of technology an order of magnitude simpler than ARM.

I could end up going with ARM, though. :exploding_head: :sweat_smile:

1 Like

Thanks for your answer, @Dave

I was mainly thinking about what to use for 2U keys. That thin metal ‘finger’ might be a problem – or not – and maybe it would add slightly better anchorage for the stabilizer body.
I have seen some people do it but results are unknown to me.

Oh, and yes, I have the stabilizers inverted for ‘Space’ and ‘NumPad 0’.

I’m trying to ponder what’s the most replaceable method for an USB port without affecting signal integrity too much while keeping space to a minimum. A daughterboard is one of the options on the table, so thanks for the feedback !!