Dies ist eine Leiterplatte zum Aufbau eines #diy #Eurorack #Synthesizer Lo-Fi Effekt Moduls, basierend auf dem Design von #Hagiwo https://youtu.be/Vsx6v7v1p2I

Ihr könnt die korrigierte Platine direkt bei @aislerhq bestellen.
https://aisler.net/p/XYSKKRYT

Solltet ihr zu ersten mal bei Aisler bestellen, erhaltet ihr 10€ Rabatt auf die erste Bestellung mit dem Code "MakeInEurope-ZFYQY"

Benötigt wird ein Stereo Multi-Sound-Effekt DSP Modul.

#hagiwo #modularsynth #synthdiy #eurorack How frustrating. The #Arduino Nanos that I’m using (three varieties) don’t flash in MacOS or Ubuntu. Old IDE doesn’t fix it. Reinstalling CH34n drivers either doesn’t work — can’t compile or it gives no feedback whether it’s really installed with their shitty installer.

I’ve cranked out dozens of gadgets that used these. And now I can’t flash them at all.

Ok, at least I got the soldering done (though I’ve marked a lot of places I’m suspicious of on the board) and I got the faceplate done on this #hagiwo #modularsynth
#synthdiy #eurorack module.

But this module uses an #Arduino Nano and I can’t get any of mine to flash. (Classic “sync” error) so I can’t see if it delays and loops.

I’m going to bed. I’ll flash it from my Linuc tomorrow and see if that changes anything.

EuroRack 6HP Arduino Mozzi Module – Basic VCO

This is the first project based on my EuroRack 6HP Arduino Mozzi Module. It is loosely based on HAGIWO’s Arduino Mozzi VCO Module.

https://makertube.net/w/hnocMAhYkajd8nX2vwuR2u

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

These are some previous posts for the main concepts used in this project:

If you are new to Arduino, see the Getting Started pages.

Parts list

The Circuit

This uses the EuroRack 6HP Arduino Mozzi Module with the pots and jacks assigned as shown below.

The four potentiometers control the following:

  • POT 1 – OSC 1 core frequency offset (from V/Oct CV).
  • POT 2 – OSC 2 frequency ratio OSC1.
  • POT 3 – Waveform for both oscillators: sine, triangle, saw, square.
  • POT 4 – Octave: 1 lower, normal, 1 higher, 2 higher.

There are three CV inputs:

  • V/Octave pitch.
  • OSC1 vs OSC2 gain.
  • Pitch modulation.

The Code

The code is inspired by that of HAGIWO’s Mozzi VCO, in that I’m using Mozzi with two oscillators, with multiple waveforms, and I’m using HAGIWO’s gain profile for CV. But I’ve added a few extras and have rewritten the core Mozzi code to hopefully be a little more optimal.

The main V/Oct calculation has to happen every scan and HAGIWO uses a look-up table in PROGMEM for the fractional voltages that correspond to each value of the ADC and then uses those in the standard Volts to frequency equation:

Freq = BaseFreq . 2^CV

For a 10-bit resolution (the resolution of the Arduino ADCs) this requires 1024 values across the whole 5V range. That equates to 4.8828mV per step (5/1024) and as full octave of 12 steps is 1V that equates to 83.3mV per semitone.

The various CV recommendations I’ve seen suggest using a BaseFreq equal to C4, which is 261.6256 Hz in the calculation unless it is for a LFO or clock in which case a BaseFreq of 2Hz is recommended – which corresponds to 120 bpm if used for a clock. The BaseFreq is the frequency used for 0V. Many analog synths will accept negative voltages to go lower, but as this is an Arduino it only supports 0V to 5V.

HAGIWO uses a table of float values and uses floating point arithmetic to work out the frequency. I’ve opted to use fixed point arithmetic and also rather than store the CV “step” values in the table have pre-calculated the whole 2^CV for each step.

Here is some Arduino code that will output the required look-up table values. My full version will first output the individual voltage steps to 6 decimal places; then for the float version of 2^CV; and finally for the fixed point 16.16 equivalent – that is 16 bits for the integer part and a fixed 16 bits for the binary equivalent of the decimal part.

The code below just does the last part. This is using the FixMath library which was written for use with Mozzi (more here).

#include <FixMath.h> // Designed for use with Mozzi

int res = 10; // 10-bit resolution
float maxv = 5.0; // Max voltage

void setup() {
Serial.begin(9600);

int max = (1<<res) - 1;
float cvstep = maxv / ((float)max+1.0);

Serial.print("\n\n");
Serial.print("Resolution=");
Serial.print(res);
Serial.print(" bits (0 to ");
Serial.print(max);
Serial.print(")\tV/step=");
Serial.print(cvstep,6);
Serial.print("\n");

float cv = 0.0;
for (int i=0; i<=max; i++) {
if (i%16 == 0) {
Serial.print("\n");
}
float freqpow = pow(2, cv);
UFix<16, 16> q16n16fp = freqpow;
Serial.print("0x");
Serial.print(q16n16fp.asRaw(), HEX);
Serial.print(",");
cv += cvstep;
}
}

void loop() {}

I’ve used this to create the q16n16 version of the 1024 values required to calculate the frequency for each of the 0..1023 values that the 1V/Oct analog input could provide, covering the full 5V range. This is stored in the header file v2voct.h that is part of the code.

This does mean that any calculation of frequency must be done using the FixMath 16.16 values, for example:

UFix<16,16> q16n16potfreq = mozziAnalogRead(POT1);

This code takes the unsigned integer value (0 to 1023) from mozziAnalogRead and automatically turns it into a 16.16 fixed point format value in variable q16n16potfreq – note that in each case the decimal part will be zero as the starting point is an integer between 0 and 1023.

When reading values in from the look-up table, they have to be pulled in “raw” as they are already in the 16.16 format. But as Arduino doesn’t know anything about this format, they have been declared as uint32_t values in the PROGMEM structure, but then need to be read back out and treated as 16.16 values as show below.

#define CVSTEPS 1024
static const uint32_t q16n16fp [CVSTEPS] PROGMEM = {
0x10000,0x100DE,0x101BD,0x1029C,
...
};

UFix<16,16> fpow = UFix<16,16>::fromRaw(pgm_read_dword(&q16n16fp[voct]));

All calculations related to frequencies are performed using 16.16 values. The Mozzi oscillator setFreq function has a version that takes 16.16 values too, making everything actually quite straight forward once you get your head around what its doing.

Other notes on the code:

  • There are two gain values maintained – one for each oscillator. The values used come from another look-up table (that I took from HAGIWO’s original) that allows the CV to pan across from one oscillator to the other. I’m using 7-bit gain values (0..127) so that when the final audio sample is worked out at the end, it should all fit within a 16-bit value give or take.
  • The octave selector changes the octave of both oscillators and is determined by POT 4 and can select from 0V = C3 through to 0V = C6.
  • Oscillator 2 is set to a frequency between 2 octaves below and 1 or 2 octaves above the frequency of oscillator 1 at all times, as determined by POT 2 – quite how to do this was the subject of a bit of experimentation (see below).
  • The frequency of oscillator 1 is given by the setting of POT 1, the V/Oct CV, the mod CV and the octave.

The following code sets up the two frequencies for the oscillators.

UFix<16,16> fpow = UFix<16,16>::fromRaw(pgm_read_dword(&q16n16fp[voct]));

UFix<16,16> q16n16freq1 = q16n16oct * (q16n16c4 + q16n16potfreq + q16n16mod) * fpow;

UFix<16,16> q16n16freq2 = q16n16Mult * q16n16freq1;

aOsc1.setFreq(q16n16freq1);
aOsc2.setFreq(q16n16freq2);

q16n16c4 is the frequency of C4 in fixed point 16.16 format. It is essentially the “BaseFreq” in the original equation. Notice how the base frequency is also affected by POT 1 and the modulation CV. The whole lot is then multiplied by the octave setting, which will be one of 0.5, 1.0, 2.0 or 4.0.

The multiplier used for the second oscillator (q16n16Mult) comes from POT 2. I have included two approaches to using this: discrete values or continuous.

For discrete values, the setting of POT 2 selects one of 8 fixed ratios to use to set the frequency of OSC 2 compared to OSC 1. I’ve chosen the following options (with 0.0 effectively being “off”):

{0.0, 0.25, 0.333333, 0.5, 0.666666, 1.0, 1.333333, 2.0}

For continuous values, I take the raw reading (0..1023) and convert it into a 2.8 fixed point number by shifting left by 8 bits and then treating it as a raw 16.16 value. This works as the number is a 10-bit value, so shifting left 8 bits makes it a 18 bit value – but then when read as a 16.16 bit value, the lowest 16 bits of those 18 are treated as the decimal…

UFix<16,16> q16n16Mult = UFix<16,16>::fromRaw(((uint32_t)mozziAnalogRead(POT2)) << 8);

Note I have to ensure it scales the return value from mozziAnalogRead up to 32-bits first otherwise clipping will occur. This allows me to have fractional octave values for the second oscillator compared to the first.

As the second oscillator starts 2 octaves below the first, this gives a range of multipliers starting from nothing (i.e. “times zero”), to almost two octaves below oscillator 1 (00.01000000 in 2.8 fixed point binary) through to 1 octave below (x0.5 = 00.10000000), to the same as oscillator 1 (x1 = 01.00000000) to 1 octave above (x2 = 0x10.00000000) to almost 2 octaves above (x4 would be 1024, but 1023 is 11.11111111).

The downside of this approach is that the response to the potentiometer setting isn’t linear. Or rather, it is linear, when really I’d like it not to be… I might go back and correct that in software at some point, but it is fine for now.

Note that if POT 2 is set to zero, then oscillator 2 is turned off. One option to always keep it on is to always ensure a minimum POT 2 reading. I’ve included that as an option to have the minimum reading of 64, which when converted to 2.8 format is 00.01000000 or 0.25 in decimal – hence a multiplier that gives “two octaves below”.

The final calculation that is performed for each audio sample is given by:

AudioOutput updateAudio(){
return MonoOutput::from16Bit(bOsc1Gain*aOsc1.next()+bOsc2Gain*aOsc2.next());
}

This combines the audio samples of each of the oscillators, multiplies them by the 7-bit gain value and then tells Mozzi to take this as a 16-bit value to be turned into a Mono output value.

Right at the start, I’ve told Mozzi to use “HiFi” mode, which should give me 10 bits of PWM output range using D9 and D10. I’ve also used a slightly higher MOZZI_CONTROL_RATE to help with scanning the IO.

Find it on GitHub here.

Closing Thoughts

As can be seen from the video, I don’t really anything much to use this with yet, but I’ve driven it from my “Baby8” CV Step Sequencer and the LFO from my Educational DIY Synth Thing and I think it seems to work ok. The video includes the following:

  • Changing basic OSC 1 frequency via POT 1.
  • Changing OSC 2 ratio compared to OSC 1 via POT 2.
  • Chaning the octave via POT 4.
  • Chaning the waveforms via POT 3.
  • Generating a V/Oct CV from the Baby 8.
  • Setting a low sweep of CV1 to control the relative gain of OSC 1 vs OSC 2.
  • Swapping to CV2 to provide additional pitch modulation to the oscillators.

This isn’t quite using the final version of the code, but gives an idea.

Note that the V/Oct input won’t work at true audio frequencies, so it can’t be used for frequency modulation, but otherwise I’m quite pleased with the performance considering it is updating from three CVs and four potentiometers each scan.

It might be possible to up the MOZZI_CONTROL_RATE even more and scan the CVs more frequently than the pots, but for now they are all scanned at the same time using a MOZZI_CONTROL_RATE of 128 (twice the default 64).

The output seems pretty clean to me too, but that is really thanks to HAGIWO’s original PWM output stage.

I’m just waiting for some spray-on adhesive so I can make a simple panel for it now.

Kevin

#arduinoNano #define #HAGIWO #include #mozzi #oscillator #vco

EuroRack 6HP Arduino Mozzi Module

This project uses my EuroRack 6HP MCU Experimenter Module to implement HAGIWO’s Arduino Nano based VCO. This post describes how to put it together and test the basic functionality. Futur…

Simple DIY Electronic Music Projects

6HP Arduino Mozzi Basic 2-Oscillator VCO

https://makertube.net/w/hnocMAhYkajd8nX2vwuR2u

6HP Arduino Mozzi Basic 2-Oscillator VCO

PeerTube

EuroRack 6HP Arduino Mozzi Module

This project uses my EuroRack 6HP MCU Experimenter Module to implement HAGIWO’s Arduino Nano based VCO.

This post describes how to put it together and test the basic functionality. Future posts will look at some code that can run on the module (see the “Sample Applications” section).

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

These are the key tutorials for the main concepts used in this project:

If you are new to Arduino, see the Getting Started pages.

Parts list

For the IO board:

  • 1x MCP6232 or equivalent OpAmp.
  • 8x BAT43 Schottky diodes.
  • Normal resistors: 1x 100Ω, 1x 200Ω, 4x 1kΩ, 1x 330kΩ, 2x 100kΩ.
  • Higher accuracy resistors (1% or better): 2x 3.9kΩ, 1x499kΩ.
  • Ceramic Capacitors: 4x 100pF, 1x 4.7nF, 1x 10nF, 3x 68nF, 1x 100nF.
  • Electrolytic Capacitors: 1x 4.7uF.

Note: it is worth measuring a range of 499K and 3.9K resistors and finding the best ones. In my case I only had 500K resistors, so found the closest to 499K I had. I ended up with two 3.88K and one 498K.

For the Pots and Jacks board:

  • 4x 10kΩ or 100kΩ PCB mount potentiometers.
  • 4x “Thonkiconn” jack sockets.
  • Header pins.
  • Jumper wires

The IO Board

Here is how the various sub-circuits of the IO board will be used:

Circuit ElementIO Board ConnectionFunctionR/C 40xCV_IN 1Control Voltage 1R/C 45xCV_IN 2Control Voltage 2R/C 30xGATE_IN 1Potentiometer Input 1R/C 35xGATE_IN 2Potentiometer Input 2R/C 65xOUT 4Potentiometer Input 4R/C 60xOUT 3Potentiometer Input 3R/C 55xOUT 2Not usedR/C 50xOUT 11V/Oct Control VoltageR/C 10xPWM 1Audio outputR/C 20xPWM 2Not used

Notice that the GATE and OUT circuits are being used in “alternative” modes as additional inputs (see the Usage Notes for more details). In particular the transistors on the GATE circuits are not used.

The following shows which components of the PCB will be populated (yellow), which will be changed for other components (blue), which wire links are required (red) and which connectors will be used for linking to the Pots and Jacks board (green) and MCU (purple).

Here is the list of components required for the above:

Resistors:

  • R100: 499K
  • R101, R102: 3.9K
  • R105: 200Ω
  • R300, R350, R400, R450, R600, R650: 1K
  • R401, R451: 100K
  • R500: 100Ω
  • R501: 330K

Capacitors

  • C100: 4.7nF
  • C101: 10nF
  • C102: 4.7uF electrolytic
  • R301, R351, C400, C450, C600, C650: 100pF (yes, two resistor slots are capacitors).
  • C400, C450, C500: 68nF

Other:

  • D100, D101, D400, D401, D450, D451, D500, D501: BAT43 Schottky Diodes
  • MCP6243

The mapping between IO connections and MCU IO pins is as follows (all other IO pins are not used):

MCU Connection PointMCU IO LinkFunctionMCU PWM 1H9Audio OUTMCU PWM 1L10Audio OUTMCU IN CV 2A7CV2MCU IN CV 1A6CV1MCU IN GATE 2A5Pot 2MCU IN GATE 1A4Pot 1MCU OUT 4A3Pot 4MCU OUT 3A2Pot 3MCU OUT 1A01V/Oct CV

Note: the order of the Gate/CV is (from top to bottom): CV 2, CV 1, G2, G1. The ordering of the OUT connections is the same for both sets of pin headers: 1 on the left, through to 4 on the right.

Build Order and Photos

This is the suggested build order:

  • Diodes.
  • Resistors.
  • Small capacitors.
  • Header sockets (assuming PH5 and PH3.5 sockets).
  • Capacitor on the rear of the board.
  • OpAmp.
  • Larger capacitors.
  • MCU board header sockets on rear of the board.
  • Jumper wires.

When installing R501, I’ve opted to make the fix described in the EuroRack 6HP MCU Experimenter Module Usage Notes and swap its position to the other side of R500 as shown below.

Otherwise the build proceeding pretty much as suggested.

Note that the OpAmp’s capacitor must be soldered to the rear of the board prior to fixing the OpAmp.

The install the OpAmp, smaller headers and larger capacitors.

Finally the longer headers for the MCU board can be installed on the rear of the board.

Finally the patch links can be installed as described previously (including the links instead of R104 and the transistors).

The Pots and Jacks Board

These functions will map onto the following potentiometers and jacks (and connections) from the EuroRack 6HP MCU Pots and Jacks PCB:

Pot/JackFunctionConnectionRV1Potentiometer 1GATE 1RV2Potentiometer 2GATE 2RV3Potentiometer 3OUT 3RV4Potentiometer 4OUT 4IN1V/Octave CV INOUT 1IN2CV 1 INCV 1IN3Not usedIN4Not usedOUT1Audio OUTPWM 1OUT2CV 2 INCV 2OUT3Not usedOUT4Not used

The pots and jacks PCB should be wired up to the interconnecting headers as follows:

Optionally, it might be useful to connect from the GND header pin to the panel once fitted.

It is suggested the Jacks and Pots PCB is built in the following order:

  • Small header pins on the underside of the board.
  • Long header pins (if used) on the underside of the board.
  • Jacks.
  • Potentiometers.
  • Link wires.

The Panel

This is the panel design required.

The measurements are all detailed in the EuroRack 6HP MCU Pots and Jacks PCB Build Guide, but crucially the pot holes are M7 and the jack holes are M6. I found they needed a 7.5mm and 6.5mm drill respectively to allow for a bit of flex when fitting the panel.

I’ve used M2 mounting posts, screws and nuts between the boards. In particularly, I found that the spacing required a 6mm spacer with an additional nut added as shown below.

I also had to break off the alignment lugs on the potentiometers to allow the panel to fit snugly.

Once all together, you can see it needs around 45 to 50 mm clearance behind the panel for the whole thing.

Testing and Basic Code

I recommend performing the general tests described here: PCBs.

Then it can be connected to an Arduino Nano MCU board an a basic analogRead test can be performed to check the pots and input jacks.

void setup() {
Serial.begin(9600);
}

void loop() {
for (int i=0; i<8; i++) {
int aval = analogRead(A0+i);
Serial.print(aval);
Serial.print("\t");
}
Serial.print("\n");
delay(100);
}

An external potentiometer can be connected to a mono patch lead (GND and signal) and VCC to test the CV IN jacks (IN1, IN2, OUT2).

The order should be as follows:

A0IN 1 (1V/Oct)A1Not used, floatingA2POT 3A3POT 4A4POT 1A5POT 2A6IN 2 (CV1)A7OUT 2 (CV2)

The (dual) PWM output can be tested using the basic Mozzi “Hi-Fi” sinewave test which can be found in the examples here:

  • Examples -> Mozzi -> 01.Basics -> Sinewave_HIFI

Sample Applications

Here are other posts describing some sample applications for this module.

Closing Thoughts

I have to be honest – working out which parts of the circuits to use, then referring back to them to populate the PCBs, then soldering on the intra-board links and finally fiddling with the panel was actually quite a lot of work.

I don’t know if I’ve saved anything compared to just building the circuit from scratch on a piece of protoboard.

It is also going to be quite likely that any issues might be hard to trace too.

I might find that as I use more of these boards, (assuming I build some more of course), then I get to know the layout and circuits and won’t be referring back to the designs so much. I’ll have to see how it goes.

But for now, if all you want is a single Arduino Nano HAGIWO circuit, then you’re probably better off just making it up on protoboard…

But I think the whole board “sandwich” once complete does look pretty good!

I’ll have to see if I can get a bit of a “production line” going and make up a few more. And now I have to get on with some code…

Kevin

#arduinoNano #EuroRack #HAGIWO #mozzi

EuroRack 6HP MCU Experimenter Module

I’ve been following the work of HAGIWO for some time and always been really impressed with the breadth and range of modules they produce. I have noticed some patterns in their microcontroller…

Simple DIY Electronic Music Projects

I've added a pots/jacks breakout board for my 6HP EuroRack experimenter board.

https://diyelectromusic.com/2025/01/01/eurorack-6hp-mcu-pots-and-jacks-pcb-design/

Now I actually need to get on and make something rather than keep talking about it :)

#SynthDIY #HAGIWO #Arduino #RaspberryPiPico

EuroRack 6HP MCU Pots and Jacks PCB Design

