4xiDraw

From Matt Morris Wiki
Jump to navigation Jump to search

Links

Care and maintenance

IMPORTANT: we lose settings sometimes! Servo should be 25 down, 55 up and rates 500 for lift, 250 for lower

Tighten screws on the central section - they work loose periodically

Tension - check the Hz frequency when plucked - ideal value is at least 70? Still TBD

Active projects

Next

Pens

  • Winsor & Newton
    • Calibrate for 0.5 nib
    • Do blackness test vs Pigma
    • Try speed test too
    • Write up results in pens section

Sketches

  • how can I guide randomness?
  • restart - when?
  • restart - where?
  • worth doing more constraints while we draw?
  • a viewer that allows backtracking on path count
  • manually pick some starting rectangle(s)

Red+Blue

Noise stuff

  • Examine blue noise - read up on the theory and write it up on this page
  • Try fish scales?

Wakefield stuff

  • Try centre plot only with new adjsutment but 0.8 scale
  • Start off with centrepice of spiral plot, and add shit in - lsystem background, perhaps?
  • Perhaps 0.5 spiral, and 0.1 on an lsystem such as hilbert? Clipped to page size...

Tiles!

Spirograph

  • multi-colour plots with different cycles

Better algorithm for smoothing/aliasing spiral plots

See if the Pigmas can be unblocked - they seem to have dried up very easily

When doing edge around a block fill, try moving

  • start inwards
  • end inwards

Use inner rings of star_gen() as the test bed here - looks like we are getting artefacts at one end or the other

Mandalas

Search out some source materials on this

I like the idea of something combining colour, mandela patterns, text, other ritual elements - like a magic invocation from the machine.

Could try radial with tarot-style swords? Perhaps even have them inward

  • Work text into a mandela?
  • Perlin "landscapes" as a background?
  • Incantations
  • Tarot

Op Art

  • Try something more involved along Riley lines. It'll help make the Staedler run out, which will clear the way to more CMYK stuff!

Here's the thing - we need regions to intersect precisely. This means we don't want pen width stuff spilling over the lines.

This means that the final outline should be created by recalculating intersecions:

  • Move each edge inwards (e.g. towards the interior of the shape) by width/2 (maybe width*.4?)
  • Use intersection code to recalculate the points

Materials Experiments

  • Pigma 05
    • try potentially-dry pen at 3k when it arrives, if any worse than test pattern, ditch it
  • New Pens
    • Copic glitter pen - 2 sets
    • Sakura Pen touch fine - silver, gold, copper
  • Black paper seems to have ink loss on straight lines - This could just be pen weight, and putting the existing rest on will help
    • Try different black paper - contrast the 3 types we have

3D stuff

  • Try other meshes
  • Try projecting spiral plot onto a cube face
  • Should include ray tracing or whatever I need to render scenes properly
  • Use it for proper texture-mapped surfaces

"False Prophets of the New Millenium"

  • Group portrait - "twelve caesars2 type stuff - 4x3 grid with surrounds?
  • Could do one page per? And make the background, props, etc more appropriate to the person in question. So it would be like a series.
  • Need better font for header - something old-school?
  • Extend perlin background so we're fully covered at top and bottom
  • Might want to ornament the text surrounds, depending on the font and overall feel
  • Think about relative width of text surrounds compared to medallion
  • Could potentially incorporate text into the medallion surround?
  • Right now it's veering quite modern - can we still get more retro stuff in there
  • Magic squares? Could be in background, Sator square etc

Scribble Drawings

  • algo - select line, subtract from drawing, repeat until some kind of termination condition
  • start off with something really simple to begin with - horizonal lines maybe?
  • get this into test code with some simple arrays to start with!
  • suggested initial algorithm
    • on any pixel with > 75% value, draw until you hit a pixel with less
    • subtract 25% from the intensity of all pixels covered
    • finse and repeat, stepping down though 50%, 25%, etc, until the line is clear
    • continue down y
  • at this point we can generalise and start playing around

