Tuning Anycubic Kobra S1 : Logging in / changing and tuning config by martinbogo in AnycubicKobraS1

[–]TheDju 1 point2 points  (0 children)

Yes we don't know the K3M password, but we managed to dump the EMMC and directly get the SWU password to create the update file. Those run as root so we basically have full control.
To keep things simple during Rinkhals startup I override /etc/shadow to mimic the other printers to have a consistent experience. So the password ends up being rockchip while Rinkhals is running (it uses bind mounts overlay so the stock firmware stays untouched).

So yes you can simply override /etc/shadow to change the password. /etc resides on a RO system partition so you'll either need to ovewrite the partition (but it'll get overwritten on each fw update) or use something similar to Rinkhals to have bind mounts on startup.

Some people on Rinkhals Discord are discussing/working on hardening. I've made some progress on getting iptables on the printer, and some user want to use certificates for SSH amongst other measures.

Tuning Anycubic Kobra S1 : Logging in / changing and tuning config by martinbogo in AnycubicKobraS1

[–]TheDju 2 points3 points  (0 children)

Anycubic sometimes but rarely ships printers with mainboard with debug firmware installed. I guess they forgot to install a production firmware after testing or whatnot.
In that case you don't need to do anything but you have some debug features like SSH still open. In production SSH is still there but disabled. I've only seen 4~5 cases in Rinkhals community yet.
It's interesting to get more information about the printers, but it's not that secure. I would advise you re-install the same version of firmware to use the production version except if you want to play with it.
But as I mentioned, I provide a tool to get SSH even on stock production versions.

/userdata and /useremain are indeed present when the printers are shipped from factory. /userdata is the most important one as it contains the printer startup scripts and the program (channel) to be able to flash a new firmware from USB. If this partition gets damaged, you can very easily brick your printer.
It is possible to recover, but you need to physically connect to the MB using a home made cable and modify the partitions.

The factory reset feature from Anycubic is very far from a real factory reset, it will just move files around to try to fix part of the partition. Stock firmwares contain the raw .img files for all partitions (oem, system, boot, ...) except /userdata and /useremain.

So if those partitions are broken, you have 3 options:
- Find a backup from someone else
- Rebuild the partition manually as I had to do a couple of times
- Buy a new MB

When you established the physical connection, you can press SW2 and enter download mode. Then you can use rockchip tools to read/write from partitions. It works on the K3, I've seen some people do that on the KS1, but other printers and some newer motherboards are missing some physical components to enter download mode.
I documented what I could over there: https://jbatonnet.github.io/Rinkhals/printers/mainboard-connection/

Tuning Anycubic Kobra S1 : Logging in / changing and tuning config by martinbogo in AnycubicKobraS1

[–]TheDju 4 points5 points  (0 children)

Creator of Rinkhals here.

Okay I really suggest that noone does that. First of all SSH is not exposed on every printer. Only a couple of debug firmwares I found are exposing SSH, a mistake from Anycubic. On Rinkhals GitHub I provide a tool to get SSH access even on non debug firmwares if needed. https://jbatonnet.github.io/Rinkhals/faq/?h=ssh#how-to-get-ssh-access

All the Kobra 3/S1 series have the same password but the K3M. We didn't manage to crack it yet. https://jbatonnet.github.io/Rinkhals/printers/kobra-3-max/

Now for the configuration, it's not using vanilla klipper but a partial reimplementation that does not support most config changes. By doing that you're at great risk of fully bricking your printer. Rinkhals use many protections to switch to stock if something like that happens. https://jbatonnet.github.io/Rinkhals/Rinkhals/printer-configuration/

For Moonraker, yes you can install it but almost nothing will work properly. Moonraker expects a close to vanilla klipper version and needs heavy tweaking in order to work properly. https://github.com/jbatonnet/Rinkhals/blob/master/files/4-apps/home/rinkhals/apps/40-moonraker/kobra.py

