Project Hermes
Project Hermes Devlog / Creation Journal
Total time spent: 24h (wow I did not expect such a nice number)
July 18th - Planning/Research
Hi hi this is my devlog/journal for Project Hermes!
Project Hermes is a handheld console
designed for people who already own gaming PCs so they can stream their games via SteamLink so they can take it anywhere for cheap! I want to make this so that I can play the games from my PC wherever I want without having to buy all of them on a handheld console or pay the handheld console prices.
The goal is to have 720p 60hz streaming from my personal pc to the handheld so I can play whatever games I want wherever :D.
After a lot of thinking and research today I was able to figure out what parts I wanted and decide on the design constraints which I have pasted below:
Design Constraints / Goals:
- Size: Must be similar size/footprint to Steam Deck, ROG Allay or Switch (around 30cm x 11cm x 4cm)
- Price: Must be cheaper than a Switch Lite (since it can't actually run games natively and only stream its not reasonable for it to cost more than an actual console) therefore must cost less than $260 CAD or $190 USD
- Power: Battery Powered, chargable via USB-C while in use (aiming for around 2-3 hours)
- Compute: Be able to run SteamLink at 720p 60hz
- Display: Atleast 7 inch, 720p 60hz, HDMI compatible
- Input: Via USB HID, same layout as an Xbox controller
- Connectivity: Must be able to run off just WiFi
- Encolosure: Fully 3D Printed, no custom fabrication or CNC. Easily assembled with hand tools.
And here is the list of parts that I decided on today:
BOM (Subject to Change)
Item | Usage | Source | Price (CAD) |
---|---|---|---|
Raspberry Pi 4 (2 GB with cooler) | Main Compute Unit | AliExpress | $80.38 |
Pisugar S Pro Portable 5000 mAh UPS | Battery + Power Management | Amazon | $47.46 |
7 inch LCD Display | Display | AliExpress | $34.99 |
Raspberry Pico | Controller Input MCU | Self-Sourced | $0.00 |
Tact Switch Push Button | Face Buttons + Utility Inputs | AliExpress | $2.42 |
Hall Effect Joystick (x2) | Analog Thumbsticks | AliExpress | $4.33 |
Controller PCB | Controller PCB | JLCPCB | 38.45 |
3D Printed Case/Parts | Enclosure + Mechanical Housing | Self-Sourced | $0.00 |
Total CAD | $208.03 | ||
Total USD | $151.86 |
The design constraints should be pretty self explanatory but I will explain why I chose each of the parts ish:
- Raspberry Pi 4 (2 GB with cooler): I choose this because it was the simplest way I could think of to run SteamLink on a handheld. Raspberry Pi 4 has already been proven to be able to run Steam Link at 1080p 60hz :D
- Pisugar S Pro Portable 5000 mAh UPS: Its a portable power supply for the Raspberry Pi! It plugs right in and it provides enough for this build :DD
- 7 inch LCD Display: This one should be self-explanatory lol!!
- Raspberry Pico: The raspberry pico is going to be the brains of the controller/input and it will plug into the Raspberry Pi 4 as a usb device to be the controller. I am going to be using the opensource project gp2040-ce for the firmware of the controller but more on that in a bit.
- Tact Switch Push Buttons: This is going to be all the buttons on the controller so AXYB, DPAD, Start/Select, Shoulder Buttons/Triggers!
- Hall Effect Joysticks: These are the type of joysticks used in ps5 and xbox controllers! I need to figure out how to use them in a DIY project tho :0 (that being said gp2040-ce seems to have a lot of documentation for this so yay!
- Controller PCB: All of the controller stuff/input is going to be on its own PCB with the Raspberry Pico that then plugs into the Rapsberry Pi 4
- 3D Printed Case/Parts: Self-explanatory lol
^ Some conecpt art and planning :D
Anyways this took me a while trying to figure out everything I needed and finding the right parts (especially powering this damm thing that was so annoying to figure out)
Total Time Spent Today: 3h
June 20th - Sketch and hopefully CAD!
I made a sketch on my tablet of what I want it to look like! It obviously took some very heavy inspo from the ROG Ally and MSI Claw but since those are both proven designs with good ergonomics, why not!!
Update 1:
I spent a LOT of time trying to figure out this CAD Model, this is where I am so far :D
I am still very new to cad so this took me 3 hours to make 😭 but its okay!! progress is progress right?? :D
Total Time Spent Today: 3.5h
June 21st - DID A LOTT OF CAD and tested ergonomics!
omg omg so I think I am pretty much where I want to be with the CAD/3d model!!
TADA:
I am very proud of this model but it took me a WHILE to do.
I also 3d printed the controller sides to see how they feel in my hands and if the placement of everything made sense, decided they didnt make sense so moved stuff around and reprinted it :D
anyways now that I roughly know where I want everything to be placed I can move on the PCB design tmrw :D
Total time spent today: 3h
June 22nd - PCB time!
Before I get started with the schematic or any actual routing I realized I needed to figure out how to line up everything on the PCB to the way I wanted it on the 3D Model. I didnt know how to do this at first and I could not find much cuz most videos/tutorials online were PCB to 3D model not the other way around. Then I found a tutorial showing me how to export my sketch as DFX file and import that to KiCad. Thats exactly what I did and tada!
I can line it all up now :D and this is to scale as well!! Alright time to work on the schematic and think about wiring hmhmhm
Update 1:
Done the schematic except for the joysticks cuz im lowkey a bit confused about that and need to research that more
And you may have noticed that I am not using a raspberry pico in this schematic... and thats because I had to switch to a waveshare rp2040-zero! this is because I realized the Raspberry Pico only has 3 analog pins and each joystick requires 2 analog pins, soooo 2x2=4 meaning I need 4 analog pins which the pico does not have D: fortunately rp2040-zero has exactly 4 :D
so yeah the joysticks actually seem kinda confusing cuz there are so many different versions of them so I need to research it more but I might try and finish the rest of the PCB before that if I can :0
Also also also I added colors to the 3d model cuz why not :D
Upadte 2:
Placed all the components besides the joysticks! will route tmrw cuz its 4 am and I am sleepy
Total Time Spent today: 3h
July 23rd - IM GONNA FINISH THE PCB TODAY RAHHH
hi hi! this is where I am with the PCB so far! you might have noticed: shiva you dummy u did not put the joystick footprints in! and yes I know that, but like I said yesterday there were a lot of different footprints for the joystick and I got confused so instead of feeling overwhelmed I tried to route everything else beforehand. obv I will have to redo a lot of this once the joysticks are here but now I have the confidence to route stuff properly :D this took me around an hour to route properly :0
Update 1:
tada!! I figured out the wiring for the joysticks :D
I figured it out by looking at a sparkfun breakout board for a joystick so i will explain it here:
As u can see the symbol is split into 4 parts V, H, SEL and SHIELD
V: is the vertical axis H: is the horizontal axis SEL: is the button when you push down on the joystick Shield: these just dont get connected :0
So V+ and H+ are voltage so they go to 3.3v on the RP2040-Zero, V- and H- go to ground (so does SEL-). and finally H and V are the values we are actually gonna be reading and they go to the Analog gpio pins on the RP2040-Zero. The RP2040-Zero has 4 Analog pins like I said earlier and thats exactly how many we need because H and V for LS and H and V for RS. These pins are GPIO 26,27,28, and 29:
and then finally for the buttons I wired SEL+ on RS to GPIO14 and GPIO15 on LS
So yippee!!
here is the completed schematic :D
now I just gotta do the routing for the joysticks and I think I can probably finish this project today (this is assuming trying to cad the electronics does not kill me)
oh my god this took wayy to long because I was being silly but I finished the routing which means im done with the PCB YIPPEEEEE:
:D
Time to work on the CAD assembly... (this is going to kill me.)
Total Time Spent: 5.5h (Blame me being bad at routing
July 24th - ITS ALL COMING TOGETHER NOW!
I split the body and I learned how to use shell to hollow it out for th components!! TADAA:
I did not think this would work first try but im glad it did :D
also also also I have found 3d models for the Pi, Screen, and obv I have the model of the PCB from kicad :DD Now I just need to find a model of the pisugar (power supply/battery) online and I can wrap this up hopefully today mwehehe
Update 1:
I have found a model for the PiSugar! which means I have all the models I need to finish the CAD YIPPEE
Total Time Spent: 1h
July 25th - I will finish this today >:)
So I got all the electronics into my cad!! but it ended up being chunkier than I wanted to so I could fit the Pi and PCB :(
Im gonna experiment a bit but now all I need to do is add shoulder buttons and buttons for everything else and I should be good?? :D
Oki I added the buttons and stuff but I am still unhappy with how chonky it is:
Im gonna mess around with a few different orientations for the pi and see what happens, but this is really annoying me. Worst case scenario I submit it like this (chonky boi) and then redesign it later after I have it built because I have a 3D printer. While it isnt perfect I do want to keep the deadline in mind and not do it too last minute for the reviewers
Update 1:
OK this is a bit unorthadox and definetly is not ideal but I pushed the pi to the left side of the console instead of the middle so that the pcb lays flush with the side without the tall USB 3.0 ports. this is a bit weird because I would have to slightly trim the gpio headers on the pi but if I can make it thinner by doing this I think ima go for it
these lil guys poking through need a lil haircut >:D
obviously if anyone else wants to build this they would have to do the same thing and trim the gpio pins or reposition the Pi which is why it is not ideal in a future revision (if I ever decide to upgrade it or maybe try and sell project hermes) I would probably use a thinner board like the pi4 compute with a hat for IO or maybe design my own SBC for this project but thats way to big of a task for me currently (based on my experience and obv the time constraint) which is why I am going with this work around
I will try my best to document the assembly instructions so if anyone does want to build this they can easily replicate the workaround I did :D
Update 2:
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA WHY DOES IT KEEP BREAKING WHEN I TRY TO MAKE IT LESS CHONKY:
WHERE DID MY SHELL GO??? im about to crash out and punch my monitor
Update 3:
ok it has gotten a little better here is where I am now:
... im gonna cry
Ok I messed around with the form more and I guess this is progress???
HOW THE FLIP DO I EVEN FIX THIS MAN
Update 4:
YIPPEEE IT WORKS IT WORKS IT WORKS AND ITS LESS CHONKY :D
YAYYY
also also added the usb-c charging port :D
Now all I need to do is add the shoulder button holes and I should officially be ready to submit! (I dont know how to add the shoulder buttons though they are at an akward angle ;-;..) ohh well I will take a break and tackle it later
Update 5:
TADAAA THE SHOULDER BUTTONS ARE DONNE THIS TOOK WAYY TO LONG CUZ ONE OF THEM HAD TO BE AT AN ANGLE AND I DIDNT KNOW HOW TO DO THAT BUT I DID IT YIPPEEE:
now I would love to say thats it and I can submit now... but I noticed this:
the screen is slightly poking out.
well time to fix that and hopefully nothing breaks :D
NO NO NO NO
WHY DID IT BREAK AGAIN NO IM GONNA CRASH OUT
OK IM GONNA TRY AGAIN THIS TIME JUST MOVING 4 FACES BY ONLY 1 MILIMETER IF THIS BREAKS IT MY MONITOR WILL NOT BE SAFE
no freaking way.
^ live view of me tweaking the fuck out it is 2:30 AM right now.
Am I Sisphys?
Eternally doomed king of Ephyra
Forced to roll the same boulder up the hill only for it to fall down again?
how many times must I edit the form, click finish form only to see everything break and click ctrl-z
just to roll it up the hill again
Update 6:
IT WORKED IT OWRKED IT WORKED IT OWRKEDHJ
IM DONE
IM FINALLY DONE THE CAD AND THAT MARKS THE END OF THE DESIGN PHASE FOR THIS PROJECT! I CAN SUBMIT IT TO HIGHWAY AND GET MY GRANT AFTER I FINISH THE README YIPPEEEEEEE
if you got all the way here thank you for reading: here is the final cad :D
after 51 revisions..
Total time spent today: 5 whole hours 😭 I HATE CAD BUT ALSO IM SO PROUD AAA