Have just been working on making vector drawing a bit safer, thanks to prompting from Matt. Still no resize or zoom, but this drawing with 14,000 commands has just finished successfully.
This SVG was one that used to send the machine into a mad spinning fit, off searching for a coordinate it could never reach. Well, now the machine will only attempt to draw to points that it believes fall within its own machine space, and it superstitiously avoids any 0 coordinate. There are a couple of changes to the embedded (server, firmware, whatever you like to call it) software to support that, and there is a slightly new acceleration behaviour for C17 (draw straight line) commands. This essentially turns off acceleration for C17. Because the line is chopped into such small pieces with C17, it doesn’t work anyway, so doing without makes for a much faster line, at the expense of noise, maybe a bit of wobble. It’s a slightly harsher process.
Ok, so those are the updates to the machine code, not completely essential, but it can be found, as usual in the repository.
The controller has a couple of minor changes to support vector drawing, mainly that only vertices that fall on the page are sent to be drawn. I know it makes sense to have the select area tool able to select the lines to draw, but that’s all a bit tied up with bitmaps and regenerating the density maps to do that easily at the moment. In future though, definitely, along with svg resizing and moving.
The controller now has a separate window to select the pixel rendering options, and choose which corner you want the drawing to start from.
The other change in the controller is that it now supports the new Arduino MEGA firmware, and the few new features that are available in that (namely saving to / drawing from SD cards). It recognises what kind of board you have plugged in because the mega version broadcasts its nature in its READY shoutout. Shouldn’t make any difference to anyone because standard behaviour is the same. I’ve noticed an oddity with the way the control panel wraps when it detects the machine has changed to a different type, but nothing problematic.