This is an add-on for my EuroRack 6HP MCU Experimenter Module to support several different configurations of potentiometers and jack sockets. EuroRack 6HP MCU Pots and Jacks PCB Build Guide Wa…

Simple DIY Electronic Music Projects

I now have the design, build and usage notes published for my EuroRack MCU experimenter board. This is to let me mess around with things like the modules designs published by HAGIWO among other things.

This is only for use with DIY projects - it is not designed for use with expensive EuroRack modules, racks, or power supplies... It is quite likely to cause some very expensive destruction otherwise.

The three posts start here: https://diyelectromusic.com/2024/12/04/eurorack-6hp-mcu-experimenter-module/

#SynthDIY #HAGIWO

EuroRack 6HP MCU Experimenter Module

I’ve been following the work of HAGIWO for some time and always been really impressed with the breadth and range of modules they produce. I have noticed some patterns in their microcontroller…

Simple DIY Electronic Music Projects

EuroRack 6HP MCU Experimenter Module

I’ve been following the work of HAGIWO for some time and always been really impressed with the breadth and range of modules they produce. I have noticed some patterns in their microcontroller based modules and so wondered if it was possible to build some kind of generic template PCB that would allow me to do some experimenting whilst reducing the number of links and connections required between components compared to using protoboard.

  • Note: HAGIWO now has a SMT general purpose 4HP Arduino EuroRack module of their own – the “MOD1” now available via Patreon, and a lot neater than mine – full details here: https://note.com/solder_state/n/nc05d8e8fd311

This is the result.

Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

These are the key materials for the main concepts used in this project:

If you are new to electronics, see the Getting Started pages.

The Circuit

I wanted to include the following elements:

  • Microcontroller interface – ideally an Arduino Nano or a Raspberry Pi Pico.
  • PWM audio output stage.
  • Gate/Trigger input and output stage.
  • CV input and output stage.
  • EuroRack compatible power connector.

I wanted suitable protection on the various stages, so have essentially correlated some of the circuits put up by HAGIWO and pulled out a range of elements into my schematic. I’ve been looking through the designs for the following:

Although the basic template for many of HAGIWO’s designs are very similar, often specific component values might be tweaked, so I wanted to ensure there was nothing too prescriptive in the design here to prevent tailoring.

In the end I used some specific component values from certain circuits in the schematic itself, but really they are just an example starting point. The values required will depend on the expected input and output levels and whether converting to/from 5V or 3V3 operation.

For reference, common EuroRack voltages are (from the Doepfer Technical Specification):

  • Audio signals: 10Vpp i.e. -5V to +5V.
  • Modulating Control Voltages: 5Vpp i.e. -2.5V to +2.5V (LFOs); 8Vpp i.e. 0V to +8V (EGs).
  • Trigger/Gate: 0 to 5V, although up to 12V should be accepted.
  • Pitch Control Voltages: Typically 1V/octave.

Key design principles for the control board:

  • Will allow for a 5V Arduino Nano or a 3V3 Raspberry Pi Pico, with the circuits VCC taken from the power output of the microcontroller (so 5V or 3V3 respectively).
  • Powered from the EuroRack +12V either into VIN of the Arduino Nano or via a L7805 generating 5V into VSYS of a Raspberry Pi Pico.
  • Anticipating that not everything will fit on a single board, there is a header interface between the microcontroller and everything else.
  • The connections to each of the circuit stages is via headers or blank solder pads, allowing patching across to any microcontroller pins as required.
  • There is no support for controls, pots or jacks on the board, it is assumed those will be added to a panel and patched across to the control board using headers.
  • Some mounting holes will be provided.
  • Only the components and circuit blocks required for a specific build will be used. If using an Arduino Nano, this includes being able to omit the L7805 and associated power circuitry as it can be powered from +12V into VIN.

A future post of usage notes will go into the detail of each circuit element a little more.

EuroRack Power

I was pretty keen to include some protection for the EuroRack power side of things, following some of the advice from here: https://www.youtube.com/watch?v=cBGyEBQnIws.

The problem is that although it is possible to protect the 10-pin version of the EuroRack power connector from reverse connection, it is a lot harder to do with the 16-pin version.

Pinout from the Doepfler Technical Specification (note -12V is “pin 1” and usually denoted by the stripe on the cable – but not always!):

