HOG build guide


Just gimme the files

Grab the stuff from here if you know what you're doing:

Build files

Schematics

BOMs

Enclosure

Drill map coming soon!


Overview

The HOG by Shmøergh is a fully-analog monophonic synthesizer. Its purposeful limitations make it a great instrument for live performances. The HOG uses switches over knobs to change sounds quickly and without having to use presets which converts the signal to digital. To learn more about its features checkout the HOG user guide.

The HOG is an open source DIY synth. This page contains information that allows anyone to build one.

Disclaimer

All electronic projects and designs presented on this web site, or associated web sites should be considered dangerous if not lethal if not used safely. When working on projects based on the designs on this site, use extreme care to ensure that you do not come into contact with mains AC voltages or high voltage DC. If you are not confident about working with mains voltages, or high voltages, or you are not legally allowed to work with mains voltages, or high voltages, you are advised not to attempt work on them. The author, host, and all people associated with these web pages disclaim any liability for damages should anyone be killed or injured while working on these projects, or projects based on these designs, or any other project or design presented on these web pages and any associated web pages. The author, host, and all people associated with these web pages also disclaim any liability for projects, or projects based on these designs, or any other project or design presented on these web pages and any associated web pages when used in such a way as to infringe relevant government regulations and by-laws.

All circuits, schematics, printed circuit board, panel design and associated data published on this site can be used for private use only.

We are not responsible for any errors in the PCB design or the parts list. All responsibility for ordering PCBs, components, and assembly services rests solely with you.

License

Shmoergh Hog © 2024
Hardware is licensed under CC BY-NC 4.0
Software is licensed under MIT.

This synth is open source but according to the CC BY-NC license you cannot build HOGs for commercial purposes only for personal use. We're super interested in your builds so please share it with us down in the comments or on Instagram.

Prerequisites

Knowledge

🤓
The HOG is a very advanced electronics project. To successfully build one, you’ll need at least basic electronics knowledge, you should be able to read schematics and PCB’s, use electronic tools and debug circuits.
👉
You need to thoroughly understand how the HOG works before you assembly one. Study the user guide and the demo videos to learn about the HOG.

Tools

During the build process you’ll need the following:

  • Your computer to keep track of the schematics and PCBs. You’ll need to install KiCAD 8 or higher, it’s free
  • Soldering station and smoke extractor
  • Oscilloscope
  • Multimeter
  • Tuner with line input, or an audio interface to tune the oscillators
  • Precision screwdrivers, pliers
  • 14 pcs of M3x20 screws to secure boards together
  • A controller with CV/Gate output (e.g. Arturia Keystep) [recommended], or a MIDI keyboard

Time

If you have all the PCBs and components it takes about a week to build a complete HOG, depending on your experience level in synth DIY and electronics.


Build variations

While you can build a complete HOG from the above files and this guide, you can use the schematics or even the boards separately.

Custom analog synth / Eurorack synth module

The core is actually a fully-featured standalone analog synthesizer module with two oscillators, sub oscillator, two LFOs, a VCA a mixer and an ADSR. It has all the inputs and outputs avaliable on the PCB, so if you understand electronics and study the Core circuits you can design your own control panel for it. You can create a drone synth with complex cross modulations, use knobs for each function for a sound-design-centric instrument — the possibilities are endless. It’s also Eurorack compatible both in terms of size (100mm height) and power (works with +/- 12V and uses Eurorack power connector).

Reusing schematics

The Core board is separated to functional sheets: the VCOs, ADSR, VCA etc. are all on their own schematic sheet. They’re fully working and tested so nothing stops you to reuse these circuits in your own designs.

Filter

The HOG has a super drippy Steiner-Parker low-pass filter with some minor modifications. Just like the Core board it’s also a fully standalone Eurorack compatible module, you can design your own panel for it and stick it in your Eurorack case.

MIDI2CV converter

The MIDI2CV converter has a MIDI input and 2 pitch and 2 gate outputs. Like the Core and Filter boards, it’s Eurorack compatible and uses super basic components. Similarly to the rest, you can reuse this to build a separate 2 channel MIDI to CV converter. It uses an actual Raspberry Pi Pico and you can find the code for the default implementation in the repo.


