V4 Max hardware manual

Print Friendly, PDF & Email

About this manual

website area under construction

As the V4 is still under active development, information in this document is preliminary and subject to both major and minor changes without notice.

This manual describes the physical hardware and interfaces of the ePotPi.V4 Max (referred to as the “ePotPi”, “V4” or “Max”  ) remote controlled preamp controller & electronic stepped attenuator.

The detailed operation and control of the V4 are covered in a different manual which can be found _____________________.

What is the ePotPi.V4

The PotPi.V4 is a software driven preamp controller and electronic stepped attenuator, that when equipped with appropriate power supply and OLED display can function as a unity gain passive preamplifier, and when equipped with an optional solid state buffer board, can function as an active preamplifier with adjustable gain.

Like all Tortuga Audio preamp controllers, the V4 employs light dependent resistors (LDRs) as the sole means for for audio attenuation (volume control). No mechanical potentiometers or switched mechanical attenuators are used.

The features of the V4 are summarized in the following list.

  • Volume controller (attenuator) for 2-channel stereo audio systems (stereo attenuator)
  • Applicable for single-ended or balanced audio (requires an additional expansion board for balanced audio)
  • Two fully independent channels including independent channel grounds
  • Employs analog light dependent resistors (LDRs) for attenuation in lieu of potentiometer or discrete resistor pairs
  • LDRs come mounted in a replaceable plug-in LDR attenuation module
  • Built-in self-calibration of the LDRs | no pre-matching of LDRs required
  • 100 discrete attenuation steps over 0 to -60 dB attenuation range (~0.6 dB per step)
  • Smooth, quiet transitions between each attenuation step
  • Controlled by a 32 bit ARM microcontroller utilizing 16 bit resolution control & measurement
  • Optional solid state buffer board converts passive V4 into an active preamp platform with adjustable gain (buffer board sold separately)
  • Fully controllable with an Apple compatible infrared remote
  • Partially controllable with a rotary encoder with integral pushbutton
  • Channel balance adjustable over a +/- 20 steps (+/- 12 dB) range
  • No electrical connection within the board between the audio signals and control power (optically isolated)
  • Input switching between up to 4 stereo inputs via miniature electromechanical relays
  • Audio signal interface via either pin header or solder lugs
  • Muting with optional smooth ramping up/down
  • Adjustable input impedance | default 50k plus 9 additional optional user determined settings between 1 and 100k
  • OLED graphical display with 3 inch 256×64 pixel 8-bit white-on-black grayscale (sold seperately)
  • Interactive menu driven control interface via the OLED display
  • Auxiliary outputs include panel LED and on/off trigger signal (TTL 3.3V logic level only)
  • Communications via UART, I2C and USB
  • Status outputs for panel LED and trigger out (logic level signals only)
  • Board becomes a temporary USB thumb drive for loading new firmware file (new with V4)
  • Powered by any 5 volt DC external power supply with nominal 1 amp capacity
  • Optional external linear power supply board to power the V4 plus optional buffer board (sold separately)

The V4 Max builds on 13 years of LDR preamp controller evolution that began in 2010. The board is intended for use by DIY audio enthusiasts and audio OEMs. Tortuga Audio has used similar hardware in building its own line of finished preamp products and may do so from time to time in the future.

Why the name ePotPi?

  1. The ePotPi is fundamentally electronic, and not mechanical like a manual potentiometer or stepped attenuator with rotary switches
  2. The ePotPi emulates a conventional potentiometer (“pot“) typically used for volume control
  3. The ePotPi incorporates a Raspberry Pi Pico W board that uses a Raspberry Pi RP2040 microcontroller chip

Hardware versions

Version A of the V4 Max board was released on (date goes here) 2024. The layout of the V4 board and its parts is shown below. Individual parts on the V4 board are identified by their reference designator (J2, U4, C18 etc.)

In addition the the primary V4 board shown below, there’s also a similar V4 expansion board (not shown) that is used in combination with the primary V4 board for balanced audio applications.

V4 prototype bare PCB

Physical dimensions

