RC-1 Loop Station BOSS Modification - FADE and STOP Button
by giorgpasq1 in Circuits > Audio
4060 Views, 4 Favorites, 0 Comments
RC-1 Loop Station BOSS Modification - FADE and STOP Button
The BOSS RC-1 Loop Station is one of the most simple and reliable guitar looper and, considering that is stereo, still one of the most convenient at $99.
Anyway I found that there is some room for improvement...
With this project I modified the RC-1 in order to have:
- Integrated push button for STOP and DELETE
- FADE-OUT activated by the same button
The pictures on the top show the final result: not bad!
The way that I choose to achieve my goal is to use a Rotary Encoder with Push-Button: in this way no extra ugly stomp box buttons to add, so the RC-1 looks the same with the exception of an extra LED.
Supplies
- Arduino nano
- MCP42100 (digital potentiometer)
- .1uF ceramic capacitor
- (3x) 560 Ohm Resistors
- reed relay SIP-1 A05
- RGB LED
- (4x) 1N4001 diodes
- Rotary Encoder with Push-Button
Schematic Description
Arduino nano takes care of the following functions:
INPUT
Rotary Encoder
D2 -> pin A
D3 -> pin B
D4 -> Push-Button
D8 -> Jack RING for FADE-OUT function (diodes are used for protect Arduino vs. Boss RC-1)
D12 -> Jack TIP for STOP function (diode are used for protect Arduino vs. Boss RC-1)
OUTPUT
Digital Potentiometer MCP42100
D10 -> CS
D13 -> SCK
D11 -> SI
On the breadboard schematic the digital potentiometer chip is visualised by a generic 14pins IC. This is just a graphic representation of a MCP42100.
I have used pins 5-6-7 (PB1-PW1-PA1) to substitute the original potentiometer VR900 in the BOSS RC-1.
D7 -> Reed Relay for STOP
I have used reed relays for TIP output: small, stable contact and cheap! In the Fritz schematics I couldn't find the reed relay SIP-1A05 so I used the most similar diagram. In the pictures attached you'll see that the reed relay has only 4 pins (instead of the 8 pins in the schematic): the external ones are the contact, the inner ones the coil.
D6 -> RGB LED (Blue)
D5 -> RGB LED (Red)
D9 -> RGB LED (Green)
How the FADE-OUT and STOP Work...
The Rotary Encoder substitutes the original potentiometer and works as LEVEL of playback: although I found this solution very smooth and... cool, the downside is that you cannot have the simple indication of the volume on the knob (the Rotary Encoder is incremental...).
My ideal solution was to use the 24 LEDs of the RC-1 as visual indicator but, once opened, the RC-1 shows a clever use of BU2152FS (shift register and a latch circuit to control 24 LED by serial interface): too complicate for me to try to control it with Arduino (some more capable hackers can do it...).
So I used an RGB LED that can visually show the LEVEL:
- GREEN -> min. volume
- RED -> MAX volume
- from GREEN/BLUE to PURPLE/RED -> intermediate volume
It sounds complicated but is not: once done, play with knob up and down and you'll immediately familiarise with the preset LEVEL (see attached short clip).
The Rotary Encoder that I have utilised is the Cylewet 5Pcs CYT1100 ASIN code B07DM2YMT4 on Amazon and, once installed, the knob is just about over the top of the pedal: in this way it is extremely easy to push the button with your foot (see attached the second short clip) to activate the 3 new functions on the RC-1:
- press the Push-Button shortly (typical less than half second) to STOP the Loop you've recorded: the RGB LED turn Red and the RC-1 shows the typical 3 Green LEDs that represent the STOP status. At this stage if you press the Push-Button again and hold, you'll CLEAR the recorded loop (all Red LEDs will flash). The RGB LED will turn Green to indicate that is ready for FADE-OUT.
- press the Push-Button longer (>1s) to activate the FADE-OUT: the RGB LED will turn Blue, the volume of the playback will progressively decrease and the RGB LED will fade until completely OFF and then the RC-1 goes in STOP status. You can STOP the fading pressing the Push-Button before the end of the cycle: in this case the RC-1 goes immediately in STOP status.
- press the Push-Button very long (>7s) to memorise the current level set with the Rotary Encoder. The RGB LED will blink to confirm that the new LEVEL has been set. You can change the LEVEL at any time but you have to memorise it if you want it back after you turn OFF the RC-1.
One side-effect of using the same Push-Button for STOP, CLEAR and FADE is that you have to define when you would like to actually use the FADE and not the CLEAN (both require to press & hold). For this reason I used the logic of LED colours:
- GREEN -> ready to fade
- RED -> STOP mode ready to CLEAR
if the RGB LED is Red but you want activate the FADE, press the Push-Button until the RGB LED turn Green (~1s).
If you really want the life much easier, then connect the external 2 foot-switches (the original BOSS or any NC foot-switches) and the 2 functions will be:
- press the STOP Button (the TIP contact on the jack) and, surprise surprise, the recorded loop will stop
- press the UNDO/REDO Button (the RING contact on the jack) and the FADE-OUT will start. In this case, if you press it again the LEVEL will increase back (FADE-IN), if you press the STOP Button during the fading, the RC-1 will stop.
You lose the possibility to UNDO/REDO with the external foot-switch but you can still do it with the RC-1 pedal.
The setting of the LEVEL volume will remain controlled by the Rotary Encoder Push-Button.
Please note that the external foot-switches are recognised only at power-ON!
Arduino Nano CODE
The usual preface: I'm very poor in coding (crap!). See my background in the project https://www.instructables.com/B9/ : practically I'm a dinosaur!
Anyway I managed to write a relative linear code with enough comments (I hope!) to explain it.
The main parts:
- MCP42100 digital potentiometer initial setting
- Rotary Encoder with interrupt management of pinA and pinB
- RGB LED functions: I could use just one function with parameters but I found easier to define the 3 fundamental colours and then the variable colour in case you turn the Rotary Encoder.
you'll find a part that use the A0...A7 output (all // ): it was my first attempt to use the RC-1 LEDs to visualise the LEVEL but, as I said, it was too complicated. I have used instead to monitoring if the LEVEL changed during the prototyping. You could use the 8 LEDs all around the Rotary Encoder if you have huge patience and precision to drill the holes and connect all the LED to the nano!
the loop() has 5 different parts:
- first part to determine the length of the Push-Button hold
- Push-Button pressed Longer to activate EEPROM writing of LEVEL set (>7s) or FADE-OUT (1s)
- Push-Button pressed Shorter to STOP
- Define if there is an external Jack connected to STOP and UNDO/REDO foot-switches: please note that the detection happen at power-ON.
- Activate FADE-OUT and FADE-IN with the external foot-switch (RING)
- STOP and CLEAR with the external foot-switch (TIP)
Remove the Potentiometer and Insert the Rotary Encoder Plus RGB LED
First thing to do is to prepare "mechanically" the RC-1 to host the RGB LED: the Rotary Encoder itself doesn't need any change because it fits perfectly the original hole.
Open the RC-1, loose all the jacks and the potentiometer, carefully disconnect the main board (there are quite logical disposed fast connectors) and you will have the RC-1 case practically empty.
For the connection of the Rotary Encoder and the RGB LED I have used a small piece of PCB (see picture): if you choose this solution be sure to mark the hole for the LED on the case in the right spot!
Drill the hole with the appropriate tip size in order to have the LED tight in.
For the connection between the Rotary Encoder/RGB LED and the Arduino nano I have used screened cable: you can see these cables in the forth picture (the one with the main board) and not in the third one (the one with the LED ON and several coloured cables): the reason of this choice is because the use of PWM on the Output D5-D6-D9 generate a lot of noise. In my first prototype I didn't use screened cable and the noise was absolutely unacceptable.
I have used an old iPhone USB cable (3 wires+shield for GND very flexible) and it works well.
So, be sure to use screened cables for the connection with:
- Rotary Encoder
- RGB LED
- Digital Potentiometer
Arduino Nano Shield and RC-1 Connections
There is just enough space in the RC-1 to accommodate the Arduino nano with its shield.
I have prepared a simple shields (a boards plugged on the bottom of the Arduino nano) to host:
- MCP42100
- .1uF ceramic capacitor
- reed relays SIP-1 A05
- (2x) 1N4001 diodes
As you can see from the picture I have wired the PCB as a prototype (following the schematic of the breadboard should be enough) but, of course, a proper PCB will be much more elegant!
From the shield you'll connect to:
- +9V on the RC-1 - I have used the positive side of the Electrolyte Capacitor C116 (see picture)
- Rotary Encoder with Push Button (screened cable)
- RGB LED (I have accommodate the 3 resistors on the small PCB that host the LED and I have used screened cable)
- Undo/Redo-STOP jack
- connector CN6: you have to cut the original connector and wire the RED cable to pin 7 of MCP42100, the next two to pins 6 and 5 (the forth one is connected to the third and is GND). In the picture you see a flat cable but, as I said, in the final version I have used screened cable to avoid noise.
You'll need further connection from the jack Undo/Redo-STOP to the connector CN4 on RC-1 through 2 diodes for protection (see picture).
Points of attention:
- keep the Arduino nano and the PCB shield as close as possible to reduce the overall thickness and facilitate the placement in the RC-1 case
- insert a conductive shield on top of the Arduino nano (you can see it in some pictures, it's the black sheet connected with a black cable) but be careful that it has to be well isolated to avoid short-circuit on the main board.
- measure the cable in order to have the right length: there is not too much space in the RC-1 so, cables need to be just long enough!
Conclusion and Further Thoughts.
This project started as an original need to have the FADE function on my RC-1 like the super unreliable Ditto x4.
The idea is simple: use a digital potentiometer to substitute the original electro-mechanical one.
I have tested the feasibility of this concept with Arduino nano and MCP42100 in the Boss VE-8 where you have plenty of room inside (maybe I should publish the project...).
Then I made a stand-alone stompbox (https://www.instructables.com/Fade-for-Guitar-Looper-and-Tremolo-for-Free/).
The RC-1 is the looper that I like the most but it has been the most challenging due to the very limited space, nevertheless the project permits to have the Fade feature AND the integrated STOP foot-switch!
I believe the project can be improved:
- better CODE: maybe using more structured way;
- logic of pressing short or long time is working for me but could be modified in a more natural way (I don't know how...);
- using the external Undo/Redo-STOP footswitch force me to use diodes to protect nano vs. RC-1 due to different voltage (5V - 3.3V): maybe a different Arduino or other circuit solution could avoid this need;
- the RGB LED is not everyone taste for measure the level: other solutions, like the one proposed to directly interface the 24 LEDs of the RC-1, could be more refined;
- build a proper PCB shield and use connectors to insert the modification in the RC-1;
- made a side opening to access the USB port of Arduino nano or connect RX TX pins to the stereo jack to access the programming of nano (could it work?)
- ...
During the thinking process, I was evaluate the most straightforward way to have the integrated STOP foot-switch: a potentiometer with integrated push-button but... too plain!
Finally you'll find the 2 short video to demonstrate the use of RC-1 modified:
- the first one uses the integrated Push-Button to FADE the loop first and then to STOP it
- the second one uses the 2 external foot-switches (like Boss FS-6 or https://www.instructables.com/Fade-for-Guitar-Loo... ) to FADE-OUT then FADE-IN and finally STOP.
Now I love my RC-1 more than the ditto X4!