Long time no update!
I've been busy refining the housing concept and didn't want to post anything until there was some notable progess to show. Now I guess is the point...
Maybe first of all let's get the FPGA topic out of the way.
Defining all the details of the mechanical design is very time-consuming, which took a lot of my resources away from the video processor (which itself takes a ot of time!). As I'm confident that the video processor will work from what I did so far, I decided to prioritize the next hardware revision now and then later optimize the FPGA part together with the syscon code (also because they need to interface with each other for the final implementation). Since the last update I did implement pogressive mode, so there are now quite some video modes supported (marked in green below).
The biggest issue I'm facing is the fact that counting the vertical resolution is not a good way to find out the video input resolution. It's because some PS2 video modes have identical timings, but with different active areas (448i->480i, 512i->576i for example). This makes automatic resolution switching very difficult and I couldn't find a good way yet to manage it without some manual interaction. My first idea was to extract the video resolution information from the I2C to the video encoder, but after recording all video timings OPL supports I was rather disappointed to see that it's completely useless. Here are the results, maybe they are at least helpful to someone:
View attachment 33742
Interesting observations:
- There are some cases where the resolution can be identified by observing the values sent to registers 90h and 91h (see 480p, 720p, 1080i)
- GCONT toggles when changing the video output mode in the system config.
- There is no I2C communication when switching from PAL to NTSC, this is only handled using the NTPAL pin
- The NTPAL pin is 1 when the console outputs progressive PAL (would expect the opposite)
- At boot there is not a lot going on, the first 2 bytes might be some device id and the bytes written to B1h, 33h and 32h are just 00.
Note: the same registers are accessed repeatedly in different sequences (but same values) until booting is done
Next topic: housing!
The last comment from
@StonedEdge got me thinking about the "pinkie issue" everytime I touched the first mockup I made (could not unsee that post
). Got some more feedback from my "test subjects" and ultimately decided to improve upon the existing concept!
This is the current state:
View attachment 33747View attachment 33746
View attachment 33745View attachment 33744
View attachment 33756
It's definitely bigger than the old concept, but I think I still managed to achieve a good compromise between dimensions and ergonomics. It took way more iterations than I dare to admit, mad respects at this point to anyone designing gamepads commercially! This is a seriously difficult task, maybe even the most difficult part of the project yet. The biggest headache was that there is no straight surface apart from the front & the grips are angled in 2 dimensions. I have to say that the clay method did make it a lot easier to modify the design for each iteration, but having access to a 3D scanner would have been really sweet here!
As I said this is the current state, but everyone I asked so far agreed that it feels good, so if there is no major issue with it I tend to not change the outer design too much (might still add or remove some minor features). The inner design is also pretty defined now: I know how many parts there will be, roughly how they look, how they connect and how the device will be assembled. More about that when the time has come...
Right now working on designing rough drafts for every component to check the fitment before continuing to refine everything. The bumpers feel nice too after 2 iterations and will use the KSC222J LFS tact switches, which I found have a nice feeback while still being a bit squishy. The triggers are still open. I was leaning towards the same switches, but couldn't find a configuration that feels "right" yet.
@Lightning recommended some rubber membrane switches which I will try and maybe then the triggers are acceptable too.
I was also working on the battery compartment, which will most likely use Keystone 209 battery contacts paired with 21700 cells (yes, in the new concept they finally fit!). As with the rest, the design is tricky due to how the grips are angled, but I'm having fun
Depending on the budget, I may or may not need to run some wires for the batteries (or have a full flex PCB ready), but my focus is on avoiding soldering as much as possible in the assembly of the unit. Here is a quick little (preliminary) explosion view of the existing draft components:
View attachment 33759
Next would be the mainboard
At 121x83mm the mainboard is certainly not as small as I would have liked it to be, but keep in mind this plugs directly into the 5" LCD and is essentially the same size. The only additional components needed to get it running would be the left and right button PCBs & a battery, that's it. The SD memory card slots will be on a separate flex PCB and sit next to the heatsink on top of the mainboard.
Component selection & placement are mostly done, I will use mid-mount sockets for audio, USB A and USB C to limit the overall thickness. For the USB A this was actually tricky, because there was literally one option available which satisfies my requirements of it being mid-mount and having no lip around the outer edge. Does this ring some bells? Yes, the stock mainboard actually has just the right USB A socket, so I will reuse it.
Right now I'm working on doing a new routing iteration to see whether all connections and placements would still be feasible on 6 layers (starting with the BGA fanouts):
View attachment 33749View attachment 33750
Still open are the speakers. The placement is defined and they will be front facing , for that I was considering using either my current ones or some switch oled speakers, but I couldn't find the dimensions anywhere to check the fitment in my assembly. The switch oled speakers are ordered, but I'm still having issues finding the part number for the connectors they use. Looking at the pictures I would say it's a JST BM02B-SURS style connector, but I would need to order some to check. Maybe someone knows?
Another thing to note about the mainboard: There will still be no bios flash directly on the board, I will use a similar module to my old design. The reason is that I still see a lot of potential in bios customizations and I would also like to install the PS2 SDK to experiment with a custom version of PS2BBL at some point. I will also expose all signals that run directly from the mechacon to the EE on the bios connector to maybe do some feasibility regarding removing the mechacon and DSP.
@Epaminondas already proved this is possible, so it would be quite interesting to try (certainly not for this portable, but maybe rev. 2.0?).
Technically not part of the project, but related:
For the first mainboard revision I had problems with soldering the EE, as it's quite large and when heated unevenly the substrate tends to warp. I suspect this is why the first try didn't work, but on my current mainboard I saw that the EE substrate is warped too (the corners are closer to the PCB than the centers). In theory this could be ok, as the silicon is wire bonded to the substrate, which might allow for some more stress (took one apart to check...). Anyway, to make the assembly more reproducible in the future I was slowly designing a reflow oven in parallel to the project over the last year and I'm pushing hard to make it ready for the next mainboard revision!
It's based on the Controleo 3 and fully custom designed to fit a PS2 mainboard (+ a little bit extra). I have no experience with reflow ovens, apart from what I hear from our suppliers at work, so this could be fun to set up and work with. In a week or 2 I should get the last components and be able to start it up the first time to gain some experience with it!
View attachment 33757
To sum it up: slow progress, but I'm getting there! It used to be faster in the past when I could fully focus on the electronics, but now there are a lot of components that need attention!