Polarsandtisch

Neat!

Don’t try to home with this firmware. It is expecting too many endstops.

https://github.com/V1EngineeringInc/MarlinBuilder/suites/1728007278/artifacts/32713996

This version should home X and Y. You may need a github account to see it (it is from our nightly builds).

This is the post where I worked out how to convert a thetarho (thr) file into the X, Y gcode for a scara table:

In that post, there is a link to a website, repl.it where I posted some code that will run in the web browser. You can take a thr file from sandify.org and upload it to that site, run the code, and download a gcode file that should work for your machine. It assumes 0,0 is fully extended, and up.

repl.it

The other arbitrary part is how many motor rotations is one “Unit” in Marlin. Marlin thinks everything is in mm, but we are moving a motor in an angle. In the script, I set MOTOR_X_UNITS_PER_ROTATION for each motor to 6. What this means is that in the gcode output, if I send the motor from 0 to 6, it will do one full rotation. For the elbow, I should stay between 0 and 3, since it only goes one half of a rotation.

Marlin will convert that arbitrary unit into a count of steps to send to the motor driver. This is accomplished with the configuration variable DEFAULT_STEPS_PER_MM. You can change this on a running system by sending M92 X<xsteps/unit> Y<ysteps/unit>.

I’m going to make some guesses here:

  • I’m assuming a 1:1 ratio from the motor shaft to the arm angle.
  • I’m assuming you have drv8825s in the RAMPS
  • I’m assuming you have all the jumpers installed underneath them (1/32nd microstepping)
  • I’m assuming you have 1.8deg steppers, or 200 whole steps/rotation.

200 steps/rotation * 32 microsteps/step * 1rotation/6units = 1066microsteps/unit

So the command to set that would be: M92 X1066.7 Y1066.7. To save that, you would send M500.

Once that is set, a command like: G1 X3.00 F60 should move from 0 to 180 degrees in 3 seconds.

If we get that far, we are doing really good. At that point, you should be able to run this file.

Danke
Als erstes muss ich mich bei [Jeffeb3] bedanken der sich um mein Problem kümmert.

Ich lese den Beitrag immer und immer wieder durch um alles richtig zu verstehen.
Leider brauche ich noch ein paar Tage um alles umzusetzen da mir momentan die GT2 Riemen fehlen und diese erst im neuen Jahr geliefert werden.

Ich gebe nicht auf.
Nun zu den Einstellungen:

  • das Verhältnis Motor / Antriebszahnrad = 3:1 (20:60 Zähne)
  • im Ramps habe ich 8825 Motortreiber
  • alle Jumper sind gesetzt (32 Microschritte)
  • 1.8°Stepper mit 200 ganze Schritte pro Umbrehung

Die Armlänge von Mitte auf Mitte beträgt 155 am äuseren und 155 mm am Inneren Arm.
Als Sand wird Schnee-weiser Laaser Marmor -Staub verwendet, welcher aus einem Absetzbecken eines Steinmetzes stammt.

In der Zwischenzeit habe ich auch noch eine Vorrichtung gebaut um die LED Alu-Schiene welche den Sand begrenzt rund zu biegen.

Bis die Riemen da sind werde ich mich um den Holztisch kümmern in welchen die Mechanik danach eingebaut wird.

servus
Klaus

Ok, so the steps/mm should be 3x larger.

The 155/155mm is good, and it makes no difference to the result. The thr files are normalized between 0,1 and Marlin is really controlling angles. It would be more complicated if they weren’t equal lengths, but nothing major.

You really are making a beautiful machine. I look forward to seeing it assembled.

Hallo Jeffeb3

ich hab mal eine Frage.
ist es möglich in Sandify noch eine weitere Sandtisch Form wie “Scara” einzufügen um die Berechnung direkt dort zu machen?

servus
Klaus

It is possible, but I am it sure who it would be for. This is the second machine (to my knowledge) and I have a lot more users of sandify for the other two types (thr and cartesian).

