Boss RC-202 Loop Station with the Nektar Pacer MIDI Foot Controller

Posted on Friday June 5th, 2020

I spent quite a bit of time researching commercially available options and gathering ideas to control the Boss RC-202 Loop Station with my feet . I even went as far as designing a custom MIDI controller, and when I was browsing Amazon for components I found the Nektar Pacer MIDI Foot Controller with very good reviews. While it is expensive at ~$220 USD, it is definitely cheaper than the solution I was thinking of building.

So I scratched all my plans to build a custom controller and I went ahead and bought the Pacer.

After messing around with it for a little while I think I've found the optimal settings to control the RC-202 in my workflow, which I'll detail below. But first, some context from my previous post:

The RC-202 is a desktop loop station, which means that it's designed to be operated with your fingers, allowing for a much finer control than a simple two-pedal stompbox. However, I still need to be able to control some basic functions of the looper through a foot controller, to be able to use it while playing the guitar or any other instrument that requires both of my hands.

Luckily, the RC-202 supports external controls, but it's (artificially) limited in those. It supports 7 "switches" that can be assigned to one of 35 predefined functions, for example "Function #1: Switches track 1 between record/play", "Function #6: Clears track 2", and so on. However, there's a catch since the 7 "switches" are not all equal:

  • 2 of them are for an external dual footswitch, such as the Boss FS-6, connected through a 1/4" TRS jack (CTL1+CTL2 input).
  • 5 of them are for special MIDI Control Change (CC) messages that can be received through the MIDI IN connector and are fixed to CC 80 thru CC 84.

The Pacer has 11 footswitches, but only 10 of those can be mapped. They are ordered in two rows, the upper row has 4 switches, while the lower row has 6. It also supports 4 extra external footswitches, as well as 2 expresion pedals. All in all, I think it's a great flexible product, the build quality is on par with Roland / Boss pedals, and it has enough functionality to give me room to grow in case I ever upgrade to the RC-505.

The Layout

While the Pacer has 10 configurable footswitches, the RC-202 allows at most 7 inputs. This gave me a little room to mess around until I found a nice symmetrical layout that I liked.

I'm only using the center 8 switches (A, B, C, D, 2, 3, 4, 5) to control the RC-202, and I'm leaving the outermost switches 1 and 6 to control other devices.

Nektar Pacer RC-202 Layout

The next step is to define how each switch will be mapped, what signal will be sent out from the Pacer and how each signal will be assigned and configured in the RC-202. I drew this little table to help me out when configuring everything:

Footswitch Function Pacer Out RC-202 In RC-202 Assignment
Preset cannot be mapped -- -- --
A Undo Track 1 Relay 1 CTL1 FN 7
B Play/Stop All MIDI CC 84 MIDI IN (5) FN 16
C Play/Stop All MIDI CC 84 MIDI IN (5) FN 16
D Undo Track 2 Relay 3 CTL2 FN 8
1 not used Relay 2 -- --
2 Play/Stop Track 1 MIDI CC 82 MIDI IN (3) FN 3
3 Play/Record Track 1 MIDI CC 80 MIDI IN (1) FN 1
4 Play/Record Track 2 MIDI CC 81 MIDI IN (2) FN 2
5 Play/Stop Track 2 MIDI CC 83 MIDI IN (4) FN 4
6 not used Relay 4 -- --

There are some things to note:

  • Switches B & C are duplicated to keep it "symmetrical".
  • Switches 1 & 6 are not used to control the RC-202, but I've mapped them to the Relay 2 and Relay 4 (R2/4 jack in the Pacer) in order to control other simpler pedals in my setup (such as the Boss VE-1 Vocal Echo), or as an extra footswitch for the GT-1 / GT-1B. This will allow me to replace a regular external footswitch, like a Boss FS-6 or Boss FS-7.

Configuring the Nektar Pacer

The Pacer can be configured directly on the device using the small display and the single knob. However, it's much faster to configure it using the Web-based Open-Source Pacer Editor developed by François Georgy. Even thought this editor is not an "official" utility by Nektar, it's recommended by the company on their own Support Knowledge Base article about the Pacer.

The editor is pretty straight forward, and after tweaking the settings this is the overview of my custom preset:

Nektar Pacer RC-202 Patch Overview

If you'd like to try this layout, you can download my RC-202 .syx file and upload it to your Pacer following these steps:

  1. Make sure you are running the latest v10112 firmware on your Pacer.
  2. Go to "Patch" on the Editor top menu bar
  3. Click on "Read patch from Pacer" to load your current settings.
  4. Click on "Save patch to file" to download your current settings as a .syx. Store this file as this will be your backup in case you want to revert to your custom settings.
  5. Click on "Load patch from file" and select my RC-202 .syx file
  6. Finally, click on "Send patch to Pacer" to upload the custom preset to your Pacer.

After this is done, you can unplug your Pacer and restart it. Then, access the A1 preset and it should show RC202 on the display. That's it.

Configuring the Boss RC-202

Unlike the Pacer, the Boss RC-202 cannot be configured from a computer, at least as far as I know. This means that the configuration must be done using the tiny 3-character display on the RC-202. However, the procedure is actually very simple.

I recommend that you read first the Boss RC-202 Owner's Manual (EN) followed by the Boss RC-202 Parameter Guide (EN). The actual information we need is on the Parameter Guide, as it includes the complete list of assignments and functions available in the device. (Why is it a separate document though? Makes no sense to me)

To ease the configuration process, I've simplified the map table:

CTL Source CTL Target
Ct1 7
Ct2 8
EHP skip
C80 1
C81 2
C82 3
C83 4
C84 16

To configure the RC-202, you have to press [SETUP] once, then press RING MODE [CTL] once to enter the CTL Assignment menu. In the menu, the display will blink between the current CTL Source (Ct1, Ct2, etc.) and its current CTL Target function. Use the [VALUE] knob to change the CTL Target, and press the [VALUE] knob to configure the next CTL Source in the list.

Connecting the devices

The final step is to connect both devices:

  • Connect a MIDI cable from the Pacer's MIDI Out to the RC-202's MIDI IN jack
  • Connect a 1/4" TRS cable from the Pacer's R1/3 jack¹ to the RC-202's CTL1/CTL2 jack.

Power on both devices from a 9V DC adapter and you're good to go.

General Notes / Troubleshooting

  • The Boss RC-202 stores the CTL assignments as bank settings, instead of global settings. This means that the CTL configuration must be done once per each bank. If you never record anything in the built-in memory, then this should not be a problem since you could only configure the first bank and be done with it. However, if you want it working in all 8 banks, you will have to configure it 8 times.
  • Following the bank settings issue on the RC-202, I'm still not 100% sure how or when the settings are saved on the RC-202. Sometimes I can enter [SETUP], adjust the CTL settings, and [EXIT] and the settings will be persisted when restarting the RC-202. But sometimes not. I have also tried to write a "blank" phrase after modifying the settings and this seems to be the most consistent method.
  • ¹ For some reason, the Relay outputs appear to be flipped. That is, the jack marked as R1/3 on the Pacer responds to the settings made for the Relays 2 & 4, and the jack marked as R2/4 on the Pacer responds to the settings for Relays 1 & 3. I'm not certain if the issue is in the Editor software or if it's a bug in the Pacer's firmware, but for now I'm swapping the plug to the other jack. Update: The latest firmware changes the structure of presets in the Pacer memory, so I was wrongly using the Editor with an older firmware on my Pacer. Make sure to always use the latest firmware for your Pacer to prevent any funkiness.
  • I'd like to replace the semi-transparent labels for each footswitch.
  • I might open up the Pacer sometime soon to see what's inside. I'll document my findings


Designing the Electronic Circuit for a Custom Foot Pedal for the Boss RC-202 Loop Station [Part 2 of 2]

Posted on Sunday April 26th, 2020

Read the previous entry for this topic: Researching commercially available options and gathering ideas

UPDATE: I never got around to building this project, instead I bought a Nektar Pacer MIDI Foot Controller which has pretty much all the functionality that I was planning for this build. You can read more about it here.

Note: this entry is still a work in progress..

As mentioned in the previous entries, the Bridge Controller will hold the brains and circuitry required to read from the footswitches and convert those signals into standard MIDI messages.

I'll break up the electronic circuit into different components and I'll go through the design requirements and solutions given to each one. The components are:

  • An Arduino Nano (ATmega328) microcontroller
  • 12 digital inputs to read the switch states
  • 5V power regulator to regulate from a 9V DC barrel jack (to use the same Boss PSA power adaptors) to 5V
  • MIDI IN opto-coupled circuit, to be used to soft merge and pass through messages to the MIDI OUT
  • MIDI OUT circuit
  • 2 5V mechanical relays to simulate a CTL1+CTL2 pedal output

Arduino Nano

The Arduino Nano uses the same microcontroller as the popular Arduino Uno, the ATmega328 chip, but comes in a much smaller package. There's not much to say about the Arduino that hasn't been already written on the internet.

I will be using the basic Arduino Nano 3.x version with headers, and I'll place some female headers in the PCB in order to be able to remove the Arduino if needed, or to replace it if something goes wrong. There are some newer versions that include Bluetooth BLE (Low Energy) such as the Nano 33 BLE or Nano 33 IoT which give me some ideas for a 2.0 version of this controller.

Here are some specs of the Nano from the official Arduino website that will be useful later on:

  • 22 digital I/O pins
  • Maximum current of 40mA per I/O pin, with a total maximum of 200mA through all of the pins.
  • Power consumption is about ~19mA

Digital Inputs from the Footswitches

Reading the status of a switch is one of the most basic functions for a microcontroller, but still, I'll first contextualize about the different type of switches and the things that should be considered in order to take reliable readings from the footswitches. The only thing that I'm skipping here is debouncing, since I will cover that on the software side.

Types of Switches

A switch is one of the simplest electrical elements and in its most simple version it's a cable that can be either disconnected (open: does not allow for current to flow through) or connected (closed: allows a current to pass).

There are many different types of switches with many different characteristics for every application, but I'll concentrate on two of them:

Action Mode determines the behaviour or state of the switch after it has been pressed. - Momentary action means that the switch makes contact (closes) only when it's pressed, and as soon as the force is removed the electrical contact opens. - Latching action means that the switch changes its state (from open to closed, and vice versa) each time it's pressed and maintains its current state until it's pressed again. In other words, if the switch is open and you press it, it closes and stays closed until you press it again. It toggles from one state to the other.

Polarity determines the default state of a momentary switch, and consequently its behavior when it's pressed. - In a normally open (NO) configuration, the switch is open when unpressed (default, normal or resting state), and it closes when it's pressed or activated. - In a normally closed (NC) configuration, the switch is closed when unpressed (default, normal or resting state), and it opens when it's pressed or activated.

Reading a Switch State

In my design I'm assuming that all of my footswitches will be (i) momentary action and (ii) with a normally open (NO) polarity. I believe this is by far the most common type of footswitch available in the market, and many of the more complex switches can be configured in either mode anyway.

Reading the state of a switch is a simple as reading the voltage from one node of the circuit and watching what happens when the circuit closes as the switch is pressed. However, there's a catch. A switch can be open or closed, but only when the switch is closed a circuit is formed and current is allowed to flow, and a voltage can only be measured on a closed circuit. That means that something must be done to account for the open state of the switch to be able to reliable measure it.

To solve this, I will be using a configuration known as pull-down resistor. What this does, is that it guarantees that whenever the switch is open the microcontroller will read 0V (LOW). In other words, when the switch is open the circuit pulls down the voltage. However, when the switch is closed the microcontroller will read +5V (HIGH). This prevents any undetermined or floating measurement.

Pull-Down resistor configuration

  • When the switch is open, the pin is connected to GND through a 1kΩ resistor, since there is no current flowing from the pin, there is no voltage difference in the resistor and the voltage on the pin is 0V.
  • When the switch is closed, a small current flows through the 1kΩ resistor to GND and closes the circuit. This also directly connects the pin to the +5V rail, thus getting a measurement of 5V in the pin.

All in all, this configuration translates to:

  • when the Switch is not pressed (open), we will read a LOW signal, interpreted as 0 in the microcontroller.
  • when the switch is pressed (closed), we will read a HIGH signal, interpreted as 1 in the microcontroller.

Handling different types of switches and plugs

For the actual footswitches, they will be connected to the Bridge Controller using a TRS 1/4" plug. A single TRS cable can connect 2 footswitches since it carries 3 wires: one for each switch and the third as a common connector.

Following the Boss/Roland custom, they map a TRS (Tip Ring Sleeve) 1/4" plug as: - Tip: mapped to the B switch - Ring: mapped to the A switch - Sleeve: common (return for both A & B)

The word "Jack" is used for the female socket, while "Plug" is used for the male connector

While this is a neat solution to wire two switches over a standard cable, it also presents an interesting problem when plugging a TS cable (Tip Sleeve) since there's no Ring in the plug. This means that the electrical connector that we'd expect for the A switch is merged into the Sleeve, so the device will always read the A switch as closed.

Since I want to be able to plug single footswitches (for example basic sustain pedals) as well as dual footswitches using the same TRS jacks, this means I have to apply some extra logic. The type of connector (TRS or TS) could be detected upon power-up if we assume that the switches are always NO. The logic for the detection would be:

Assuming that there are two pin inputs (D0 and D1) in the microcontroller, and they're mapped as:
- Pin D0 -> Tip
- Pin D1 -> Ring

Then:
- If D1 (Ring) is HIGH: set D0 as Input A, disable D1 and disappear the Input B
- If D1 (Ring) is LOW: set D0 as Input B, set D1 as Input A

This will require that whenever I turn on the bridge, I make sure that: - all of the pedals are already connected - I'm not pressing any button on any pedal - all of the pedals have a NO polarity, since it would not be able to differentiate a NC switch from a TS cable.

MIDI

The MIDI standard was released in 1983, about 35 years ago, and it's stood the test of time since it's still widely used.

It has a couple of design

it uses a 5-pin DIN connector, but it only uses 3 of those pins.

A newer standard has __ in the last few years, which uses a standard 3.5mm TRS minijack (headphones), since it only requires 3 cables. The wiring of the 3 pins in the TRS (Tip Ring Sleeve) _ has two variants, which have been called Type A and Type B.

The device will have both a 5-pin DIN connector and Type A (the newer one) __ __ don't depend on adaptors and for future compatibility.

MIDI communicates with a sends it signals by a __ current __ , 0mA (low) and 5mA (high). Instead of voltage.

And the devices that __ are not electrically connected. Instead, they are opto-isolated.

A device could be operating at 5V __ as long as the current is respected.

MIDI IN Circuit

asdfasdfasdf

Opto-isolated which means that the input signal __ is not electrically connected to any of the __ device's

The information is transmitted by light inside the optocoupler, which creates an insulation barrier, __

In order for this to work, the input signal coming from the external device has to provide the required power to light the LED inside the optocoupler, and this is were the required 5mA in the MIDI signal spec come into play.

MIDI OUT Circuit

The __ sends power...

the Tx pin actually sinks current.

+5V GND Tx

This is actually a pretty nifty and resilient design that __ both the operating spec, as well as protecting the device from any kind of

a standard 220Ω resistor is put in both the __

Let's assume the following scenarios where either the cable is faulty or the receiving device is faulty.

  • Shorting the +5V to GND, there's the Source 220Ω resistor, generating a ~23mA current. It __ in our 5V rail.
  • Shorting the Tx pin to GND while Tx is low, it doesn't matter, there's no voltage differential.
  • Shorting the Tx pin to GND while Tx is high, there's the Tx 220Ω resistor, generating a current of ~23mA. The ATmega328 max current is 40mA per pin, so we're safe.
  • Shorting the Tx pin to +5V while Tx is low, there's the Source 220Ω resistor as well as the Tx 220Ω resistor, generating a current of ~11mA. The ATmega328 max current is 40mA per pin, so we're safe.
  • Shorting the Tx pin to +5V while Tx is high, it doesn't matter, there's no voltage differential.