Board setup

The HOG is built up of 5 PCBs or boards.

  1. PSU board — power supply board that converts 12V DC to +/-12V
  2. Core board — contains all the modules that make and shape the sound, except for the filter
  3. UI board — the control panel of the synth with all the switches and knobs. All the other boards connect to this
  4. Filter board — a Steiner-Parker voltage controlled low-pass filter
  5. MIDI2CV — a board converts MIDI signal to control voltage

These boards connect to each other through pin headers and sockets so there’s literally no cabling involved in the build. The Core and Filter boards have both SMD and through hole components, the rest is through hole only.


Build material & files

All the files for the HOG build are available at the Shmøergh HOG Github repo. Click on Code / Download ZIP to get them. Here’s a breakdown of each folder:

  • board — contains folders for each board with KiCAD schematics, PCB design and production files
    • board/[boardname]/production — this folder contains the gerber files for PCB and the BOMs
  • simulations — CircuitJS simulations we’ve used during the design process

BOMs

As written above you’ll find BOMs for each board in its respective folder under the production directory. Each vendor’s BOM is separated into further folders. For example the Core board’s BOMs can be found in board/core/stable/production Here you’ll find a jlcpcb folder which contains the gerber files, the BOM and positioning files for SMD components to order from JLCPCB. You’ll also find a mouser folder which contains the through hole components that can be ordered from Mouser using the corresponding CSV file.

The switches

There’s been a lot of questions about where to get those cool switches, so here they are. There are two types of switches used, both manufactured by Daier China.

Switch type Part number
DPDT TS22-E01
DP3T TS23-E02
🛒
Unfortunately it's not easy to find these parts. Try looking for it on large Chinese shopping sites or look for the part number on Google, Google Images, Amazon etc.

Ordering PCBs

Each PCB board can and should be ordered separately. The production/jlcpcb folder contains a .zip file for each board that you can use to order PCBs from JLCPCB. If you want to order from another PCB manufacturer, you’ll need to generate the gerber files for yourself.

The ordering process from JLCPCB is quite straightforward, you just upload the zip file and leave all defaults.

SMD assembly

The Core and the Filter boards contain SMD components which is super-hard to build by hand. 99.99% of these components are available at JLCPCB and the production/jlcpcb folder for each board contains both the BOM (bom.csv) and the positioning files (positions.csv) to order assembly from JLCPCB.

Check out this video (from about 12:00) to learn how to order PCB assembly from JLCPCB.

Through hole components

All 5 boards have through hole components which you have to order and hand build. Almost all the parts are available at Mouser (except for the switches on the UI board) and the production/mouser folder contains CSV files for each board that you can use to order all components from Mouser. Here’s how:

  1. Go to https://www.mouser.com and log in with your account
  2. Open BOMs from the account menu
  3. Click on Create New BOM
  4. Upload the ./mouser/[board]-mouser-bom.csv file from this directory
  5. Make sure you map the Quantity 1 and Mouser Product Number columns correctly
  6. Create the BOM on Mouser

You can order all necessary parts at once. If a part is not available you need to find replacement components, or if you want another vendor (like Digikey) then you'll need to find all parts yourself.

For through hole components in general we recommend to start soldering passives – like resistors and capacitors – first. Then move on with semiconductors and integrated circuits. We also recommend using IC slots instead of soldering the ICs directly on the board. Doublecheck for power shorts (+12V → GND, +12V → -12V, -12V → GND) before inserting ICs.


Checklist

PSU board

  • [ ] Order PCB
  • [ ] Order through hole components
  • [ ] Solder through hole components

Core board

  • [ ] Order PCB
  • [ ] Order SMD assembly
  • [ ] Order through hole components
  • [ ] Solder through hole components

UI board

  • [ ] Order PCB
  • [ ] Order through hole components
  • [ ] Solder through hole components

Filter board

  • [ ] Order PCB
  • [ ] Order SMD assembly
  • [ ] Order through hole components
  • [ ] Solder through hole components

MIDI2CV board (optional)

  • [ ] Order PCB
  • [ ] Order through hole components
  • [ ] Solder through hole components

