#Moongate - New Streamline Remote Control App for Android Users

553 messages · Page 1 of 1 (latest)

winter dew
#

Moongate is a free, open-source Android app that gives you a full remote control interface for your Klipper 3D printer; live webcam, print controls, temperatures, and the complete Mainsail/Fluid UI, over your local network and automatically over the internet when you're away from home.

No Tailscale. No VPN setup. No subscriptions.

Looking for feedback from the voron community.

https://github.com/PEEKYPAUL/Moongate

                        ┌──────────────────────┐
                        │   Cloud middleman    │   anonymous sign-in;
                        │   (identity & lookup)│   tells the app where
                        └──────────┬───────────┘   your printer is right now
                                   │ short-lived
                                   │ access token
                                   ▼
   ┌─────────────────┐                  ┌──────────────────────────────┐
   │  Moongate App   │◄──── LAN ───────►│  Raspberry Pi                │
   │   (Android)     │      (home)      │   • Klipper + Moonraker      │
   │                 │◄── Cloudflare ──►│   • Moongate plugin          │
   │                 │   tunnel (away)  │   • Auth proxy — gates every │
   └─────────────────┘                  │     internet-facing request  │
                                        └──────────────────────────────┘
GitHub

Free, open-source Android remote for Klipper 3D printers. Full Mainsail/Fluidd UI, live webcam tiles, print controls. Local WiFi when home, automatic Cloudflare tunnel when away — no port forwardin...

#

Moongate - New Streamline Remote Control App for Android Users

fleet lichen
#

Installed last night and worked great to monitor prints at work running after i left. Very easy to install and setup

winter dew
dense hemlock
#

ello

timid salmon
#

So hyped for this tbh

winter dew
#

added lots of cool stuff now 🙂

shy ibex
#

This is simply the best! The best remote control app I've ever seen!

winter dew
snow timber
#

Oh this is cool!
Question: I try to avoid cloudflare stuff as most as possible (hard to do really but well 🤷) could a similiar thing done with a selfhosted instance of pangolin or simpler tailscale funnel?

chrome trail
#

fantastic, just tried on one printer and worked without any issue. I've been proxying my mainsail instances via a traefik docker container and serving them via cloudflare tunnel, this approach is night and day

neat moth
#

Love it. No bugs yet but is there a chance of Obtainium support? Think you just need a releases page but I could be wrong

winter dew
winter dew
#

Hello everyone!

I’ve been working hard on Version 4+ and there’s been a lot of progress tonight. Please make sure you install the latest plugin on Mainsail and download the newest APK.

Because the changes are significant, you’ll need to delete your current Moongate app before installing the update. The internal handling has been redesigned, especially around how the VPN pairing works.

Major update: fully secured tunnel
After scanning your code, the generated Moongate VPN link is now locked to your specific machine. It cannot be pinged or accessed by anyone else.

You can verify this after syncing:

Copy the URL again and try loading it

Even if you remove moongate-pair.html from the address, the machine will no longer appear

You should see “unauthorized”, which confirms the tunnel is now fully secure

This is a huge improvement in how Moongate handles device security.

#

If you find any bugs please do let me know, you can now also rename the printer when you go into the tile, i added a little rename icon 🙂

winter dew
#
                        ┌──────────────────────┐
                        │   Cloud middleman    │   anonymous sign-in;
                        │   (identity & lookup)│   tells the app where
                        └──────────┬───────────┘   your printer is right now
                                   │ short-lived
                                   │ access token
                                   ▼
   ┌─────────────────┐                  ┌──────────────────────────────┐
   │  Moongate App   │◄──── LAN ───────►│  Raspberry Pi                │
   │   (Android)     │      (home)      │   • Klipper + Moonraker      │
   │                 │◄── Cloudflare ──►│   • Moongate plugin          │
   │                 │   tunnel (away)  │   • Auth proxy — gates every │
   └─────────────────┘                  │     internet-facing request  │
                                        └──────────────────────────────┘
dense hemlock
winter dew
#

did you remove the old version and install the latest one?

#

if you can DM me your klippylog file i can fix this tonight.

dense hemlock
#

I didn't.

#

Will uninstall and re install

winter dew
#

Hello Safe, can you be more clear and what you did, did you run the uninstaller script from the github then did the install script at the top of the page?

#

send over me the log files klippy.log

dense hemlock
#

I just pressed the update button built into mansaill

#

Its a me issue for pressing the button

chrome trail
#

just tried to reinstall moongate but get this when launching the uninstaller

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
  Moongate Uninstaller
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

This will remove:
  • moongate-tunnel systemd service (cloudflared tunnel)
  • moongate-authproxy systemd service (v0.4 auth proxy)
  • Moongate Moonraker plugin
  • ~/moongate repository clone
  • ~/.config/moongate (tokens + secret key + v0.4 backup dir)
  • [moongate] entries in moonraker.conf
  • MOONGATE_PAIR macro from printer config
  • moongate-pair.html from Mainsail

And RESTORE (from ~/.config/moongate/v0.4-backup/ if present):
  • moonraker.conf — back to pre-v0.4 (Moonraker bound to 0.0.0.0)

Aborted.
curl: (23) Failure writing output to destination
#

after that I just rerun the installer and it's all working, but can't seem to view the camera stream from the printers list page tho

winter dew
winter dew
#

i will try and fix these issues tonight.. i knew something like this might pop up 🙂

chrome trail
winter dew
# chrome trail Local

thanks, i will do some bug testing tonight.. i missed a couple of things with the uninstaller and installer module.

chrome trail
winter dew
#

yeah i can see the server is having issues finding the camera port on crowsnest.

#

at least the printer can be seen on the tunnel that is a big win for yesterday.

winter dew
#

Hello everyone! fixed a lot of stuff.. uninstall the app.. and update the plugin or remove and install it again. let me know how you guys get on!

winter dew
winter dew
chrome trail
winter dew
#

0.4.4 is the latest 🙂

chrome trail
winter dew
winter dew
#

Big push on the latest APK. Follow the update guide on the GitHub home page to get everything installed. Thanks for sticking with it. I know the reinstalling can be a pain, but moving from bug fixes to full PR changes means both the app and the Moongate plugin need a clean, correct install.

winter dew
#

Big updates this weekend! make sure to update to the latest version!

shy ibex
winter dew
tacit trellis
#

hi, wanted to try moongate but the local website with qr is unreachable but nevertheless used the code.
it creates the printer istance, but no connection (actually says connection refused)
now i have the klipper istance on my homelab, which has traefik on, could be this the problem?

winter dew
#

Hello Haxhi03. what version of the app are you running and plugin version?

tacit trellis
#

the lastest i believe, 0.61 app version and v0.0.0-1-gda1fa771-inferred plugin version

winter dew
#

could you try turning off traefik? this might be blocking it and report back to me, when the connection says refused.. give it 10 mins.. sometimes the database takes some time writing the encryption data on your keystone, currently i am not tracking debug issues

tacit trellis
#

done but nothing changed

#

even tried to disable pihole to not interfere, but nothing

winter dew
# tacit trellis the lastest i believe, 0.61 app version and v0.0.0-1-gda1fa771-inferred plugin v...

Hey! Good instinct yeah, Traefik is almost certainly the cause. Here's what's going on:

Moongate connects to your printer directly over plain HTTP on your local network — it reaches Moonraker at the printer's LAN IP on port 80 by default. It doesn't use a hostname or HTTPS, so a reverse proxy like Traefik (which sits on 443 and routes by hostname) ends up right in the path, and Moongate can't talk through it.