Those are all the possible __ operating malfunctions.

Now, under normal operation, the complete Tx circuit is:

+5V -> Source 220Ω resistor -> 220Ω resistor on the MIDI IN side -> 1.3V drop of the optocoupler LED -> Tx 220Ω resistor -> Tx pin sink

Total Current = (5V - 1.3V) / (3 x 220Ω) = 4.998mA

Just on spec!

Fault tolerance

MIDI IN to MIDI IN: there's no current at all

MIDI OUT to MIDI OUT: both circuits are grounded, ___ both should have a __

Even if there is a voltage differential between the 5V rails, and one of the Tx pins is LOW, the maximum current would be 5V / ((220Ω|220Ω) + 220Ω) = ~15mA

it doesn't affect our device since our ___ have at least 220Ω resistance between them.

Switching Relays

a small 5V

under load it ___ about 70mA. This is well over the maximum current of the Arduino's I/O pin, so we cannot handle it directly. For this, we'll need a small "buffer" stage.

The Arduino I/O pins will __ that will amplify the current to operate the relay's coil.

We need a small

Event

A simple NPN transistor operating as a buffer. I'll use the simplest design __ that still offers some security to the circuit, without worrying too much about .. this relay will never

We'll calculate for a maximum load of 100mA. Since the ___ has a base-to-collector ratio of about 1/10, we can ___ to source 10mA into the base to __ full saturation mode.

We'll only be using a base resistor, ~10kΩ ? 1k

1k in th ebase 10k in parallel between the base an the emitter

the relay has a coil inside, we need a "flywheel diode" in paralel to the coil to protect the circuit from surges when

a DPDT (double pole double throw) switch to change the "polarity" of the relay, by selecting between the Normally Open (NO) and the Normally Closed (NC) state.

Power Regulator

For simplicity, I will be using a LM7805 5V linear regulator. It's a very old and inefficient design, but that makes it very cheap and easily available. Since we are not running from a battery source.

I'm assuming a maximum load of ~300mA (~40mA for the Arduino, ~70mA for each relay, ~30mA for the MIDI circuits, ~90mA losses and other components such as LEDs, etc.)

Wattage dissipation: (9V - 5V) * 300mA = 1.2W

Under max load ~2W

Max operating temperature is around 125º C

it has a thermal resistance of 65C/W junction to air. This means that for every 1 Watt that is dissipated, the temperature raises 65º C over the room temperature.

Under our calculated maximum load the regulator would increase its temperature by 78º C over the room temperature (65C/W x 1.2W). Assuming a base temperature of 25º C, the final regulator temperature should be around 103º C when running a continuous load of 300mA.

Not great, but nothing to worry about. Nevertheless I'll be sticking a small heatsink to the regulator, but I'm not sure if it'll be of any help at all since it's all going to be inside a plastic enclosure.

The enclosure is not small, and there __

This __ will_ __ in a plastic enclosure of about

If temperature ever becomes an issue, I will need to change the enclosure to metal, and stick the backside of the regulator to the enclosure wall to dissipate heat into the box itself.

Programming

Since we'll be using the serial Tx/Rx ports in pins D0 and D1 of the Arduino to handle __ MIDI, it'll collide with __ when programming the ATmega328, since it uses those same serial connections.

There are two options to handle this issue: - Remove the Arduino Nano from the board, connect it via USB, flash it and put it back in the board. - Place a DPDT (double pole double throw) switch to disconnect the MIDI circuits from the Arduino's Tx/Rx, and then use this switch to change from "programming" mode and "run" mode, without having to physically remove the Arduino Nano.

The Final Design

Putting it all together, the final design is __

Refernces:

  • Nuts and Volts