-
More Debugging, Better Layouts
06/11/2023 at 14:05 • 0 commentsAfter exploring the prototype board for a while, I came across a few hardware errors. This prompted me to incorporate debugging ports and make some adjustments to the layout for the case design. While fine-tuning the board design, I also took the opportunity to make some tweaks to the keyboard layout.I modified the keyboard layout for more keycap compatibility, easier PCB routing, and some usability.
- Placed the knobs on both sides for usability.
- Modified the key placement to provide additional space for the joystick position.
- Used a more common and readily available keycap size for the spacebar.
- Applied multilayout to some columns (more keycap compatibility) -
USB-C mod for pico based pcb project
06/08/2023 at 12:45 • 3 commentsIn 2021, the Raspberry Pi Foundation released the Pico, a small and powerful microcontroller board that offers high performance and flexibility. However, the board's use of a micro-B USB port is considered a drawback. This is especially true considering that the Raspberry Pi 4, released in 2019, uses a USB-C port for power delivery.
Since then, various companies and individuals have released many boards based on the RP2040, some with USB-C ports, others without USB ports and with exposed D+/D- pins for customization (like RP2040 Stamp). However, most of these projects are either hard to find in low quantities, expensive, or require international shipping, whereas the original Pico board is in stock in most countries and can be obtained cheaply and quickly.
So what if you could just replace the USB ports on the original PICO board with the type you want?
Below shows the approach that one Reddit user took to convert an original PICO board to type-c, using the TP1,TP2,TP3 pins on the back of the board and a USB-C breakout board.
https://www.reddit.com/r/raspberry_pi/comments/m8p2ed/usb_type_c_mod_for_pico/
We decided that this was something we could use in our PCB design, and below is the result on our prototype board. -
Diode Placement with Python and KICAD 7.0
05/10/2023 at 17:16 • 3 commentsI found it necessary to adjust the position and orientation of the diodes across the board to make the routing effective. Fortunately, KICAD supports a Python console to automate this repetitive task, and since I had previously used KICAD to create scripts to automate part placement, I used my previous code to create a diode placement script.
KICAD does not guarantee that the PYTHON API will remain compatible between versions.
The script below only works with KICAD 7.x.import pcbnew from pcbnew import * def SetPosition(footprint,x,y): footprint.SetPosition(pcbnew.VECTOR2I(pcbnew.wxPoint(x,y))) def DiodeRePosition(relX,relY,angle): footprints = pcbnew.GetBoard().GetFootprints() diodeToKeyPosition = {} for f in footprints: ref = f.GetReference() pos = f.GetPosition() if "K_" in ref: keyNum = int(ref.split("_")[1]) diodeRef = "D_{}".format(keyNum+1) diodeToKeyPosition[diodeRef] = [pos.getWxPoint().x,pos.getWxPoint().y] print(diodeRef,diodeToKeyPosition[diodeRef]) for f in footprints: ref = f.GetReference() if "D_1" == ref: continue if "D_" in ref: [x,y] = diodeToKeyPosition[ref] f.SetOrientation(EDA_ANGLE(angle, DEGREES_T)) SetPosition(f,x + FromMM(relX),y - FromMM(relY)) pcbnew.Refresh() DiodeRePosition(5,8.8,330)
To create the above script, I referenced the official documentation and forum posts below -
LED, LCD and more ..
04/29/2023 at 19:55 • 0 comments -
Started the PCB design for the left keyboard.
04/28/2023 at 20:17 • 0 comments