The V4 board is the same width as the V3 at 2.7 inches wide but at 4.25 inches is slightly shorter than the V3. The overall height including the plug-in LDR module is slightly greater than 1 inch but we recommend allocating 1.5 inches of vertical space above the board; 2 inches if you opt for the solid state buffer board addition. There are no parts mounted on the underside of the board but a minimum clearance of 0.125 inch is recommended underneath the board to avoid making contact with any through-hole soldered parts and to allow for adequate air circulation.

Ambient requirements

The V4 is designed to operate within nominal room temperature conditions that are typical for home stereo equipment. LDRs are known to be temperature sensitive. Therefore large departures from nominal home room temperature conditions  may cause the LDR attenuation module to operate poorly.  Operating an LDR attenuator module inside of equipment that gets very warm  may still work but you may have to run calibration after board has warmed up and stabilized.  We have not found this to be a problem within our own preamp products but the caution is valid.

32 bit ARM microcontroller | U1

Overall control of the V4 is handled by a plug-in 32 bit Raspberry Pi PICO W microcontroller board in lieu of a directly embedded microcontroller chip. The PICO is designed around the Raspberry Pi RP2040 ARM M0+ microcontroller and includes both WiFi and Bluetooth wireless capabilities. The V4 application code runs on this replaceable plug-in microcontroller board.

raspberry pi pico W

A key feature of the PICO board is that it makes it easy to update the application firmware. The PICO is equipped with a micro USB port. With the USB port connected to a PC or MAC, and the PICO placed into bootloader mode, the PICO temporarily becomes a USB thumb drive that can be accessed and written to as you would any typical USB drive. While in bootloader (thumb drive) mode, the V4 user can copy an updated firmware file directly to the PICO board which then automatically updates itself with the new firmware. The PICO then automatically reverts back to normal microcontroller mode except it’s now running on the updated firmware.

LDRs – light dependent resistors

Light dependent resistors (LDRs) are at the core of Tortuga Audio’s preamp controller & stepped attenuators including the V4.

light dependent resistors (LDRs)

LDRs are variable resistors that are employed in pairs as voltage dividers to attenuate volume. LDRs combine two distinct electronic devices – a light emitting diode (LED) and a photoresistor, These two devices are integrated into a sealed package approximately the size of an M&M candy. LEDs do what their name says – they emit light. Photoresistors are made with a photoreactive semiconductor material that changes resistance based on the intensity of light impinging on the photoreactive material. The intensity of the light from the LED is controlled by regulating the current running through the LED. As the current increases, the light intensity increases and the LDR resistance decreases.

When employed in an audio preamp, LDRs can literally control volume using light! However, due to the complex and variable relationship between current, light intensity and the resulting resistance, the application of LDRs for volume control is technically challenging. LDRs also exhibit higher distortion than conventional volume control devices like potentiometers or discrete resistors which many designers deem to be a disqualifying characteristic. Nevertheless, we use LDRs for volume control for one very simple reason – music sounds better to our ears with LDR volume control. If music didn’t sound better with LDRs, then what would be the point?

More information on LDRs and how LDR volume control works can be found here.

Electronic stepped attenuation

The V4 is a true electronic stepped attenuator that controls volume over a 100 step range of ~0.6 decibels per step from -60 to 0 decibels. At this level of granularity, volume change between each step is smooth and continuous with no audible artifacts. There are no noisy mechanical switches or other moving parts involved as compared to conventional mechanical volume control devices like rotary potentiometers or switched stepped attenuators.

Each step change in volume can be made using either a handheld remote control or by using a rotary encoder (control knob) attached to the V4.

LDR calibration

The resistance of each LDR at each step is achieved by precisely regulating their control current. More current equals lower resistance. Less current equals greater resistance. However, the relationship of current vs. resistance of each LDR is not identical between any two LDRs and thus cannot be assumed. Instead this relationship must be empirically measured for each LDR. The V4 employs a proprietary software driven calibration process to do this measurement. A calibration cycle takes roughly 10 minutes to complete and can be initiated at any time by the user. The measured current vs. resistance data for each of the 100 volume steps for each of the 4 LDRs are stored in an EEPROM memory chip located on the plug-in LDR module. The V4 microcontroller uses this stored calibration data to set the resistance level of each LDR to achieve the volume level associated with each volume step.

