spink0

DIY eurorack CLK / RST generator for Ableton LINK

After Ableton released the source code /SDK for, applications and devices that use it quickly started to appear.
The pink SPINK0 is a patchwork from shaduzlabs pink-0, a CLK / RESET generator based on the Rasperry Pi Zero W. His source code is the core of this project. After a lot of tweakin, tuning & changing, a working LINK connection could be established. I then squeezed the PiZero into its new dress, consisting of a set of three PCBs that all sandwich together to form a eurorack module.
Vive la mitraillette :)

Since the setup procedure of all the tools needed, to and for the build, is not a too trivial task. And on top of that you’d also need to make some changes/tweaks to the original source files to get everything running, since some pins and HW elements have changed. So I decided to distribute the adapted source directly embedded in the working OS-image for the raspberry, all set up.
I also added some bash scripts to easily switch between different network environments.

Disclaimer:
This thingy is a v0.1.0 patchwork. so please don’t except stability over centuries. There may be a slip here or there. but it is definitively a handy and very usable toy to jam freely together with your friends!
But hey – code is opensource. maybe someone comes along and implements the MIDI out or gets encouraged to compile a preemt_rt enabled kernel for the system… or other features get added/implemented.

Best operated in closed networks, updates, backups & Co. of other devices disabled!!!

Special thanks to shaduzlabs for this awewsome code!!

There is going to be a DIY workshop to assemble it:

Saturday 3. March @ 1200
Mechatronic Art Lab Zürich
Hohlstrasse 52
8004 Zürich
Admission 170.– / please RSVP: workshop [ät] seismic.industries

 

Operation Modes

To conveniently switch between networks with the module i wrote some scripts that give the module two principal operational modes:

  • Client mode (join other WLAN’s)
  • AP mode (create a WLAN for others, manage your device)

you can switch between modes by pressing either the button of the encoder for 7s (switches to client mode) or the the RUN/STOP button for 7s (will switch to AP mode). When you initiate a change the pink-daemon will be stopped (display may go dark or fancy), all networking stuff accordingly reconfigured and then the daemon will be launched again. The switch from either mode to the other takes around 5 to 15 seconds.

AP mode
creates a Wireless network with the SSID “spink”. Password is spinkspink. The device will have the IP 10.3.141.1, you can login to your SPINK with SSH or via HTTP.
Others can join the network or you can manage credentials for client mode.
To administer the access points settings you can use raspap-webgui under http://10.3.141.1 (user: admin/ pw:secret)
Or you can add network credentials of networks to join as a client. To do open the addnet script under: http://10.3.141.1/addnet.php

Client mode
in this mode the unit acts as a WLAN client and has to have a known network reachable and its credentials stored in the wpa_supplicant.conf, otherwise it will not work correctly. You’d have to switch it back to AP mode to check and re-enter credentials for the new network to be joined.

How to find your module in Client mode
If you need to login to your module while its in client mode, lets say to compile the newest source. You have to find out the IP address it has received from the networks DHCP server. You can have a look at your computers ARP table to find out that address. In the ARP table the MAC Addresses and their according IP Addresses are listed. The Raspberry Pi foundation is big enough to have its own OUI, the MAC addresses start with b8:27:en:…….  -> find the entry with the MAC that starts so and voila -> your IP address.
To list your ARP entries, on a linux system type

arp -a

 

setup

Flash SDcard on linux / mac

I made my image from a 16Gigabyte card, but shrunk it the awesome pishrink.sh skript to 5.3G, so it should work on a 8Gig card, but i didnt test it.

First unpack the tar.gz file of the image with:

tar zxvf spink0_1_0.tar.gz

Insert the micro SDcard it into your computer, direct or via some adapter.
Open a command line interface and type:

df -h    ( on mac: "diskutil list" )

this will show you a list with all “mounted” devices, search for your card and memorize the descriptor (/dev/disk1 or the like), then unmount the card with the following command to prevent further read/write actions:

unmount /dev/yourSDcard1   ( on mac: "diskutil unmountDisk /dev/yourSDcard1" )

then you can write the image onto the SDcard with dd (this task will take 10-30min):

sudo dd bs=1m if=spink0_1_0.img of=/dev/yourSDcard conv=sync

after that you can sync/eject the disk:

sync     ( on mac: "diskutil eject /dev/yourSDcard" )
 

operate

AP mode

  1. Turn module on and let it boot, (120bpm should appear in the display after about a minute)
  2. Push the encoders button for 7s to put module into AP mode (display will flicker a bit and come back)
  3. Connect to it’s WLAN SSID (default spink / pw: spinkspink)
  4. navigate to 10.3.141.1/addnet.php
  5. Enter credentials of the network to join, check the output if everything is OK
  6. Push the run/stop button for 7s to put the module into client mode

Client mode (credentials already known)

  1. Turn module on and let it boot, (120bpm should appear in the display after about a minute)
  2. Push the run/stop button for 7s to put the module into client mode. (the module will try to connect to all already known networks sequencially)

 

Schematics

the schematics are divided into two sheets, the first sheet is the mainboard which will host all connectors, discrete circuitry and the PiZeroW. The second board is for the Userinterface, its got the encoder, pushbutton, LED’s and the ACSA02 7segments on it.
They get connected together by two 10pin 1.27mm wire-to-board connectors.

 

BOM

download the BOM here

 

Source & Image

source files, installerscipt & stuff: seismic industries github

Image download: spink0_1_0.tar.gz (2Gigabyte, 5,3Gigabyte expanded)

 

PCB / Module

buy a PCB (35.– CHF, incl. tracked shipping to anywhere):

buy a built module: (costs too much – i know :) )