Uuna Tek iDraw H SE/A3 Review: Effortless Precision for Artistic Expression

Exploring the capabilities and minor quirks of this pre-assembled, Python-compatible Core XY plotter

Qlem Plots
9 min readOct 20, 2024

Introduction

For the last three weeks, I’ve been playing around with Uuna Tek’s latest XY pen plotting machine, their iDraw H SE/A3. This particular model is marketed and aimed at artists, and there are some key differences between this model and the others in their line up. The spoiler for this review is the machine has been a true delight, with only minor points which could be improved.

To give some info on my perspective in this review: this is the first XY Pen Plotter that I have used — in many ways I am part of the target audience for this machine. I primarily want to use it for creating algorithmic art, and I am certainly the type of person glad to not have to anxiously assembly a $1000 machine, as it comes fully pre-assembled. The main reason this particular model attracted me however, was being assured I could communicate with the machine using a Python API. I’ll dedicate a whole section to reviewing this experience.

Finally for full disclosure, Uuna Tek have gifted me this machine, in return for this detailed review.

Shipping & Packaging

There was about a week of lead time before the package was shipped from Hong Kong. Once it was shipped, it arrived in just five days to London, UK. The packaging was adequate, with the machine comprehensively protected by styrofoam, and the plotter arrived in immaculate condition.

Setting up the Machine & First Impressions

One of the selling points of this machine is that it arrives pre-assembled, and so the set up stage was literally just placing it on my desk, and plugging it into power and my computer. Done, ✓.

The machine, weighing in at around 6kg, is rock solid and sturdy. The build quality is great, with aluminium and steel parts, and magnetic baseplate. I always enjoy the aesthetic appearance of these machines, however the iDraw H SE/A3 is on another level. Because Uuna Tek has used CoreXY for the motion, they have minimised the moving parts, and the design has a beautiful symmetry to it (more later).

Note that the USB cable provided is USB mini B to USB A, so if your computer like mine only has USB C ports, you will need an adaptor. I personally made sure to get one from a trustworthy brand, as I have the sense the motherboard may not be too happy with the kind of electrical spikes that could come with a cheap adaptor.

CoreXY Pen Plotting

One of the best things about this plotter its use of CoreXY for motion. This is wonderful. Typically on pen plotters one stepper motor handles the x-direction motion, and a second motor (located on the moving gantry) handles the y-direction motion. Instead with the CoreXY approach, one stepper motor affects diagonal motion along e.g. the NW->SE direction, and the other along the NE->SW direction. In this design, both of the stepper motors are rigidly fixed at the top of the printer, with short connections to the motherboard that are neatly tucked away under the baseplate. Their symmetrical placement is aesthetically pleasing, and intuitively suggests a more balanced operation.

CoreXY motion is a little hard to get your head around, and you don’t need to understand it. From the software side of things there is no difference. On the hardware side of things though, it has enabled Uuna Tek to make some serious design improvements in the iDraw H SE/A3. Here are two advantages:

  1. Reduced inertia: This is the main kinematic advantage of CoreXY. With standard cartesian motion, one of the (heavy) stepper motors is attached to the moving gantry. This adds mass to the part of the machine which is moving, and therefore increases the momentum associated with any given motion. With CoreXY, the stepper motors are both fixed to the baseplate, and contribute no inertia to the motion. This essentially means a CoreXY pen plotter is much more nimble in its motion. It reduces backlash, enables faster accelerations and direction changes, and improves plot accuracy and stability.
  2. Better cable management and longevity: Because the stepper motors are now fixed, the only cable which is subject to any motion is the cable controlling the pen-lift servo. This also has two benefits. Firstly it means the days of stepper motor cables getting snagged and caught on the frame (and ruining a drawing) are now completely gone. I have never had this issue with this machine. The second benefit here is that since the stepper motor cables are never moving, wear and tear is reduced, which ultimately increases the longevity of cables.
Image of the Uuna Tek iDraw H SE/A3. Note the clean elegant design, symmetry in stepper motor placement, and the well thought out cable management.

Plotting with Python

One of the selling points of this machine is its compatibility with a Python API (as well as a CLI — command line interface). Although printing from SVGs is great, I prefer the hands on interactive control of the machine. It means the plot data does not have to be static. Want your plot to be influenced by some external sensor data which may change throughout the plotting process? No problem with this API.

The iDraw API is essentially a re-skinned version of the AxiDraw Python module. You will have to change a few settings in the configuration file (details at the end of this review), but once that is done, the API works perfectly. Here is the link to the documentation of the AxiDraw module, to give you an idea of what is possible.

Once you’ve written code to generate the artwork, it is really very simple to send commands to the plotter. To give you a flavour, this code block shows the basic operation as the plotter is programmed here to draw a circle.

from pyaxidraw import axidraw
import math

ad = axidraw.Axidraw() # Initialize class
ad.interactive() # Enter interactive mode
ad.options.units = 2 # Set working units to mm
if not ad.connect(): # Open serial port to A3 H/SE
quit()

x_cen, y_cen = [100, 100]
radius = 50
n_steps = 100
da = 2*math.pi / n_steps
path = []
for i in range(n_steps+1):
path.append([x_cen+radius*math.cos(i*da), y_cen+radius*math.sin(i*da)])
ad.draw_path(path)