Is there something that is giving you trouble with the repl script?

Guten Tag

Jeffeb3 danke nochmal für die Hilfe und dem Skript.

Es funktioniert Super soweit ich das bis jetzt beurteilen kann.
Leider fehlen mir noch die Riemen um die Kugel im Sand zu rollen.

Momentan hab ich den Arduino geflasht so wie sie es oben beschrieben haben.

Ich bin sicher dass es momentan nur wenige Scara Sandplotter gibt,
genau wegen den Problemen mit der Software,
welche sie mit dem Skript ausgezeichnet gelöst haben.
Jeder technisch versierte Freund der meinen SCARA gesehen hat
wollte ihn gleich nachbauen.

Ich soll auch die Kinematischen bewegungen der Arme nicht verstecken
damit man sie arbeiten sieht wie bei einer Skelett Uhr.

Das werde ich in meinen Gedanken natürlich zum Tisch bau mit einfliesen lassen.

Alle Zeichnugen /Bilder werde ich nach bendigung des Projektes natürlich Öffentlich zur verfügung stellen. Hab noch nie ein Git-Projekt gemacht desegen denke ich wird es Zeit dafür.

Eine Kit kann natürlich auch von V1 verkauft werden falls Interesse besteht.

Ich hatte die Idee den Scara in die Sotfware mit einzubinden damit
wäre Sandify eine komplette Sammlung aller möglich Tischarten die es gibt einen Sandplotter zu bauen.
Ich kenne den Aufwand der Arbeit nicht,
deswegen kann ich es gut verstehen wenn sie es nicht machen da sie darin keine Zukunft sehen.

Servus
Klaus

I would love to do it. I just have a long list of other things I also love to do. I will post a github issue and I will see where it goes.

One of the tricky parts about developing sandify is trying to avoid tripping up existing users with new features.

Guten Tag

meinen Prototyp aus Plexiglas hat jetzt ein Freund.
Er hat momentan mehr Zeit als ich und
hat deinen Code genau so wie von dir beschrieben
sofort zum laufen bekommen.

Sein Scara zeichnet in der Schleife ein Viereck von innen nach aussen
vom umgewandelten Code.

Vielen Dank Jeffeb3 für deine Geduld.

servus
klaus

1 Like

Hab einige Fragen an euch.

was verwendet ihr für ein Material in welcher Stärke als “Sandträger / Zeichnungsunterlage”.
Wie gross sind eure Kugeln und wie stark eure Magneten?
Sand oder Backpulver?

servus Klaus

That is awesome!

Baking soda has more details, but the sand is smoother.

The tray under my zenxy prototype is 1/8" hardboard. On the sisyphus table, it is about 1/8" and it is aluminum composite with sand colored fabric on the top.

The magnet in my prototype is 1/2"x1/2" cylinder magnet. It is very strong. The ball is 1/2", but 3/8" would be good too.

Now there’s an idea. That probably helps a lot with noise.

I think it does. It is hard to tell. This one isn’t very fast and completely silent.

2 Likes

well, looks like I gotta vacuum the baking soda out, again…

Hallo Klaus,

ich bin auch gerade dabei einen Polaren Sandtisch zu bauen und habe im Moment noch Probleme mit dem Code bzw. dem Programmieren der Bewegungen. Dein Projekt sieht sehr gut aus und hat vom Grundaufbau den gleichen wie mein Roboter.
Ist es möglich das du alle deine Dateien an Code die auf deinem Arduino laufen bei github oder so hochlädst? Dann könnte ich den Code besser verstehen und auch Stücke des Codes für meinen Tisch übernehmen.
Ich würde mich sehr über deine Hilfe freuen.

Gruss aus Berlin
Arthur

1 Like

Hallo Arthur

Ich habe dein Projekt gesehen und es gefällt mir,
vom Aufbau her sind unsere Projekte identisch.

