Minimal Desktop with USB Mounting and Browser

Hello all,

We are developing a product that will have a Compute Module 3+ Lite embedded inside, it will have USB, Wifi (USB Dongle), Ethernet and HDMI capabilities.

My requirements:
I plan to have 2 containers.

  • The first container will be running a node JS server and will be my main app. The expectation is that majority (70%+ ) of my users will be able to connect the product to the internet or their local network and access our application via the browser.

  • The second container is meant for users that are unable to connect the product to a network and need to use the machine as a standalone device. They would plug in a monitor, open up the browser and point it to the server (localhost).

A key requirement is that users will upload files to the node server for processing (think 3D printer)

The problem
I am trying to build out that second container but I am getting extremely poor performance with Chromium. It is extremely unstable and when pages do load, they load very slow.

What I have tried:

I have essentially merged 3 sample projects together:

I am browser agnostic.

I tried installing Midori and Firefox-ESR, performance has improved but it is still not ideal. From my understanding Chromium should be the fastest browser in the latest Raspbian, but I can’t get it to work.

I also tried running WPE but my mouse was extremely laggy, as if skating on ice.

I don’t need a full desktop (kiosk mode is fine), but I do need to be able to browse (file upload) a local USB Flash drive to upload files. I’m not sure how to enable that with WPE

What I find interesting is that when I run Chromium in regular Raspbian, the performance OK (slower than a laptop of course, but usable), so clearly the hardware can handle it.

My questions

  • Is docker/balena somehow throttling the network connection?
  • Is there a way to allocate more resources to a container?
  • Has anybody run into similar issues?
  • Am I doing something horrible wrong in my setup?

My setup

My sample folder is here. You’ll see that navigation unusable (if it doesn’t crash)

My config.txt from /mnt/boot/config.txt


I discovered Balena about 2 weeks ago and fell in love with it. I really really want to use this for our product. Our product will be about 50 Kg so once it leaves our building, it isn’t coming back and love the idea of being able to monitor our products, see logs, pin releases and force updates.

However if I’m not able to solve this performance issue I’ll have to go back to my original plan which is to ship a Raspbian image with Docker :cry:

If you guys could point me in the right direction that would be awesome!

Hi, I have loaded the application you provide into a Fin ( that contains a CM3+ module. I have no problem with the mouse, it works very fluently, and I can browse the web and load pages. I would think that what I am seeing is very usable, specially so for the use case you describe.
I would think that Chromium in BalenaOS should have a similar performance than Chromium on Raspbian, but I will reach out to our hardware hackers team to confirm as they have experience with a broadser set of setups.

We noticed that you are using gpu_mem=448. We recommend gpu_mem=192 as it’s likely that this is not leaving enough memory for chromium and other apps to run. Please could you try that setting and let us know if it helps?
Thank you


Were you able to get this sorted? Were you able to get better performance by chaning the ```gpu_mem`` setting? Please let us know if there’s anything we might do from our end.

Best regards,

Hi @jtonello and @srlowe ,

I haven’t had a chance to follow up on your suggestions.

Moving all your product development from the office to your home tends to put a wrench in your project :slight_smile:

I’ll follow up shortly.