Board assembly and tuning

  • [ ] Connect PSU board to UI board
  • [ ] Connect Core board to UI board
  • [ ] Connect Filter board to UI board
  • [ ] Connect MIDI2CV to UI board (optional)
  • [ ] Tuning process (see later)

Board breakdown

In this guide we’re not going to show how and when to solder each and every component, only the ones which need special attention. To build these boards you’ll need to read their schematics and PCBs in KiCAD and find where to solder each component. We assume you know these basics and if not, you’ll learn it before getting into building a HOG.

PSU board

Files: /boards/psu

Components: Through hole only

This is the simplest board with only three component: a fully built Mean Well voltage converter (NSD10-12D12) that creates +/-12V from a 12V DC input and two pin sockets.

Notes

  • The pin sockets on the board should be soldered upwards, on the front layer.

Testing

  • Connect a 12V power source to the 12V and GND INPUT pins and measure the output voltages with a multimeter. The output voltages should be +/-12V.

Core board

Files: /boards/core/stable/

Components: SMD and through hole

Here’s the block diagram of the HOG:

The core board contains all the fundamental modules of an analog synthesizer, namely:

  • 2x VCO: generates a 1V/octave raw sawtooth according to the input control voltage (CV)
  • 2x Waveshapers: creates AC coupled triangle, sawtooth and pulse width adjustable square waves from the raw sawtooth signal
  • Noise and sub source: generates white noise and a square wave 1 and 2 octaves lower than the actual pitch of VCO1. The ratio of -1 and -2 octaves is adjustable.
  • Mixer: mixes all the sound sources into a single output
  • VCA: takes the output of the mixer and sets its volume according to a control voltage that’s coming from the envelope generator (ADSR)
  • ADSR: the envelope generator that outputs a control voltage to set the output volume
  • 2x LFO: LFOs to modulate pitch, filter cutoff and other parameters
  • Output: normalizes the final audio output and includes a dual-mono headphone amplifier

SMD

As mentioned above the Core board has quiet a lot of SMD components. You can order them following the SMD assembly process.

Notes

  • The Core board has 4 SMD components that are not available at JLCPCB so you’ll need to solder them manually. All of these components are included in the Mouser BOM so you can order it from them. They are:
    • Q203 and Q206 — MMBFJ111
    • TH201 and TH202 — PTS120601B100RP100
  • The pin sockets on the board should be soldered upwards, on the top layer.

Through hole components

The BOM for the through hole components is available in the /boards/core/stable/production/mouser folder and can be ordered from Mouser using the ordering process.

Filter board

Files: /boards/steiner-parker-vcf/

Components: SMD and through hole

Follow the same process for SMD assembly and through hole components as for the Core board.

Notes

  • Don’t solder the Eurorack power connector! That’s only needed if the filter board is used as a separate Eurorack module.
  • Connect the bottom 2 pin of the JP_INT_EXT1 jumper. This allows several cutoff control voltages to connect to the filter.
  • The 2x8 pin socket on the board should be soldered upwards, on the front layer

UI board

Files: /boards/ui/

Components: Through hole only

Follow the same process for through hole components as for the Core board.

Notes

  • All the pin headers on the UI board should be soldered on the bottom layer of the board because all the other boards connect to the UI board from the bottom.

MIDI2CV board

Files: /boards/midi2cv/

Components: Through hole only

Follow the same process for through hole components as for the Core board.

Notes

  • The MIDI2CV converter uses a Raspberry Pi Pico board, which you should solder directly to the board (without headers) in order to fit the height with the connection to the UI board.
  • The pin sockets on the board should be soldered upwards, on the front layer.

Uploading the MIDI2CV firmware

  1. Download the firmware
  2. Push the Boot button on the Pico and connect it to your computer. The Pico should appear as a drive on your computer
  3. Drag and drop the firmware file to the Pico. The Pico should automatically eject from your computer

⚠️
DO NOT connect the Pico on the MIDI2CV to your computer when the synth is on!!!

Board assembly

The PSU, Core, Filter and MIDI2CV boards should be connected to the UI board from the bottom via their respective pin sockets. Use M3 screws to secure the boards to each other.

1 — Insert the PSU board into the UI board

2 — Insert the Core board to the UI board

3 — Insert the Filter board to the UI board