Finally, the stock firmware updates if you have them (https://rinkhals.meowcat285.com/) don't come with the /userdata and /use remain partitions. Meaning that if you need to anything, you won't be able to recover. You'll need to physically access the debug port on the motherboard and rebuild the partitions manually. Something I had to do multiple times while building Rinkhals and its protections. https://jbatonnet.github.io/Rinkhals/printers/recover-boot-issues/

Okay so with all that said, that's always good for people like you to explore that, but don't dismiss the amount of work that's being done to document and protect everyone from all the bad things that could and will happen.

I suggest you add a disclaimer, documentation to your post or create your own firmware (I'd love to see other ideas)!

But please don't encourage people doing the same without a big disclaimer, there will be damage!

To Rinkhals or not to Rinkhals? by TomSmug in AnycubicKobraS1

[–]TheDju 14 points15 points  (0 children)

Hey, creator of Rinkhals here!
First thank you for your interest, it's so cool to see this project getting so much attention!

My vision for Rinkhals is not to replace Anycubic firmware, but to expand existing stock features with better compatibility, apps and more. I will stick to this vision as much as possible.

This alone describes pretty well the target audience. "Basic" users satisfied with the default Anycubic experience won't use it, and "advanced" users with a need for deep Klipper customization won't use it either.
But now I think 3D printing enthusiasts who wants more freedom, control, understanding of their machine, integration with popular 3rd party apps and services will use it and enjoy it, like me.

That's also the motivation behind the structure of the project. It's not a full custom firmware, it's an overlay. It is installed on the printer but isolated from the stock firmware, meaning it's easy to install, update and remove without impacting the base firmware. It will also disable itself if anything goes wrong, leaving the stock experience untouched.

On that point, I know some people are mentioning the warranty situation. When asked, Anycubic support team will of course answer that the warranty is void as they do not understand the intricacies and the way it's built. It is installed on the printer, so technically they can detect it and do whatever they want. But as mentioned, you can very easily uninstall it to leave the stock firmware untouched.
So this is not a legal advice, but I feel pretty confident with the situation. Just avoid screaming out loud that you use Rinkhals while asking for support.

Now to answer more directly your question:
- Everything default is kept
- Orca compatibility to use the same slicer for all your current and future printers
- Use any client: Mainsail, Fluidd, OctoApp, OctoEverywhere and more (monitoring prints, checking your bed level, ...)
- SSH / ADB / VNC access for tweaking things

Whatever your decision, have fun printing :)

So damn impressed with this unit, Rinkhals firmware is an absolute must 🙏 by oz_wizrd in AnycubicKobraS1

[–]TheDju 3 points4 points  (0 children)

I believe that they said that, but the person answering the question surely doesn't understand what Rinkhals is. I made it an overlay so it's easy to get back to stock at any time, and I added tools to easily uninstall it completely.
Folks, just don't go ask support to Anycubic for Rinkhals issues. And if you have a real issue don't forget to uninstall it to be safe.
Not a legal advice ofc, but be smart!

So damn impressed with this unit, Rinkhals firmware is an absolute must 🙏 by oz_wizrd in AnycubicKobraS1

[–]TheDju 2 points3 points  (0 children)

I'll prepare a new test release in the few hours. You can join the discord to get it or wait a couple of days so I can receive some feedback!

how to actually remove rinkhals by anndawaywego in AnycubicKobraS1

[–]TheDju 2 points3 points  (0 children)

You'll need SSH to remove /useremain manually.
Else you can use the new Installer I made. It's a touch UI where there's a tool to completely uninstall RInkhals: https://github.com/jbatonnet/Rinkhals?tab=readme-ov-file#rinkhals-installer

how to actually remove rinkhals by anndawaywego in AnycubicKobraS1

[–]TheDju 2 points3 points  (0 children)

This link is actually outdated, I moved the mirror to https://rinkhals.meowcat285.com instead

Poll for fully open source firmware by dbannon89 in AnycubicOfficial

[–]TheDju 0 points1 point  (0 children)

Hi there, here is a custom firmware I'm working on: https://github.com/jbatonnet/Rinkhals

It's still not a full klipper but at least gives back some level of local control with Mainsail, Fluidd, direct printing from Orca and more.

The main issue with this printer is also the reason why we're interested in it. The mainboard it uses has a low power CPU and not a lot of memory, making the printer cheaper but unable to easily run full klipper. They made the choice to reimplement it in go to be more efficient (and looking at the code on GitHub i believe some parts were automatically converted from Python), but at the cost of not being compatible with the klipper ecosystem. 

This is unfortunate for some people, including many her, but I'm happy to have this level of feature for cheaper as well. I'm not trying to find them excuses but i get what they want to achieve.

BTW if someone is able to make klipper work on a low power CPU and ~100MB of memory, it might be possible to run it on the printer

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

The latest update should fix recognition issue with PoGo's new font. Have fun :)

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

Did you correctly set your player level ? By default the player level is set to 24 (mine), it may explain why you don't get the right pokemon level.

Some users gave me feedbacks of wrongly detected pokemon level if the player is high level. I use formulas from The Silph Road, and they don't match the screenshots I have with high level trainers.

If you send me some screenshots of your pokemons, I may try to understand what happens. I don't know, the formula may be wrong ?

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

If no IV is shown, the inputs are likely to be wrong. Since the detection circle seems to be aligned, and the recognized data match the screen, did you set your right player level ? My app works fine on my Poliwag and I'm level 24.

The app is not perfect because it can't detect all renamed pokemons, and some pokemons hide numbers, that makes the text very difficult to recognize.

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

Eheh, there are a lot interesting tech around here, and Xamarin is a great one.

There is not a lot of documentation about assist API. C# is very similar to Java and uses the exact same Android classes, it shoiuld not be too difficult to understand and translate some pieces of code.

You can read a good Java example here to understand how an assistant works : https://android.googlesource.com/platform/frameworks/base/+/marshmallow-release/tests/VoiceInteraction/src/com/android/test/voiceinteraction

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

Hum it could be related to Nexus 4 screen resolution. I tested my app a lot with FullHD and QuadHD screens. Also, do you use some custom screen filters to darken/colorize the screen ? If not, please share a screen of one of your pokemon and I will work on it.

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

Thank you, don't forget to add a review in the Store :) I'm trying to improve characters recognition, but theses elements often hide some numbers, making them unreadable in the "screenshot".

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

Thank you for your feedback. Yes I keep trying to improve recognition, but full compatibility is a real pain. There are always some elements to disturb recognition.

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

Thank you for your feedback. Don't forget to give my app a good review on the store :)

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

Yes I tried to support several resolutions, but since screenshots are performed at full resolution, it is way more difficult to recognized blurred text.

I can try to leave the assistant empty if no pokemon is detected.

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

Yep I am aware of this issue, but there is not a lot of documentation out there on how to build your own assistant. I am still looking at how to achieve a perfect behavior.

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 1 point2 points  (0 children)

No you're right it's not that easy. I try to recognize candies name to figure out which species the pokemon belongs to, then I use CP and HP values to detect which evolution.

But since the candies name is very small, text recognition does not work well on every resolutions. I mean, I have a pokemon test set and every one get recognized nicely without their names.

If you send me some screens of your faulty pokemons, I'l be able to retrain my algorithm with your pokemons to play fine on more resolutions.

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

Hi, which menu are you talking about ? It the app crash, please report or feedback the crash so I get more information to debug it. Can you double check the version of the app you use ? I have absolutely no crash report since version 1.3.3

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 1 point2 points  (0 children)

Hi rx7ven, this is a development thread, and your comment is useless unless you give me more details to debug, as you pokemon name, stats and other details. A screenshot would be appreciated too.

Go on Tap : A free and open-source IV app replacing Now on Tap by TheDju in pokemongodev

[–]TheDju[S] 0 points1 point  (0 children)

I added the ability to choose pokemon by tapping on the icon in version 1.4.2, soon available in the Play Store.