LDR module | J1 & J2

Tortuga Audio uses a proprietary LDR module which incorporates 2 pairs LDRs plus a memory chip as shown below on the left. This removeable and replaceable LDR module plugs directly into matching sockets on the V4 board. Each pair of LDRs controls the volume of one stereo channel. The LDR pairs are  configured in a series/shunt arrangement creating a voltage divider that essentially emulates how a potentiometer controls volume. The two topmost LDRs (RSeries and RShunt) are the right channel LDRs and the two bottom LDRs (LSeries and LShunt) are the left channel LDRs. If an LDR ever fails or goes out of specification, it’s a straightforward matter to replace a plug-in LDR module.

ePot.V3 LDR Attenuation Module
LDR module
ePot.V4 LDR module sockets
LDR module sockets J1 & J2

The LDR module has 2 pin headers, J1 and J2. These male pin headers correspond to the J1 and J2 female sockets on the V4 board.

The 6-pin J1 header carries the audio input and output signals plus signal ground for both the left and right channels. Each of these two channels are fully independent of the other including audio signal ground. The J1 pinouts are as follows:

  • RI – right input
  • RO – right output
  • RG – right ground
  • LG – left ground
  • LO – left output
  • LI – left input

The 12-pin dual row J2 header provides the power, LDR control currents, and SPI serial communications signals to the module’s EEPROM memory chip. The J2 pinouts starting at the top row and left pin #1 are as follows:

  • #1 – 3.3V power
  • #2 – no connection
  • #3 – ground
  • #4 – no connection
  • #5 – right shunt LDR current
  • #6 – right serial LDR current
  • #7 – SPI chip select
  • #8 – SPI MISO (serial data out)
  • #9 – SPI clock
  • #10 – SPI MOSI (serial data in)
  • #11 – left shunt LDR current
  • #12 – left series LDR current

To insert the LDR module into the V4 sockets, first align the pins on the 12-pin J2 header into the J2 socket with the LDR module held tilted up lengthwise at a slight angle (J1 end up, J2 end down), then lower the J1 header pins into the J1 socket making sure the pins align. Then gently press the module into both sockets. DO NOT FORCE IT! If the pins are not perfectly aligned into their socket holes, do not expect the module to go in. Re-align the pins on both ends first before attempting to press the module into the sockets. If the module won’t align and go in, visually inspect the pins on the LDR module to see if any pins are slightly bent or out of alignment. The pins can usually be easily manually manipulated back into alignment.

16 bit LDR calibration & control | U2, U3 & U5

The resistance of each of the 4 LDRs is maintained by a dedicated current controller. A simplified schematic of a single LDR current controller is shown below. Each consists of a fixed voltage source, an LDR, a current control transistor, a current measuring resistor, and a precision current control op amp. The op amp receives a filtered analog voltage setpoint from a 16 bit pulse width modulated (PWM) signal generated by the microcontroller. Each of these 4 precision closed loop controllers run independent of variations or noise in the voltage source. During calibration, the microcontroller adjusts the 16 bit PWM setpoint to achieve the target LDR resistance level at each of the 100 volume control steps. A dedicated 16 bit analog to digital converter (U5) is used to measure these resistance levels. The 100 setpoint levels for each of the four LDRs are stored for subsequent use by the microcontroller during normal volume control.

LDR current control scheme

More information on the calibration process can be found here.

Power supply options

The V4 requires an external 5 volt DC power supply with a nominal capacity of 0.5 amps although actual current demand is typically no more than 0.3 amps. The V4 also uses 3.3 volts that it generates internally using a low noise on board linear voltage regulator powered by the external 5 volt source.

The external 5 volt DC can be provided either through the micro USB port of the Raspberry Pi Pico board, or through the 4-pin J8 header on the V4 board. When powered through the USB port, power connected to the J8 header is automatically blocked by a mosfet switch. However, we recommend you not power the V4 through both at the same time.

Power through J8 header (preferred)

