Programmable Motorized Pin Art

Public Chat
Similar projects worth following
A programmable pin art display. It's a hackable version of the classic "Pin Art" desk toy, also known as a "pinscreen". The goal of this project is to make lots of small, low-cost linear actuators, arrange them in a grid, hook them up to a microcontroller, then see what we can do. A key element is "low cost". Even a low-resolution "10x10" display would have a 100 DC motors. At $1 to $2 a piece, it can get expensive quickly. As much of the design will be 3D printable as possible to keep costs down. Others have built similar devices, such as the inFORM display from MIT Media Lab's Tangible Media Group, but cost & complexity are a barrier to wider adoption.
With some programming, there is a ton of potential. We could make a clock or old school games like Snake. Riffing on the Hackaday Prize theme, you could use a PinThing display to safely send a real 3D high-five or fist bump to anyone around the world!

PinThing is MIT licensed.  Source code and 3D printable files available on GitHub:

  • 15 × PinThing - Threaded Rod
  • 15 × PinThing - Nut
  • 1 × PinThing - Motor Array
  • 1 × PinThing - Pin Array
  • 1 × Arduino Uno

View all 9 components

  • PinThing Demo - It works!!!!!!

    hugs06/14/2021 at 12:43 0 comments

  • Motor Test - 15 Motors! (Woohoo!)

    hugs06/14/2021 at 11:57 0 comments

    So close to done! (And the deadline!)

  • Motor Test - 8 Motors!

    hugs06/14/2021 at 11:09 0 comments

    The point of this test is to prove that the Adafruit Motor Shield is in fact stackable *and* that I can control all/any of the motors motors on either shield from my laptop.

  • Motor Test - 8 Motors!

    hugs06/14/2021 at 11:09 0 comments

    The point of this test is to prove that the Adafruit Motor Shield is in fact stackable *and* that I can control all/any of the motors motors on either shield from my laptop.

  • Motor Test - 3 Motors!

    hugs06/14/2021 at 10:01 0 comments

    Mechanical: PinThing 3x5 display
    Electronics: Arduino Uno + Adafruit Motor Shield V2
    Firmware: Standard Firmata
    Software: Node.js + Johnny-Five

    (When it's all working with 15 pins, I'll upload the demo code to GitHub.)

  • Soldered all the motors!

    hugs06/14/2021 at 08:36 0 comments

    One "fun" thing I learned while soldering all the wires is that these motors are incredibly heat sensitive. If you hold the soldering iron on the motor leads for more than a fraction of a second, you'll fry the motor. You'll know it's dead because the axle will be completely locked up and won't rotate. Thankfully, I only did this to 3 or so motors, and I had 5 extra spare motors. 😬

    Next version I'll see about making a PCB that I can directly solder the motors to. Then I can have a smaller number of ribbon cables coming off the board. So far soldering has the been the biggest pain of this project.

  • Assembly Update

    hugs06/14/2021 at 00:49 0 comments

    A quick video of how I'm using a vice to install the 3D printed leadscrews onto the PinThing pin array.

    Deadline is 12-ish hours away! Ack!!!!!!!

  • Working on a larger prototype

    hugs06/11/2021 at 22:57 0 comments

    Here's a quick(ish) video showing the latest progress on my PinThing prototypes.  Once the 15 pin version is working mechanically and electronically, I'll post the source code, the bill of materials, and the 3D printable files you'll need to make one yourself.

View all 8 project logs

Enjoy this project?



John Opsahl wrote 06/03/2021 at 20:42 point

I like it. I have considered making this type of display before, but just never followed through. Staggering each unit would allow a smaller pixel-to-pixel distance at the cost of increasing the depth of the display. It would be fun to add a low-cost slide pot for linear position control.

  Are you sure? yes | no

hugs wrote 06/14/2021 at 03:49 point

Linear position control is definitely on the roadmap. For now, I'm planning on using this cool little quadrature encoder board from Pololu, or something like it.

  Are you sure? yes | no

Michael Gardi wrote 06/02/2021 at 07:27 point

Very cool. Just when I was potentially in the market for a small cheap linear actuator your project pops up. See Would you mind sharing where you source your gear motors?

  Are you sure? yes | no

hugs wrote 06/14/2021 at 03:45 point

Cool project! Yeah, I'm kinda obsessed with low cost linear actuators. :-)

The motor I'm currently using is an "N20" DC gear motor, 6V, ~310 RPM. Lots of places sell or make them. I bought a small batch through this particular listing on AliExpress from "FIVE ELECTRONIC":

If you do a search for "N20" on AliExpress you'll find many vendors, and can probably get a lower price if you buy a large quantity.

For a US supplier, you can also get them from Pololu, but they're 3X the AliExpress price. You get them faster, though. Useful for prototyping in small quantities. 

The choice of vendors and motors (RPM, voltage, etc.) is a bit overwhelming. However, the one I picked works well enough for my needs for now.

  Are you sure? yes | no

hugs wrote 06/01/2021 at 18:54 point

Regarding 3D topo maps & contours: Yes!  So much potential for this kind of display. Regarding the density of the pixels, for now the "pixel-to-pixel" minimum distance is 12.5mm, which is based on the width of the small DC gear motors I'm using. (12mm motor width + 0.5mm tolerance.) It might be possible to go smaller than that, but then we're either buying more expensive "pager" motors... or potentially wiring our own and/or going with a different kind of mechanism completely, like a hand-wound solenoid. If they're too small, they have very little torque to lift the pins. Lots of tradeoffs in actuator selection, but for now the 12mm-wide gear motors hit a sweet spot of price vs performance (aka speed and torque).

  Are you sure? yes | no

sjm4306 wrote 06/01/2021 at 17:08 point

Now this is interesting, since the mechanism isn't just bistable you could do 3 dimensional topographical maps/contours! That'd be something to see if you can make them small enough and group many of these "pixels" together.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates