
Sweepbling lp pcb
davidphilipbarr/Sweep
Sweep - a small promicro based keyboard inspired by the Ferris.

The PG-80 Crosswave Parameter Programmer enables a customized, 32-pot programming workflow for the Ensoniq SQ-80 and ESQ-1, includes a toggle feature to enbale/disable Hidden Waves and a shftt function that extends the unit's function to 42 parameters.
SQ80 Hardware Programmer is an open-source printed circuit board by trevorj71, from the trevorj71/SQ-80-Parameter-Programmer repository on GitHub, published under the CC0-1.0 licence. It is a 2-layer board of 225 × 115 mm with 59 parts on 74 nets, routed with 910 tracks and 0 vias.
Its parts include 6 resistors, 4 ICs, 3 capacitors, 2 connectors and 2 switches. It belongs with the interfaces and adapters and audio and music boards and the AVR (ATmega, ATtiny) boards of this library.
This repo contains open source hardware and software for the Ensoniq SQ-80 and ESQ-1 hybrid synthesizers, which I have named the "PG-80". It allows you to program up to 63 parameters in your synthesis engine using the 32 knobs on the front panel. It also supports hidden waves if your synth is equipped with an OS that supports them on the front panel. It also features a MIDI merge feature so you can run an input from your MIDI interface through the programmer to the synth, inserting the programmer in-line so it doesn't add unnecessarily to your workflow or MIDI rats nest.
I'm still tweaking the firmware to improve the knob layout and I have a new housing version in progress to accomodate a larger OLED display, but the current design is debugged and functional.
The BOM is now available in the Root Directory and the KiCad Directory in csv format.
My vision for this unit was always been a sidecar that can sit next to the synth on a stand designed for a 76 key workstation and looks like an extension of the synth to the extent possible. Likely, you could design a smaller housing for desktop, as mine is not necessarily designed to minimize its footprint or print time.
The 3D models for the prototype are will be published here in both Fusion 360 and STL formats.
For my first build, I used PCB mounted MIDI connectors and a PCB that was optimized for production and shipping cost. This left me with limited space between the knob array and the back panel of the unit for an OLED, so I used an Adafruit 326 0.91 inch display. This was fine for prototyping but in practice in the studio it is really hard to read. Otherwise the knob layout feels good and the overall geometry of the print meets the vision.
I did have some slippage in my printer late in this job (which took 5 days) so there is a bit of a bondo job on this, but it works for a prototype.
Build two will switch to a 2.42 inch Adafruit 2719 and panel mounted MIDI connections. Design for that enclosure is under way.
A panel mounted toggle switch, SW1, facilitates switching between the 32 wave ESQ-1 table and the 75 wave SQ-80 table. In standard mode, this aligns the values sent by the oscillator waveform knobs within the desired range for your model synth. In Glitch Mode, this is more a matter of the mask used for the OLED on parameters 33-75, since all 255 parameters can be transmitted to the synth.
This momentary pushbutton switch, SW2, has two functions.
A quick tap of this swtich enables glitch mode. This allows knobs 1-3 (oscillator waveforms) to transmit all 255 available parameters to the synth. If you have an OS for your synth that supports hidden waveforms, you will be able to scroll through all 255 paramteters. This only works with the modified OS versions that support hidden waves.
Pressing and holding this switch while also turning a knob makes it function as a shift key, letting you change the MIDI channel on your device or modify up to 63 parameters in your synthesis workflow. Failing to turn a knob while the switch is depressed reverts the programmer to Glitch Mode / Standard Mode.
Currently, the programmer has been laid out with 32 Potentiometers. You can access up to 63 parameters plus MIDI channel by pressing and holding the Hidden Waveforms button like a shift key.
The knob layout as of version 1.5 is as follows:
| Oscillator 1 | Oscillator 2 | Oscillator 3 | DCA-Filter | MOD 1 | MOD 2 | ENV 1-3 | ENV 2-4 |
|---|---|---|---|---|---|---|---|
| WAVEFORM | WAVEFORM | WAVEFORM | DCA1 VOL | LFO1 WAVE | LFO2 FREQ | ENV1 ATK | ENV2 ATK |
| OSC1 FINE | OSC2 FINE | OSC3 FINE | DCA2 VOL | LFO1 FREQ | LFO3 WAVE | ENV1 DEC | ENV2 DEC |
| OSC1 COAR | OSC2 COAR | OSC3 COAR | DCA3 VOL | LFO1 DELY | LFO3 FREQ | ENV1 REL | ENV2 REL |
| OSC1 OCT | OSC2 OCT | OSC3 OCT | ENV4 VOL | LFO2 WAVE | LFO3 DELY | ENV1 SUS | ENV2 SUS |
| Oscillator 1 | Oscillator 2 | Oscillator 3 | DCA-Filter | MOD 1 | MOD 2 | ENV 1-3 | ENV 2-4 |
|---|---|---|---|---|---|---|---|
| MOD1 SRC | MOD1 SRC | MOD1 SRC | FILT CUT | LFO1 L1 | LFO2 LS | ENV3 ATK | ENV4 ATK |
| MOD1 LEV | MOD1 LEV | MOD1 LEV | FILT RES | LFO1 L2 | LFO3 L1` | ENV3 DEC | ENV4 DEC |
| MOD2 SRC | MOD2 SRC | MOD2 SRC | FILT MOD3 | LFO2 DELY | LFO3 L2 | ENV3 REL | ENV4 REL |
| MOD2 LEV | MOD2 LEV | MOD2 LEV | VOICE PAN | LFO2 L1 | MIDI CHAN | ENV3 SUS | ENV4 SUS |
I recommend Version 1.5 of the firmware for your build if you are building the prototype model with the Adafruit 326. Version 1.6 is a deprecated version I created while debugging. It unnecessarily limits the number of hidden waves available. It turned out that the issue I was trobleshooting was hardware related.
Versions earlier than 1.5 have fewer parameters available on the front panel, and are not fully debugged.
As you might expect, my prototype PCB's have a few boges due to design errors. I did update the designs in KiCad so if you order PCB's with these gerbers, you should not have to boge anyting to build a working model with the Adafruit 326 display. I do have a handful of my prototype PCB's on hand that I'm willing to part with to save you ordering from China, but you will need to install two jumpers and an extra resistor. Reach out if you want one of those.
The OLED is panel mounted. The protruding "ears" on the bottom of the OLED board should be removed prior to installation using a dremel tool or a fine tooth hacksaw blade, because they will interfere with the adjacent pots. A U-channel is printed on the underside of the enclosure lid to hold this edge of the display tight to the lid. The other edge is attached with M2.5 machine screws. Do not over-tighten these screws.
The Adafruit 2719 does not have built in I2C Pullup Resistors, so those will beed to be added between the signalling path from the microcontroller to the display. Other changes may be needed, TBD.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 32 | 10K | Potentiometer_THT:Potentiometer_Bourns_PTV09A-1_Single_Vertical | RV1, RV2, RV10, RV11, RV12, RV13, RV14, RV15, RV16, RV17, RV18, RV19, RV20, RV21, RV22, RV23 +16 |
| 8 | MountingHole_3.2mm_M3 | MountingHole:MountingHole_3.2mm_M3 | Mount, Mount, Mount, Mount, Mount, Mount, Mount, Mount |
| 3 | 220 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P15.24mm_Horizontal | R1, R2, R3 |
| 2 | 0.1uf Tant | Capacitor_THT:CP_Radial_Tantal_D5.0mm_P2.50mm | C1, C2 |
| 1 | 10K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P15.24mm_Horizontal | R7 |
| 1 | 10uf | Capacitor_THT:CP_Radial_D5.0mm_P2.00mm | C3 |
| 1 | 1N4148 | Diode_THT:D_DO-35_SOD27_P7.62mm_Horizontal | D1 |
| 1 | 4.7K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P15.24mm_Horizontal | R4 |
| 1 | 4.7k | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P15.24mm_Horizontal | R5 |
| 1 | 6N138 | Package_DIP:DIP-8_W7.62mm | U3 |
| 1 | ARCH_MODE | Connector_PinHeader_2.54mm:PinHeader_1x03_P2.54mm_Vertical | SW1 |
| 1 | Arduino_Nano_Every | Module:Arduino_Nano | A1 |
| 1 | ER_OLEDM0.91_1x-I2C | Display:ER_OLEDM0.91_1x-I2C | U4 |
| 1 | GLITCH_TRIG | Button_Switch_THT:SW_PUSH_6mm | SW2 |
| 1 | MIDI IN | footprints:CONN5_SDS-50J_CUD | J1 |
| 1 | MIDI OUT/THRU | footprints:CONN5_SDS-50J_CUD | J2 |
| 1 | MUX_1 | Package_SO:SOIC-24W_7.5x15.4mm_P1.27mm | U1 |
| 1 | MUX_2 | Package_SO:SOIC-24W_7.5x15.4mm_P1.27mm | U2 |
It measures 225 × 115 mm and has 2 copper layers, 1.6 mm thick.
59 parts. 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.
From the trevorj71/SQ-80-Parameter-Programmer repository on GitHub, at the commit this page was made from: the board is SQ80_Programmer_KiCad/SQ80_Hardware_Programmer.kicad_pcb and its schematic SQ80_Programmer_KiCad/SQ80_Hardware_Programmer.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Its repository publishes it under the CC0-1.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).

davidphilipbarr/Sweep
Sweep - a small promicro based keyboard inspired by the Ferris.


VoronDesign/Voron-Hardware
Cool Hardware designed by the Voron Design group


dmcke5/NucDeck
The Open Source DIY Handheld Gaming PC!

jackw01/scanlight
A better light source for scanning color negative film

ChrisChrisLoLo/beyblock20
The magnetic, modular, 20-key macropad that can join together to form an ortholinear board

sadekbaroudi/vik
This is a VIK module designed to mount a PER56 scroll ring, with a 35mm Cirque Trackpad and optional WS2812B LEDs.