fwecjoy more words
This commit is contained in:
parent
3d969adc74
commit
84d4cce7a4
@ -16,6 +16,10 @@ profilePicture = "img/triangels.png"
|
|||||||
pygmentsCodeFences = true
|
pygmentsCodeFences = true
|
||||||
pygmentsCodeFencesGuessSyntax = true
|
pygmentsCodeFencesGuessSyntax = true
|
||||||
|
|
||||||
|
[markup]
|
||||||
|
[markup.goldmark]
|
||||||
|
[markup.goldmark.renderer]
|
||||||
|
unsafe = true
|
||||||
|
|
||||||
[outputs]
|
[outputs]
|
||||||
home = ["HTML"]
|
home = ["HTML"]
|
||||||
|
@ -2,24 +2,28 @@
|
|||||||
title: "Framework joystick"
|
title: "Framework joystick"
|
||||||
date: 2025-07-11T22:11:00+01:00
|
date: 2025-07-11T22:11:00+01:00
|
||||||
draft: false
|
draft: false
|
||||||
summary: "PSP joystick extension with ch32v003 for framework laptops..."
|
summary: "PSP joystick 🕹️ extension with ch32v003 for framework laptops..."
|
||||||
images: ["/static/img/led-cricle-rainbow.png"]
|
images: ["(/img/FW-EC-PSP-Joy-inserted.jpg"]
|
||||||
---
|
---
|
||||||
|
|
||||||
I attended [38c3](https://events.ccc.de/congress/2024/infos/index.html) last year and it was amazing as always. I brought a modified robot vacuum to the event (it has BLDC motors and goes fast). But I forgot the gamepad so I chouldn't even drive it around :/
|
I attended [38c3](https://events.ccc.de/congress/2024/infos/index.html) last year and it was amazing as always. I brought a modified robot vacuum to the event (it has BLDC motors and goes fast). But I forgot the gamepad so I chouldn't even drive it around :/
|
||||||
|
|
||||||
So instead of goofing around I goofed around in KiCad and make this[^1]:
|
So instead of goofing around I goofed around in KiCad and make this[^1]:
|
||||||
|
<div class="image-row">
|
||||||

|
<img src="/img/FW-EC-PSP-Joy-inserted_small.jpg" alt="FW-EC-PSP-Joystick">
|
||||||
|
<img src="/img/FW-EC-PSP-Joy-uninserted_small.jpg" alt="FW-EC-PSP-Joystick uninserted">
|
||||||
I ordered the PCBs just before leaving for new years eve. And with every PCB project I needed a secound iteration. The error that got me wasn't actually in the design. I left the tickness of the PCB at the standard of 1.6mm and so the USB-C plug did not fit as its designed for 0.8mm PCBs 🤦.
|
</div>
|
||||||
It wasn't nice but by bending all of the USB-C plug's pins I was able to solder them. After flashing the [gamepad example](https://github.com/cnlohr/rv003usb/tree/master/demo_gamepad) from cnlohr's software usb library for the ch32v003[^2] it just works :D It could use some offset calibration (leaving the joystick in the middle does not result in it reporting 0,0) and the imu sensor i added has no driver yet, but I was able to control the robot at this point so I call the project done for now :)
|
|
||||||
|
|
||||||
|
|
||||||
...I put the design files[^3] and the code on [github](https://github.com/schnilz/FW-EC-PSP-Joy). So feel free to make your own (there be dragons; no documentation, ask questions maybe)
|
It is an extension module for Framework computers. I own a Framework 13 laptop which has 4 slots to put extension cards in. My configuration is now 1 green USB-C, 1 USB-A, 1 HDMI and 1 Joystick.
|
||||||
|
|
||||||

|
I ordered the PCBs just before leaving 38c3 for new years eve. And with every PCB project I of cause needed a secound iteration. The error that got me on the first version wasn't actually in the design. I left the tickness of the PCB at the standard of 1.6mm and so the USB-C plug did not fit as its designed for 0.8mm PCBs 🤦.
|
||||||
|
It wasn't nice but by bending all of the USB-C plug's pins I was able to solder them and validate the rest of the design. After flashing the [gamepad example](https://github.com/cnlohr/rv003usb/tree/master/demo_gamepad) from cnlohr's software usb library for the ch32v003[^2] it just works :D But because of the wrong thickness and bend USB pins the PCB was realy twisted when inserted into the laptop. Thats why I reordered the PCB with the correct thickness[^3]. This secound version's hardware works as well and after tweeking the example-software a bit (changed the joystick axes to ADC measurments) the overall thing works quite well i must say. It could use some offset calibration (leaving the joystick in the middle does not result in it reporting 0,0) and the imu sensor i added has no driver yet, but I was able to control the robot at this point so I call the project done for now :)
|
||||||
|
|
||||||
|
|
||||||
|
...I put the design files[^4] and the code on [github](https://github.com/schnilz/FW-EC-PSP-Joy). So feel free to make your own (there be dragons; no documentation, ask questions maybe)
|
||||||
|
|
||||||
[^1]: the PCB, the rest was designed later
|
[^1]: the PCB, the rest was designed later
|
||||||
[^2]: THE 10cent riscV microcontroller!
|
[^2]: THE 10cent riscV microcontroller!
|
||||||
[^3]: all CAD files created with [FreeCAD](https://www.freecad.org/) <3
|
[^3]: And I included some minor changes like a complete redesign to make one sided PCB assembly possible.
|
||||||
|
[^4]: all CAD files created with [FreeCAD](https://www.freecad.org/) <3
|
Binary file not shown.
Before Width: | Height: | Size: 2.6 MiB After Width: | Height: | Size: 2.4 MiB |
BIN
static/img/FW-EC-PSP-Joy-inserted_small.jpg
Normal file
BIN
static/img/FW-EC-PSP-Joy-inserted_small.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
Before Width: | Height: | Size: 3.1 MiB After Width: | Height: | Size: 2.6 MiB |
BIN
static/img/FW-EC-PSP-Joy-uninserted_small.jpg
Normal file
BIN
static/img/FW-EC-PSP-Joy-uninserted_small.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 22 KiB |
@ -254,6 +254,19 @@
|
|||||||
margin: 0.7rem;
|
margin: 0.7rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.image-row {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 1rem;
|
||||||
|
/* space btwn images */
|
||||||
|
margin: 1rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.image-row img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
article .footnotes {
|
article .footnotes {
|
||||||
font-size: 0.75em;
|
font-size: 0.75em;
|
||||||
clear: inline-end;
|
clear: inline-end;
|
||||||
@ -292,4 +305,4 @@
|
|||||||
<link rel="shortcut icon" type="image/x-icon" href="{{ .Site.BaseURL }}\img\favicon.ico" />
|
<link rel="shortcut icon" type="image/x-icon" href="{{ .Site.BaseURL }}\img\favicon.ico" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body>
|
<body>
|
Loading…
x
Reference in New Issue
Block a user