Howdy again! Second entry for today. I tackled HDMI and… the keyboard!
First, hdmi. I have two hdmi ports. One on the inside, one the outside. I need a port, protection diodes, and some power stuff/other misc. requirements.
I started with just getting everything wired up. I followed a reference design from lattepanda to figure out which pin goes where. You can see a bunch of resistors on the data lines - those are an intel requirement for hdmi. They connect to a mosfet that is controlled by the state of the PC (shutdown, sleep, etc). They help with compatibility I think? Idk, it’s just a necessity.
Bottom left is the ESD diodes. They’re the same diodes from my usb shenanigans - they are advertised to work for both.
Next was I2C. The HDMI side needs 5v while the lattepanda side needs 3v3. So, I use a logic converter or whatever it’s called. This just converts cleanly between two reference voltages, 3v3 and 5v.
When I scrolled down further in the datasheet I saw I needed decoupling and pullup resistors. So, there’s that. Oops.
Oh I also forgot to cover the bottom right. That’s hot plug detecting. Basically, it lets the intel graphics processor know when the cable has been plugged in or unplugged while the device is on. That way it can reconfigure or whatever.
5v power for this also has a diode on it so that it can NEVER EVER BACKFEED. EVER. That can destroy stuff!
Anywho, I have two ports, so all of that gets duplicated for round 2.
The pinout follows the same scheme as the first one despite the different naming. It’s still the same thing, just different names.
You can see they follow the same order and everything.
That’s actually all for hdmi for now. Routing will be a different story since they’re high speed differential pairs and thus need really fancy treatment… We will get there eventually. I hope.
Next.
Keyboard! I started by making my matrix.
I am doing a 60 key 50% choc keyboard, mimmicking this bad boy:
Called the jj50. It doesn’t use choc switches but thats ok. It will be hot swappable as I don’t like hard soldering keyswitches. Sockets are also dirt cheap.
Next was mcu. It’s going to be a hardwired usb device, but it still needs an mcu to pretend to be that usb device even though its on the same pcb as the rest of the cyberdeck.
I started with an rp2040. Then asked my brother if he has used one. And he said to use something else. So after a bit of browsing I chose an stm32f072cbt6 for simplicity and ease. Man, was it simple.
Like, that’s it y’all. ESD diodes, reset and boot buttons, and the mcu, which just gets given power, two usb lines, and the keyboard matrix. Nothing else. It was surprisingly simple and I spent so long checking the datasheet to make sure I wasn’t doing something wildly wrong. I am not! (To my knowledge).
In just a couple hours we have fully finished the HDMI and keyboard schematic. Unlike the USB I don’t have to tune EQ based off my pcb traces, so I can just finish those bad boys right now.
In a days work, we have done USBC, HDMI, and keyboard. Yippee!
Oh, I hit 10 pages on my schematic btw. This is a BIG project.
Comments 0
No comments yet. Be the first!
Sign in to join the conversation.