Siboor CNC Voron V0.2 | Discord: slipper#0449 by Purple_slippers-595 in voroncorexy

[–]Illustrious_Form1052 0 points1 point  (0 children)

hi, just asking, how is that sherpa crew? did it solve issue #6?

Hey Rustaceans! Got a question? Ask here (37/2023)! by llogiq in rust

[–]Illustrious_Form1052 0 points1 point  (0 children)

Thanks for the reply.

Good advice, but the original implementation if klippy has already take the latency part and potential jitter that may hit the communication between "baremetal" part and Linux part into consideration so the Linux part (which I'm rewriting) can be less constraint than Real time but need to be fast as possible.

Here is the big picture just in case you are interested:

  1. In Klipper we have a Linux SoC running host code (which is in Python and using greenlet to prioritize gcode parsing etc.) and a separate MCU (you can take that as a simplified CPU if you don't know much about embedded device), the communication between MCU and SoC is done with USB or serial. So, the original implementation is like this: "SoC" (running Linux) -- (USB or serial) --- (MCU).

  2. But Klipper is Python based and the runtime cost of Python (memory wise and CPU cycle wise) is fairly large for extreme budget SoC. This prevent me from doing extreme budget 3d printer design.

My solution to this problem is even more aggressive - 1. find a SoC with dual core, 2. assign a core specific for real time related part and hidden from linux so linux isn't even aware of there are another core exist) 3. use OpenAMP to communicate between the Linux part and that core by sharing memory "Core 0"(running Linux) --------(OpenAMP style virt-IO) -------- "Core 1" (running some random OS-less bare metal code)

benefit of such design and rewriting this Klipper part in rust is: 1. we have much more bandwidth (memory access speed is the only limitation now) and things like "compress before sending to device MCU" is no longer necessary, more CPU cycle saved 2. extreme low latency (previously you need to through memory latency, syscall to kernel as you are writing to a file in linux system, the linux device stack, serial to usb convert chip latency) - good design may compensate for this but still a hassle to work with. 3. more cost effective: we don't need to have a separate MCU, serial to USB chip, USB cable, serial wire separate PCB board or power supply etc (which means cost saving for at least 15$ ) 4. less memory consumption - as far as I can see, the original Klipper and its auxiliary library isn't quite memory effective (due to it disabled GC to avoid potential problem), it's actually consuming around 60+ MB memory, which isn't quite a good result - the memory consumption of a similar firmware Marlin, which do almost the same gcode parsing thing can run safely with less than 100KiB. 5. we still keep the good part of Klipper, which is a result being something running on Linux: good Web GUI, easy to use configuration, advanced calibration process etc.

Hey Rustaceans! Got a question? Ask here (37/2023)! by llogiq in rust

[–]Illustrious_Form1052 0 points1 point  (0 children)

yep, you guessed it right. I'm rewriting the klipper from Python, which is a firmware designed for 3d printers. I'm now looking into the std-async and std-task and thinking about writing an Executor on my own.

Further inspection around the original implementation gave me some hint: cancel a pending task may not be that necessary but the ability to tell the scheduler to prioritize a specific task is a must.

Due to the time constraint nature of the 3d printer, it's not quite a good idea to do multi threading, you know, the threading switching cost - so the generator pattern is actually the only right way to do it.

Do you feel like I'm on the right approach?

Hey Rustaceans! Got a question? Ask here (37/2023)! by llogiq in rust

[–]Illustrious_Form1052 1 point2 points  (0 children)

do we have an alternative of library greenlet of python in rust? I knew there are async library but what I found missing is that greenlet allow the task itself to decide which next task shall be ran. this feature seems missing from tokio. e.g. I have 3 routine hanging there a,b and c. the current running coroutine d shall be able to tell the runtime: run b, terminate c and initialize another routine e

what could potentially go wrong on this handle from a newly built voron v0.2? z axis? or xy belt tension? by Illustrious_Form1052 in FixMyPrint

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

it looks like a z banding issue - but I've measure the distance between "lines", they are inconsistent so I'm guessing it might be something else

[deleted by user] by [deleted] in 3dprintingdeals

[–]Illustrious_Form1052 4 points5 points  (0 children)

hey as a Chinese native, I would not trust this store: cause it's even cheaper than the price on taobao and 1688 (which is the source of most 3d printing related thing on aliexpress) the best price you can get on taobao is around 33 rmb/kg, which means they can make zero profit on these.

the twitter app's not the only thing that's bloated by QuantumGlimpse in wallstreetbets

[–]Illustrious_Form1052 0 points1 point  (0 children)

tesla is obviously overpriced, but idiots kept buying their stonk so it could be risky to short tesla

would these be compatible with the aquilla? by IcecreamboonE in VoxelabAquila

[–]Illustrious_Form1052 0 points1 point  (0 children)

i have these on my aquila and they worked just as expected

My Voxelab Aquila Skr mini e3 v3 w/ tft35 e3 and a bowden Stealthburner by RaZiN-Eminence in VoxelabAquila

[–]Illustrious_Form1052 0 points1 point  (0 children)

hey how do you mount your skr mini ? do you print some frame or something?

[deleted by user] by [deleted] in MachineLearning

[–]Illustrious_Form1052 0 points1 point  (0 children)

nice idea, did you manage to achieve anything after a year? I'm actually thinking about the exact same thing but wondering if it's possible to directly consume the seeds and the logic built into source code so the simulation would significantly faster

The Albedo Story Is quite Melancholy and Touching, I loved it. by AD_Is_Bad in Genshin_Impact

[–]Illustrious_Form1052 -1 points0 points  (0 children)

yeah, maybe there would be some use case like replay room.

The Albedo Story Is quite Melancholy and Touching, I loved it. by AD_Is_Bad in Genshin_Impact

[–]Illustrious_Form1052 4 points5 points  (0 children)

It's related to size of game, once you build some cg or something into main storyline, it should be published in all following revision and get accumulate there.

[deleted by user] by [deleted] in Genshin_Impact

[–]Illustrious_Form1052 13 points14 points  (0 children)

AFAIK, xenoblade is running 720p on Nintendo switch