User Tools

Site Tools


I'm learning as I'm go. If you have some advice please send me an email: tjhowse at


What I want to accomplish

  • Cooler patterns.

What I've done

Cooler patterns

I wrote a helper script to generate GCODE for some a cool pattern. It draws around the circumference of the bed and then spirals into the centre, then spirals back out to the edge again. I thought it would be very cool. I incorporated the MQTT GCODE publication into the generation script so it was a one-step test process.

However the generated GCODE was quite large, about 40kB, and the ESP32 threw an error when trying to receive it. It couldn't allocate enough ram. There's a few ways of solving this. I could potentially chunk up large programs into smaller pieces and send them through in a few separate messages, then stitch them together before playback.

Another, much cooler, solution would be to listen to another MQTT topic that can be used to transmit Python generator code to the robot. This would be a cool way of sending quite complex pattern generators to the robot without using much RAM.


I wrote the structure to support sending short snippets of python code to the robot. These snippets must implement a generator function, named “generator”, that produces a GCODE instruction on every request for them to produce a value. This lets me move my GCODE generator helpers that I was writing to generate GCODE straight into the microcontroller and run them there. Very handy.

I also added code to save/list/delete generators already on the robot, so you can send your generators to be stored on the robot and then shuffle through them. Very nice.

What I want to accomplish next time

  • Build the electronics.
projects/sand_drawing/work_logs/even_mode_software.txt · Last modified: 2020/06/04 00:36 by tjhowse