Building a Zynthian Box using an official Kit v2

From ZynthianWiki
Jump to navigation Jump to search

1 Introduction

This tutorial is mainly intended for those who are building a Zynthian Box using one of the official kits, that i offer here:

Zynthian Shop

Specifically, the instructions are for the assembly of kits v2 (version 2), those using the All-In-One circuit and the PiScreen 3.5' display. If you have an older kit v1, based in the 2in1 circuit and the PiTFT 2.8' display, you better should read this tutorial.

IMG 1459.JPG

Anyway, the instructions are quite detailed and can be used as inspiration for building a custom Zynthian Box from scratch. Of course, you will have to be creative if you want to do it in that way ;-)

2 Bill of Materials

3 Some definitions

3.1 Zynthian

It's an open project with the goal of creating an Open Synth Platform based in Free Software and Open Hardware Specifications & Designs (when available). It's a community-driven project. If you are here, probably you already know all this ;-)

3.2 Zynthian Software

The Zynthian Software stack consist of:

+ GNU Linux Operating System: Raspbian Jessie (Minibian is used in the last SD images)
+ Jack Audio Daemon
+ MOD-HOST + MOD-UI software, from ModDevices (github repositories)
+ A collection of standalone Synth Engines & LV2 Plugins (see Supported Synth Engines & Plugins)
+ Zynthian User Interface (github repository)

All the software used by Zynthian is Free Software (free as in freedom, not as in free beer) and it's covered by the GPL license or similar. If you don't know what i'm talking about, please, take a look to this:

What is Free Software?

The easiest way of getting the software is downloading the last official SD image from here:

Download Zynthian "Gorgona Omega" SD-image, configured for Kits v2

It's a 8GB compressed image file (plenty of soundfonts) compiled for Raspberry Pi 3. (Please, keep feeding the torrent after downloading!)

These SD card images include all the Zynthian software, properly configured for working with the official kits. Completely ready to use. Plug and play!

After downloading the SD-image, you have to write it to a SDcard. You need a SD card with a minimum size of 16GB, although you can use a bigger one if you want.

If you don't know how to do it, you can use Etcher (free software works on Mac, Windows or Linux) to flash the image onto the SDcard. Or do it manually! There is a really good manual for this at this link.

Finally, if you like, you can build your own SD image following these instructions:

Building the SD Image using the Setup Script

3.3 Zynthian Box

A Zynthian Box is a hardware device, a small digital computer designed to run the Zynthian Software. Currently it's based in the Raspberry Pi platform, but it could be easily adapted to other computer platforms.

This is a sketch with the main blocks of the official Zynthian Box:

Zynthian hardware scheme.png

In the project's repositories you will find all the electric schemes, PCB specifications, Herber files, etc. to build your own Zynthian Box from scratch:

- Zynthian Hardware Repository
- Zynthian Case Repository

The official version is the canonical reference. Of course, you don't have to build the official version. You can build your customized Zynthian Box modifying and improving what you want. If you do so, some feedback would be very appreciated ;-)

3.4 Zynthian Kit

A Zynthian Kit is a set of specific and generic electronic modules designed or picked for building a Zynthian Box. This tutorial refers to the official Zynthian Kit v2, that is composed of these specific parts:

+ 4 x Controller Modules (rotary encoder + switch)
+ 1 x All-In-One Module (GPIO expander + MIDI IN/OUT/THRU)
+ 1 x Main ribbon bus cable
+ Wiring Kit with JST connectors

IMG 1286.JPG

and these generic parts:

+ 1 x Raspberry Pi 2/3
+ 1 x Hifiberry DAC+ (also pro & lite)
+ 1 x PiScreen 3.5' Touch-Display

IMG 1299.JPG


Of course, other arrangements and combinations are possible. You can easily configure your hardware using the Webconf Tool, or if it doesn't work, tweaking from the command line.

You can take a look to some of the alternate builds made by some community members:

- A build with variations, by vagnscott
- Another Wiring, by Imager
- Success Cases

3.5 Zynthian Case

It's the enclosure used to put on all the parts. Again, this tutorial refers to the official Zynthian Aluminum Case v2, that is designed to be used in conjunction with the official Kit v2.

This case is available as a kit, including all the needed connectors, knobs, bolts & nuts:

IMG 4752.JPG

If you intend to use a different soundcard or display, probably it won't fit the case and you will have to modify it. Of course, you can build your own customized case. Here you can find some examples from the community:

- Zynthian Enclosures
- Success Cases

4 Building the Zynthian Kit parts

4.1 Prerequisites

Building your own Zynthian Box is not very difficult, but you will need all your attention, some basic tools and a few skills. Read the instructions and observe the detailed photos carefully. If you get in trouble you can ask the community:

https://discourse.zynthian.org

4.1.1 Required Skills

For building the hardware you should have the following basic competences:

+ Soldering
+ Basic understanding of reading basic electronic circuit diagrams
+ Enjoyment of work with electronic hardware and parts

If you have not soldered before, you should read a good soldering tutorial, or perhaps you would prefer the Soldering is Easy comic book by MightOhm.

4.1.2 Tools

And this is the list of required and recommended tools:

+ Soldering iron
+ Tin-solder
+ Wire-cutter
+ Small Plier
+ Screw-drivers Philips
+ Wrench, for potentiometer nuts (recommended)
+ PCB holder for soldering (very recommended!)
+ Small iron brush (very recommended!)
+ Magnifiying glass (recommended)
+ A vice (recommended)
+ A hand saw for metal (recommended)
+ Multimeter (recommended!)

4.2 Some general recommendations

1. Be careful to protect the components from electrostatic discharge. This is most critical for the ICs and the diodes. Be careful with your fingers. Your body can hold a good amount of static electric charge. Under some circumstances that charge can be drained through some of the components that you are handling and this could break the component. Try to hold the PCBs by the borders and discharge your body frequently touching some "ground" with your fingers.

2. Before soldering, please, check that you are soldering in the right side of PCB, also that components orientation is correct (ICs, diode)

3. When soldering, always avoid overheating. Electronic components doesn't like overheat! This is specially important when soldering the big connector in the HifiBerry soundcard. If you overheat the circuit, probably you will break some electronic component and you will end with a dead board. I recommend to use a fan while soldering. If not, you can use your mouth ;-) Also, don't solder the contacts in order. It's better to jump from one to another in the oposite corner. If you are not sure of your soldering skills, please, take your time and do some practice with inexpensive components and prototyping board.

4. After finishig the soldering, brush smoothly all the contacts. You may use a small iron brush. After that, blow over the circuit to remove any remaining tin.

5. Inspect visually all the soldered contacts. You could use a magnifying glass for verifying that every soldered pin looks good. If you are not sure, perhaps you could add more tin or re-solder the pin. Also, you could use a multimeter for testing the dubious contacts.

6. And of course, double-check everything! Assembling and wiring process are prone to errors. Don't be too confident ;-) Re-check component's orientation (ICs and diode), wiring, etc.

4.3 Assembling the Controller Modules

The controller module kit is composed of:

+ 4 x controller PCBs
+ 4 x rotary encoders with switch (PEC11R-4215K-S0024)
+ 4 x ceramic capacitor 100nF (C1)
+ 8 x ceramic capacitor 10nF (c2, c3)
+ 4 x 4-pin JST male-angle connector 

IMG 4728.JPG

This components are used to build the 4 controller modules that form the input side of the physical Zynthian User Interface. Each controller embed an incremental rotary encoder and a switch, so 4 wires (A,B,SW,GND) are needed for connecting it.

IMG 4731.JPG

These are the steps for building one module:

0. Be sure that you have read and understdood these recommendations.
1. Bend the encoder's securing tabs to 75º, so you can insert it in the upside of the PCB (the labeled side!). Please, be very careful when bending the tabs as the encoder case is quite fragil and could be deformed. I recommend to use a small plier and not reaching to 90º.
2. Place the 100nF capacitor in C1 position (the most right!). This is for debouncing the push switch (SW).
3. Place the 2 x 10nF capacitors in C2 & C3 positions. These are for debouncing the rotary encoder contacts (A,B).
3. Solder the encoder and capacitors carefully.
4. Place the JST connector in the downside of the PCB, with the angle pins facing inwards (look the photo!)
5. Solder the JST connector carefully.
7. Use the plier to close the encoder's tabs again, trying to "catch" the PCB.

IMG 4781.JPG

You have to build 4 controller modules, so you to have to repeat the steps 4 times.

4.4 Assembling the All-In-One Module

The All-In-One module kit is composed of:

+ 1 x All-In-One PCB
+ 1 x GPIO-expander MCP23017 => 28-pin IC
+ 3 x opto-coupler H11L1 (OC1,OC2,OC3) => 6-pin IC
+ 3 x diode 1N4148 (D1,D3,D4)
+ 1 x diode 1N5819 (D2)
+ 3 x resistor 1K (R3,R4,R9) => brown-black-red (*)
+ 1 x resistor 10K (R10) => brown-black-orange (*)
+ 1 x resistor 100 (R1) => brown-black-brown (*)
+ 2 x resistor 4K7 (R5,R7) => yellow-purple-red (*)
+ 3 x resistor 470 (R2,R6,R8) => yellow-purple-brown (*)
+ 4 x ceramic capacitor 100nF (C1,C2,C3,C4)
+ 7 x 4-pin JST male connector
+ 1 x 40-pin-double-row male connector

(*) Read from left to right with the tolerance ring (gold or silver) on the right.

IMG 4726.JPG


These are the steps for building the All-In-One module:

0. Be sure that you have read and understood these recommendations.
1. Place the passive components (resistors & capacitors) in the upside of the PCB (the labeled side!).
2. Solder the components carefully. Always avoid overheating!
3. Place the ICs and diodes in the upside of the PCB (the labeled side!). Put attention to the orientation of these components!!
4. Solder the components carefully. Always avoid overheating! (*)
5. Place the connectors in the upside of the PCB (the labeled side!). 
6. Solder the components carefully. Always avoid overheating! (*)

(*) You could use some tape for fixing the components while soldering, specially for ICs and connectors.

IMG 1251.JPG

IMG 1252.JPG

IMG 1277.JPG

4.5 Tweaking the HifiBerry DAC+ soundcard

If you are using the HifiBerry DAC+ soundcard (also lite & pro versions), you should add 2 extra connectors to the board:

+ 40 row-pin GPIO male connector, for connecting the main ribbon bus cable
+ 3 pin header connector, for connecting the extra audio line-out Jack connectors

Both connectors must be placed on the top side of the board, so you should solder the contacts on the bottom side.

WARNING! Soldering the big 40-pin connector can be difficult if you don't have enough practice. Please, before starting be sure that you have read and understood these recommendations.

IMG 1369.JPG

IMG 1370.JPG

4.6 Tweaking the OzzMaker PiScreen 3.5' touch-display

The standard OzzMaker PiScreen 3.5 'touch-display have 2 connectors: a female connector ready for connecting the display as a hat and a male connector placed in the side. The official aluminum case and the ribbon cable are designed for the side male connector. The female connector can be annoying and should be removed for better closing the case.

If you got your PiScreen from a "Bundle-All" kit, you probably don't have this annoying female connector, so you are lucky and don't need to do anything here. If you have it, then take the saw and remove the connector carefully.

4.7 Other Soundcards and Displays

If you are using a different soundcard or display, you'll have to see the best way to integrate it. If you do so, please, don't forget to give good feedbak in the forum or here, in the wiki.

In the forum you can see what other users have done, and of course, don't doubt to ask whatever you want!

https://discourse.zynthian.org/c/building-zynthian

4.8 Building the MIDI-IN/OUT/THRU connectors

Before mounting the MIDI-IN/OUT/THRU connectors into the case we will solder the needed wires. Doing it in that way is rather more comfortable than trying to solder inside the case with all the wiring mess.

If you want, you can protect the contacts using heat-shrink sleeve (the red sleeve pieces in the photo). In that case, remember to insert the sleeve pieces before soldering ;-)

IMG 4777.JPG

IMG 1276.JPG


Depending of your case version, you will need to build 2 or 3 MIDI connectors.

4.9 Building the JACK Audio-Out connectors

In the same way, before mounting the Jack connectors into the case we will solder the needed wires. You can use heat-shrink sleeve too.

IMG 4774.JPG

IMG 1272.JPG

5 Case Mounting

5.1 Assemble the Main Computing Block

The main computing block is composed by the RBPi and the HifiBerry soundcard, and shouold be assembled using the next set of separator & bolts:

IMG 1293.JPG

For easier assembling, you should follow the next steps:

1. fix the 2x4 separators to the RBPi. The bigger one must be on top and the smaller one on bottom.
2. insert the Hifiberry soundcard in the RBPi. 
3. screw the 4 bolts on top of the HifiBerry.

IMG 1353.JPG

IMG 1348.JPG

IMG 1351.JPG

5.2 Secure the Main Computing Block

After assembling the main computing block, you should secure it to the case. Use 4 black M2.5 bolts (see photo above).

IMG 1314.JPG

5.3 Secure the All-In-One module

Secure the All-In-One module to the case using 4 x separators and 8 x M2.5 bolts.

IMG 1294.JPG

IMG 1356.JPG

5.4 Secure the Jack connectors

Put the rings on the outer side of the case to avoid damaging the case surface when you tighten the nuts.

IMG 1371.JPG

5.5 Secure the MIDI-IN/OUT/THRU connectors

Just insert the connector with the JST-wire from the out-side of the case and the nut from the innerside. A pair of pliers can be useful for tighten.

IMG 1383.JPG


5.6 Mount the MIDI activity LEDS

Insert the 3 LEDS in the case holes. You may want to push the LEDs with something more rigid than your finger. The screwdriver's handle could be fine.

IMG 2223.JPG IMG 2224.JPG

When it's done, you have to solder the 2 LED wires (red/black) with the 2 spare wires on the MIDI JST harness (white/yellow). Polarity is important, so don't cross the wires:

* LED's red wire => JST's white wire
* LED's black wire => JST's yellow wire

After soldering all the 3 LEDs, you may want to protect the connection with heat shrink sleeve, adhesive tape or hot melt glue.

IMG 2226.JPG

5.7 Secure the Display

For fixing the display to the case cover, you have to use this set:

IMG 1295.JPG

It's composed of 4 bolts, 4 nuts and 4 nylon separators. Before fixing the screen, don't forget to remove the protective plastic sheet.

IMG 1387.JPG

5.8 Secure the Controllers

Fix the 4 controller modules to the case cover using the 4 bolts and washers attached to every rotary encoder.

IMPORTANT: For avoiding problems while closing the case, i recommend to mount the controller modules with the connectors facing one another. See the photo below.

IMG 1393.JPG

IMG 1401.JPG

5.9 Insert the knobs

You should insert the knobs into the encoders before closing the case. This will avoid forcing the encoders too much as otherwise, you could break them. Follow these simple steps and you wouldn't have any problem:

* moisten with water or saliva the encoder stem and the knob hole
* press the encoder PCB with the finger from the rear side while pushing the knob from the front side until is completely inserted

5.10 Stick the rubber feet

Zynthian mounting case bottom.jpg

6 Connecting everything

The new Zynthian Kit 2 is designed to use JST connectors, so connecting everything is really straight-forward:

  • Connect the Main Ribbon Bus cable to the RBPi's 40-pin header and also to the All-In-One module

IMG 4741.JPG

IMG 1474.JPG

  • Connect the 4 double JST cables to the 4 controller connectors on the All-In-One module (CTRL1, CTRL2, CTRL3, CTRL4)

IMG 4744.JPG

IMG 1479.JPG

  • Connect the 2 JST cables from the MIDI connectors to the MIDI-IN and the MIDI-OUT/THRU connectors on the All-In-One module. Note that currently only 2 connectors are available in the official aluminum case, so you have to choose what do you prefer: MIDI-OUT or MIDI-THRU ;-)

IMG 1465.JPG

At this point, your Zynthian Box should look something like this:

IMG 1409.JPG

  • Connect the 4 x Controller Modules following the right numbering: from top to bottom and from left to right.

Zynthian controllers.png

IMG 1412.JPG

  • Connect the Jack connector to the auxiliar audio-out connector on the HifiBerry soundcard. It's the 3-pin JST connector that you soldered before:

IMG 1489.JPG

6.1 Connect the Display

