As part of our continued commitment to covering the Playstation Vita, we’re bringing you today another entry into our Homebrew Developer Interview series. This one is a big one: we’ve got the complete development team currently working on resucitating the VitaDock project. An amazingly talented group of people, taking a project from the shambles of a failed Kickstarter (that they had nothing to do with), to stable releases, multi-model support, and more. Enjoy!
VitaPlayer: Can you give us a bit of background on the VitaDock project? Origins, who started it, etc.
Motie: I do not know actually who was the original starters. Personally, I joined when xCorra posted on Reddit that he was searching for “beta” testers for the vitadock image on pi3. This is after he announced that he was going to sell physical docks. I thought I would like to contribute to the absolutely amazing Vita community. So, from all people in Vitahacks subreddit me Motie(Bu on discord) and another awesome dude named ZoidBerg joined. xCorra seemed ok. He was happy that I had some experience with Linux, so it was easier for him to instruct me on what to do and test. The first time when I connected my Vita, and it showed up on my TV, I knew it was big. Then after some time, I slowly took over the image development and started to test features on my own like menu buttons, boot screen, auto launching on boot scripts, notification messages, and so on…
Lost of ideas were spilling out, and I loved that. But time goes on, and I started to worry about xCorra that he was not updating his backers about the physical docks state. He was posting on Reddit without telling me that “Tomorrow we release first Vitadock image to try out” and so on. Making images took some time, and his pressure was not helping. So he was making promises, but nothing was happening. We opened our discord to the public and after a while, the image was in its early stages for the public to try it out. We were troubleshooting people’s problems and so on. I was kinda proud at that time. The future seemed bright. But then xCorra bought a 3d printer. Oh boy… He started printing docks and showing them to me and ZoidBerg, it looked pretty nice actually.
But then I think reality hit him hard. He had to 3d print all those docks for hundreds of people, he had to put hundreds of flashed sd cards into raspberry pi’s in them, package them, and then ship them all over the world. Then one day bam, without telling me, or ZoidBerg, discord gone, vitadock subreddit gone, his social media gone… We got kinda close to knowing each other after all this time making the image and he was not suspicious at all that he was intending to just delete everything and disappear.
VP: Can you give us an overview of the project as it stands right now, as well as who’s working on it?
Silent Night: The VitaDock project started as soon as Xerpi released the amazing vita-udcd-uvc plugin. When the community saw that the Vita was capable of streaming high quality video over the data cable, demand for a Nintendo Switch style docking station began immediately.
There are five of us that are actively working on VitaDock related projects. I don’t have much info on the other devs, I joined up with them recently, but I can tell you about my background. When it comes to internet presence I’m a small YouTuber and mod author. Away from the internet I’m an IT Contractor.
FrootSnax: As of now, the 5 of us are the official devs. Personally, I am a Master’s of Computer Science student that joined in June 2020 when I was first building my vita dock and contacted the devs at the time about framerate performance increases.
About a week later I was added on to the team. Generally, I will work with the other devs in any way I can from the dock side, but on ocassion I will work on the plugin/vita side things (one of the first things I did was remake xCorra’s 60fps udcd plugin, but with the updated version of udcd with working system apps).
Psilo: Psilo has been hacking game consoles as a hobby for the past 15 years or so. He has provided small fixes when needed to various home-brew plugins, but found himself at home working on the Vitadock project. Being a Raspberry Pi user since its early days, Psilo joined the team and started working on optimising VLC for vitadock, making use of the on-board bluetooth chip, and creating a one-click installer script for pi users who have a pre-existing rpiOS desktop installation.
VP: What kind of progress has been made since the team took over the project after what happened?
M: After all that I took a break from all this, but I was not going to just leave the image alone after all the time and sleepless nights, I had poured it into that damn image. I contacted Crash on Reddit, as he was taking the matters into his own hands, and after telling him the situation we joined our forces together. We recreated the subreddit and discord to finish what was started. Now we got a slightly bigger team with amazing people on board. We are still trying new things, testing, implementing features, and so on.
P: I haven’t been around for the entire lifespan of Vitadock, but I can say that since I have joined (in march 2020 or so), we have seen a ton of improvements to the code, multiple options for video players, and way more pi hardware support than ever before. Also, we have seen a lot of new dock 3d designs come from Crash and our newer teammates!
FS: While I wasn’t one of the original devs for the team, even from my time on the team there’s been a lot of progress. We’re either always trying to add new functionality or increase performance, and Crash has a lot of great ideas so thankfully we’re never bored. It’s actually pretty cool to how he’ll just come up with an idea for a new dock, and then have it fully implemented and working within a few days. Honestly very happy I can help out with progressing this project further.
SN: Back when the project began with xCorra I knew very little about Linux and Raspberry Pi but I thought the idea was great and I wanted to have a dock for myself so I signed up to help test it on the Raspberry Pi Zero. Together we made some progress and we had achieved a smooth 30fps. I handed the working 30fps image off to xCorra after tweaking some things and thought he was going to handle the rest. It wasn’t polished. It didn’t have auto start or Bluetooth or even a custom desktop at the time and I don’t think the images for other Pis they were working on did either. After that I stopped paying attention to the project.
Eventually I heard xCorra scammed the community through a crowdfunding campaign for VitaDock Raspberry Pi cases and disappeared. I thought it was horrible and didn’t want to have anything to do with the project for a while after that. Looking back on it I shouldn’t have been surprised. When I worked with xCorra he didn’t seem to have any more experience with Linux or Raspberry Pi than I did. Instead he was relying on others to do the work for him.
Later on I went back to see if anyone ever completed the project and I found that Crash had released a final image! I was very impressed they pulled it together despite what went down with xCorra. I tried the image out and saw some things that needed improvement but overall I was happy that they got the auto start, Bluetooth, and overall ease of use figured out. That image unfortunately didn’t support the Pi Zero which made me feel like my work on it previously didn’t matter. In the time I had been away I had become more familiar with Linux and Raspberry Pi after I had set up Pis to host a TES3MP server, XMage server, and Mumble server. I found myself playing around with the OS to improve their release and that’s how VitaDock+ came to be.
I changed the backend to a lighter one and added some hardware specific commands to allow it to work on all Pis with one image, I utilized the command for switching UVC modes on Linux allowing users to switch resolution/framerate on the fly without a custom vita-udcd-uvc plugin, I wrote a custom screensaver script that actually turns off the TV after a set time instead of just blanking it, I cut the OS back enough to fit on 4GB SD cards, and I did so much more as well. I made my version and released it completely unaware that anyone was still working on the project. I mean their release was labeled as final and there wasn’t any activity on it since release so how was I supposed to know? They reached out to me when they saw it and we have since been working together.
VP: What are some of the challenges you’re facing when working with the PS Vita?
M: The biggest challenge, for now, is Bluetooth. It just makes life so much easier for end-user, but it’s just such hell on our end. Also, Vita uses USB 2.0 which is a huge chokepoint if we want 60 fps high-resolution output.
SN: Almost all of our challenge came from working with Linux and Raspberry Pi, we didn’t do anything low-level with the Vita. That was all Xerpi.
FS: There are some things planned for the vita side to help enhance the dock experience. However, the vita side UDCD plugin was done by Xerpi, our team mainly focuses on the Raspberry Pi component, which includes managing the scripts, packages, and compatability across models.
P: In my personal opinion, since we work mainly with shell scripting and things more related to the Pi hardware itself, we lack a deep understanding of the VitaSDK and Xerpi’s USB Video plugin, which is something that Vitadock relies heavily upon to function. I wish I could find the time to take a deep dive on VitaSDK and figure out exactly what goes on under the hood of udcd_uvc.
VP: On the other hand, what can you tell us about the challenges and/or advantages of working with the Raspberry Pi?
M: I started to hate Linux while working on this image 😀 but I learned a lot though. Pi 4 makes life easier by being faster at some tasks and so we always recommend pi4 from now on because of its power and better Bluetooth.
P: The biggest challenge I have faced so far was the differences between various Pi models. Not only does each model behave differently, we also have seen differences in performance across Pi hardware of the SAME model! This probably boils down to the ‘silicon lottery’ and/or manufacturing batches, but for instance some pi4’s handle bluetooth better than others. That being said, we have made some pretty good strides in making vita dock function across as many models as possible. For instance, before I joined the team, the general consensus was that a pi zero wasn’t exactly up to the task…but recently we have seen otherwise.
FS: The funny thing about the Raspberry Pi is that since there are so many models, trying to fine tune each one can be difficult. However, because it is based on the linux kernel, there really is a lot of freedom when working on making each model a possible dock. It’s gotten to the point we actually have a mini-dock image for the Pi Zero! As for challenges, there’s the truth that computers are just weird sometimes: two people with the exact same models can end up having such different experiences. We’ll see the weirdest errors, but will help out any struggling users when we can.
SN: One of the biggest challenges when working on the Pi for me was working around the outdated or nonexistent documentation. It took me about a week just to figure out how to compile FFmpeg and FFplay with hardware acceleration for armel just due to the lack of working documentation. Hardware acceleration is a requirement for a smooth experience. Another challenge I came across was writing the scripts so that they work well across all Pi models. Some Pis accept certain commands fine while others just don’t like them.
VP: Will this project be forever ongoing? Or do you have specific milestones after which you’ll walk away in some capacity?
M: Make it as plug & play as possible.
SN: I’m at a point where I have almost all the features I can think of implemented in VitaDock+. There are more things I want to add but I’m taking a break for a moment since the current release seems very solid.
FS: I’m sure it’ll be around for a while. The Vita, although a failed system on Sony’s part, is the perfect system for a project like this. I’m sure as more people come and suggest ideas, there will always be something to do.
P: I think that as long as the Raspberry Pi Foundation keeps making hardware, and they keep updating rpiOS, we will always have a project to work on. Just when I think we have gotten to the end of the rope in terms of what we can do creatively, something like the pi zero vita dock clip-on mount pops up and now we have a whole new thing to wrap our heads around. Aside from the “pi” side of things, I think there are possibilities to further improve the quality and stability of the udcd_uvc plugin.
VP: What can people do to help the development or progress of this project?
M: Contribute by helping, making it better.
FS: Testing is always good for us! We can’t possibly test every single case with every single setup, so if you see a bug/error, report it to us. While we may not be able to get to every unique problem, we’ll always try and tackle any general problems that we see occuring. And if anyone has a problem you were able to solve yourself, helping others is a great way to make sure the community thrives.
P: We are always looking for bugs and improvements! I am currently working on organising our many repositories and making a public GitHub page where anyone can check out our projects and contribute. The creative possibilities on how to implement a physical dock are endless—we always welcome more people who are interested in new designs for a dock/mount for your vita. Personally I would like to see our community eventually have a peer-to-peer 3d printing service where enthusiasts can print their docks for each other (in exchange for only the postage and printing material costs) Other than that, we kindly invite anyone who is interested in VitaDock to join the discussion on our discord!
SN: To help development all I ask is to verify Pi models using the instructions on the VitaDock+ GitHub page.
VP: Thank you! do you have any parting words?
M: Wow, look at this broken English wall of text… When I started all this I had no idea what I’m getting myself into. On the bright side, I learned a lot from Linux and how to manage my personal time. Sad that this project had all this drama for no reason. By the way, this is just from my perspective, I had no idea who was Silent Night or Crash at that time, I do not take all the credit. And I think that’s that form me 🙂