Beginner trying to build “Controller Mode” App – Need help with UI, packaging, general advice

Hi everyone,

For context, I’m not an expert programmer by any means, I have basic coding knowledge and I’m mostly trying to vibe code this app together through trial and error.

I’m working on a “Controller Mode” app for muOS. The idea is that when the app is launched, the device should act as a USB HID controller (like an Xbox gamepad) when plugged into a Windows laptop, and then switch back to normal mode when exited, so the device can be used like a regular controller.

So far, I’ve managed to package my app as a zip file, but I’ve run into something odd:

  • If I rename the file extension to .muxzip, it disappears from the Archive Manager.

  • If I leave it as .zip, the Archive Manager lets me install it, but when I try to run the app it instantly crashes.

I think the problem might be that I don’t know how to properly build a UI for muOS, and I’m not sure if the programming language used is correct. I’ve tried shell scripts and Python, but I keep running into missing libraries or limitations.

Here is the architecture I have so far: https://i.imgur.com/M3DVxGc.png

I’m not expecting a ton of support since this is a pretty niche project, but I’d love any advice or beginner-friendly explanations about:

  • How to build a simple UI or menu for muOS apps (even just text-based)

  • What programming language or libraries are available “out of the box” on muOS

  • How to monitor for button presses (like the function button) to let users exit the app

  • Any tips on packaging, compiling, or filling out the app so it works reliably

If anyone has sample code, guides, or just general advice, I’d really appreciate it!

Ha! It looks like at least one person had a similar idea here but I imagine it’s a somewhat niche scenario: Proposal: “Controller Mode” for RG35XX (USB → Bluetooth later) - Ideas - MustardOS Community Forum

3 Likes

What version of muOS are you running?

I was on 2410.1 Banana haha, haven’t used my handheld for some time, I’ve flashed Canada Goose and .muxzip file are recognised, the file structure seem to have changed though so no luck getting the app installed

I’m really excited about this app and have been exploring it further. I have a 2508.1 Canada Goose (140226a2) installed on the RG35XXH, and it seems that the kernel module usb_f_hid.ko is required to use this device as a HID controller over USB. I’m just a hobbyist, so does anyone have a solution for this? And to the developers: is there a specific reason why this module is not enabled by default?

We don’t have access to the kernel source. We are using stock bsp kernel. If you can find a compiled aarch64 module or find a way to compile this module with the kernel version by all means.

Saying it like “is not enabled by default” is not a fault on us or the project itself. We work with what we are given, and that is not much.

Hey Xonglebongle, first of all, I really appreciate you and the whole team for providing this wonderful CFW option.
I wasn’t aware of this kernel source discussion before. Maybe it could be my little quest to search for the module or the kernel source for rg35xxh.

1 Like

I’m actually quite interested in seeing if you are able to go anywhere with a controller mode app. There are likely other options, if it’s just not possible to use HID, you could use another profile and do the translation on the PC. What USB gadget modes are available, with the current bsp kernel and firmware?