And finally, connect the ribbon's 26-pin connector to the Display's male side connector. Put attention to the orientation. The red wire should be the pin 1 that as marked in the display's PCB surface.

IMG 1501.JPG

7 Testing your Zynthian Box

And that's all. Your Zynthian Box is almost ready to boot. I recommend that you double-check everything before trying to boot.

7.1 Double-check part's assembling and wiring

It's easy to make a mistake while assembling the parts or connecting the wires. Some errors can be dangerous for the electronic components (short-circuits, some specific bad-wiring combinations) so it's better to be sure that everything is correctly assembled and connected.

7.2 First Boot

When you are pretty sure that everything is in its place, it's time to boot by first time, so:

1. Insert the SD-card with the zynthian image ready to run. If you don't have one yet, read this.
2. Plug the mini-usb power conector. A good 5V micro-usb charger is recommended (> 2 Amp).

If you are using a SD image pre-configured for the Zynthian Kits v2, these are the stages that you should see while booting:

1. Initially, the display must go white
2. After 5-10 seconds, it will show the Zynthian splash screen
3. After 1-2 seconds, it will go black
4. If you are using a fresh zynthian image and it's the first boot, the stages 2 and 3 will be repeated
5. After 5-10 seconds, the zynthian UI will be shown

If you get the Zynthian UI, congratulations!!! You are really close to get it!!

IMG 1562.JPG

If not, bad luck! Probably you made some mistake during the mounting process. You have to locate and solve the problem(s).

If you are using an older SD image that is not pre-configure for the Kit v2, then you should configure your Zynthian Box's hardware using the webconf tool. These are the adjustments you have to do:

  • Display: PiScreen 3.5 (v2)
  • Audio: HifiBerry DAC+
  • Wiring: MCP23017_ENCODERS
  • Style: FontSize = 14

7.3 Test the Controllers

If you get into the Zynthian UI, then you should be in the 'Layer Selection' screen. Let's start testing that your controllers are working OK.

1. Push 'select' to create a new layer. You should get into the 'Engine Selection' screen. 

IMG 1563.JPG

If it doesn't works, try pushing the 'snapshot' controller. Perhaps you have cross-wired the 3 & 4 controllers and in that case, you have to fix the wiring. If it doesn't work, try pushing the other two controllers and rotating the controllers. If something happens, most probably you have reversed the wiring order when connecting the controllers. Double-check the wiring again.

2. Rotate the 'SELECT' controller to select the engine you want to start for the new layer. 

The selector must go down when rotating clockwise and go up when rotating counterclockwise. If the rotation sense is reversed, you should check the wiring.

3. Select the ZynAddSubFX engine, select channel #1, bank and preset. You should get into the 'Instrument Control' screen.

IMG 1568.JPG

4. Rotate every control to test that it works and that the rotation sense is correct. 

If some controller doesn't work correctly, check the wiring again. You could try to figure what is happening by analizing the observed behaviour.

5. Push 'BACK'. You should go back to the 'Preset Selection' screen. 
6. Push 'Layer' again to return to the 'Layer Selection' screen. Try to create another layer following the same procedure.

IMG 1584.JPG

7. From the "Instrument Control" screen, push 'Snapshot' to get into the 'Load Snapshot' screen. Push 'Snapshot' again to 'Save Snapshot'. Push 'BACK' to return to the 'Instrument Control' screen.

If everything is working OK, then you should read the User's Guide and start enjoying your Zynthian Box, but before that ...

7.4 Test the Audio Output

1. Connect the audio output (RCA or Jack connectors) to your amplifier or auto-amplified speakers.
2. Boot your Zynthian. You should be in the initial 'Layer Selection' screen.
3. Push BACK and you will get into the 'Admin' screen.
4. Select 'Audio Test' option and push 'SELECT'. You should hear the test audio-track: a nice afrocuban stuff ;-)
5. Push 'BACK' to stop the playing, and 'BACK' again to return to the "Layer Selection' screen.

If you hear nothing, please, check the amplifier, speakers, cabling, gain, volume, etc. If nothing works, you have to locate and solve the problem(s).

7.5 Test the MIDI subsystem

