rgoulter / keyboard-labs

Repo with my PCB designs and keyboard firmware
121 stars 11 forks source link

Lumberjack-x2 update board shape #2

Closed mangkoran closed 2 years ago

mangkoran commented 2 years ago

First of all, thank you for making this modification to Lumberjack. I was in search for GH60-compatible ortho, and then I found you repo. I couldn't be more happier. I am no expert (even playing with) KiCAD or PCB making before, so if you found any mistakes/errors, please let me know!

In this PR I tried to fix several errors when trying to open the project in KiCAD 6:

  1. Board shape: I incorporate separate board shape SVG to ease future change.
  2. Misplaced mounting holes: In the attachment below, I found that hole H5 and H6 are (possibly) misplaced. By looking at the footprint and the finished PCB you have released, I think that H5 and H6 could be removed. I merge the side mounting holes with the board shape. I also remove the "hole footprint" as it produce error too. I don't really know what is the purpose of this footprint so if it should be there, let me know!
  3. Minor clean up: I try to suppress as many warning as I could (unconnected paths, path's hole clearance, etc.)

Misplaced H5 and H6 image Hole footprint.. (head branch) image ..removed (this PR) image

rgoulter commented 2 years ago

Thank you for the PR, and I'm glad you like the idea.

I'm currently traveling for Lunar new year. I'll be able to take a better look at this PR after a week or so.

Board shape: I incorporate separate board shape SVG to ease future change.

This is a good idea, thanks.

Misplaced mounting holes: In the attachment below, I found that hole H5 and H6 are (possibly) misplaced. By looking at the footprint and the finished PCB you have released, I think that H5 and H6 could be removed. I merge the side mounting holes with the board shape.

Weird. That extra hole doesn't show up in the gerbers, but does show up like in your screenshots on the interactive BOM.

To remind myself: per the schematics: H1-H3 designate holes for the mounting case, and H4-H7 were for the holes for mounting the acrylic cover over the microcontroller area.

Yeah, that misplaced H5/H6 definitely shouldn't be as it is in your screenshots.

I also remove the "hole footprint" as it produce error too. I don't really know what is the purpose of this footprint so if it should be there, let me know!

The intention for these is cosmetic. Some GH60-compatible PCBs include the copper (& remove soldermask).

When I'd used just an unconnected PTH (like in the original GH60 PCB design; and IIRC in peej's lumberjack), JLCPCB was fine with this but another PCB fabrication manufacturer asked me to remove that (since it'd require drilling outside the board outline).

What's there on master branch now was my attempt at getting the same effect.

Minor clean up: I try to suppress as many warning as I could (unconnected paths, path's hole clearance, etc.)

Thanks

mangkoran commented 2 years ago

Thank you for your response! I am trying to add commits to improve the appearance (track path for now). I'll let you know if this PR is ready to merge.

Until then, enjoy your vacation!

mangkoran commented 2 years ago

Are these tracks necessary?

image

mangkoran commented 2 years ago

While I'm at it, I also tried to move the MCU down so that the USB port could be used. I haven't pushed it. If you think is it any good, I will push it.

image

Update: I rearrange the capacitors and resistors so that the LED could be moved down more. image

rgoulter commented 2 years ago

Are these tracks necessary?

I put them there to ensure the GND pads of the USB connector connect to the GND plane. (Feel free to remove them so long as the filled zone connects to those pads).

While I'm at it, I also tried to move the MCU down so that the USB port could be used. I haven't pushed it. If you think is it any good, I will push it.

Note that the capacitors should be placed close in the circuit to the power pads of the LEDs. IIUC, these serve as "decoupling capacitors", which reduces noise in the circuit. -- Although I'll acknowledge that how the capacitors are arranged in rev2021.1 is more "artistic" than adhering to this.

Also, just judging by the screenshot, I'd stick to the thicker traces for 5V for the RGB LEDs.

In terms of placement of the devboard and the LEDs:

I'd ask to first limit the scope of this PR to fixing the PCB design for Kicad 6, with minimal changes. (Fixing the board shape, removing the weird extra hole module, tidying up warnings).

This additional change (of moving the devboard and LEDs around) can be done in a separate/later PR.

mangkoran commented 2 years ago

Alright, thank you for your response! I will make a separate PR for the MCU moving.

OOT: For the dremeling tho, initially I am planning to build a board with Tofu60. So dremeling such case is, uhh, a bit of waste 😅

mangkoran commented 2 years ago

Sorry for the delay. I was fixing my Contra keyboard in the past days.

I think that's all for this PR. You may review it whenever you are free.

Also how to generate PCB render like in README? So that you (or anyone) could just see the updated PCB for quick look at what I've changed.

rgoulter commented 2 years ago

Sorry for the delay. ... You may review it whenever you are free.

Sure. Something's only fun if you don't have to be relied on for it.

Also how to generate PCB render like in README? So that you (or anyone) could just see the updated PCB for quick look at what I've changed.

I've written a kibot config file (pcb/config.kibot.yaml). In theory, all this takes is running kibot -b <path to .kicad_pcb file>, and it will generate the output assets like a zip of the gerber files, or the nice pcbdraw renders.

I think it's a bit more difficult with the mix of Kicad 5 and Kicad 6. (It's not smooth running Kicad 6 against Kicad 5 files).

The 'difficult' part is getting Kibot and all its dependencies.

Personally, I use nix as an easy way to get kibot installed on Linux. (Though, I haven't tried using the nix files I wrote on a Linux outside of NixOS). So I'd run nix develop .#kibot-kicad5-nixos, then cd pcb and kibot ... as above.

Using Docker might be simpler in other cases. Kibot's official Docker image is setsoft/kicad_auto. I bundled a Docker image at richardgoulter/kibot. -- This would involve a docker run command, as documented in the DockerHub pages.

Feedback

x2_pr2_gnd_traces

x2_pr2_right_angle_traces

x2_pr2_drl_outside_board_outline

mangkoran commented 2 years ago

Hello Richard. Apologize for the late reply. Since then, I have been busy with my study (sigh) and I could not continue to improvise this PR. I also tried to design my own keeb PCB which suits me more. Feel free to close this PR. Have a good day!

rgoulter commented 2 years ago

Ah, no worries. :)

Thanks for the feedback you gave in this PR. Have fun with your keyboard PCB designing. :)