Project Hermes

Created by @shiva233

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

image

^ 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!!

image

Update 1:

I spent a LOT of time trying to figure out this CAD Model, this is where I am so far :D

image

image

image

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:

image image image

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

image image

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!

image

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

image

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

image

Upadte 2:

image

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

image

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

image

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:

image

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

image

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:

image

: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:

image image

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 image

Total Time Spent: 1h

July 25th - I will finish this today >:)

image 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: image image

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

image 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: image

image

image

WHERE DID MY SHELL GO??? im about to crash out and punch my monitor

break-monitor

Update 3:

ok it has gotten a little better here is where I am now:

image ... im gonna cry

Ok I messed around with the form more and I guess this is progress??? image

HOW THE FLIP DO I EVEN FIX THIS MAN

Update 4:

YIPPEEE IT WORKS IT WORKS IT WORKS AND ITS LESS CHONKY :D

image

YAYYY

also also added the usb-c charging port :D

image

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:

image

now I would love to say thats it and I can submit now... but I noticed this:

image

the screen is slightly poking out.

dog-sunset-javgag

well time to fix that and hopefully nothing breaks :D

NO NO NO NO

image 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

image

no freaking way.

drakendedyou ^ 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

image

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

freedom-chain

if you got all the way here thank you for reading: here is the final cad :D

image

after 51 revisions..

image

Total time spent today: 5 whole hours 😭 I HATE CAD BUT ALSO IM SO PROUD AAA