1. Connect the audio output (RCA or Jack connector) to your amplifier or auto-amplified speakers.
2. Boot your Zynthian, select FluidSynth engine, channel #1 and 'FluidR3 GM' bank. Select some instrument.
3. You could add more layers for completing the band ;-)
3. Push BACK, holding the switch pushed more than 2 seconds. You should get into the 'Admin' screen.
4. Select 'MIDI Test' option and push 'SELECT'. You should hear the test midi-track ('Take Five') interpreted by your Zynthian's band ;-)
5. Push 'BACK' to stop the playing

If you hear nothing, please, check the amplifier, speakers, cabling, gain, volume, etc. If nothing works, you have to locate and solve the problem(s).

7.6 Test the MIDI-USB inputs

1. Connect the audio output (RCA or Jack connector) to your amplifier or auto-amplified speakers.
2. Boot your Zynthian, select ZynAddSubFX, channel #1, bank and instrument
3. Connect a MIDI-USB keyboard to any USB port. The keyboard should be configured to use channel #1.
3. After 2-3 seconds , play something with your keyboard. A simple Chopin's Nocturni would be enough. You should hear your music. If you don't like it, probably you should take some piano lessons, same as me ;-)

If this doesn't work, you have to locate and solve the problem(s).

7.7 Test the MIDI-IN connector

1. Connect the audio output (RCA or Jack connector) to your amplifier or auto-amplified speakers.
2. Boot your Zynthian, select ZynAddSubFX, channel #1, bank and instrument
3. Connect your keyboard's MIDI-OUT to the Zynthian's MIDI-IN using a MIDI cable. The keyboard should be configured to use channel #1.
3. After 2-3 seconds, play something with your keyboard. OK! A single melody can do the task. You should hear your song ;-)

If this doesn't work, you have to locate and solve the problem(s).

8 Final steps

Once everything is in its place and you have tested that it works, it's time to close the case ...

8.1 Close the case

Take your time to see how to bend and drive the cables to get a good fitting when closing the case.

IMG 1626.JPG

IMG 1617.JPG

Finally, screw-drive the 8 sheet-threader bolts for securing the case, 4 each side.

9 Update your Zynthian Box

If you are using the official Zynthian SD Image, the first thing you should do after booting up your Zynthian Box and having the controllers working OK is update the software:

- connect the Zynthian Box to your router using a RJ45 cable
- update zynthian software from the admin menu
- update zynthian library from the admin menu
- restart GUI (or reboot) from the admin menu

The update process can take some time. Be patient. If you get some ERROR message while updating, please, ask in the forum. You can send a photo or description of the error message.

10 Locating and Solving problems

In this section i will try to give you some tips for locating and solving the problems you may have.

For finding and solving problems, i really recommend to connect a HDMI display to the RBPi. It will give you accurate information during the booting sequence. Also, if you connect a USB keyboard, you can login into the system and get extra information, inspect the logs, etc.

10.1 The display don't go white in the boot stage 1

I recommend you disconnect the controller and 2in1 modules and try to boot again. If the problem persist it's very probable you haven't solder correctly the side 26-pin connector. You should double check the connector and be sure that it's correctly soldered.

10.2 The display don't show the zynthian splash screen in the boot stage 2

In that case, probably the system is not booting correctly. You could try to connect a HDMI display and see if the system is booting. If you can't see the booting sequence, then you should re-burn your SD-card with the Zynthian image. Also, check that your image file is correct by using the SHA1 signature.

More coming soon ...

10.3 You can't solve the problem

If you can't find a solution for your problem, ask the community:

https://discourse.zynthian.com

Also, if you found a solution for a problem not described here, please send feedback to the community, or better, edit this wiki! ;-)

11 Technical Reference

Finally, i have included here some detailed schemes. People hacking the standard Zynthian design would find it very useful. Also, if you have some problem and need to "debug", you would find it useful too.

You can find all this info and much more in the project's Hardware Repository.

11.1 Electrical Schematic

This is the electrical scheme of the All-In-One circuit:

Error creating thumbnail: convert-im6.q16: unrecognized color `none;' @ warning/color.c/GetColorCompliance/1057. convert-im6.q16: non-conforming drawing primitive definition `fill' @ error/draw.c/RenderMVGContent/4405.

11.2 RBPi GPIO

Raspberry-Pi-j8header-2b.png