Software: pattern player, web page with a design library, GRBL tools
- python3 -m sandtable web: local web page to play designs from a library of 27 built-in patterns, upload .thr or .svg, pause/skip/stop, jog and calibrate. Reconnects by itself when the USB cable comes back. - Plays .thr files and built-in generators with an erase spiral between them, constant ball speed, host-side homing on stock GRBL 1.1 (Uno + CNC shield), FluidNC for the ESP32 board. - Home switch guard: patterns never press the switch, so a press means lost steps and stops the machine at once with an alert. - lineart.py turns SVG line drawings into one continuous path. - Tests against a GRBL simulator. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
1400cc8afd
commit
95ad4d25de
52 files changed
+388117
No files matched your search
@@ -0,0 +1,27 @@
|
||||
# Sand table settings. Anything left out uses the default in sandtable/config.py.
|
||||
|
||||
[serial]
|
||||
port = "auto" # or e.g. "/dev/ttyACM0" (Uno) / "/dev/ttyUSB0" (CH340 clones)
|
||||
baud = 115200
|
||||
|
||||
[controller]
|
||||
type = "grbl" # "grbl" = Arduino Uno + CNC shield; "fluidnc" = the custom ESP32 board
|
||||
|
||||
[machine]
|
||||
rho_max_mm = 133.0 # how far out the ball goes (the tray reaches 133 mm)
|
||||
invert_theta = false # set to true if test_f draws a mirrored F
|
||||
theta_offset_deg = 0.0 # turn every pattern by this much
|
||||
|
||||
# CNC shield DRV8825s at 1/32 (M0, M1 and M2 jumpers all fitted, 2026-10-31).
|
||||
# Only M2 fitted (1/16) measured as 35.556 / 80.
|
||||
theta_steps_per_deg = 71.111
|
||||
rho_steps_per_mm = 160.0
|
||||
|
||||
[motion]
|
||||
ball_speed_mm_s = 25.0 # drawing speed; slower = crisper lines and quieter
|
||||
max_theta_deg_s = 60.0 # arm spin limit (10 rpm)
|
||||
|
||||
[erase]
|
||||
enabled = true
|
||||
pitch_mm = 7.0 # spiral spacing between patterns (the ball is 9.5 mm)
|
||||
speed_mm_s = 35.0
|
||||
Reference in new issue
Block a user