

Solenoid
A warp-weighted loom, live codeable via solenoids.
- Size
- 132 × 79 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 56
- Nets
- 54
- Pads
- 186
- Tracks, vias
- 485, 12
- Pours
- 1
- Routed
- Yes
- KiCad
- KiCad 5 (file 20171130)
- Created
- 22 Jul 2019
- Updated
- 21 Mar 2022
Overview
Solenoid is an open-source printed circuit board by Kairotic, from the Kairotic/liveloom repository on GitHub. It is a 2-layer board of 132 × 79 mm with 56 parts on 54 nets, routed with 485 tracks and 12 vias.
It is built around the TIP120. Its parts include 16 resistors, 16 diodes, 16 transistors and 8 connectors.
Main components
1README
README.mdLiveloom
A warp-weighted loom, live codeable via solenoids.
lasercut.svg
This creates the shapes required to lasercut a loom from 3mm material. I used baltic birch plywood, MDF would likely do just as well.
Other things needed
- 4mm diameter metal rod
- 25mm diameter wooden rod
- Solenoids - "DC 12V 10mm Push-Pull Actuator Frame Type Electromagnet Solenoid Electric Magnet" - can be found for about £2 each. With this design, I recommend getting either 12 or 16.
- Relays - I used a board with 16 of them. "16-channel Relay Module Board 5v12v".
- Arduino (and 'jumper jerky' wire) to control the relays
- PSU for the relays
- PSU for the solenoids - This needs some power. I used "RS PRO 102W Embedded Switch Mode Power Supply SMPS, 8.5A, 12V dc". (You might need even more amps to power all your relays at once)
- Loom weights, one per thread - I recommend small plastic weighted kumihimo bobbins for this, then you can easily store the warp inside, but you can also use smallish bolts and wrap the warp around..
- Screws to attach the solenoids, I think I needed M2.5 screws for mine.
- wire to connect up the solenoids etc. This needs to be fairly heavy duty, to take the amps!
- diodes to protect everything against kickback from the solenoids. I still need to add these myself!
Rough instructions
My plywood was bendier in one direction - basically if there is a grain have it go horizontal otherwise E1/E2 will bend too much with the weight of the solenoids.
A* and B* are the main legs and supports. D0 slots into the support and is where I screw my relay switch board.
Below you see 'lollypop stick' heddles. Each has a 'mouth', two of the things that look like capital As slot into each 'mouth', creating a nice strike area for the solenoid. Half of the heddles have bends, so the solenoids can be on two axes (doubling the number you can have in a given amount of space).
The circles above the heddles are wooden washers to space the lollypop sticks out so they line up with the solenoids, I woodglue one to each heddle. These are then threaded onto a 4mm metal rod. I add a small metal washer or two to line everything up with the solenoids.
E1 and E2 are what the solenoids are screwed on to.
C* are assembled with wood glue, and then slotted into the front of the legs A4, with E1 and E2 and the 4mm rod slotted in using the provided holes.
Contact alex@slab.org with any questions - I'd be happy offer advice to get you up and running.
WWL.hs
An experimental haskell library for live coding the loom.
Start ghci, and then initialise the library like this (replacing with the path to your arduino's USB connection):
:load WWL
(set, next, undo, again, show) <- startFs "/dev/serial/by-id/usb-Arduino__www.arduino.cc__0043_5573731323135141A191-if00"Then code a structure like this:
set $ every 2 rev $ twill 1 $ cycle [up,down,down,up]And run next to send the next line to the loom, again to send it again, or undo to go back.
Parts
56| Qty | Value | Footprint | References |
|---|---|---|---|
| 16 | 1N4007 | Diode_THT:D_DO-41_SOD81_P10.16mm_Horizontal | D1, D2, D3, D4, D5, D6, D7, D8, D9, D10, D11, D12, D13, D14, D15, D16 |
| 16 | 2.2K | Resistor_THT:R_Axial_DIN0309_L9.0mm_D3.2mm_P12.70mm_Horizontal | R1, R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R13, R14, R15, R16 |
| 16 | TIP120 | Package_TO_SOT_THT:TO-220-3_Vertical | Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10, Q11, Q12, Q13, Q14, Q15, Q16 |
| 4 | Conn_01x01 | MountingHole:MountingHole_2.2mm_M2_Pad_Via | J5, J6, J7, J8 |
| 2 | Arduino | Connector_PinHeader_2.54mm:PinHeader_2x09_P2.54mm_Vertical | J1, J2 |
| 2 | Conn_01x01_Male | Connector_Pin:Pin_D1.0mm_L10.0mm | J3, J4 |
Questions
How big is the Solenoid PCB?
It measures 132 × 79 mm and has 2 copper layers, 1.6 mm thick.
What parts does the Solenoid use?
56 parts, built around the TIP120. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the Solenoid KiCad files?
From the Kairotic/liveloom repository on GitHub, at the commit this page was made from: the board is solenoid/solenoid.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Can I use the Solenoid design in my own project?
Its repository states no licence, so its author keeps all rights: ask Kairotic before reusing the design.
Similar boards
- 2 layers364.4 × 167.3 mm

- 2 layers148.8 × 132.2 mm

Usbflashprog
robsonsmartins/usbflashprog
A memory device programmer (Flash/EPROM/E2PROM) board and software, connected to PC by USB port.
125 parts36 - 2 layers489.6 × 170.7 mm

Mission control
dcpedit/mission-control
Modern replacement PCB for the IBM Model M 122
286 parts31CC-BY-4.0 - 2 layers168 × 123 mm

V2 - 2
RudgeLab/FluoPi
Code and teaching materials for UC/BackyardBrains raspberry pi "macro" scope.
131 parts26 - 2 layers

Catozap
jones139/catocam
Uses a custom trained YoloV8 model on a Raspberry Pi to Detect Cats in CCTV images and Unleash a Cat Deterrent
3 parts18GPL-3.0 - 2 layers32.5 × 21.2 mm

Taptap
dcpedit/taptap
TapTap is a solenoid breakout board for those who are interested in adding a solenoid to their existing project. All you need are the following components, and an extra data pin on your microcontroller.
9 parts13CC-BY-4.0 - 2 layers323.8 × 169.8 mm

- 2 layers57.1 × 102.9 mm

Synthwave
alexose/synthwave
An open-source experiment in carbon removal based on the electrochemical pH swing of seawater.
70 parts10CERN-OHL-P-2.0