Setup of my j1s android. software and tweaks

having access to the android system has made me like this machine a lot more than i already did. we have limits because of our 1 gb of ram and our approximately 1gb of storage area thats shared with our gcode files, but we can still make good use of it and improve this printer quite a bit.

  1. remote printing and control
  2. navigating android
  3. improving security
  4. managing our limited storage space
  5. webcam function. Yes, thats right. Webcam function. Your dreams have come true.
  6. app stores or sideloading apps

if anyone needs detailed guides on how to do anything mentioned I would be glad to provide one upon request.


  1. remote printing and control:

the first complaint i see from people is remote operation. octoprint works but doesnt work perfectly on this machine. due to the way the filament sensors work i believe octoprint never will have filament runout detection unless someone changed mainboards or connects a switch runout sensor to raspi gpio pins and makes a way for the pi to feed that data to octoprint. recompiling the printer firmware enables some functions that are missing on the official firmware. But even with octoprint we don’t have duplicate mode, or backup mode, or copy mode. Im using octoprint installed on my touch screen currently and will make a writeup on my best practices after some more trial and error.

But why do we need octoprint at all when we have an android unit controlling our machine? We can simply install a vnc server app and have the screen sent to our pc or phone and control it from there, remotely. The vnc server im using is called droidVNC-NG. It is available on fdroid store. To minimize computational load run your client on low resolution. It doesn’t matter very much but makes everything run more smoothly. As for a camera there are inexpensive options like old wyze v 1 cameras that can take custom firmware and run on wifi.


  1. navigating android

to fix not having navigation buttons or a home app I sideload smartlauncher 3 and virtualsoftkeys. Virtual softkeys replaces the missing navigation buttons at the bottom of the screen and can be set to automatically hide. Smart launcher gives us a good home screen and app menu and can be configured to activate the notification bar with a double tap on the homescreen background.


  1. improving security

our version of android is 7.1.2 so its not very recent. The security updates on it are from 2018. while it can be run connected to the internet people should think if thats a good idea to do. You have multiple options for controlling this remotely which are

  • connecting it only to a dedicated wifi network that isnt connected to the internet. You would have to connect your pc or phone to this wifi whenever you want to send gcode or control the printer.
  • connecting it to a pi-hole which is set to have an active firewall (firewall is not active in the normal pihole install). or use a dedicated firewall solution. You can set this to block all traffic except vnc, and your webcam server, whatever port is used to send files frum luban and cura. This allows you to attach your printer to your internet connected wifi and still access functions remotely while being sure that the printers android and everything on it cant reach the internet and the internet cannot reach your printer.
  • running a software firewall service on the printer and connecting to your main wifi. This can act like a fake VPN to route all traffic to the firewall, and you can set this to block any connection that you don’t approve of. This method cant always be totally sure to work because some applications or deep android services may disobey the vpn setting anyway, but you wont know unless youre using other software to monitor the network for outgoing connections from the ip address of your printer. Its better than nothing by far.

  1. managing our limited space.

Its easy for android devices with low storage to run out of free space. Apps save files, make backups, create logfiles, and do other things which can eat our free space over time. In the past the solution was to factory reset android. Do not factory reset the android in your printer. This will delete the applications and settings which are required for your android screen to communicate with the printer.

To manage space we can use two apps. Xplore file manager and sd maid. Xplore file manager will allow you to view a graph showing whats taking all of your free space by folder. You can navigate to them and delete their contents if its not a critical program or setting file of snapmaker. Ill look more into whats safe to remove in the future. Sd maid is a wonderful app that deletes logfiles and compresses databases among other things. Our printer wont tell us when it doesn’t have enough space to receive new gcode files from luban or cura. It will simply fail without an error. Android will also start to malfunction and fail to run properly if it runs out of storage space, and due to the way our android is set up, since its meant to never be seen or interacted with, we normally wouldnt know whats wrong or how to fix the problem. If you install and remove various apps you should always run sdmaid to clean any files left behind by the deleted app.


  1. webcam function.

There are multiple usb camera viewer apps on the play store. Some of the better ones seem to be otgview and usb camera livestream. Some apps stream the feed over network. Some don’t. If youre running a vnc and watching your printers screen remotely you can choose to use a viewing app on your printer and watch that through vnc on your other device. I havent tested all the options yet. I am presently using uvc camera from fdroid. It allows me to choose resolution, fps, packet size, and etc. ill be testing other software later on to see what uses the elast system resources.


  1. app stores or sideloading apps

the two app stores that will matter most are fdroid, an open source only store, and aurora which you can find on fdroid. Aurora acts as a alternate store for google play. With it you can spoof other devices to download apps that arent meant for your device and you don’t need googles 10 gigabytes of play services and spyware to get apps.

Xplore file manager allows you to set up a wireless connection between your devices to share files, and can access installed apk files on your phone. Note that apps which are split into multiple apk files may not install on other devices.

6 Likes

octoprint, usb webcam (need to manually focus it lol), vnc.

all running from the screen

1 Like

With you saying 2 GB more was freed by a reset, I’m rethinking trying to do a Klipper install on the screen. It’s a lot of work though. And I’d not want to scrap the installed screen without knowing it works, especially since I’ve only found one detailed thread on it, and I think it requires rooting.

Hmm… :thinking: Maybe find a sacrificial phone to test it with first.

2 Likes

the factory reset freed close to 4 gb of space. im not sure why there was only 1gb free for our use before. android nougat AOSP roms are only around 1-1.5 gb. remember that in this era of android cheap phones were sold with only 8gb or onboard storage and you were expected to get a sd card to expand storage, but many people managed to run their phones without added storage and they were using storage hungry apps like snapchat, facebook, etc. not only did i lose the j1 app, and a bunch of related settings and hidden apss i dont know about, but i lost a bunch of nonsense that turned me into part of a botnet for all i know.

the misuse of space that existed on there makes no sense to me. with how stripped down this version of android is i would be shocked if the installer image is any larger than 450 mb.

theres a chance im not being provided the android installation image and printer controlling apk files because it would show me and others that there isnt a need for this much wasted space and we would start asking too many questions lol

Did support react on your request for the lost printer APK? If we had that playing around with the Android would be less stressing by far :smile:

they chose to offer me an entire new screen unit with all the software built in.

OMFG. This is GREAT. I like my J1s so much better than my old Ender 3, but have been frustrated with the limitations of trying to use it with my old workflow, which involves Octoprint. If we (you) can get remote access to the touchscreen, as you demonstrate here, that is a real game-changer. I have been too busy over the holidays to do much with my J1s, but now that things are settling down, I look forward to trying the mods you describe. Thank you so much for your efforts, and for sharing your experience!

1 Like

I don’t know that it’s all nefarious bot net stuff. More likely a bunch of development packages were left lumped in.

For example, the app can be used to flash the printer firmware and update its own package. And there’s indications that other proprietary debugging tools like fabscreen are in there, maybe also stuff from Quectel.

I give the benefit of the doubt of well intended engineers that maybe didn’t strip down/optimize the installed packages. Pity as it really eats up some pretty precious storage and the thing can really freak out silently when it gets full.

EDIT: Oh, you’re on that thread too. :blush:

You might also be interested in @Hauke 's peek into Snapmaker’s mind on this thread regarding the Snapmaker 2.0 screen:

Granted the history of these two printers is quite different. But they surely have some in common.

As noted by @Mechanikus tear down, filament runout on the J1 is a rather unusual affair. The hardware is a Snapmaker special, using a rotary sawtooth signal to count steps.

1 Like

so previous to my factory reset i had a dedicated app called j1, and this was the interface for the printer: the gui and tools. since the factory reset i found an app called j1 in the system apps and it launches fabscreen and provides me this error. just something interesting to note.

if anyone on our board is familiar with decompiling and inspecting android apps it should be trivial but maybe time consuming to see what resources that app requires. we can see what locations fabscreen looks for resources in and know what we need to copy in order to run this software on another device.

i havent done this sort of thing since maybe 2014 so i am a bit rusty on it but i can attempt to try this if nobody more qualified is available here

remember that we dont require to use vnc, we can use teamveiwer like remote administration apps. airdroid also has an option that may function better than vnc. giving us more native touch controls to control from our phone with. vnc controllers on my phone is terrible. i use vnc from desktop only.

im busy printing wombleys tophat using octoprint so i dont want to try other software until im done.

i didnt notice any empty pins on the mainboard, but if someone required to use this printer only with octoprint it should be easy to modify a mechanical switch, set it to detect a reverse position, embed runout switches into the tool head in place of their rotary encoder. if theres no pins on the mainboard for it then it would require someone to be running a pi to use the gpio pins to read the runout switches.

for usb webcam i have had the most success with my old logitech c720. i forgot to note this in the original post.

1 Like

If you look at @Mechanikus work, he had an, um, rather ambitious solution. :sweat_smile:

1 Like

I was gonna suggest before. Is that the cheap fixed focus one you can crack open and adjust? Couldn’t remember the model number, but it’s a trusty classic and what I’m using.

yeah you can print a front cover and adjustment wheel for focus, also you can print a front cover that allows use of a wide angle lens. the inside printable webcam mount for our printer doesnt give much view unless we use a wide lens. mine is coming sunday in the mail

ah where he put a reed switch or something to replace the rotary encoder? did that function with stock board and firmware?

1 Like

Seems I left a lasting impression at @Wombley - I don’t think anyone has referred to me that often in such a short time :joy: :joy:

My solution was to replace the intestines of the unusal original encoder with a hall sensor and magnets (german description, but the pictures should make it clear) that delivers a pulse every ca. 4mm. No clue if that works with stock firmware though (depends on what Marlin supports out of the box) - I did it because I threw out the Snapmaker electronics and replaced it with a Duet board because I wanted the printer to be reliable, freely configurable and with decent standard interfaces, both for the slicer and the user.

1 Like

Of course! Your teardown alone was full of so much information. I may have even setup a VPN so I could see your webpage too.

It was very impressive and quickly helped me decide I was NOT going to do it. :rofl:

2 Likes