There are some similar projects on the interwebs, such as Knitic or, of course, ladyada's electro-knit.
The main drawback behind the existing projects is that they make use of the 930/40 series of the knitting machine - which are still pretty expensive. AYAB uses the older KH-910 model, which is cheaper than the other models, mainly because it features an error-prone scanner-mechanism for reading the image data (but we don't care because we won't use the scanner anyway…). The 930/940 series already use some kind of digital programming, which opens even more ways to hack them, other than what this project did.
Normally, the KH-910 is programmed using semi-transparent picture cards which are scanned by the machine line by line. Using this information, the machine sets the needles accordingly to achieve the knitting of the picture shown on the picture card. Probably due to memory restrictions, the machine only supports pictures of max. 60 needles (= pixel) width, although the machine has a total width of 200 needles. At least, it is possible to “copy and paste” the scanned image multiple times to achieve a banner-like usage of the scanned data (useful for norwegian patterns).
With AYAB, you can just supply the knitting machine with an image from your computer. The restriction of 60 pixel image width has been abolished due to the improved control. You can just knit an image with up to 200 pixel width.
The control of the needles and needed identification of the current position and movement of the knitting carriage is substituted by a common Arduino microntroller, combined with a custom developed shield. You need to open one part of your knitting machine (warranty is void anyway…) and simply substitute the existing control board with the AYAB controller. Connect the Arduino with your computer and start knitting!
The API to the Arduino is designed in a straight forward way, so the control of the machine can be conducted by every piece of software which can access the serial port of your computer (or raspberry pi, or …) The API consists only of three commands (request information about the controller firmware, request the start of a new picture, send line[x] to the controller when the controller requests it).
Due to the hardware constraints, it is possible to knit images with 1 bit color depth and a maximum width of 200 pixel. The height of the picture is only constrained by the amount of wool and power in your arms you have.
For test and demonstration purposes we provide two python scripts which enable you to check if the hardware (sensors, needle coils) works correctly and to knit images just from the terminal/commandline. But of course it is also possible to do some more sophisticated things like a GUI software with integrated image preprocessing.