That's also why you saw exactly those two symptoms:

The QR/pair page wouldn't load — it's served on plain http://<printer-ip>/, and on your setup nothing's answering there (Traefik's on 443, nothing's on 80).
The printer got added but says "connection refused" — adding a printer is just a cloud step, so it works regardless. But the moment the app tries to actually reach Moonraker on the LAN, nothing's listening on the port it expects → connection refused.

The fix is to give Moongate a direct line to Moonraker that skips Traefik:

Make Moonraker reachable on your LAN on a real port — its own 7125 is easiest (not the https://… Traefik hostname). If Moonraker runs in Docker, make sure that port is published to your host's LAN, not just the container network.
On the Moonraker host, edit (or create) the file ~/.config/moongate/config.json and set that port:

#
{ "http_port": 7125 }

Restart Moonraker so it picks that up, then re-pair in the app (remove the printer and add it again — the new pairing points the app at the right port). The GATE code is fine; you don't need the QR page.
Make sure your phone is on the same WiFi/LAN as the homelab when you pair — initial pairing is LAN-only by design.
If that doesn't do it, two things would help me narrow it down:

Is Moonraker reachable only via https://… through Traefik, or is there any plain-HTTP port open at the homelab's LAN IP?
Is Moonraker in Docker, and is it the same container where the Moongate plugin is installed?
Remote access (when you're away from home) uses Moongate's own tunnel and doesn't touch Traefik at all — let's get the local connection working first, then sort that out if you need it.

tacit trellis
#

so just for the first connection i should have the 443 port free?

winter dew
# tacit trellis so just for the first connection i should have the 443 port free?

Not quite mate, let me clear up two things, because the port's actually the other way around:

It's not 443. Moongate talks plain HTTP, not HTTPS, by default on port 80, or whatever you set http_port to (e.g. 7125). It never touches 443, so you can leave Traefik on 443 exactly as it is. What Moongate needs is a plain-HTTP port where your phone can reach Moonraker directly - that's the http_port from the config step. Easiest is to expose Moonraker's own 7125 on your LAN and set "http_port": 7125.
It's not just the first connection. That direct plain-HTTP path is what Moongate uses for all local operation - live status, controls, webcam.... every time you're on your home WiFi, not only during pairing. So you'll want it reachable permanently, not just for setup.

tacit trellis
#

ok i freed the 443 port and now it works (also modified moonraker.conf beacuse i had the wrong ip) but now if i open the printer on the app it gives me bad gateway

tacit trellis
tacit trellis
winter dew
#

You mean it reads correctly on the dashboard but when you select the printer you get the bad gateway?

tacit trellis
#

yep

tacit trellis
winter dew
winter dew
# tacit trellis it reads correctly the temps but opening it throws the error

Could you give this another quick try now that the moonraker.conf port is fixed.

  1. Open Klipper and run MOONGATE RESET OWNER in the console.

  2. Wait a minute or two for it to fully clear.

  3. Delete the printer from the Moongate app.

  4. Re‑add it and generate a fresh code.

I’m curious to see if everything behaves correctly now with the updated port and a clean pairing cycle.

tacit trellis
#

already done it

#

when fixed the issue with moonraker i waited some minutes to fully re-pair it

winter dew
#

was this after fixing the port? Sorry if my questions seem trivial.

tacit trellis
#

yes

#

can't check very much beacuse i've got a final tomorrow, but if i remember correctly bad gateway occurs when the reverse proxy manager reach to that service

#

if i've got traefik down, maybe i'm missing something on installation
gonna check better tomorrow

winter dew
#

I am looking more into this - thanks for bringing this up, Great de-bugging day!

#

I will push an update tonight to the "add printer section" just for you 🙂

tacit trellis
#

thank you very much man

#

doing god's work

winter dew
#

I’ve just pushed an update to the app. Make sure you’re running the Moongate plugin: 29773b95.

if your plugin is out of date and wont let you update run

curl -fsSL https://raw.githubusercontent.com/PEEKYPAUL/moongate/master/klipper-plugin/install.sh | bash

I’ve also improved the Add Printer section and added an Advanced menu where you can manually enter an IP and port if needed - for example:

0.0.0.0:(port number)

tacit trellis
#

it works like a charm

#

thank you very much!

winter dew
#

Awesome i am glad it works now! Do spread the word!

tacit trellis
#

lil update, i dug up on your code (which i need to thank you for the comments there, very very helpful).
i found out that my issue was basically the port which operated mainsail.
i simply changed on the install.sh with the desired port i needed for my case and now it's working smoothly.
before it connected (as i wrote before) but after half an hour it lost communication.
even managed to get working the pairing url

winter dew
#

Hello Haxhi, I have done quiet a lot tonight.. try updating everything both plugin and app... i added a report bug feature which helps me work on routing issues etc.

winter dew
#

Hello everyone,

I managed to break quite a lot last night, sincere apologies to all of you. While testing a user request, I accidentally left out a piece of code in the tunneling network. When I built the app, it caused everything to fail, and unfortunately that broken build was pushed live. Silly ME!

If you updated to v0.6.3, it likely broke things across the board.

Good news: v0.6.5 should now be fully restored
I’ve pushed v0.6.5, and this version should be stable again.
Backup and restore will work from this version onward (fingers crossed).
However, do NOT use backups created on v0.6.3 — its broken and won’t transfer correctly into 0.6.4 when you import
you are required to update the plugin to version: v0.6.4-1 BEFORE PAIRING

Important

For 0.6.5 to work properly, you must:

Run MOONGATE RESET OWNER in the Klipper console

Generate a new pairing code

Re-scan all your machines

Cheers!¬

chrome trail
#

One thing that would allow me to stop using mobileraker would be getting printer status notifications, is this feature planned?

winter dew
#

ive fixed alot of stuff, big push coming tonight.

chrome trail
winter dew
chrome trail
winter dew
chrome trail
winter dew
winter dew
#

Wasnt to hard to build, i found some good examples online! Just working on the look and feel now 🙂

winter dew
#

@chrome trail

chrome trail
#

Very nice!

winter dew
#

Gives ETA too 🙂

#

If this works for you and you like it, i can push this feature tonight.

winter dew
#

@chrome trail update coming in 30 mins or so.. 🙂 let me know what you think.

chrome trail
# winter dew

yeah that works! does the notification update with status changes?

chrome trail
#

starting a print and erroring out properly pop up as notifications, a bit slower than mobileraker but not a big deal

winter dew
#

i can work on the speed of the notifcations as a setting.

chrome trail
#

also when a printer becomes ready (as in, restarting firmware after erroring out) there's no notification for that. Also for some reason I didn't get a notification for a second shutdown I tried to simulate

#

I like the icons for the persistent notification, very intuitive. With that I'd suggest allowing reordering printers in the main app ui which should reflect on the notification: I have 5 printers and try to keep a consistent ordering everywhere (mainsail, homeassistant, etc.) to stay sane

winter dew
#

that should allready happen, Printers that are printing should appear at the top of the notification window.

Tier    States it covers    Notes
1· Printing (top)    printing, heating (warm-up), paused    active jobs float up; paused is still an active job
2· Ready    standby (ready), complete, cancelled    finished/idle-ready
3· Idle    waiting (reachable, Klipper/power off), starting up    reachable but not doing anything
4· Offline (bottom)    offline    unreachable
#

I am working on it Luca, give me some more time 🙂

chrome trail
#

no rush at all, I'm already happy with how it works

winter dew
winter dew
#

you will get some updates soon 🙂

#

going to add a polling time setting too. currently its 30s but will give you options to go down to 5s.

winter dew
# chrome trail 0.8.0

Yeah this is 3 versions behind what i am on.. i am trying to not push to often for each feature.. i have fixed alot of the things you said above regarding reordering for example.

chrome trail
winter dew
winter dew
#

no need to backup going from 0.8 to 0.8.1 its a clean update 🙂

#

please test and let know what you think 🙂 i added the polling time in the hamburger menu 😉

chrome trail
#

good stuff, I can still see my printer as idle in the notification after turning it off, notification update times seems to work fine.
Another minor thing is that toolchanger setups have more than one tool with related extruder (called extruder, extruder1, extruder2 etc.), the temps could either show all of them or the active tool only, otherwise you have wrong values if the first tool is not actively in use

winter dew
chrome trail
winter dew
winter dew
#

Backups now capture all system settings, allowing you to customize your app’s colours along with all other settings! I pushed that silently into 0.8.1 😉

fleet lichen
#

All working here after a week of making Paul tear his hair out over my pi date drifting about 2 hrs heh

winter dew
fleet lichen
winter dew
chrome trail
#

our printer 🛠️

winter dew
chrome trail
#

Like right now all my printers are marked as idle but are shut down in reality

winter dew
winter dew
#

@chrome trail i have fixed this will push tonight.. i want to add an extra couple of cool features before i push 🙂 just working on the look and feel of the github, My photoshop keeps crashing, Defo need to update that xD haha.

winter dew
#

OK Icon is done, Its version one for now.. i have some ideas i need to play with 😉

winter dew
#

Wish us luck guys!

dense hemlock
chrome trail
winter dew
rich pawn
#

What a cool app!
Any idea if i would be able to get my IP cams to show up when in tunnel mode?

winter dew
rich pawn
winter dew
winter dew
# rich pawn That would be awesome if you could look into it! I really like using old phones ...

Hey dude, can you do the following for me:

On your machine, run MOONGATE RESET OWNER in the Klipper console (there should be a macro for it).

Go to Update Manager and update the Moongate plugin to the latest version.

Uninstall the APK you’re currently using and download the newest build, Backup wont work this time around.

Open the app, run Moongate Pair, scan the QR code, Lets see if Moongate will bring in theh camera URL now if not.. i have added an icon which you can configure the webcam on the dashboard.. if it loads perfectly you wont need to enter in the direct URL here, so you can just hide the icon in the hamburger menu.

chrome trail
#

@winter dew could you either link the changelog for the latest version or have a pop-up with the info when an update is available? In the what's new section there's only changelogs up to the current installed version

winter dew
# chrome trail <@149264440578146304> could you either link the changelog for the latest version...

You can also check here for updates on the github: https://github.com/PEEKYPAUL/Moongate/blob/master/CHANGELOG.md

the updates that i did for Galvanic will not effect you, i implemented a generic method for camera handling.

I will take your feedback and include a changelog via the update notification so you know what has been added, i think this is a better way of handling updates going forward, thanks for the bump on this.

GitHub

Free, open-source Android remote for Klipper 3D printers. Full Mainsail/Fluidd UI, live webcam tiles, print controls. Local WiFi when home, automatic Cloudflare tunnel when away — no port forwardin...

#

I am just working on the changelog now for github.. it will be pushed shortly.

#

I am sorry it seems like a lot of updates, i think soon it will start to slow down and i will manage only pushing big updates.. I think we are getting close to close final release, i only have a couple of features that might need a quick few updates.

winter dew
winter dew
#

New graphic for the Github! what do you guys think?

neat moth
# winter dew

Very clean! Only nitpick would be the key symbol. The concept is perfect but the symbol itself doesn't mesh with the dotted lines amazingly

rich pawn
#

Interesting... the preview screen is showing a live feed but when selecting the printer it comes up with the error

winter dew
winter dew
rich pawn
#

Yeah and it is live as well showing movement

#
  • it is showing the live feed in tunnel mode
winter dew
#

So local mode isnt showing at all?

#

Can you explain the behaviour in detail so i can figure out where the issue is.

#

Does local mode work as well?

rich pawn
#

Local mode is all working.
Tunnel mode - preview screen works but going into the printer the webcam doesnt work

winter dew
#

Does it work when you go directly via ip into a browser window?

#

Meaning you are not using the app to coms with the machine.

rich pawn
#

Yeah it works in a browser not through the app.
Maybe this helps it make more sense:

Local mode is working perfectly. I can open the printer and the webcam displays normally through the app.

In tunnel mode, the printer card preview on the home screen also works correctly and shows a live feed with movement, so the tunnel is clearly receiving the webcam stream.

The problem only occurs when I tap into the printer itself. Once inside, the webcam panel fails to load and shows:
Error while connecting to http://192.168.0.107:8080/video

It seems like the preview is using the tunnel correctly, but the printer page is still attempting to use the local URL

winter dew
#

Thank you for that, i am looking at it now!

winter dew
winter dew
#

Yeah i understand what the problem is.. however its not a simple fix.. this is because when in tunnel mode the camera feed is pulled from the pi directly.. it doesn't need mainsail to grab the feed.. however mainsail has a direct Lan address which doesnt update to the tunnel address as its hard coded. give me some time to think.

winter dew
winter dew
rich pawn
# winter dew just download this test build APK, shouldnt need to uninstall the old one.. this...

Just tried the test build and unfortunately there's no change – it's still the same problem.

I also uninstalled the app completely, reinstalled the test APK, reset everything, and paired the printer again from scratch just to make sure there wasn't any old configuration being carried over, but the behaviour is identical.

Local mode continues to work perfectly, and the webcam is still accessible directly through the browser via http://192.168.0.107:8080/video. The issue only occurs inside the app when using tunnel mode, where the printer page still can't display the webcam.

winter dew
winter dew
# rich pawn Just tried the test build and unfortunately there's no change – it's still the s...

Remember i can't by pass mainsails UI, soo.. two things the fix isn't in the Mainsail "Webcam" panel you're looking at. That panel is Mainsail's own, and it'll always show that error away from home; we can't change how it loads. The fix is a separate camera button I added. Can you do the following:

On the test build (version 0.9.1-extcam-test), with WiFi OFF on 3/5G

Open the printer.

In the top bar, tap the video-camera icon (top-right, next to the circular refresh arrow) not the "Webcam" section in the Mainsail page.

Tell me what that full-screen view shows: the live feed, a spinner, "No camera configured", or "Printer unreachable."

If it says "No camera configured": go to the home screen, tap the gear on the printer's tile, paste http://192.168.0.107:8080/video, save, then reopen the printer and tap the camera icon again.

rich pawn
#

Thanks for that, that's perfect for doing a detailed camera check away from home!

winter dew
#

are you happy with this as i would love for it to work natively but i dont want to port into Mainsails interface.. i could do a pull request... hmmm

rich pawn
#

I'm very happy with this as I can just click the camera button to check when needed. Also the preview card shows me if anything major is going on with the print.
I've removed the webcam dropdown from the mainsail UI.

winter dew
#

Perfect i will push this version out shortly onto master 🙂

winter dew
# rich pawn I'm very happy with this as I can just click the camera button to check when nee...

Can you try do this and report back to me.

Updated test build at the same link — just reinstall over the current one (no uninstall, printers kept):
https://github.com/PEEKYPAUL/Moongate/releases/download/v0.9.1-extcam-test/Moongate-v0.9.1-extcam-test.apk

Now, on 5G, open the printer. You should see a small hint strip near the bottom — "Webcam won't load here remotely — open the Moongate camera" with an Open button, pointing you to that camera icon you found. Tap Open (or the camera icon) and the stream shows. Once you've opened or dismissed it, it won't come back.

after that, i can mark this as stable and push to master.

rich pawn
#

Yeah, I see the message

#

It's not coming back after the camera has been opened

winter dew
#

thanks, i will move it to the top, i forgot to include the UI bottom bar fix xD

#

so the message has gone into the phones UI.

rich pawn
#

I did also notice that notifications have disappeared with this test APK

#

Oh sorry never mind its back

winter dew
#

can we consider this as complete?

rich pawn
#

Something else weird has happened. Maybe you might know what it is, I haven't tried to fix it yet. I've installed moongate on 3 of my printers and klipperscreen wont connect to moonraker at the moment. Im going to try some restarts and maybe a klipperscreen reinstall.

winter dew
#

does klipperscreen not work on any of the machines?

chrome trail
#

I can attest my printer running klipperscreen didn't have issues when adding moongate

rich pawn
#

They are all saying the same thing.

winter dew
#

yeah i am using klipper screen on all my machine and i didnt have this problem, did you try restarting the machine Galvanic?

#

you might need a cold boot

rich pawn
#

Just did a cold boot on all 3 but its still the same

winter dew
rich pawn
winter dew
#

and can you send me moonraker and crownest log files for the same machine.

rich pawn
winter dew
#

no thats fine.. long as the files you sent are from the both machine with the error i can look into it.

rich pawn
winter dew
#

i would need the 3 files all from the same machine if possible.

rich pawn
winter dew
#

thanks let me study and come back to you.

rich pawn
#

Thanks!

winter dew
# rich pawn Thanks!

so this is simple to fix..

open Klipperscreen.confg file and add this to the top of it.

[server]
moonraker_host: 127.0.0.1
moonraker_port: 7125

and then restart klipper screen from mainsail.

#

if that works can you confirm please so i can attempt to patch this going forward.

rich pawn
#

It's got a new error

winter dew
#

did you put it at the top of the file?

rich pawn
#

Yeah, at the very top

winter dew
#

yeah i tested it on my end too! haha 1 sec

#

Remove it for now.. i will work on it

winter dew
# rich pawn Yeah, at the very top

Firstly backup klipperscreen.conf

open the original file.. find where it says [printer Madmax]

and replace any lines that reference moonraker_host and moonraker_port with the following.

[printer Madmax]
moonraker_host: 127.0.0.1
moonraker_port: 7125

then restart klipperscreen.

winter dew
#

[printer Venom]
moonraker_host: 127.0.0.1
moonraker_port: 7125

rich pawn
#

That worked!

winter dew
#

yeah sorry my contacts was wrong

#

just do the same on all machines you wont have this issue again.

rich pawn
#

Thank you, much appreciated! would have taken me a day to figure something like that out 😂

winter dew
#

just took me some time to understand the logs and i missed you named the printer instead of it being [printer] like mine.

#

anyway easy fix 🙂

rich pawn
#

With the notifications if I have print progress on it shows my the printer status

#

If I have print status on it shows me the what the printer is doing

#

Is that right?

winter dew
#

Let me look see!

winter dew
# rich pawn With the notifications if I have print progress on it shows my the printer statu...

Thanks for the screenshots i think you nailed it, and you're right that something's is a bit off. The two notification toggles are basically named backwards from what they actually do ?!?!?!?
"Print progress" is the one that turns on the always-on notification listing all your printers and what they're doing (NightFox - Ready, Venom - 45%, MadMax - Offline).
"Print status" is the one that gives you the pop-up alerts when a print starts, finishes, pauses or is cancelled.
So when you'd expect "Print status" to show your printers' status, it's actually firing the alerts - and the status list is hiding under "Print progress." No wonder it felt wrong.

The fix is just to rename them so they match:

"Print status" → the always-on list of your printers
"Print alerts" → the start / finish / cancel pop-ups

One quick check before I change it: was it just the labels being backwards that threw you - or did you actually see a notification show the wrong info (e.g. saying a print was cancelled when it wasn't, or a printer stuck on the wrong status)? Want to make sure I fix the right thing.

rich pawn
winter dew
winter dew
#

Hello Moongaters! if you have any other features you would like to request for me to review, Feel free to DM me or write on here.

chrome trail
winter dew
winter dew
chrome trail
#

Let me know if there's a way that I can contribute to the project 🙂

winter dew
#

I put a donate link in the project to just help with the server running costs. its not much so i don't expect alot from anyone really.

winter dew
#

Version Changes
v0.9.5 Tap a camera to watch it full-screen. Every printer tile that's showing a camera now has a small eye button in the corner — tap it for a centred, full-screen live view you can pinch to zoom and pan. Turn your phone sideways and the view rotates to widescreen, even though the rest of the app stays in portrait — it returns to portrait when you close it. The same full-screen view also opens from the camera icon on the printer page. App-only update

rich pawn
#

That works really great, very nice!

winter dew
#

i am considering on adding a macro button which shows all the machine macros on the machine 😛 hmm.

neat moth
#

Would very much enjoy that. I use Mobileraker's version for calibrating and stuff all the time

winter dew
#

Added the macro button to the dashboard now 🙂 pushed 2 big updates today! 🙂

winter dew
#

Thank you guys for sending some donations to the project, i am unsure who is who and i don't want to leak peoples names on here for data protection reasons! but thanks! ❤️

winter dew
#

Fixed some UI issues today. Pushing new app update 🙂

winter dew
#

Version Changes

v0.9.7 Squarer, tidier dashboard tiles. Each printer tile's live camera feed is now a clean 1:1 square — it was cropped to an odd wide-and-short shape before — with the name and temperatures tucked underneath. Offline printers no longer leave a blank gap: an unreachable tile fills with its Mainsail/Fluidd logo and shows just the name (there are no live temperatures to report while offline), so it sits flush instead of stretching. And while a printer is printing, the macro button hides so the progress bar and percentage keep their width and stay easy to read — it returns once the tile is idle or finished. App-only update

chrome trail
#

ok so my upload speed on my printers network is slow, like very slow. Is there a way to maybe have an option to keep the moonraker connection turned on so I don't have to wait an eternity to get to mainsail every time I check on a printer? I wait around 10 seconds stuck in initializing

winter dew
#

Hello Luca, first off is this on the local network connection or on the tunnel mode?

chrome trail
winter dew
#

i just checked mine it took 2.2 seconds to load a tunnel on 5G for me.

#

Dashboard to printer on 5G 2.2 secs

chrome trail
winter dew
#

did you update to the latest plugin ?

chrome trail
winter dew
# chrome trail Yeah

let me look how I handled caching.. i tried to be smart with it to avoid phone CPU usage..

chrome trail
#

Also a nice feature possibly other people would use would be a number of buttons to call macros. In my case I have one that turns off the printer and the associated smart switch (would require a user confirmation before pressing) and the usual chamber leds on/off macro. This mostly to check on the printer when lights are off from the main dashboard without having to enter each mainsail ui each time.

winter dew
#

It allready prompts to run macro?

winter dew
chrome trail
chrome trail
#

So you also avoid synchronizing the state of a single button based on lights status

winter dew
#

thinking about it.. i can defo do this as a hamburger config option.

#

i will allow users to pick between a toggle macro or an On and Off status for the LED.. if set the dashboard will display an LED icon in the top right of the webcam feed.

rich pawn
#

Three requests that I have but are low priority:
-More notification options: Printer status, print start, print error/pause, print finished
-Estimated completion time in the printer status notification
-Adding a picture to to printers that don't have web cams, instead of the mainsail logo

winter dew
rich pawn
#

For 1:
Currently its,
1.Print status
2.Print alerts

I would Like:

  1. Printer Status
    2.Print Start
    3.Print Error/Pause
    4.Print Complete
winter dew
#

what version are you running Gal?

rich pawn
#

0.9.7

winter dew
#

Ok. Print Start should be included in that version. let me check later just coding this Light bulb toggle/on/off

rich pawn
winter dew
#

yep can be done 🙂

rich pawn
#

With 2
I don't care too much about seeing the current temperature, maybe that is just me. Might be good to see how others feel about that?

winter dew
winter dew
#

Version Changes

v0.9.8 Instant printer re-open + lighting control. (1) Re-opening a printer is now instant. A printer's full Mainsail/Fluidd interface used to reload from scratch every time you opened its tile — replaying Mainsail's "Initializing…" while the page and its live connection rebuilt, which is slow over the tunnel (away from home). Now each printer's page is kept warm in the background: the first open loads it as before, but afterwards, going back to the dashboard and re-opening is instant, with the connection still live. Pages are kept for every printer you've opened; if the phone runs low on memory, the least-recently-used ones are released automatically. (2) Control your printer lights from the dashboard. Set up which printers have a controllable light under the new Lighting menu — for each, choose an On + Off macro pair or a single Toggle macro (whichever your setup uses), and optionally point Moongate at the light's Klipper object (e.g. output_pin caselight). A bulb then appears in the corner of that tile's camera: tap it to switch the light on/off, and it glows when the light is on — reflecting the real state even if you toggle it elsewhere. App-only update

#

In the Hamburger menu at the bottom is now Lighting 🙂 you toggle on which printer has the lighting available, Assign a macro for on or off, if you have a macro which is a toggle you can select that one and give it the macro name.. come out and now you have a functioning light which knows the on or off state 🙂

#

My 2.4 uses WLED which i haven't setup for klipper coms however my micron uses klipper controls to turn it on so was easy to setup. FEEBBACK REQUIRED 🙂

chrome trail
#

Just installed the latest version and I'm very happy with it! Led setup is simple and works perfectly, will soon give feedback about the persistent mainsail connection 💪

chrome trail
#

Yup, I don't have light toggle macros but separate on/off, those work as well as picking the state of the lights if I toggle them from homeassistant. Haven't been able to test the connection persistency since tonight the printers network is as crap as it has ever been and can't even connect to the ui 99% of the times I tried

#

Weirdly enough the webcam feed on the homepage properly updates even if at like 1 frame every 5 seconds, while the mainsail ui goes into timeout while waiting for a connection. Maybe there's a moonraker/mainsail setting I could edit to try and wait more to establish a connection

winter dew
chrome trail
winter dew
#

How does Mobileraker / Tailscale deal with it?

chrome trail
# winter dew How does Mobileraker / Tailscale deal with it?

No idea about mobileraker, It's uninstalled. Also don't have the printer on tailscale so not sure. All printers are reacheable via a public domain that uses a cloudflare tunnel as well (my NAS holds the tunnel endpoint and proxies each printer to its own subdomain), I noticed that using that connection seems to load the ui faster. Do you have stuff like bandwidth limitations or priorities of some sort with Moongate?

#

Also nitpick, but the persistent notification doesn't respect the ordering of the printers in the ui

winter dew
chrome trail
winter dew
chrome trail
#

Can't think of much else missing from this project btw, good job

winter dew
chrome trail
#

Let's see if it gets integrated into kiauh, that would result in a bunch of exposure

winter dew
#

I really hope it does.. i am still waiting for approval :/ i have a feeling they will reject it without reason.. even though everything passes on the push.

#

only on grounds that its NEW and not been around for long.

rain cloud
#

Quick tip, you might want to pin the initial message

winter dew
rain cloud
#

I skimmed the thread, wanted to jump to the Github and realized it'd be a lot of scrolling lol

winter dew
rain cloud
winter dew
rain cloud
winter dew
#

Thanks Schlonky 🙂

blazing nova
rain cloud
winter dew
#

Makes sense, Thanks for that. I did find the Pin location in the end just after you told me how 🙂

winter dew
rain cloud
winter dew
#

I want to also start to build a propler UI for klipper machines.. its in the pipeline, Don't get me wrong klipperscreen is great but i think i could design something better.

rain cloud
winter dew
rain cloud
winter dew
#

Sorry Schlonky.. Long ass day here for me.. i am stuck in a stupid Debug issue and i totally forget you have way more Vorons then i do xD

rain cloud
#

Got one of each at this point hehe

winter dew
# rich pawn For 2

Sorted this for you buddy! finally fixed my anoying bug issue, new option in the side menu to allow you to customise the Notifcation bar and included what you like to be seen! also you can reorder how you like now.

winter dew
#
Version    Changes
v0.9.9    Finish-time ETA in notifications + a notification you can customise. (1) When will it finish? The live print notification now shows the projected finish time as a clock time (e.g. 1:20 PM), right next to the time remaining — the same ETA Klipper and Mainsail display. It follows your app's language for 12- or 24-hour format. (2) Make the notification yours. A new Notification content screen (under Print notifications in the menu) lets you choose which details appear — progress, time remaining, finish time, hotend temperature, bed temperature — drag them into any order, and switch off the ones you don't want (e.g. show the finish time but hide the running time). A live preview updates as you tweak, and your choice is saved and travels in your backups. (3) Tidier menu. The Lighting entry now sits right under Font size for quicker reach. App-only update
rain cloud
#

Okay, took me a few seconds to realize half the menu scrolled

winter dew
rain cloud
winter dew
rain cloud
winter dew
rain cloud
#

Also, semi-niche option, but most of my printers run a Shelly to cut power. The option to control a Moonraker power device from the dashboard may be nice, just have it showing when the printers power device is off

winter dew
#

i tried to make it as simple as i can without forcing the app to scan everything all the time for example changes within the printer.cfg file.

winter dew
#

for the Toggle you only have to type this for example, it will find it state. without the [ and ]

#

or something really simple like this..

[gcode_macro CASELIGHT_ON]
gcode:
    SET_PIN PIN=caselight VALUE=0.10


[gcode_macro CASELIGHT_OFF]
gcode:
    SET_PIN PIN=caselight VALUE=0


[gcode_macro CASELIGHT_TOGGLE]
variable_state: 0
gcode:
    {% if printer["gcode_macro CASELIGHT_TOGGLE"].state == 0 %}
        SET_PIN PIN=caselight VALUE=0.10
        SET_GCODE_VARIABLE MACRO=CASELIGHT_TOGGLE VARIABLE=state VALUE=1
    {% else %}
        SET_PIN PIN=caselight VALUE=0
        SET_GCODE_VARIABLE MACRO=CASELIGHT_TOGGLE VARIABLE=state VALUE=0
    {% endif %}

#

i added both options because this is what 99% of users use for LEDS.

rain cloud
#

I'm running mine as an white channel LED, mostly because it gives me nice dimming lol

rain cloud
#

Setup like this in Moonraker.conf

type: shelly
address: 192.168.1.16
initial_state: on
restart_klipper_when_powered: True
bound_services:
 klipper```
winter dew
#

not much coding for that.. dw

rain cloud
#

For the LEDs, I can just paste in the commands for on and off. It basically uses the neopixel command, but only sets the white channel

winter dew
#

it might be a pain for you, but honestly just make a couple of macros.. you can hide them in the UI the app should be able to find them.

rain cloud
#

Another thing, which I've only noticed because the camera in the V2 is being funky. If I connect to the printer, through the remote tunnel, it keeps the camera from the dashboard active. I know, because I can hear the AF motor tapping every second lol

winter dew
#

Even if the app is closed?

rain cloud
rain cloud
winter dew
#

The image is being transmitted via the tunnel 24/7

#

i might be able to change how the database handles traffic for the camera so the app polls for the camera feed and only displays when there is a auth made.

#

nice bug finding!!!

rain cloud
#

Just making sure it wasn't just running in the background by accident. With the app unfocused, even by dragging down notifications, it'll stop running the camera feed. Let me see if I can grab a screen recording with audio from my microphone

#

There we go. I'm just recording the app, but the silence is me dragging down my notifications. Then the ticking is the camera hunting focus. Then fast ticking because I'm opening the stream, back to slow for the dashboard, but it keeps going as I connect to another peinter

winter dew
#

i thought it was the buzz for a second..i was like WTF have i put in the code here!

#

i can hear the camera focusing.

#

do you not use fixed focus?

#

this is defo a bug i should be able to fix.

rain cloud
#

Don't worry, the buzz is just Google not thinking that violently vibrating the phone, while at the same time recording audio from it, is a bad idea

winter dew
#

you using Crowsnest righth?

rain cloud
winter dew
#

Before installing Moongate did your printer do this before or only after installing the app?

#

i am looking at the webcam code now.

rain cloud
#

It's always hunted focus (When the chamber is cold, which is.. Odd) but only when the camera was actively streaming.

In this case, it's streaming while on the dashboard, so that makes sense. But when I am on a different printer, or even tunneled into that printer, but not actively viewing the stream, it's still keeping it active

#

So it's keeping the stream active at all time, no matter what I'm doing in the app.

winter dew
#

Yeah, i had to build the app like that so that the tile is running in the background otherwise every time you connect to the machine you will get "reinitializing "

rain cloud
#

Ah, so it is on purpose. Just making sure it wasn't just hanging around in the background, doing sweet nothings

winter dew
#

I originally had it so every tile is active and then not active when not in use, but then it would slow down loading the tile.. if you are in a poor 5G area it could hang the interface.

#

If you do not open the tile on start-up i dont' think it will go crazy. I don't know alot about go2rtc.. i would need to read up on the docs.

rain cloud
#

It works like it should then, the slow ticking matches with the dashboard only refreshing at 1 second intervals

#

I should just fix my camera settings..
But at least it's not a bug then!

winter dew
#

Yeah its not a bug.. you can control the polling in the Hamburger menu too

#

if you like fast clicky sounds xD set it to RAW xD

#

however it will burn though your data on 3/5G xD

#

I cant overwrite the frame speed in your klipper config.. i honestly do not want to be messing around with peoples default config.. hense why i am controlling the polling on the app side.

rain cloud
#

Looks like an 8 second delay from the dashboard showing, to it connecting to the printers over the tunnel. Not bad

#

I'll try and actually get the damn things printing, and test it out some more!

winter dew
#

Yeah please test away, Thanks for the feedback so far 🙂 i hope you like Moongate.

#

Remember to backup your config in the menu before you update.. i try not to push updates that require a full reinstall.. but its always worth backing up before updating just in case.

#

i am going to add an off button for cameras in the side hamburger menu as well as the power on button tonight for you @rain cloud

#

I will add in a Webcam off mode in the menu too, i think thats a good choice/option to have.

#

i just said the same thing twice.. god i should of gone to bed an hour ago xD

rain cloud
winter dew
#

my K3 has a power on and off as well so its a feature that i need as well 😛

rain cloud
#

It's so nice being able to turn off everything, and just leave the Pi running

winter dew
#

i fixed this bug allready too..

when a printer is off in idle mode then only the name is displayed like when the machine is off.

#

Did you find the pairing mode easy to do?

rain cloud
winter dew
#

Good to hear, tried to make it simple.

#

lets go! xD

#

Power button works! so pushing update tonight.

winter dew
neat moth
#

More nitpicking but this particular poorie has a Centauri Carbon. It runs off some closed Elegoo Link bs but since it has a (horrible) web interface, is there any way for the app to pull basic stuff like if the print has completed?

#

No pressure whatsoever, my Trident just feels lonely up on that fancy dashboard

winter dew
neat moth
winter dew
chrome trail
#

hey @winter dew I noticed version 9.10 adds support for turning off the printer. From my understanding it's setting the state of a power switch. I personally have a different setup which first turns off the printer, then notifies my homeassistant server, which after a x seconds delay turns off the printer's smart switch. It's all handled in a power_off macro, could having a macro called as shutdown method be added?

winter dew
#

Dont worry i can work it out actually... Will be simular to the Lighting macro 😉

chrome trail
winter dew
chrome trail
winter dew
chrome trail
winter dew
#

Building now 🙂

chrome trail
winter dew
#

Just make one?

chrome trail
#

setting it as a toggle macro works but technically is wrong. No biggie tho

winter dew
#

If you have one for Off make one for on?

#

the reason you need on and off is the app doesnt know the state of the machine unless you use the Toggle function.

chrome trail
#

yeah that I get but in my case the only way to turn a printer on is from either homeassistant or manually or tuya, as the switch is installed between power inlet and psu

#

I'll use the power_off macro as toggle and be happy with it, not a big deal

winter dew
#

if Home assistant can turn on the printer the app should be able to as well?

chrome trail
#

it's completely separated from the printer

#

by turning on the printer I mean the entire printer, not just powering on the mainboard

winter dew
#

aaa ok sorry i misunderstood.

chrome trail
#

turning the printer off via macro works only because the smart switch is again toggled by homeassistant using the tuya integration

chrome trail
winter dew
#

Version Changes

v0.9.11 Clear a finished print from the tile + a custom dashboard background. (1) Dismiss a finished job. When a print ends, its tile shows a Done (or Cancelled) badge — tap the small × on it to clear the job and send the printer back to Idle. One tap, no confirm (the × only appears on those finished states, so a stray tap can't disturb a live print), and the print notification follows to Idle on its next poll. Under the hood it sends Klipper's SDCARD_RESET_FILE through the existing proxy. (2) Custom dashboard background. On the Custom theme, the theme screen gains a Dashboard background option — pick any image from your phone to sit behind the tiles. It's centred and scaled to fit over your theme colour, so a right-sized photo fills the screen, a wrong-aspect one is centred (letterboxed), and a logo PNG sits in the middle with the theme colour showing around and through it. The × clears it. (3) Refreshed icon guide. The in-app guide (menu → About) now documents all the newer tile buttons — Print a file, Macros, Power, Lighting, Camera, Camera setup — and the new clear-a-print ×. (4) Appearance & menu tidy-up. The cold-start loading screen now matches the dark theme — dark, with the red Moongate brand mark, and no white flash on a light-mode phone; the System default theme option is removed (themes are now Dark / Light / Custom, default Dark); and Settings + Language scroll with the rest of the menu, leaving only the version pinned at the bottom. (5) Advanced Power Switch. A new menu screen (beside Lighting) for printers whose power is a Klipper macro rather than a Moonraker [power] device — set an On + Off pair or a single Toggle macro, and the tile's power button drives the printer through it. With on/off macros it asks Turn on / Turn off (the state can't be read, so it never assumes); the light bulb behaves the same when it has on/off macros and no toggle or status source. App-only update

#

i also did a custom graphic on app loading now that matches the theme you pick or customise.. you can also set a background image.

chrome trail
winter dew
chrome trail
#

I'm happy with my current setup, turning off the printers is always the bigger issue since I don't run jobs when I'm away

winter dew
#

Update from tonight's version push.

Version Changes

v0.9.13 Drag-to-reorder is back, and restore reproduces your exact dashboard. (1) Drag-the-tiles reordering. v0.9.12 (the per-printer Webcams / masonry update) temporarily swapped the dashboard's drag-the-tiles reordering for a plain single-column list. This restores the original workflow: turn off "Auto-arrange by status" in the menu, tap the drag-drop button (bottom-left, opposite the +), then drag the tiles around the dashboard and tap the green check to lock them in. Both full and compact (webcam-hidden) tiles can be dragged; while arranging they sit in a uniform grid (alignment isn't the point there) and the tidy masonry packing returns the moment you finish. (2) Restore matches the backup exactly. Restoring a backup used to only add printers that weren't already present — ignoring the saved order and per-tile settings of printers you already had. Now restore rebuilds the dashboard to match the backup: the saved printer order and each tile's config (including hidden-webcam / compact tiles), adding any missing printers and (after confirming) removing any that aren't in the backup. Because removing is destructive, if your phone has printers the backup doesn't include, restore asks first and lists them before replacing — so you can't silently lose a printer you paired after the backup. On a fresh install there's nothing to remove, so it just restores as before. Removed printers stay paired (local change), so they can be re-added or restored later. App-only update.

wise vigil
#

Quickly catching up on this. Current status is the main dashboard with camera view, and I side it's basically a wrapper of the web ui?

And in the backend the remote view is orchestrated through a cloud flare tunnel?

winter dew
#

2 good questions Camel...So a couple of things to consider.

Current status is the main dashboard with camera view, and I side it's basically a wrapper of the web ui:

Only the deep-control page is. It's actually two layers:

The dashboard (the multi printer grid: camera previews, temps, status, plus power/light/macro/print buttons, notifications, drag-reorder, backups) is native, it talks straight to each printer's Moonraker API over HTTP/WebSocket. The camera tiles are native too. When you tap into a single printer, that opens the real Mainsail/Fluidd page in an embedded WebView (kept warm for instant reopen).

So: a native fleet dashboard, with the full web UI embedded only for per-printer deep control — not a wrapper end-to-end.

"Remote view via a Cloudflare tunnel? Yes, with a key nuance:

Remote rides a Cloudflare tunnel on the Pi, but it terminates at a Pi-side auth proxy that rejects anything without a short-lived signed token (the bare URL leaks nothing).

A minimal cloud broker (Server) only hands the app the current tunnel URL + that signed token. Your G-code, status and camera never flow through the cloud - it's phone - Pi directly through the tunnel.
On home WiFi it skips the tunnel entirely (LAN-first, direct to the Pi); the tunnel is only for when you're away. Cloudflare is swappable - any tunnel pointing at the auth proxy works.

wise vigil
winter dew
# wise vigil Cool. Follow up, is the camera through API offering a low framerate or is it m...

I give you the option, Early feedback from users was to have a customisable camera feed poll rate.. you can change it in the hamburger to RAW if you like to see real time.. (which is set for the tunnel and local) if you set the camera feed to RAW it will match what you have set in klipper for FPS on that machine.

On remote, the camera does go through the tunnel, there's no separate/out-of-band path. All phone --- Pi traffic ---- (status, controls, camera) rides the same authenticated Cloudflare tunnel.

#

another point..

On the Cloudflare belief, it's a bit of a myth that tunnels "don't allow heavy data." Free quick tunnels (trycloudflare) aren't built for sustained high-bitrate video ---- they can throttle or get flaky under that load ---- but they don't categorically block it. Moongate sidesteps the whole issue by using snapshots instead of a heavy stream, so remote camera doesn't lean on the tunnel for continuous video.

wise vigil
wise vigil
winter dew
wise vigil
#

Oh, the setting and language being pinned through me off hehe

winter dew
#

you are running an old version.

wise vigil
#

I was scrolling starting from setting, and nothing acrolled

#

Downloaded yesterday

winter dew
#

did you not get a prompt for updating?

wise vigil
winter dew
#

you should be able to download and install over the top 🙂 do a backup just in case.

#

o.O it failed? let me check my end haha.

wise vigil
#

It's my phone. Download started. I think it started a scan of the file because apk

#

Ok, raw works. Probably having a double setting for video if on WiFi or phone network would be nice

#

Like I want raw if local on WiFi or remote on WiFi. But if on data plan, I just care print is not dead

winter dew
wise vigil
#

Cool stuff

winter dew
wise vigil
#

No rush, just stuff on top of my head

winter dew
#

well keep the suggestions coming in.. always happy to review Klipper stability and controls.

wise vigil
#

Sure think. Mostly installed to try this out, as I already have stuff behind zero tier

winter dew
#

I am happy how its turning out so far, so much great feedback from everyone in here!

wise vigil
#

Unsure how feasible this is. But if there was a way to preload the initial mainsail load when selecting a printer. It would add more of an "app" feel

winter dew
#

its 4 lines of code for me.. ;D

#

sorry 5

wise vigil
#

Oh. And notification is way off currently. Unsure if fixed. But printer at 51% and notification says 40

winter dew
#

Which one is ahead?

wise vigil
#

Real

#

So mainsail

winter dew
#

Yeah i think its because when my app see the Gcode, it reads the time taken to print and its using that as a progress bar for when it thinks it will finish.

wise vigil
#

Ah, I see. The usual gcode time. App time slicer time thing

winter dew
#

Yeah its hard to really know.. i should just stick with Mainsails progress bar.

#

i couldn't find how Mainsail is generating the % of completion.. even thou i can see it on the mainsail webpage.. hmm. I might need to sleep on this one.

wise vigil
#

Fair. Also not sure how you'd deal with mainsail and fluidd

winter dew
#

its to late for me to start a print now and throw every query at my machine to find it now 🙂 i'll will defo dig into this tomorrow.

winter dew
# wise vigil Fair. Also not sure how you'd deal with mainsail and fluidd

Version Changes
v0.9.14 Separate Local & Tunnel camera feed rates. The single "Dashboard camera feed" rate is now two rates, set on a new Dashboard Camera Feeds sheet (menu): a Local feed polling rate (Raw / 1s / 3s / 5s) used while a tile is connected over the LAN, and a Tunnel feed polling rate (Raw / 1s / 3s / 5s) used while it's connected over the remote tunnel. Each tile picks the right one automatically from its current connection — so you can run a fast/raw feed at home and throttle the remote feed to save mobile data. Your existing single setting migrates into both (no change on update); brand-new installs default to Local 1s / Tunnel 3s. App-only update

Just for you! Now time to hit the sack 🙂 will look more into the fluid app bypass tomorrow.

wise vigil
#

Edge case tho

winter dew
winter dew
#

Version Changes
v0.9.15 Smarter camera-feed rates + printers ready from the first tap. (1) Network-aware feed rate. The Local and Tunnel camera-feed rates (v0.9.14) now follow your phone's network rather than only the connection path: the faster Local rate is used whenever you're on Wi-Fi — including away from home, reaching a printer over the tunnel - and the throttled Tunnel rate applies only on mobile data, where it saves cellular data. (Reaching a printer on the LAN is always Wi-Fi, so home is unchanged.) (2) Pre-warm at startup. Every printer's full Mainsail/Fluidd page is now warmed in the background as soon as the app starts, so the first time you open a printer it's instant - no "Initializing…" - extending the v0.9.8 keep-warm to cover the first open too. (3) Leaner cloud/data usage. The app and the 24/7 background notification service now reuse a cached access token (~5 min) instead of re-minting one from the cloud on every status poll, and no longer re-request a token for a powered-off printer on every poll - cutting redundant Supabase Edge Function calls (and mobile data) substantially. App-only update.

#

The next update is a complete Database audit.. i have found a better way to handle printer status and notifcations that reduce Edge functions.. its a must going forward as the project is starting to grow and i can see more active users.

wise vigil
#

Btw not sure why but the new version download doesn't work. Never saves the complete file. Had to download by browser yesterday

rain cloud
#

Works here

wise vigil
#

Weird

winter dew
# wise vigil

was that opened by the app to download? When i update it doesnt even open a browser window on my phone.. just starts downloading.

winter dew
#

This is the Edge function for 24 hours.. its over 500,000 requests xD

wise vigil
#

Yes, I think at least 6 or 7 times

winter dew
fleet lichen
#

Download works for me, but opens a chrome tab

rain cloud
winter dew
rain cloud
#

Interesting about the sub tab, mine just opens a tab in my actual Chrome browser

fleet lichen
wise vigil
#

Mine is not a tab in chrome

winter dew
#

i am sorry about these frequent updates.. i am trying to only push 1 feature request at 1 time.. if its a small change i will include it in a bigger PR, its because as i am actively developing i need to know if someone has an issue it was caused by the work i did on that version build number.

#

I could create a downloader built into the app so it doesnt require to come away from the app?

winter dew
#

so on the list of features to work on next.

1: Fix Printer % Status -> follow Mainsail/fluid print "%"
2: In-app downloader for updating "Moongate"
3: Build a backend Database for monitoring "function edge" commands with real time monitoring (will help me fix holes) my guess its around 95% efficient but would like to get to 99% if possible.

Feel free to throw ideas 🙂

wise vigil
#

Camera screenshot on the notification bar

#

Quick load and unload button, and access to emergency button

rain cloud
#

I agree on the E-stop, but load and unload, I'd just connect to the actual interface

winter dew
#

Quick load and unload button is this for filament?

Remember this the first layer on the app.. you still have the second layer for more complicated tasks..

I originally had an Emergency stop button on the app but i removed it.. as i found using pause and stop works better, i understand it might feel like a useful function

rain cloud
#

I'd like the app being simple , and not trying to cram every feature into it

winter dew
#

Me 2 🙂

#

its starting to feel a bit cramped.. my original idea was to have a Clean and simple display with the essential features.

#

I will add the E-stop back.. but thats probs the last button i will add.

#

if you click it, the status on the machine goes back to idle :slight_smile:
#

ok i am going to rig the E-stop button to a double click with the finger with no prompt overlay? is everyone happy with that?

#

Version Changes
v0.9.16 Offline printers cost nothing in the background. The app now learns each printer's online/offline state from the cloud over a live Realtime connection (which isn't a billed API call) and skips requesting access for printers that are switched off - across both the dashboard and the 24/7 print-notification service - instead of pinging them every few seconds. Result: less mobile data and battery, offline tiles settle to "offline" faster, and far fewer backend calls. Online printers are unchanged, and LAN still works even if the cloud is unreachable. App-only update. 🙂

winter dew
#

yet another massive push tonight.

Version Changes
v0.9.17 Mainsail-matching progress, emergency stop & in-app updates. (1) Accurate progress. The dashboard progress bar/percentage and the print notification now report the same percentage Mainsail shows — its default "file position (relative)" calculation, mapping the printed byte position onto the slicer's gcode body — instead of the tile preferring an elapsed-time ÷ slicer-estimate figure that ran several percent ahead (the slicer's time estimate is routinely off). Progress is now computed in one shared place for both the tile and the notification, so the two can't drift apart from each other or from Mainsail. The slicer estimate is still used for the notification's finish-time ETA, just not for the progress bar.** (2) Emergency stop**. Each online printer tile gains a small red warning triangle beside the temperature readout — double-tap it to fire an immediate emergency stop (Klipper M112). It's a double-tap with no confirmation dialog so a single stray tap can't halt a print; once stopped, the triangle turns into a restart button — a single tap fires FIRMWARE_RESTART to bring the machine back online (deliberately manual, not automatic, so you can check why it stopped first). (3)** In-app updates. When an update is available**, the Update button now downloads the new APK inside the app with a progress bar and launches the installer directly, instead of opening the browser. Android still shows its standard install confirmation (a sideloaded app can't install silently), and any failure falls back to the browser. Android-only. App-only update!!

chrome trail
#

Oh nice I wanted to suggest in app updates, cool

winter dew
winter dew
#

FYI the "Emergency stop" Triangle has to be double tapped.. no prompt, i put it out the way of most of the other icons so accidently pressing it will cause no harm unless you double click it.. remember if you use it you can also restart the printer with the same button. 🙂

winter dew
#

Pushing a small update to test the in-app updater, Made some changes to the light theme as some text isn't really readable on the dashboard.

updating E-stop button icon because i don't like it square xD

winter dew
#

Pushing a number of updates today regarding UI fixes and adding to the theme layout 🙂

winter dew
rain cloud
winter dew
#

Why has it done that!!?!? Its in its own container haha.

#

OK UI change coming shortly

winter dew
#

@rain cloud dropped an update

wise vigil
#

New downloader works

#

Just had to give extra permissions

winter dew
#

Good to know 🙂

rich pawn
#

Internal app update worked great!
Do you think it might be good to have extra info added to the print alerts that is similar the the print progress?
This way I dont need a notification that is on all the time telling be the printers are ready, and it only comes on when it has started printing.
In the picture I've mocked up what it would look like (the bottom one)

chrome trail
#

Weird, for me 0.9.24 downloaded via browser and not internally

winter dew
winter dew
#

Or use the main notification bar as status only. Such as printing / idle / offline / ready?

winter dew
rich pawn
# winter dew Or use the main notification bar as status only. Such as printing / idle / offli...

Yeah, that's a good idea.

The main notification could just show the printer status (Printing / Idle / Offline / Ready), and then when a print alert comes up, it could include all the useful information such as progress %, time remaining, and ETA in that notification instead.

That way users who don't want a persistent progress notification can still get the important information when an event occurs.

winter dew
#

I agree i will do this tomorrow 🙂

rain cloud
winter dew
chrome trail
chrome trail
winter dew
#

Yes, it’s harder to manage than you might think. The app is always on a specific version and only knows what’s being updated after the update has actually happened, that’s when the changelog appears and shows you what changed. Before that, it has no clue because nothing has taken effect yet. I can link the updates on GitHub, since those go live at the same time the update is pushed. There’s probably a clever way to handle this through the database, but it would be a lot of work when I can simply point users to the changelog on the website.

chrome trail
winter dew
chrome trail
#

Then we misunderstood each other. I mean when the update banner on the app pops up and you click update, the app downloads the update internally without opening a browser window. If you instead click on the changelog button and then click the update button there, then the browser opens to download the new version

#

Which I don't think it's what you intend on happening, if yes then I didn't understand your explanation

winter dew
#

as far as i am aware the update banner changelog button takes you to the changelog github page?

rain cloud
winter dew
#

aaaa

#

The update button within the change log

#

its a 5 second fix.. i am sorry about this. I missed a redirect to the OTA updater

chrome trail
winter dew
winter dew
rich pawn
winter dew
winter dew
winter dew