For the 10-pin version we essentially just have to cope with +12V and -12V being the wrong way round. With the 16-pin version it isn’t that simple and there are several problems if a cable is plugged in the wrong way round:

  • The CV/Gate signals will overlap with -12V and GND.
  • The 5V connection will overlap with GND.
  • The +12V connection will overlap with GND.
  • As there are three sets of GND pins, typically all connected together, the +12V and +5V of the power supply and any other modules in the system will be connected together!

That last one is very likely to cause damage to any module or power supply plugged into the rest of the rack. The worst-case scenario is that it could damage the PSU and ALL other modules in the rack… none are going to like receiving 12V when 5V is expected… err…

As this is a PCB designed for DIY experimentation, I wanted to ensure that the chances of a serious problem with any other kit it might be hooked up to are minimised.

But I should repeat at this point: do NOT use this module alongside any other expensive equipment or rack or power supply. It is meant for DIY experiments only and should only be connected to other DIY or otherwise sacrificial equipment.

Still, I’ve only “wired up” the following of the EuroRack power support connector:

EuroRack StandardPCB ConnectionInternal GATEN/CInternal CVN/C+5VN/C+12V+12VGNDGNDGNDN/CGNDN/C-12VN/C

In particular note that I’m only using one of the GND connections – the others are left not connected or linked at all, and especially not to each other. This means that should a cable to plugged in the wrong way round, there is nothing on my PCB that will bridge +5V and +12V via GND; it also means I can include some basic protection against +12V and GND being the wrong way round.

I’m also planning to use shrouded connectors, but of course that won’t guard against incorrectly wired cables or other weirdness.

I was in two minds about attempting to use the +5V rail, but as I couldn’t find any advice online about how to protect that, I just opted for the use of a L7805 and the +12V rail, which I was planning to use anyway as it seemed more “universal” than expecting a 5V too.

The final power related part of the schematic is thus:

PCB Design

I’ve deliberately designed this onto two boards – a MCU board and an IO board, with headers between them. The power circuit is part of the MCU board. The idea is that all of the components on the MCU board are on the underside; all the components on the IO board are on the top side; that they will link together; and that the power connector will be on the underside and all IO connections (jacks, pots, etc) on the top.

I’ve also overlapped the footprints of the Nano and Pico and linked up GND and VCC (5V for the Nano and 3V3 for the Pico), so either could be used.

I’ve deliberately kept the size of the PCBs below 30x100mm, but will get these built as two individual designs. But keeping it within 6HP and 100mm has made for a very packed board!

In terms of silkscreen labels, each section of the schematic has a specific numbering scheme – for example, all components associated with the first PWM circuit are numbered between 100-199. Similarly for all the other sections.

But this is not a PCB that is meant to be populated without referral to the schematic and some bespoke design on a per-board basis.

Closing Thoughts

This is not a board to be soldered up and just used. It is a template, meant to remove the need for some connections, with some commonly used “circuit patterns” allowing easy connection to a microcontroller and EuroRack power supply.

But I’m quite pleased with how I’ve done my best to minimise the chances of this board causing a problem with other DIY modules in a rack.

But for this more than any other boards – the usual warning applies. Do not use with expensive equipment. Test thoroughly, double check cable wiring, and do not use alongside other expensive modules in an expensive rack of kit.

In a future article, I’ll go through some notes on how I expect to be using it.

Kevin

#arduinoNano #EuroRack #HAGIWO #pcb #raspberryPiPico

Before you continue to YouTube

@todbot Sorry it took me a minute to sit down and do this, but here goes nothing. This is literally my very first real repository, so if I really gaffed it up, just let me know what I need to do to correct it's course. In any case, here are 5 additional firmwares for your lovely Hagiwo VCO. Most are fairly obvious and/or derivative, but they are all pretty fun. More coming soon. I'm going to use that Button!!!

https://github.com/mingusdude/Hagiwo-Janks

#Synth #SynthDIY #Arduino #Eurorack #Hagiwo #bleep #bloop

GitHub - mingusdude/Hagiwo-Janks: My humble takes and adjustments of Hagiwo, and those who follow him

My humble takes and adjustments of Hagiwo, and those who follow him - GitHub - mingusdude/Hagiwo-Janks: My humble takes and adjustments of Hagiwo, and those who follow him

GitHub