Other Ideas

  • Oval wiggle plot with scaled movements
  • Wiggle plot on alternative curves - spacefilling / flipping shcemes to show letters or some other image
  • Circle packing (different sizes)
  • Permutations
  • Monsters!
  • red lines as callouts?
  • massive maze with red line through it
  • Archimedian text spiral - combine with other stuff
  • Spiral - add averaging to the points - need to get effective area covered in the radial gap & somehow average the intensity
  • Scribble lines - do the try-360-degree with ray issue and see if you can reproduce!
  • Try stuff in https://github.com/beardicus/awesome-plotters#vector-creation

Software

See https://github.com/MatthewJohnMorris/pyplot.git for repo

  • Make into a package
  • total # points and distance - try to get a rough up front TIME estimation in
  • (/) inkscape plugin: Arbitrary code sending
  • (/) "Wiggle" plots - any software for that?
  • inkscape plugin: Fix "distance travelled" to show somthing sensible
  • Figure out how hatching is supposed to work
    • Start with axidraw wiki - anything there?
    • Do a test hatch and document in "how to"
    • Update README when done

Other Projects

CMYK

  • What to plot next?

Jazz Musicians

  • Davis
  • Coltrane
  • Corea (more 70s/psych)
  • Etc

Tarot Card

Try trad. death? The fool? FreeSvg has some good basic ones

Write-Ups

Materials and Settings

Pens

Overall recommendations

  • Pigma Micron
    • Use for major drawings - but they dry out *very* easily! Don't have that cap off a moment longer than you have to
    • Black block fills in particular - the ink is darkest of all the pens I've tried, which is backed up by reviews
  • Staedtler Pigment Liners
    • CMYK colour plots
    • general workhorse for drafting because they are less vulnerable to drying
  • Pilot G2 07
    • best of all for rough drafts, maybe for finished LINE-ONLY articles if matching available width - but no good for areas
    • still archival! If doing purely line art, worth a go

Detailed pen notes

  • Don't use anything narrower than 0.3 pens for fills. They'll rip up the paper. Reserve the thinner nibs for line art.
  • Staedtler Pigment Liners don't dry out if you leave them uncapped - they say up to 18 hours - while Pigma Microns do
  • Pigma Micron tips seem a bit more resilient than Staedtler for demanding plots but it's very hard to distinguish this from partial drying effects that the Pigmas are vulnerable to
  • For black block double fill, it looks like Pigma Micron 05 has the edge over Staedtler Pigment Linear and Rotring - it's just that bit darker
  • Staedtler Pigment Liners have genuine CMY so best for colour plotting
  • Rotring seems prone to ink "blooms" when trying out so probably not best for area fills - use them up on black line plots
  • Pilot G2 07 is consistently inconsistent on area fills, so best confined to lines - where they are perhaps the best choice for mid-width plotting
  • Pilot G2 07 has *lots* of colours but so far I can't see how to easily do a drop-in penholder working with the refills

Paper

For white:

  • Canson Bristol (Extra heavy weight bright white) (250gsm): best for smooth lines but doesn't respond well to re-inking
  • Windsor & Newton Smooth Surface Cartridge Pad Heavy Weight (220 gsm): slightly roughter than Canson Bristol but more absorbent

For black:

  • Frisk Black Pad (135gsm): excellent everyday stuff
  • Clairefontaine Paint Noir (250gsm): firmer, doesn't seem noticeably better on getting Gelly Rolls to behave than the Frisk
  • Fabriano Black Black (300gsm): NOT TRIED YET!

Calibration

Penholder

  • About 4.5mm above the paper when lifted (assuming 25/55 as below)

Max Speeds For General Drawing Without Heavily Inked Areas

  • Staedtler Pigment Liner: 3k
  • Pigma Micron: 3k - if gappy then has probably dried out (Pigma more vulnerable to this than Staedtler)
  • Rotring Tikky: 3k
  • Gelly Metallic: 2k
  • Gelly Moonlight: 1k

