geekhack Projects > Making Stuff Together!

[BUILD] Nyan Keys - An FPGA based USB 2.0 HS 8000hz Open Source PCB Design

<< < (4/4)


--- Quote from: The0rigina1 on Sun, 17 December 2023, 20:22:34 ---Btw I saw you said this PCB eliminates the need for a scan matrix, does that mean in theory the scan rate is instant?
I would be pretty interested if this is the case, CS and val here I come  :cool:

--- End quote ---

Correct and each key has it's own debounce core on the FPGA  that updated 12,000,000 times a second! The final data still is limited to the 8000HZ interrupt rate of USB 2.0 HighSpeed but none the less it's still much faster than anything that is commercially available. You can also tune the FPGA to get the minimum possible debounce and I am actively managing switch profiles on the Github repo with ready made bitstreams! This also uses an eager debounce method so there is no waiting for the switch to settle, as soon as it is pressed the signal is sent.

I have been using it with CSS and have been having an absolute blast!

I have 10x of my version 0.9a boards that now support a DFU mode showing up Jan 1! Send me a DM if you want a board or a complete. Boards are going to be 125 and a complete is based on the parts you want to build it with and no I don't skimp on the lube.


--- Quote from: dorkvader on Sat, 16 December 2023, 17:14:00 ---This is a very interesting project. To my knowledge there are only a few keyboards which scan all the keys in parallel (and have NKRO without diodes), and at least two of them use PISO shift registers. Offloading part of the KB duty to a co-processor is not new: (imsai did it back in the day WEY did it more recently, etc). There has been a resurgence of this idea somewhat more recently. However, I'm not aware of any other projects using FPGA for this. I think it's a great idea. I have been considering novel keyboard matrix scanning tech (just for fun) and had not considered this.

I would expect the 1xn matrix trace routing to be quite complex, but you managed it well with 2 layers: well done!

According to Digi-Key, the FPGA has 107 IO, and I see there are 4 SPI pins to the MCU: can this idea be extended to a size larger than 60% ?
edit: reading the schematics now. I see between 32 and 40 IO pins which look to be unused, but I don't know FPGA well enough to know if they can be utilized. Of course it's the full bottom edge: hard to route I'd imagine. With it being so physically large, finding space for the FPGA would be hard.

I assume the little squares on the copper are decorative, but if you ground them with vias, then you would make an efficient backside reflector metasurface for approximately 77 GHz radar.

--- End quote ---

Thanks, yeah there are a few out there, Genesis 8K comes to mind with the PIC MCU, With 100% certainty this is the first keyboard to use an FPGA for parallel input though there has been one keyboard in the past that did use an FPGA but only used it to run a softcore MCU on it. Keys were still scanned and used diodes.

Per trace routing it was an absolute ***** on a 60% but the payoff was huge! I love 60% boards ever since I got my pok3r handed down to me. The most difficult part was the only spot to place the FPGA and MCU was by the spacebar if I wanted to have soldered switches but yeah something like a TLK would be an absolute breeze to make since the FPGA can go between the arrow keys and the page up down section.

Yeah and as a bonus once the FPGA is configured you can reuse the SPI pins again for other purposes.

Yeah 100% you can go to a TLK or even larger, you could also wire some of the less performance critical keys to the MCU, example num pad and you would still be able to get 1 pin per IO.

The little squares are just via stiches. I like them and they do add capacitence to the gound plane so I will take them.

So this weekend I decided to produce a few Nyan Keys PCBs for people who are interested. The versions are the .9e which supports DFU mode to enable firmware updates without the need for a Tag Connect programmer! These boards also have all of the small issues with the first prototype board resolved such as the D+ and D- lines being swapped! This board is Perfect!

With that said price per PCB would be (130 USD or .003 Bitcoin) + Shipping, currently I have 4 available because one sold and will have 5 more coming pretty soon. Spending all day soldering boards was tedious to say the least but with the new stencil method things are moving along very nicely!

So why the high price tag?

* Oshpark PCBs (Made in the USA - Ex. Quality
* BoM cost, No expense spared on components, STM32F723 MCU - Lattice Ice40HX4k FPGA
* Kester R276 Solder Paste + Steel Stencil
* Engineered by me! Hand assembled by me!
* Time - Each board under best conditions is still 1-1.5 hours to assemble and flash.
Thank you all for reading and just send me a DM if you want a PCB!



[0] Message Index

[*] Previous page

Go to full version