4 — (Optional) Insert the MIDI2CV board to the UI board

Here’s is a picture of an earlier HOG prototype from the bottom and front. Note that this is not the latest version, it still has some hacks, cables and the PSU board is home made, but yours should look very similar once all boards are connected up.

Tuning

Preparation

To finish tuning the HOG you’ll need to:

  • Connect an oscilloscope to the main output
  • Connect a CV/Gate compatible controller (e.g. an Arturia Keystep) to Pitch and Gate or a MIDI controller to the MIDI input (in case
  • Connect two jumpers: JP_VCO1_IN1 and the middle and right pin of JP_PHO-LINE1

Troubleshooting

Ideally you should hear some sound on the output. If not then that can be for a couple of reasons:

  • Make sure you connected your keyboard to the appropriate inputs (Pitch, Gate)
  • Make sure RV_LINE_OUT_LVL201 and RV_HEADPHONE_LIM201 on the Core board are all the way up. They set the line and headphone output volumes.
  • Make sure RV_201, RV_202, RV_204 and RV_205 on the Core board are all the way up. They set the individual sound source (VCOs, noise and sub) levels.
  • Play with RV_SUSTAIN_MAX1 (UI board) and ADSR_MAX trimmers. Both should be relatively up to make sure ADSR starts triggering.
👉
Note that “all the way up” doesn’t necessarily mean “all the way clockwise”. Some trimmers actually go “up” when you turn them CCW.

Wave shapes

Turn the VCO1 waveform selector on the UI board to sawtooth (position #2). Make sure you turn off VCO2 (Fat) on the UI board. Switch on HOLD on the UI board and hold a note on your controller or keyboard.

On the Core board:

  1. Tune VCO1 SAW BIAS until the output shows a sawtooth that oscillates around 0V
  1. Turn the VCO1 waveform selector to triangle waveform. Tune VCO TRIANGLE BIAS until you see a perfect triangle on the oscilloscope.
  1. Turn the waveform selector to narrow pulse (position #4) and use the RV_NARROW_WIDTH1 trimmer to set the pulse width for fixed narrow square wave.
  2. Turn the waveform selector to PWM (position #5) and use the RV_PWM_LEVEL1 to set the level of pulse width modulation. Note that the frequency of the PWM comes from LFO2

Then set the same for VCO2:

  1. Disconnect JP_VCO1_IN1 — this will disconnect VCO1 from the output so you can monitor and listen VCO2 only
  2. Repeat steps 1-2 with VCO2 SAW BIAS and VCO2 TRIANGLE BIAS trimmers. Use the SW_VCO2_WAVE1 switch to switch between triangle, sawtooth and square waves.

Octaves

This tuning is critical so that the main octave and the VCO2 octave switches work accurately.

  1. On the UI board tune the +/-5V voltage source to exactly +/-5V
  1. On the UI board tune the +1/+2 and -1/-2 octaves of VCO2.

ADSR

You need to hit notes on your keyboard and watch the output on the oscilloscope to test the ADSR.

  1. Connect the oscilloscope to the ADSR output (from the bottom of the Core board)
  1. Play notes on your keyboard and set the max voltage of the ADSR to about 8V with the ADSR MAX trimmer. Check the output on the oscilloscope. If you can’t achieve 8V make sure that RV_SUSTAIN_MAX1 trimmer on the UI board is all the way up.
  2. On the UI board use the following trimmers to fine tune the ADSR values according to the following:
RV_ATTACK_LONG1Sets the attack value when the Soft switch is on
RV_ATTACK_SHORT1Sets minimum attack value when the Soft switch is off. This allows to eliminate the pop on short attack
RV_RELEASE_MIN1Sets minimum release value
RV_DECAY_SHORT1Sets the decay time to the sustain value when Hold is on
RV_SUSTAIN_LVL1Sets the sustain level of the ADSR. This allows to have a lower sustain value when Hold is on
RV_SUSTAIN_MAX1Sets the maximum sustain value.
RV_RELEASE_SHORT1Sets minimum release when Ring is off. Allows to fine tune the length of the envelope when all ADSR switches are off

VCO tuning

This is the part when you tune the VCOs to 1V/octave standard tuning. Connect a tuner or an audio interface with a DAW and a tuner plugin to your output. Play the C1 note (that’s around 32Hz). These are the trimmers we’re going to use on the Core board:

We’ll tune VCO1 first, so turn off VCO2 just like you did at the wave shape tuning.

  1. Turn VCO1 HI-FREQ all the way down so there's no high frequency compensation (VCOs tend to go flat on higher frequencies, this trimmer is to compensate that). To make sure it’s all the way down play a very high pitch note and start turning the trimpot so that the pitch is going down. Once it doesn't go lower then you "turned off" high freq compensation.
  2. Use VCO1 BIAS to set the frequency to C1 (32.703Hz)
  3. Play C4 and use VCO1 BIAS to set the frequency to C4 (261.63Hz)
  4. Play C1 and use VCO1 WIDTH to tune it to 32.703Hz)
  5. Loop Step 3 and 4 until C1 and C4 are both in tune
  6. When C1 and C4 are in tune, play higher octave C's and use VCO1 HI-FREQ to adjust tuning for them.

If needed, repeat steps 3 and 4 for other note pairs.

To tune VCO2, remove the JP_VCO1_IN1 jumper and turn on VCO2. Repeat the steps with the VCO2 trimmers.

Sound source volumes

With these trimmers you can set the maximum volume for each sound source: VCO1, VCO2, noise and sub. Additionally you can mix the volume of -1 and -2 octave of the sub oscillator with SUB -2 OCTAVE LEVEL. For line level maximum about 1.6Vpp is recommended on the output.

Glide amount

Use this trimmer to set the fixed glide amount when glide is on:

Playground

The following parameters of the Playground section can be set:

RV_PLAYGROUND_HALF1Sets the amount of modulation when the Playground ON/OFF switch is in the middle.
RV_VCA_PLAYGND_BIAS1Sets the control voltage sent to the VCA when the Playground switch is set to position #4 (ring modulation)
RV_SYNC_VIBRATO_DAMP1Sets how much LFO2 should modulate the detune of VCO2 when Playground is in position #1 (hard sync)

Filter tuning

Use the CUTOFF_BIAS trimmer to set the minimum cutoff control voltage for the filter, and the MAX RESONANCE trimmer to set how much the filter should resonate when the “Dirty” pot is set all the way up.

On the UI board you can fine tune a couple of filter related things:

RV_TRACKING_LVL1Sets the maximum value of the tracking. When tracking is on then the higher the note the more the filter will open.
RV_EXT_CUTOFF_GAIN1Sets the level of external cutoff from a gain of 0 to 2
RV_DIRTY_AMP1Sets how much the ADSR should effect the cutoff when resonance is turned up. (The resonance and the envelope modulation happens at once via a dual pot.)

Output volumes

Use the HEADPHONES LEVEL and LINE LEVEL respectively to set their maximum values. Note that LINE LEVEL sets the maximum input level for HEADPHONES LEVEL too.

Enclosure

We've put the HOG in a custom sheet metal enclosure. We'd like to keep the designs for this enclosure private, but here we're sharing a PDF drill guide for the top and back panels which you can use to design your own enclosure.

Top panel

The size of the top panel is 290x190mm, and it's designed using a 10x10mm grid, ie. all the knob, LED, toggle and rotary switch holes fall on the intersection of these grid lines. The size of the hole is indicated on top, but here's a breakdown of each drill type

Pots 10mm
LED 3.5mm (if you use 3mm LEDs)
Toggle switches 7x15mm
Rotary switches 10mm

Back panel

The back panel doesn't use a fixed grid but all hole position and size is marked on the layout guide.

Shielding notes

The VCA and the filter are two extremely sensitive circuits which are susceptible to external noise. Without proper shielding both these circuits will generate noise e.g. when you touch or even get close to them with your finger—we all practically act like huge noise antennas.

To overcome this problem we highly recommend to put the whole synth in a metal enclosure which is connected to common (GND — there are plenty of GND connections on the UI board), or at a minimum shield the Filter and the VCA part of the Core board from the top and bottom.


Questions, bugs

If you have questions, we are happy to answer them in the comments section below. Should you find a bug, please report a Github issue about it. Thx ✌️