In the interest of disclosure, I am no software developer, but I am a little bit nerdy and have been working on and off with Python for many years. I have found the Python API to be very flexible for working with. You can do fun things like adjust the pen-height for different elements of the image. I also find Python to be the only option if I want to be more experimental and work with paints for example.

This approach is slightly more hands-on. For example if your plot is going to be complicated, you will need to write some form of path optimisation so the plot doesn’t take too long. (For the nerdy among us, you will have to approximate a solution to the travelling salesman problem for the plot — I am for now just using a nearest neighbour approach, which is not perfect, but does a reasonable job). I also recommend writing a basic GUI with some manual control options, to make life easier. Here’s my work in progress, strung together with tkinter, which lets me on the fly change pen-height, and do useful things like resize the generated paths, centre them, etc.

Basic Python GUI for working with the plotter. I worked with tkinter but will likely switch to pyglet soon for the better preview rendering options. Watch this space for updates

Example Plots

Example 1: simple algorithmic tree, plotted on A3 with a brush-tip pen, varying pen height as you move further out along the tree.
Example 2: A5 watercolour. Using python the plotter can easily be programmed to visit a paint well, and pick up paint dependent on the length of a path.
Example 3: A3 classic micro rollerball pen image
Example 4: 20,000 stroke multi-colour pen drawing on 30×30 cm paper.

Room for Improvement

One of the things I’d been really looking forward to, is dynamically adjusting the pen-height. With certain tools such as pencils, brush pens, or paintbrushes, this can lead to quite expressive effects. Unfortunately however, out of the box, the pen-height across the page is not entirely uniform, presenting a variance in z-height of around ±0.15 mm. See the image example 5, showing pronounced differences in contact height with the pen.

Example 5: A brush-grazing plot example. The design here was a uniform pattern of overlapping circles across the whole page, but perhaps due to imperfections in the flatness of the baseplate, the brush contact is not uniform across the page.

I got in touch with Uuna Tek about this, and we agree it is due to slight bends in the baseplate, which they suggested I try to level out manually, with force. In image examples 6, you can see the result of three attempts at flattening out the baseplate. There is a marked improvement, though how stable it remains over time is yet to be seen. They also communicated they will attempt to improve the packaging to prevent such issues in the future.

Example 6: The results of attempting to flatten the drawing surface through force. The end result is near perfect, but whether the calibrated flatness remains stable is yet to be seen.

If brushwork which is dependent on accurate z-height is part of your practice, you may need to similarly level the baseplate. The issue does seem to be with the baseplate rather than the plotter rails. If I need it, my next step will be to get a thin marble chopping board, and see if that placed on the current baseplate may be flatter. I should be clear, this is not a problem at all when plotting with pens, as the plotter exerts enough downward force to ensure they are always in contact with the paper, allowing for uniform lines across the entire A3 range.

One of the features of this machine is the custom basement markings, with various paper sizes marked, and a 1cm grid. This is useful, particularly for example when it came to working with paint, and I need to know the coordinates of the location of each colour well, or the water. However I wish the axes for the grid was written outside of the A3 area, as once I have put down a sheet of paper, all of the useful markings are covered up. There is space for them outside this area, so maybe this is a change which would be easy to implement.

Overall Experience & Conclusion

The Uuna Tek iDraw H SE/A3 has consistently impressed me throughout my three weeks of testing. Its robust construction, thoughtful design, and remarkable ease of use make it an outstanding choice for artists, designers, and makers seeking a versatile and capable pen plotter. The pre-assembled nature and good documentation ensure a smooth experience, allowing for quick creative exploration.

The advanced CoreXY kinematics, a feature rarely seen in commercially available plotters, contributes significantly to the iDraw H SE/A3’s impressive performance. It delivers swift, accurate, and surprisingly quiet operation. Further, the integrated Python API significantly expands the plotter’s potential, allowing users to craft dynamically generated plots, incorporate sensor data, and to use other advanced generative techniques.

If you are primarily focused on pencil or brush/brush-tip pen work, you may find the z-height issues frustrating when it comes to high precision work. For pen-based plotting the iDraw H SE/A3 performs flawlessly, achieving consistent line quality across the entire A3 area.

Recommendation

The iDraw H SE/A3 represents a significant advance in accessible and affordable pen plotting technology. Its unique combination of CoreXY precision, Python API flexibility, and user-friendly design sets it apart from the competition. I wholeheartedly recommend this machine to anyone seeking a reliable, high-performance plotter, particularly those who value a seamless out-of-the-box experience and the freedom to explore custom scripting and generative art.

Mini Python set-up guide

For setting up the Python API, follow the installation instructions https://axidraw.com/doc/py_api/, or following Uuna Tek’s video here https://www.youtube.com/watch?v=uLNCTl9n0Ao. You’ll have to change some of the parameters in the axidraw_conf.py file. It took a bit of digging after running a terminal ‘which python3’ command, but for me on Mac this meant navigating to:

/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/axidrawinternal/

These are the parameters which are changed in my conf file, note the pen height options are reversed from the AxiDraw defaults.

model = 2 # AxiDraw Model (1-6).
pen_pos_up = 60 # Height of pen when raised (0-100). Default 60
pen_pos_down = 30 # Height of pen when lowered (0-100). Default 30py

I do note here as well, that Uuna Tek were very responsive via email for any technical queries which I had.

--

--

Qlem Plots
0 Followers

Quantum Physicist exploring generative art