Max Speeds For Heavy Drawing - e.g. pen goes over black areas a lot

  • 1k looks like the max here - even 2k gets worse
  • More info:
    • Continually going over the same area seems to impede ink flow.
    • The effect is temporary - a bit of drawing on non-impregnated paper restores ink flow quickly
    • Just letting things dry out seems to help too.

Separation

  • For area fills, use 0.4 * line width. This is adjusting Gelly Metallic to a line width of 0.6mm instead of the quoted 0.4mm (which doesn't match actual behavuior well)

Addin settings:

  • Set penLowerRate = 250 - Timing/Pen lowering speed - dumps less ink at the starts of lines
  • Set penLiftRate = 500 - Timing/Pen raising speed - faster to get going between plot areas
  • Pen heights are 25/55

Text size

  • 21+ for metallic/white
  • 17+ for moonlight

Projects Done

  • (/) Truchet tiling
  • (/) Stripe fills
  • (/) Trees/branches
  • (/) Unknown Pleasures
  • (/) Valentine!
    • (/) drawing hearts - need at least 2.5mm radius. 5mm with about 3.5mm inner looks good
    • (/) bear picture
    • (/) proper pen-down annualar square to go with dot
    • (/) print it on card!
  • (/) Circular text - with a ring border of variable thickness - looks good - use 0.5 pen width for gap - try to use path fill rather than actual circles
  • (/) Spiral text with a constant gap between layers? Yes - 0.4mm seems best for Pigma Gelly Rolls - e.g. 2/3 times pen width
  • (/) Enable black background and white strokes at drawing level
  • (/) Traffic light Burroughs
  • (/) Archimedian text spiral - work on kerning - surround with the neighbouring characters for full context
  • (/) Wiggle plot spiral on domestic photograph
  • (/) get CMYK mapping to work. Do it on a small wiggle plot first?
  • (/) Adjust CMYK for pens if you can! Got best I was going to on Sakura but Staedtler work without rebalancing
  • (/) Irregular smooth convex shapes (random) - biomorphs - try perlin adaption of recent circle script
  • (/) Moire
  • (/) multi-layer plotting - try 2 to start with
  • (/) try combinations of "CMY" and see how they look
  • (/) do an actual multilayer plot of CMY blocks - maybe 50% intensity?
  • (/) CMYK wiggle plot
  • (/) Try Staedtler CMYK - excellent colour balance, do more Staedtler
  • (/) Wiggle plot where circle is deformed halfway by 2d perlin noise - nah, doesn't look good
  • (/) Wiggle calibration: settle on 0.4 of nib width overlap as the minimal to offer full black for 3-to-4 times pen width of row separation
  • (/) Archimedian text spiral - burroughs etc
  • (/) Inverse wiggle plot with white pen on black (once you've figured out penholders) - looks pretty cool
  • (/) white-on-black "unknown pleasures"
  • (/) Improve text handling by using Cairo to render text
    • (/) Print text as paths via Cairo
    • (/) Get transforms to work on the resulting task so can support spiral
    • (/) Move over to new code paths
  • (/) Fractal tree - thickness taper based on distance along path
  • (/) magic word suqares

Penholder

Things done:

Text

Current Single-line text fonts

Things to try:

Libraries

Already done:

Writing on Black

From https://daisyyellowart.com/vividlife/all-about-gelly-rolls.html

Drawing on Black Paper or Acrylic Paint

What works best? For black paper or dark colored acrylic paint, I would suggest the metallic, medium, moonlight, some of the Stardust. What doesn't show up? Glaze {transparent}, Fine and some of the Stardust.

Here metallic and moonlight NON FLUORESCENT as the fluorescent moonlight fade over time

I can't seem to find anything in the "medium" line but I think this may refer to non-fluorescent moonlight?

TSP Art

See https://wiki.evilmadscientist.com/TSP_art and https://wiki.evilmadscientist.com/Obtaining_a_TSP_solver for background

Main page is https://wiki.evilmadscientist.com/StippleGen - now installed at C:\Program Files\StippleGen\2.31

This can do both stipples & TSP

A few notes:

  • Mad Scientist Page recommends at least 40 stipple cycles
  • TSP requires some minutes to settle down and remove crossings
  • Turn "White Cutoff" up to (say) 0.06 to get rid of annoyiung chaff around the edge
  • Worth experimenting with stipple size at the high end, a min of 0.9 or thereabouts is probably sensible w.r.t. pen size

Solved Problems

Lines Where They Shouldn't Be

Are you, perchance, using Staedtler in a Sakura holder? Double-check your pen height.

Speedup faintness

We were getting speedup faintness - not affecting stipples.

Turns out the pen was running out/drying up.

Should try to to a setup where it's easy to cap the pen after use - cut some rubber away maybe?

Accuracy

We were getting slight movements on plots where there were sudden changes of direction.

Bit embarrassing this one, turned out the frame was moving! Have used some clothespegs.

Highest speed we've had a basically perfect calibration on so far is (5000, 200). This has good line quality too as the low acceleration means that we aren't going too fast on most of the lines.

Current status

  • segue to spirograph caused small slippage in bottom middle grid
  • repeated grids have problems at bottom left and bottom right in particular
  • there is *something* that causes slippage but I don't have it narrowed down
  • upped tension very slightly to 2x2p, 3x1p

Tasks:

  • (/) PrecisionTest.svg on (5000, 1000) - 13m 20s
  • (/) Take down through microsteppings - got to 1/32, there might be a slight x-creep but I think it's probably the unit moving on the base
  • (/) Try Riley in far corners
  • (/) Try wiggle

Flex

We had a very large (25 servo step) move between pen-up and pen-down in order to not drag at the bottom when up, or miss at the top when down.

Managed to drastically reduce this by making sure the plotter was on a rigid surface - a lot of this was coming from the top of the storage units deforming as the weight distribution changed.

Solved! - the problem was that the level of the surface underneath wasn't stable. The carriage was making everything bow. By putting the MDF on top of a rigid A3 board, the flex has disappeared.

We currently seem to need around a 25 gap between pen-up and pen-down in order to not drag at the bottom when up, or miss at the top when down.

Biggest problem seems to be a dip in the middle! Is it the surface or the rods? It's a few mm so non-trivial.

One thing to look at is a lighter penholder once we can print a replacement - is the weight of the rubber causing more flex than we would otherwise have?

Possibly the carriage tension is a factor too, with one nut not fully tightened. Can we fix it without rebuilding the whole thing? Possibly a tiny tab of glue might fix the nut in place?

Scaling/Stops

We're hitting physical stop

Turns out maximum travel is:

  • X: 11.1in, 282mm - 15mm under A4 length (297mm)
  • Y: 8.4in, 214mm - 4mm over A4 width (210mm)

So we are short 0.6 inches at the end. Now encoded as PageWidthIn, PageHeightIn in fourxidaw_conf.py

Summary of progress

Things to check:

  • There was a bit of give in the cradle - have retightened all the screws. There is no data on whether this actually made a difference.
  • Tension can cause problems: the tighter the tension, the more steps we lose.
  • Are stepsticks pushed all the way in? Not having that produces non-trivial error - one in particular is prone to stick out slightly so check

The main problem we seem to have is insufficient torque relative to our tension. So we should reduce the tension to the minimum consistent with eliminating backlash. The best result so far is *just* having tension on the belt - this is with 3x2p. By contrast 4x2p is way too much tension - things still move but lots of skip. With 3x2p the grid is fine but there is still a little bit of creep on the stipple.

Reducing microstepping from 32 to 2 has made things progressively better, can now pass the PrecisionTest.svg - at 10 steps/mm at least - but there is still some slip on very extreme images - e.g. the Bridget Riley.

It's possible that the CoreXY design of 4xidraw is heavier on torque requirements than other designs.

Let's try with the more powerful ooznest motors when they appear, and see if we can push accuracy up yet higher.

Microstepping

See Hackaday, "How Accurate Is Microstepping Really?", Moritz Walter, 29 Aug 2016

Table gives 32-microstepping (max mode of DRV8825) as only having 4.91% of torque, with 8-microstepping at 19.51%, about 4 times greater. This implies that we might be able to quadruple effective torque simply by removing the MODE2 jumper - see Pololu: DRV8825 Stepper Motor Driver Carrier, High Current for settings here.

Experiments with microstepping - don't forget to change $100, $101 in line (reduce in line with reduction in microstepping)

  • A test with 8-microstepping (MODE0+MODE1 jumpers) was definitely better on wiggle drawing, but not perfect. $100/101=40
  • Will test with 4-microstepping (MODE1 jumper only). $100/101=20 - this gave a perfect image!

So it looks like the increased rotque from microstepping has made a difference here.

Microsteps per full-step Incremental holding torque per microstep
1 100 %
2 70.71 %
4 38.27 %
8 19.51 %
16 9.80 %
32 4.91 %
64 2.45 %
128 1.23 %
256 0.61 %

Next step: higher torque motors

It's entirely possible that higher torque will sort this if the problem is motor slip.

If the problem is backlash then the motors should enable us to try with higher tension.

UPDATE: Turns out that higher torque motors allow be to take microstepping down to 32x and not skip any steps

Possible Replacement tension clamp

Might not need this - coins + existing tensioner seems to work pretty well.

Go with https://www.thingiverse.com/thing:1731299 as it looks like it'll put a stop on the Y axis rods

  • Clamp_EndY_v2
  • Clamp_tensor_v2
  • 2x Clamp_

Restarting appears to make pen "push back"

Restarting (so setting servo to zero) appeared to create *downward* pressure?

But I think it's just that the pen was dropping all the way. Using rubber in the holder has improved grip and made this issue go away.

Lessons

Physical Assembly

  • Not double-checking parts before screwing them into the build - I put at least 2 on the wrong way around first
  • Not being enthusiastic enough about getting smooth rods into the main X/Y plates
  • Being too enthusiastic about pushing carbon rods through pen carriage - should have drilled 4mm holes through (e.g. widened slightly)
  • Should reprint penfastener with more infil because I've already snapped the 30% infill version
  • Over-tightening the bolt in Step 15 (pen carriage pulley bolt) - symptom was X-movement being a lot stiffer than Y-movement when belt under tension
  • Penholder: sink in an M3 threaded insert on the holding screw - lasts a lot longer

Motors

  • Not checking I had my power on the right voltage - I was running on 9V instead of 12V for ages, which didn't help my motors deal with things
  • Not just using a dedicated 12V/2W wall wart - they are cheap and I've burned out 2 adjustable ones on long runs
  • Using RepRap stepsticks instead of Pololu A4988 or DRV8255 - the latter seem to work really well
  • Not checking stepstick current limitation before I started. As it was the current was too low but I could easily have burnt out my motors

Testing Electronics/Software

  • Pending ages wondering why X100/Y100 was moving both axes, not knowing what CoreXY meant
  • Getting consistent "creep" each time you run a plot? If "$#" gives non-zero values for G54 then you'll get creep on each plot. Instead run "G10 L20 P1 X0 Y0 Z0" to zero this.

Servo

  • They burn out. My first one burnt out after a few months. The first replacement I tried was broken. Assign a high prior to the servo being the problem if pen movement stops altogether.
  • I got a sporadic issue of servo raise/fall dropouts when the pen was over at the right hand side and the carriage was not much extended away from the wall. I got hung up on looking at the connection closest to the servo (between the servo cable and an extension cable), but this didn't seem to be the problem. Turned out the problem was actually with the connection 2 along, between my crappy cabling from the Arduino and a servo extension lead - when the pen was in the crucial area, the next connection along from the bad one was at its lowest point, and its weight was enough to make the bad connection lose signal occasionally by pulling things out *just* enough.
    • Moral: check EVERY connection, not just the one closest to the servo!
    • Moral2: I need to come up with a better solution to servo cable routing

Things I did right

  • Wiring and motor check before assembly, since it meant I had some confidence the basics of electonics were working

How to do various things

Materials

Modifying 4xidraw plugin

Working code is at C:\Users\matt_\AppData\Roaming\inkscape\extensions

Copy to Git via C:\Users\matt_\Documents\4xidraw_inkscape\extensions.checkout\4xidraw\inkscape driver

Then can raise PR like https://github.com/bullestock/4xidraw/pull/16

Limiting StepStick current

For A4988: https://reprap.org/wiki/StepStick#Adjusting_and_testing_the_current

For DRV: https://www.my-home-fab.de/en/documentations/technical-descriptions/drv8825-adjust-stepper-current

Note the relationship between voltage and current is DIFFERENT for different stepsticks, so CHECK when you're doing this. DRV normally I=2*V, A4988 more odten I=1.6*V but this may vary by board maker

Setting origin/ stopping "creep" on every print

Are you finding you always move along from one run to the next?

See http://www.diymachining.com/downloads/GRBL_Settings_Pocket_Guide_Rev_B.pdf

Default homing pattern is G54. When I ran "$#" one row said "[G54:26.294,0.000,0.000]" - matching consistent X movement I was seeing whenever a run started

Run "G10 L20 P1 X0 Y0 Z0" to reset the position to 0,0,0 - running "$#" again then gave "[G54:0.000,0.000,0.000]"

How to outline an image in inkscape

http://forum.uscutter.com/index.php?/topic/5512-outlining-an-image/

CuberSultan, Posted May 14, 2008

Here is how you outline an object in Inkscape. Ready?

  1. Open vector image in Inkscape and make duplicate of original image (copy/paste). That way you can work on the duplicate image.
  2. Choose View|Display Mode|Outline. This makes it easier to do the following steps.
  3. Select duplicate image, then choose Path|Break Apart.
  4. Choose the node selector (Edit paths by nodes (F2) ).
  5. Select outside line of vector image.
  6. Copy/paste the selected outside line. Keep this selected for all the following steps.
  7. Choose View|Display Mode|Normal. The outlined image should look completely filled in.
  8. Choose Object|Fill and Stroke (Ctrl + Shift + F).
  9. On Fill tab, choose No Paint icon (X).
  10. On Stroke Paint tab, choose Flat Color icon.
  11. On Stroke Style tab, set desired Width (i.e. 12px).
  12. Set Outset by selecting Path|Outset. This will move the selected line outward from the current position.
  13. Turn the stroke into a path by selecting Path|Stroke to Path.
  14. Position the outline around the original object. You can use alignment tools to get it just right.
  15. Select all components of the final image and choose Path|Union.

Burning new bootloader

Trouble-shooting: switch on File-Preferences-Settings-Show verbose output during-upload

First off, Windows 10 can have issues with AVRISP mkII - this thread points to the answer - https://forum.arduino.cc/index.php?topic=660019.0

You can install libusbK or libusb-win32 using Zadig:

  • Download Zadig: http://zadig.akeo.ie/
  • Plug in your AVRISP mkII
  • Start Zadig
  • From the dropdown menu, select AVRISP mkII. If it doesn't show up on the menu, then select Options > List all devices and check again.
  • Click the up or down arrows next to the Driver selection box on the right side until you see libusbK.
  • Click the "Replace Driver" button.
  • After it finishes you can close Zadig.

Connect programmer with red stripe aligned with dot on board

Assembly Steps

  • (/) Install Arduino IDE - 1.8.13
  • (/) Install git - 2.29.2
  • (/) Follow instructions to compile/get software
    • Software is at https://github.com/misan/grbl-servo - at C:\Users\matt_\code\4xiDraw\grbl-servo-master.zip - last commit b58fd5e on 7 Nov 2016
    • Instructions at https://github.com/grbl/grbl/wiki/Compiling-Grbl
    • Managed to do it by downloading zipfile from git, then in sketch doing Sketch-Include Library-Add .ZIP Library
      • instructions said to select Select the Grbl folder inside the grbl-master folder, which only contains the source files and an example directory, but I jsut did the zip
      • despite warning in instructions, this seemed to work OK
    • Then opened the GrblUpload Arduino example: File-Examples->Grbl-GrblUpload
    • This seems to compile OK
  • (/) Upload it to Arduino and test
    • Yep, responds to "$" when connect using the Arduino Serial Monitor at 115200 bps, and I get the expected welcome message: "grbl 0.9i ['$' for help]"
  • (/) Adjust EEPROM for step count
    • Get step counts off motors - the ST4209S1006 are 0.9degree so 400
    • Do the calc - here the calc is 16x microstepping so "steps" per mm is (actual_steps_per_rot) * 16 / (pitch * #teeth) = 400 * 16 * / (2 * 20) = 160
    • So serial monitor, $100=160 {ENTER) and $101=160 (ENTER), then $$ (ENTER) to check
    • Then follow $$ steps in https://www.instructables.com/4xiDraw/
  • (/) Motor connections
    • Looks like order is BRN ORG RED YEL - we can reverse the plug order
    • Confirmed this order works on a 4x1 header
  • (/) Assemble Arduino + board + stepper boards
    • Solder stepper boards
    • CHECK INSTRUCTABLES DIAGRAM: Use trick from http://3dpburner.blogspot.com/p/bluetooth-connection.html - "on the CNC shield solder a wire between +12v IN from power supply and Vin pin header."
    • Figure out how to attach the motors - needing cromps?
    • Add 3 jumpers beneath each steppers (the jumpers control microstepping - using all 3 gives us maximal 1/16th microstepping)
    • Put the steppers in
  • (/) Test stepsticks BEFORE motors put in
    • Need to set the voltage as per the stepstick details
  • (/) Put motors in and test them
    • Our grbl variant has CoreXY enabled (C:\Users\matt_\Documents\Arduino\libraries\grbl-servo-master\config.h, #define COREXY)
    • "G91 [ENTER]" to enable relative coordinates, then "G0 X100 Y100 [ENTER]" to test X, "G0 X100 Y-100 [ENTER]" to test Y
    • motor1 (X)
    • motor2 (X)
    • motor3 (X)
    • Test other stepstick in the Y axis
  • (/) Servo
    • Test "M3 S40 [ENTER]", then "M3 S0 [ENTER]", should move in opposite directions
  • (/) Servo cable
    • Assemble 250mm cable
    • Test as above
  • Physical assembly
  • Add electronics

Notes from getting things to work

  • (/) Get git location: https://github.com/bullestock/4xidraw
  • (/) Move existing out of the way and verify it no longer shows as plugin - extensions -> extensions.moved
  • (/) Check out git
    • Checking out directly into C:\Users\matt_\AppData\Roaming\inkscape\extensions doesn't work - looks like "C:\Users\matt_\AppData\Roaming\inkscape\extensions\4xidraw\inkscape driver" too high up? 4xidraw Name is [present by greyed out
    • Moved checkout to C:\Users\matt_\Documents\4xidraw_inkscape\extensions.checkout\4xidraw and copied "inkscape driver" files direct to C:\Users\matt_\AppData\Roaming\inkscape\extensions
  • (/) check it is registered ok
  • (/) Fix serial issue
  • (/) Fix ok/grbl restart issue
  • (/) WHY are we getting an extra restart? Sort this
  • (/) Fix path transform issue
  • (/) Fix warnings from optparse
  • (/) Clean up compat code, including applyTransformToPath() bit
  • (/) Add reference to https://wiki.inkscape.org/wiki/index.php/Updating_your_Extension_for_1.0 in code
  • (/) Options are wrong: e.g. reportTime seems to be true, even though false in config - check that out - turned out to be "inkbool" processing
  • (/) Fix other warnings! What else are we getting from a full plot run - is this stuff that we can address?
  • (/) Write clean PR for Torsten - https://github.com/bullestock/4xidraw/pull/14 for issue https://github.com/bullestock/4xidraw/issues/13
  • (/) Sort out the tension belt. Cardboard? Seems to work, but add coins too. Looks like we need at least 50+Hz
  • (/) Set current limit for StepSticks to 0.95A to match the current steppers - do they help?
    • https://reprap.org/wiki/StepStick#Adjusting_and_testing_the_current
    • Our motors are 0.95A so we want current limit of just under 1A = VREF / 1.6, so want VREF of 1.5V
    • Anti-clockwise => min, clockwise => max
    • What was it to start with? What is it now?
      • They were both at 0.6V! (<0.4A) Turning to max gives 1.3V -> 0.85A, a lot better than before
  • (/) New PR for Torsten once SmalltestPattern.svg is working
    • make sure serial timeout not set back, detail deprecations and behaviour change from parsing, mention improved separation between 2/3 code for import behaviour, should mean Python 2 paths continue to work even if Inkscape removed deprecated stuff entirely, PR at https://github.com/bullestock/4xidraw/pull/15, hold this open until merged
  • (/) We still have some inaccuracies - Backlash?
    • Try tightening the belt - looks like we want it as tight as poss before X & Y start getting stuff - a lot better but we are still missing the occasional step - I think this may be motors
    • Try it at 1/2 the speed, any better? Think I saw a missed step so this could be a motors thing - possibly the tension is causing slippage again, even with the looser flanges
    • I think this is a belt tensioning issue - using cardboard means things get crushed down over time - I noticed slippage increasing over a day of printing
    • MUCH better after tightening!
    • Current working hypothesis is that we can get the test pattern working at 500,50. however 1k seemed to go badly wrong - unsure if motor or belt tension issue.
    • The grid looks like a really good torture test for backlash, allowing it to accumulate - this seems to be the main failure mode to worry about at the moment
    • Keep on 500,50 for most testing for now as I think higher speeds are just going to crap out the cardboard
  • Investigate better belt tensioning methods as paper clearly prone to going wrong. Think high tension combined with strong motors seems to be the way forward.
    • Could try sheets of card? relatively hard to compress compared to folded cardboard. Cut up card and give it a go.
  • (/) Try patterns that failed before - Woolf? Others?
  • (/) Get higher current stepsticks if there's still an issue
    • The RepRap StepSticks are limited to 1A
    • Pololu A4988 limit is continuous 1A, maximum 2A
    • Pololu DRV8825 is continuous 1.5A, maximum 2.2A
    • Old motor rated current was 0.95A but ooznest 1703HS168A are rated 1.68A
    • So suggest Pololu DRV8825 - YES, WORKED WELL - will need to adjust for 2x number of microsteps required
    • NEED TO ADJUST CURRENT LIMIT VIA VIDEO ON https://www.pololu.com/product/2133/faqs
  • (/)See if we can do better on pen contact. Perhaps a SMALL extra weight? We seem to be losing it on lines going down/left - rubber holder works well, keep this for now
  • Next PR
    • (/) compatEtreeSubElement
    • (/) fix crash when try and draw image with px size
    • (/) fix px-to-inch conversion, it's 96 now
    • (/) SORT THIS: why are we moving to the right before we start to draw????? Something odd is happening w.r.t. the document orientation and Inkscape's idea of our starting point - fixedr see coord system below
    • (/) submit with above listed
    • close when done
  • (/) INVESTIGATE: Warning: 4xiDraw movement was limited by its physical range of motion. If everything looks right, your document may have an error with its units or scaling. Contact technical support for help!
    • Where does it come from? - turns out to be fourxidraw_conf.py PageWidthIn, PageHeightIn - these assume landscale and autorotate
    • Can I fix it? - no need, just keep autorate on

Things that just look broken at the moment, which we won't try to fix in this PR:

  • Why is some code reporting zero for both "Length of path drawn" and "Total distance moved"? Check out if something is broken there, try to fix both inputs
  • Can we have a cancel button and something to show we are in progress? I don't see how this can be done right now - Inkscape don't support cancellation: https://bugs.launchpad.net/inkscape/+bug/591435