STM32 Keyboard PCB Design

Ғылым және технология

Designing a keyboard with an STM32F072 microcontroller.
This uses a template for the controller and USB port, avoiding having to make design decisions about routing the microcontroller.
KiCad:
www.kicad.org/
Template:
github.com/NCKiser/STM32F072_...
KLE Placer Plugin:
github.com/zykrah/kicad-kle-p...
Marbastlib Footprint Library:
github.com/ebastler/marbastlib
JLC Parts List:
docs.google.com/spreadsheets/...
Keyboard Layout Editor:
www.keyboard-layout-editor.com/

Пікірлер: 42

  • @Chockrit
    @Chockrit6 ай бұрын

    Thank you for sharing your template. For V2 of my keyboard design, I was planning on painstakingly copying a schematic for a ProMicro and probably messing up along the way. Your videos have basically taught me KiCad.

  • @noahkiser

    @noahkiser

    6 ай бұрын

    The STM32F072 has a very detailed datasheet. Have a read through it if you are going to do anything other than a simple switch matrix: www.st.com/resource/en/datasheet/stm32f072cb.pdf www.st.com/en/microcontrollers-microprocessors/stm32f072cb.html

  • @georgedoubleyou4098
    @georgedoubleyou40986 ай бұрын

    Really good, as usual, love the KLE Placer and the parts list. Thanks!

  • @noahkiser

    @noahkiser

    6 ай бұрын

    My pleasure!

  • @foxtrotperry
    @foxtrotperry6 ай бұрын

    Love your videos! Thank you so much for providing such valuable resources for free. It really means a lot.

  • @noahkiser

    @noahkiser

    6 ай бұрын

    Glad you like them!

  • @buzz1ebee
    @buzz1ebee2 ай бұрын

    Great video! Great idea to use the esp32 designs to skip reinventing the wheel. I've been really enjoying your content. Have kicad installed and plan to make a full sized iso layout board. It would be amazing to see adding features like encoders for knobs (should be fairly easy), leds via i2c or something, how to flash and customise firmware, and how to use something like the esp32 to also enable 2.4ghz connectivity via a dongle.

  • @protieus
    @protieus6 ай бұрын

    Thank you. Finally a proper stm32

  • @noahkiser

    @noahkiser

    6 ай бұрын

    No problem 👍

  • @benjack6637
    @benjack66373 ай бұрын

    What a legend, this video is exactly (to the letter) what I was looking for! Can you flash the bootloader to the STM chip over the USB? I've only used blackpills in the past where I needed to use the stm usb to serial flashing tool connected to the serial pins. If these pins aren't exposed how do you get the bootloader on the chips, does JLCPCB factory flash them for you or something?

  • @user-pk4hn1uz1k
    @user-pk4hn1uz1k5 ай бұрын

    thanks that clears things up

  • @enginsama
    @enginsama6 ай бұрын

    ah finally. great tutorial Noah. Thanks for sharing !

  • @enginsama

    @enginsama

    6 ай бұрын

    What should we do if we wanna make %60ish keyboard and also add smd leds to the under like underglow ? Adding and managing power source for leds kinda hard to make imo.

  • @noahkiser

    @noahkiser

    6 ай бұрын

    @@enginsamaunderglow and per-key rgb lighting is a topic that I hope to cover in a future video

  • @enginsama

    @enginsama

    6 ай бұрын

    Thank you so much for your work, you are amazing@@noahkiser

  • @AdamFeinstein
    @AdamFeinstein4 ай бұрын

    You're very thorough and concise in your explanations, and it's a gift to have been clearly shown a way to design using this template. Thank you for making PCB design so much more accessible! One minor thing I can't get to work is what you do at 20:03 - switch out the USB footprint for the marbastlib version. I followed the same exact steps and updated from schematic, and the footprint updated successfully. However, when I go to the 3D view, the USB still doesn't show. I'm curious if there's an additional setting you may have that's different, or perhaps you may know of a reason why the 3D model for the USB header doesn't show even though I updated to the marbastlib footprint?

  • @AdamFeinstein

    @AdamFeinstein

    4 ай бұрын

    Figured it out, and for anyone with a similar issue: For whatever reason, either the download did not contain the 3D .step file or the plugin did not import it correctly. I had to find the .step file separately (it's called HRO_TYPE-C-31-M-12.step) online and download it. (My download had .txt extension, but just override it to .step if so). From the PCB editor, double-click on the USB component to open Footprint Properties. Under 3D Models, click "+" to add the .step file. Most likely the .step file will not be in the correct place, so highlight the newly added .step file in the list, and adjust the settings in the modifications panels on the left.

  • @berkayaltok835
    @berkayaltok8352 ай бұрын

    So good video. Do you make video about hall effect keyboard pcb design?

  • @joshuabrisebois5188
    @joshuabrisebois51883 ай бұрын

    Could you do a video adding RGB to one of these boards? do you add in the LED or do you just swap out the diode for an LED?

  • @forfran
    @forfran3 күн бұрын

    Is there any difference on the routing of the buses with HS switches ? I was following the part2 of the other video, have to finish some way or another

  • @agneeshwar_
    @agneeshwar_4 ай бұрын

    Would you recommend going completely crystal-less for USB operation? Or is it better to include an LSE crystal in the design?

  • @kennethmann3329
    @kennethmann332927 күн бұрын

    Can the USB pieces be easily split off into a daughterboard?

  • @JustSomeGuyCTFO
    @JustSomeGuyCTFOАй бұрын

    Does any one have a template for the LQFP-100 package?

  • @sadeghmollaii9873
    @sadeghmollaii98736 ай бұрын

    Awsome

  • @bahmad5811
    @bahmad58116 ай бұрын

    a simple way to make rounded board layout is to draw a rectangle then right click on one corner and select filet and enter radius of corners.

  • @noahkiser

    @noahkiser

    6 ай бұрын

    This is a great trick! Will have to use it in a future design. Sometimes the board isn't just a rectangle, so it's back to lines and arcs to make complicated edge cuts

  • @Tenshiwa
    @Tenshiwa5 ай бұрын

    Hi Noah. I've been following your TKL series the past few days, and now I only need to route the matrix. I already have slight knowledge how to do this with the rows and collums, so I'm just asking now if it's possible for me to finish the project by routing the rows of the diode catodes to 6 different IO pins, and my 18 Columns of switch inputs, to 24 IO pins on the RP2040, and then finish by flashing the QMK firmware onto the chip? Also, would you recommend using Western Duplex Matrix, or should I just keep to using one node pr. row and column individually. Great tutorial, and many thanks for the good videos!

  • @noahkiser

    @noahkiser

    5 ай бұрын

    Hooking up the common cathodes on each row to it's own GPIO, then the columns to their own GPIO is all that is needed to wire up the matrix. In your case, yes, you would need 24 pins (6 rows and 18 columns). I do recommend the Western Duplex, though I like to call it an "interlaced" or "folded" matrix, where you effectively double the rows and half the columns. In your case, that would take it from 6+18=24 to 12+9=21 pins, saving you 3 pins.

  • @Tenshiwa

    @Tenshiwa

    5 ай бұрын

    @@noahkiser What are the pros of using Western Duplex in my case instead of just using the pins I already have enough for.

  • @zegonix

    @zegonix

    5 ай бұрын

    ​@@Tenshiwa​@Tenshiwa it just saves you 3 pins, thats the only advantage. but the r2040 has only 29 gpios so if you plan to add other features, this might be necessary.

  • @sobotica4173
    @sobotica41735 ай бұрын

    Are u ever gonna revive the ti84 ke?

  • @tony3156
    @tony31566 ай бұрын

    This is equivalent of previous videos but for STM32 ?

  • @noahkiser

    @noahkiser

    6 ай бұрын

    This is equivalent to the "Keyboard with Diodes" video, but now with an integrated controller instead of a pro-micro.

  • @protieus
    @protieus5 ай бұрын

    I am currently using STM32F072C8T6. Any difference with your STM32 model that you are using?

  • @noahkiser

    @noahkiser

    5 ай бұрын

    Looks like the C8 has half of the flash memory of the CB, at 64Kbytes instead of 128. This would be quite limiting when running QMK, and would be insufficient when trying to run ZMK.

  • @ayzenshiro1090
    @ayzenshiro1090Ай бұрын

    Now, how to write firmware for that STM32? Can anyone put me in to right direction?

  • @imlassuom

    @imlassuom

    Ай бұрын

    Have you check QMK firmware?

  • @saken6381
    @saken63816 ай бұрын

    Are you still doing a TKL Keyboard PCB Design, Part 3?

  • @noahkiser

    @noahkiser

    6 ай бұрын

    I will, I promise. Most of what is left is just the matrix routing.

  • @saken6381

    @saken6381

    6 ай бұрын

    @@noahkiser Great to hear, I shall be waiting. Good luck!

  • @ozzloy

    @ozzloy

    6 ай бұрын

    ​​@@saken6381yeah, me too! thanks for making this, @noahkiser!

  • @forfran

    @forfran

    3 күн бұрын

    @@noahkiser I need that, I'm a beginner in pcb design, now making a 66 switch HS keyboard

Келесі