> ## Content Index
> Fetch the complete content index at: https://mfitzp.ghost.io/llms.txt
> Use this file to discover other available public pages before exploring further.

# Etch-a-Snap
- URL: https://mfitzp.ghost.io/etch-a-snap/
- Published: 2019-04-07T09:02:00.000Z
- Updated: 2026-09-02T07:48:22.000Z
- Description: The Raspberry Pi powered Etch-A-Sketch camera
- Author: Martin Fitzpatrick
- Tags: #Import 2024-03-14 08:20, #Import 2026-08-24 14:26

**Etch-A-Snap** is (probably) the worlds first **Etch-A-Sketch Camera**. Powered by a Raspberry Pi Zero (or Zero W) it snaps photos just like any other camera, but outputs them by drawing to an *Pocket Etch-A-Sketch* screen. Quite slowly.

Photos are processed down to 240x144 pixel 1-bit (black & white) line drawings using `Pillow` and `OpenCV` and then translated into plotter commands by building a network graph representation with `networkx`. The *Etch-A-Sketch* wheels are driven by two 5V stepper motors mounted into a custom 3D printed frame. The *Etch-A-Snap* is entirely portable and powered by 4xAA batteries & 3x18650 LiPo cells.

The *developing time* for a photo is approximately 15 minutes to 1 hour depending on complexity. The video below shows the Etch-A-Snap in action taking a photo.

Quick demo of the Etch-a-Snap in action.

Keep scrolling for some more examples.

## Camera Examples

These shots were taken live using the Etch-A-Snap — a single shot was taken and immediately drawn to the screen. The drawing process was captured using a timelapse camera.

[**Selfie**](https://imgur.com/o1HbUvc.mp4?ref=mfitzp.ghost.io) taken indoors against a plain background.

[**Outdoor street view**](https://imgur.com/eeu8bcH.mp4?ref=mfitzp.ghost.io), showing the Etch-A-Snap struggling a bit on building details.

[**Doraemon and a Deer**](https://www.youtube.com/watch?v=zniip20q794&ref=mfitzp.ghost.io) shows a real-time recording of a snap. The image taken with the camera [can be seen here for reference](https://imgur.com/05mpKQC?ref=mfitzp.ghost.io). In realtime you can see the initial print speed is slow as the graph is still being calculated, but then quickly increases. Print time is 6 minutes.

In early tests the *Etch-A-Snap* ran at 2 pixels per second, but now achieves a lightning fast 20 pixels per second.

## Image examples

The Etch-A-Snap can also draw a picture from any image type supported by `Pillow` using the `draw.py` utility. Using this script the Etch-A-Snap crops, resizes and processes the images the exact same way as from the camera, but you can be a bit more selective with the image and increase the chances of getting something half decent out.

[**Andre Hazes**](https://imgur.com/1oXtA1r.mp4?ref=mfitzp.ghost.io) generated from a stock photo with plain white background. This is probably the best photographic result produced, producing a pretty recognisable result.

[**Python logo**](https://i.imgur.com/tKF7QmS.mp4?ref=mfitzp.ghost.io) generated from a colour PNG. The logo is on a plain white background, leaving it completely disconnected from the frame network. Linkers are added automatically.

[**Etch-A-Sketch logo**](https://imgur.com/i0tXHtN.mp4?ref=mfitzp.ghost.io) generated from a monochrome PNG at 120x122.

[**The Queen**](https://imgur.com/wmu5kTd.mp4?ref=mfitzp.ghost.io). There is no route-optimisation (travelling salesman) at work when drawing, aside from adding weight to previously draw areas to encourage avoiding them in future. This picture of the Queen shows some serious back-tracking over the hair/top right corner. This picture was generated at 120x122.

## How does it work?

If you're interested in how the Etch-A-Snap works, or want to build one yourself, take a look at the separate parts of the write-up — [Build](https://mfitzp.ghost.io/etch-a-snap-build), [Processing](https://mfitzp.ghost.io/etch-a-snap-processing), [Drawing](https://mfitzp.ghost.io/etch-a-snap-drawing) and [Plotter](https://mfitzp.ghost.io/etch-a-snap-plotter).

The following files and resources are also available —

- The full code is [available on Github](https://github.com/mfitzp/etchasnap?ref=mfitzp.ghost.io) along with [a Jupyter notebook](https://github.com/mfitzp/etchasnap/resources/Etch-A-Snap.ipynb?ref=mfitzp.ghost.io) which details (and allows you to) experiment with the image processing and graph generation.
- You can [download the STL](https://download.martinfitzpatrick.com/etch-a-snap-3d-prints.zip?ref=mfitzp.ghost.io) files for 3D printing, or edit the model on [TinkerCad](https://www.tinkercad.com/things/13uotDFY1AL-etch-a-snap?ref=mfitzp.ghost.io) directly.
- The circuit [Fritzing file is also available](https://download.martinfitzpatrick.com/Etch-A-Snap.fzz?ref=mfitzp.ghost.io)