Bei menem Tisch habe ich habe eine Übersetzung zwischen Motor und Antrieb von 3:1
Der Antrieb vom Motor hat 20 Zähne und das Zahnrad auf dem Arm hat 60 Zähne.
Der von mir verwendete Motor hat 200 Vollschritte.

Ich verwende bei meinem Aufbau einen Arduino Mega mit einen Ramps 1.4.
Auf dem Ramps Board sind alle Jumper unter den Treibern gesteckt damit 32 Microschritte ermöglicht werden.
Als Driver verwende ich 8825 (welche auch die 32 Micro Schritte ausführen können)
Es wird auf den Arduino Mega die Marlin Software eines normalen X-Y Druckers aufgespielt.
(Du brauchst hierfür aber einen Github account um ihn downloaden zu können)
https://github.com/V1EngineeringInc/MarlinBuilder/suites/1728007278/artifacts/32713996
Das richtige Board in der “Config.h” (bei mir Ramps 1.4) ausgewähen.
Die Datei über USB von deinem Rechner auf das Board schreiben.
Auf die Bautrate achten (115200)
200 Schritte pro Umbrehung x 32 Mikroschritte x / 6 Einheiten pro Umdrehung * 3 Übersetzung
((200 x 32)/6)x3 =3200 Mikroschritte / Umbrehung

Mit den folgenden Befehlen welche du über Octoprint oder ähnlicher Software an Marlin schickst stellst du die Microschritte ein.
M92 X1066.7 Y1066.7
M500

Du brauchst auch 2 Enschalter um deine Arme in der gestreckten Position auszurichten.
Diese werden mit den Endstops vom Board verbunden.
Mit dem Befehl:
G1 X3.00 F60
werden die Arme in der Position 180° ausgerichtet.

Nun solltest du in der Lage sein folgende Datei auszuführen:
diese Datei

In Marlin wird nicht eine Scara berechnung ausgeführt um deine X-Y koordinaten in Grad umzuwandeln,
diese mathematische Berechnung wird vorher extern von einem kleinem Skript ausgeführt.
das Skripft von Jefeeb3 findest du hier.
Somit kannst du jedes File welches X-Y koordinaten hat zuerst umwandeln und dann an deinen Arm schicken.
Umrechnung

Ich hoffe ich konnte dir ein bischen helfen.

servus Klaus

2 Likes

Klaus,

Yes, exactly. There is a saying (I think from Richard Feynman, but I’m not sure): “You don’t truly understand something until you can explain it to someone else”. This all looks very good to me.

Are you using the repl.it to run the python conversion code? Is that working for you?

Is there anything else we need to work out together?

–Jeffeb3

Jeffeb3

ohne dich währe ich nicht soweit gekommen, dafür bin ich dir sehr dankbar.

Momentan warte ich auf die Sandträgerplatte aus 5mm die aus PMMA besteht.
Diese wird im FABLAB der Universität herausgeschnitten.
Alle Teile wurden im übrigen an Schulen für dieses Projekt gefertigt,
mit der Auflage nach erfolgreicher Beendigung ihnen die Zeichnungen zu überlassen um selber ein Ausstellungsobjekt bauen zu können.
Die Lehrer waren alle mal froh war neues zu machen und den Laser mit 5mm Aluminum zu Quälen was sie bis dato noch nie gemacht hatten.
Der Holztisch wird auch an der Berufsschule für Tischler mit einer CNC Frãse hergestellt.

Momentan sind die Zeichnungen für die Gehãuse der Elektronik beim zeichnen.
Um die Idee der sichtbaren Mechnaik zu verfolgen will ich alles Elektronische schön verpacken.
Deswegen hatte ich noch wenig Zeit für die Programmierung.

Mein Traum ist es einen Sandypi mit Scara funktion in den Tisch einzubauen.

Werde weiter berichten.
servus Klaus

1 Like

Hallo Klaus

Could you tell me the process to flash the marlin firmware downloaded in the link. Did you use arduino ide? Thanks