J8 is a 4-pin 0.1 inch pitch shrouded JST male header with the following pinout:

  • J8.5V – 5 volt DC regulated
  • J8.G – ground
  • J8.Cal – calibration enable signal from the V4 to optional buffer board
  • J8.Pwr – power enable signal from the V4 to optional buffer board

“JST” type connectors are either made by the Japan Solderless Terminal company, or by other manufacturers using the same connector design.

Only the J8.G (ground) and J8.5V (+power) pins are needed for powering the V4 board. The J8.Cal and J8.Pwr pins are only used when the optional solid state buffer board is present.

Powering the V4 board through the J8 header is preferred over the USB port because USB power sources are typically the noisier than most.

Power through USB port (optional)

When a powered USB cable is plugged into the PICO’s USB micro USB port, the V4 will be powered off of the 5 volt power coming in through the USB port and power from the J8 header will be automatically blocked by a mosfet switch.

The PICO USB port is primarily intended for infrequent firmware updates and not as a primary source of powering the V4. And while there’s nothing preventing the V4 being powered via the PICO USB port, we do not recommend powering the V4 via the USB port because of the poor power quality typically provided via USB.

Audio signal inputs & outputs | J4

The V4 Max can accommodate up to 4 different stereo audio inputs. There is only a single stereo output. All audio signal switching is done with miniature electromechanical relays. When the V4 is muted, the audio outputs (RO & LO) are switched to audio signal grounds (RG & LG), effectively killing the output. During calibration, both the inputs and the output are disconnected by relays.

Audio input, output and signal grounds to the Max board can be terminated via either the 12-pin 0.1 inch pitch J4 header or a separate collection of larger solder pads. These connections are identified as follows:

  • J4.RI4 | right inputs #4 | relay K7
  • J4.RI3 | right inputs #3 | relay K5
  • J4.RI2 | right inputs #2 | relay K4
  • J4.RI1 | right inputs #1 | relay K3
  • J4.RO | right output | muting relay K6
  • J4.RG | right signal ground
  • J4.LG | left signal ground
  • J4.LO | left output | muting relay K6
  • J4.LI1| left inputs #1 | relay K8
  • J4.LI2 left inputs #2 | relay K8
  • J4.LI3| left inputs #3 | relay K8
  • J4.LI4| left inputs #4 | relay K8

The left and right signal grounds (LG & RG) are fully independent and DO NOT connect within the Max board to the power supply ground. 

OLED display header | J5

J5 is a 14-pin dual row (2 x 7) header that carries the power and control signals for the OLED display module, the IR receiver module, and the rotary encoder. The IR receiver and the encoder are both part of the OLED display module.

The OLED display module is an essential part of the the V4 board design providing an interactive menu driven visual interface for control and operation of the V4. More information on the OLED display module can be found here.

The J5 header pins are labeled as follows in the clockwise direction:

  • J5.3V3 – 3.3 V DC power
  • J5.G – ground
  • J5.SC – SPI serial data clock
  • J5.CS – SPI OLED chip select
  • J5.SW – encoder switch
  • J5.EB – encoder leg B
  • J5.RES – OLED reset
  • J5.G – ground
  • J5.G – ground
  • J5.DC – OLED data/command select
  • J5.EA – encoder leg A
  • J5.IR – IR receiver signal
  • J5.SO – SPI serial data
  • J5.__ – no connection

Expansion board header – balanced audio | J6

The V4 Max requires an secondary expansion board when used for balanced audio applications. The primary V4 board connects to the V4 expansion board via a ribbon cable to a 10-pin dual row (2×5) J6 header on each board. The primary V4 board controls the expansion board directly through the J6 header as the expansion board has no microcontroller of its own.

In balanced audio applications the primary V4 board serves as the right balanced channel where the primary.right channel handles the positive phase and the primary.left channel handles the negative phase. Conversely, the secondary expansion board handles the left balanced channel.

The J6 pins are labeled clockwise as follows:

  • J6.G – ground
  • J6.5V – 5 volt power
  • J6.3.3V – 3.3 volt power
  • J6.CL – I2C serial communication clock
  • J6.SO – SPI serial communication MOSI data
  • J6.SC – SPI serial communication clock
  • J6.SI – SPI serial communication MISO data
  • J6.CS – SPI serial communication chip select
  • J6.DA – I2C serial communication data
  • J6.3.3V – 3.3 volt power

Auxiliary status & communication header | J7

J7 is an 8-pin dual row (2×4) male pin header that provides 2 logic level status output signals plus a set of both UART and I2C serial communications ports for communication with 3rd party external devices.

All J7 signals are logic level 3.3V microcontroller signals only and should NOT be relied on to source or sink more than a few milliamps of current. The J7.LED signal can directly drive a typical LED equipped with an appropriate current limiting resistor. The J7.TRIG signal CAN NOT drive a relay directly and requires an appropriate logic level transistor between the signal and any driven device.

The pins are labeled clockwise as follows:

  • J7.G – ground
  • J7.G – ground
  • J7.RX – UART serial communication receive
  • J7.CL – I2C serial communication clock
  • J7.DA – I2C serial communication data
  • J7.TX – UART serial communication transmit
  • J7.LED – panel status light output
  • J7.TRIG – controller on/off trigger/status output

Solid state buffer board (optional)

The V4 Max can accommodate an optional solid state buffer board (sold separately) that mounts directly on to the V4 board using the same sockets as the LDR Module. The LDR Module is then plugged into the solid state buffer board.

The buffer board turns the V4 Max into an active solid state preamp with adjustable gain.

The manual for the solid state buffer board can be found in a separate section [** TBD **].

Firmware updating

The firmware updating procedure for both the Max and Mini can be found in a separate section [ ** TBD **].

Operation and control

The detailed procedures for operating and controlling the V4 can be found in a separate section [** TBD **].


Click on the sections below to expand and view.

Processor– 100 pin microcontroller
– STM32F2 M3 ARM chip
– Single core
– No wifi/bluetooth without additional hardware

– 40 pin Raspberry Pi PICO board
– Equipped with micro USB socket
– RP2040 M0+ ARM chip
– Dual core
– Advanced math processing
– Optional built-in wifi/bluetooth
– PICO is a self-contained plug-in microcontroller board rather than a soldered in chip.
– PICO has a simple built-in bootloader that behaves just like a USB thumb-drive
– PICO is easier to set up and program
LDR Control & Calibration– 16 bit DAC chip for control
– 12 bit internal ADC for measurement

– 16 bit PWM for control
– 16 bit ADC chip for measurement
– Eliminates costly external 16 bit DAC chip without sacrificing effective control accuracy
– Improved effective calibration measurement accuracy
– new adaptive calibration algorithm
Signal switching – low distortion analog switches running on split +/- 5 volt power– conventional electro-mechanical miniature relaysAlthough generally successful, the analog IC switches used in the V3 series were found to be incompatible with certain audio source devices where incoming audio signals would disrupt the operation of the controller by interacting with the power supply through the analog ICs. Therefore, we chose to use conventional electromechanical relays in the V4 to eliminate any possibility of any incompatibility

In order to keep the physical size of the V4 the same as the V3, the V4 could only accommodate switching between 4 sources rather than 6.
Power supply– external12 volt DC
– internal +/-5 volt split voltage (switching)
– internal +3.3 volt from linear regulator
– external 5 volt DC via J8 header or USB port
– internal +3.3 volt from linear regulator

The J8 power header allows for powering the V4 directly or through the optional buffer board which also plugs into the J8 header.
Muting relay– no relay
– partial muting achieved via LDRs only
– dedicated muting relay shunts output to groundFirst LDR based controller to provide full muting
Firmware updating– Requires use of external USB to UART converter board or cable
– Requires download, install and use of cumbersome 3rd party firmware updating software application (PC, MAC or Linux)
– Built-in bootloader temporarily turns PICO board into a USB thumb drive
– Firmware updating easy as dropping new file on to the PICO “drive” (PC, MAC or Linux)
While one could argue that this is a peripheral consideration, the reality is updating firmware of embedded devices is both inevitable and a big PITA for everyone including developers (me!) and customers.

The PICO board offers a significantly simpler and easy process for user to update the firmware on the V4. And I didn’t have to create it from whole cloth. Thank you Raspberry Pi!

** to be added **

Was this article helpful?

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Scroll to Top