Stepped attenuator and preamp controller
The V25 is a digitally controlled, 2 channel analog stereo passive stepped attenuator and preamp controller. Unlike most audio attenuation technology the V25 utilizes light dependent resistors (LDRs) for both attenuation and in lieu of conventional relays for input switching.
The V25 Preamp Controller (Rev A) was released in April, 2017 and subsequently 2 minor hardware revisions have been made.
Noteworthy features of the V25 include the following:
- Smooth 100 steps of attenuation over a 60 dB range at ~0.6 dB per step
- Input switching of up to 6 stero inputs
- 2 units can be combined for balanced audo
- Fully remote controllable via simple infrared Apple remote
- Manually controllable via rotary encoder/pushbutton with limitations
- Smooth muting
- Left/right channel balance
- LDRs employed both for attenuation and input switching
- Built-in self-contained LDR calibration of replaceable plug-in LDR modules
- High contrast 256×64 bit white-on-black OLED display with interactive menu structure
The V25 board is shown below with annotation of the key components and control interface points. Please refer to V25 Specifications section for more detail.
Powered passive preamp attenuator
The V25 is powered by a nominal 12V supply (not included) which is coverted to both 5V and 3.3V for use within the board. The power drives an embedded ARM microcontroller and its interfaces with a remote control receiver, serial comm ports, trigger outputs, USB port, OLED display, and most significantly the LDRs themselves which contain light emitting diodes to modulate their vaiable resistance.
The V25 is classified as a unity gain “passive” preamp device with no active amplification or buffering of the audio signal. That means there is no direct connection to, or manipulation of, the audio signal by a power supply. Despite the sophistication of the V25 design, each audio channel signal “sees” only a voltage divider composed of 2 LDRs in a classic series/shunt L-Pad configuration that emulates a potentiometer.
There are currently 3 hardware versions of the V25 board designated as A, B and C with A being the original board as shown above. The version letter is printed on the V25 board on the left side under the name of the board.
The differences between these versions relate solely to the display interfaces and the USB interface. These differences are summarized in the table below. All 3 versions utilize the same firmware which recognizes these differences.
|Criteria||Version A||Version B||Version C|
|7 segment display||Yes | J3 header||Yes | J3 header||Yes | via individual signals from OLED J9 header|
|OLED display interface (J9)||Yes | parallel||Yes | serial SPI||Yes | serial SPI|
|Serial (SPI) interface voltage to 7 segment display header (J3)||5V||3.3V||N/A|
|USB header 5V VBus pin powerered by board||No||Yes||Yes|
OLED display | J9
The OLED Display Module (sold separately) is a highly interactive, easy to use, intuitive, menu driven user control interface for configuring and controlling the V25. Today, the OLED display continues to be an integral part of the interactive control of the V25 stepped attenuator and preamp controller. The V25 continues to also be capable of driving a pair of Tortuga Audio’s legacy dual 2 digit 7-segment display modules.
The OLED display connects to the V25 via a 14 pin ribbon cable to the V25.J9 header.
Please refer to a separate document on the OLED display for more detail on its interface.
Multi-channel configuration | J7
The V25 is designed to allow multiple V25 boards to be daisy-chained together for multi-channel audio. Here are the characteristics of the V25 multi-channel system:
- The first board in the daisy-chain is designated the master board
- The master board interconnect to a slave board (if there is one) with a data link
- The master V25 board is in charge, receives control inputs, drives the visual display, and passes commands to the first slave
- Additional slaves connect to only one upstream and one downstream slave (the daisy-chain)
- Communications between boards is bi-directional using a pair of independent UART 2-wire serial data links
- Any V25 board can be a master or slave. No special jumpers or settings are required.
- There is overall left/right channel balance control in a multi-channel arrangement but currently no individual channel volume adjustment.
Dual board balanced audio
Balanced stereo audio is a minimal example of using the V25 in a multi-channel audio application. Balanced stereo audio requires two V25 boards – 4 channels. Balanced audio input and output wiring is described in another section/topic on DIY audio information.
External control via UART | J7
The V25 Preamp Controller Board can be controlled by interfacing it with any PC, microcontroller or programmable device that’s equipped with standard UART serial communications hardware or the equivalent in software. External UART TX and RX signals can connect to the V25 J7.RX2 and J7.TX2 pins respectively.
In order to have reliable UART communications the user should be mindful that both devices share a common ground.
The UARTs used by the V25 are part of the V25’s microcontroller. They utilize data receipt interrupts, and are considered extremely accurate and reliable. The V25 employs the following UART communications configuration.
- Baud Rate: 115,200 bps
- Stop Bits: 1 stop bit
- Parity: none
- Data bits: 8
- Flow Control: none
UART control commands
The control commands available to an external controller are defined in the table below. Collectively these commands should allow for the comprehensive control of the V25 even in the absence of any visual feedback from the V25.
The user accepts all risks in using an external controller and commands to control their V25 controller. These commands are subject to change without notification.
|Command Value||Command Name||Desciption>|
|0||_power_toggle||toggles the on/off state of the controller|
|1||_turnon||turns controller on if it's off otherwise ignores|
|2||_turnoff||turns controller off if its on otherwise ignores|
|3||_raise||response depends on controller mode - by default it raises volume 1 step
|4||_lower||response depends on controller mode - by default it lowers volume 1 step|
|5||_left||response depends on controller mode - by default it shifts volume balance 1 step to the left|
|6||_right||response depends on controller mode - by default it shifts volume balance 1 step to the right
|7||_enter||* volume adjust mode - blinks display
* other modes - locks in any changes and reverts to default volume adjust mode
|8||** reserved **||don't use|
|9||** reserved **||don't use|
|10||** reserved **||don't use
|11||_menu_vol||switches controller to default volume adjust mode|
|12||_menu_input||switches controller to input adjust mode|
|13||_menu_display||switches controller to display adjust mode|
|14||_menu_volmax||switches controller to max volume on input change adjust mode|
|15||_menu_imped||switches controller to impedance adjust mode|
|16||_menu_cal||switches controller to auto calibration mode|
|17||_mute_toggle||toggles mute state of controller
|18||_mute||mutes the volume if not already muted|
|19||_mute_switch||mutes controller, then switches to new input (slow mode only), and then unmutes controller
|20||_unmute||unmutes the volume if it's currently muted|
|21||_refresh||refreshes display based on current mode|
|22||_show||display info associated with current mode|
|23||** reserved **||don't use|
|24||** reserved **||don't use|
|25||** reserved **||don't use)|
|26||** reserved **||don't use
|27||** reserved **||don't use
|28||** reserved **||don't use
|29||** reserved **||don't use|
|30||** reserved **||don't use
|31||_send_vol||* 2 bytes : command + value
* value = volume level 0-99
|32||_send_volbias||* 2 bytes : command + value
* value = volume bias between -20 and+20
|33||_send_volmax||* 2 bytes : command + value
* value = max volume upon input change between 1 and 99
(99 essentially defeats this safely feature)
|34||_send_input||* 2 bytes : command + value
* value = input number between 1 and 6
|35||_send_imped_index||* 2 bytes : command + value
* value = impedance index number between 1 and 5
|36||_send_imped_level||* 2 bytes : command + value
* value = impedance level between 1 and 99
(must run autocal after changing level before change becomes active)
|37||** reserved **||don't use|
V25 Compared to the V2?
- Overall smoother, quieter, more resolving attenuation – it’s just better!
- Improved built-in LDR calibration algorithm
- Completely redesigned hardware & software
- Code rewritten in C
- 8x larger application memory
- 2 stage low-noise power regulation
- Faster 32 bit ARM vs slower 8 bit PIC processor
- 6 DAC channels vs only 2 for improved LDR control
- 100 step attenuation vs. 70
- Graphic OLED display with simple, intuitive interactive menu
- Provision for future WiFi module
- Can daisy chain multiple boards for multi-channel control
- V25 board with 3 switchable stereo inputs (up to 3 additional inputs can be added at additional cost)
- Monaural mode switching LDR
- Mating slip-on power connector with wire crimps
- Updated firmware
What Else is Required?
To implement a fully functional passive preamp requires the V25 board plus the following additional items that are sold separately by Tortuga Audio and/or third parties.
- Apple Remote
- Graphic OLED Display Module assembly including Encoder
- 12 V DC power supply (0.5 amp or higher)
- RCA/XLR jacks
- Wiring and enclosure
V25 firmware changelog
The following table lists all changes to the V25 firmware since initial release including any proposed near term changes.
|235 - 05.25.20||* Change - Improved the master=>slave communication updates during impedance setting/level changes
to ensure changes stay in sync between master & slave boards in balanced setups
* Fix - Added missing saves of imped data during setting/level edits under certain conditions
|234 - 03.16.20||* Change - LDR3000T default #1 impedance level changed from 20k to 80k to improve baseline sound quality|
|233 - 01.28.20||* Fix - Corrected channel balance for LDR3000T/P models when using balanced inputs. Single-ended inputs not affected.|
|232 - 12.4.19||* Fix - Simplified screen saver and display timeout logic in order to avoid intermittent glitch when exiting screensaver mode
* Tweak - added to "T" to version text LDR3000T.V25
|232 - 12.4.19||* Fix - Simplified screen saver and display timeout logic in order to avoid intermittent glitch when exiting screensaver mode
* Tweak - added to "T" to version text LDR3000T.V25
|231 - 10.24.19||* Fix - Prevent screensaver from kicking in when unit is going through cal|
|230 - 10.15.19||* Change - updated phase reversal logic to allow assignment of phase reversal to LDR3000T balanced inputs 1, 2 and 3|
|229 - 10.09.19||* Tweak - Added automatic fix to default input label if stored label is found to be blank (deleted)
* Fix - Corrected bug introduced in rev 228 relating to changes in muting command
|228 - 10.07.19||* Change - Master now sends only _mute or _unmute commands to slave board instead of the ambiguous _mute_toggle. This helps avoid the two boards getting out of sync with each other in balanced configurations.|
|227 - 9.21.19||** This update mostly related to the new LDR3000T model **
* New - Added ID etc for LDR3000T model preamp
* New - Added buffer messages to send commands to TPB.V2 buffer board chip
* New - Added tube buffer board startup sequencing for LDR3000T.
* New - Added tube buffer mute/unmute for the LDR3000T
* Fix - Modified channel balanced for LDR3000T RCA inputs (4, 5 & 6) . This was required because both the right and left channels each use the "right" channel on both the master and slave boards. Prior to fix the channel balance wasn't working for the RCA inputs.
|226 - 8.23.19||* New - Added Encoder type menu item. There are now 2 possible encoder types (1 and 2). The original type 1 is the default. The newer type 2 was introduced around August of 2019. User can change the type. If the wrong type is selected the encoder will still work but may double count or half count the encoder pulses.|
|225 - 6.27.19||* Change (only applies to preamps with 7-segment displays): The previous method of starting/stopping Calibration while the unit is off has been eliminated. Calibration is now initiated by pressing the Mute (lower right hand) button on the remote while the preamp is in Impedance Adjust mode. This will initiate calibration at whatever impedance setting/level the unit is set at prior to pressing the Mute button. This change makes the calibration start/stop control scheme with LED displays essentially the same as with the newer OLED display. As before, please be aware that if you have multiple impedance setting/levels configured you'll have to repeat the calibration cycle for each setting/level individually.
* Fix - Force volume control menutype to always be "balanced" by default when display type is 7 segment LED
|224 - 6.4.19||* Fix - Added missing test for SPI vs. parallel communication for OLED during first board initialization
|223 - 5.30.19||* New - Added V25_RevC to hardware types and amended code to reflect Revs A, B and C
* New - Switched OLED communications over to SPI for V25_RevC hardware
* Fix - Changed SPI communication mode to conform with main DAC latching data on falling clock.
* Fix - Volume step was showing +1 higher than actual level when MaxVol limit kicked in during input change
* Tweak - refined volume controls to ensure unit muted/unmuted properly anytime user manually reduced volume to zero and then raised it back up to 1
* Tweak - modified 2 sec delay in volume control so that it only took effect when unit transitioning to off state
|222 - 4.25.19||* Tweak - improved reliability of cal status info communications between balanced boards|
|221 - 3.15.19||* Fix - Timed out display would not awaken easily after being off for extended periods. Problem involved a counter rollover/overflow.|
|220 - 2.27.19||*Change - ** Important Change To Menu Structure Related to Impedance & Calibration **
This changes provides a more logical and consistent set of controls around the closely related topics of impedance and calibration. Going forward, this change now makes it unlikely to accidentally start calibration.
1) The separate Cal and Imped menu items have been combined into a single Imp-Cal menu item.
2) When the Imp-Cal menu item is selected, the user will see the Impedance Control Action display where the impedance setting/level can be changed.
3) While in the Impedance Control Action display the use of the Enter and Menu buttons now work the same as all other displays and Calibration can only be started via the Mute button
a) Enter returns the unit to the default Volume Control Action display.
b) Menu escapes back out to the Imp-Cal menu list item.
c) Calibration can now only be started by pressing the Mute (lower right) button causing the display to switch to the Calibration Control Action display.
4) When viewing the Calibration Control Action display
a) Enter button will quit calibration and return the unit to the default
b) Menu button will quit calibration and escape back out to the Impedance Control Action display
*Fix - If user was playing music while switching to an impedance setting that had not been set up yet (setting was "off") the volume would briefly surge before muting.
|219 - 12.11.18||*Change - Minor improvements to handling remote commands plus various modifications related solely to the future V3 board|
|218 - 12.5.18||*Fix - Escaping from Imped menu after changing impedance setting # was causing reversion back to prior setting #
|217 - 11.27.18||*Change - Addition of various options related solely to the future V3 board. Has no direct impact on V25 operation/performance.|
|216 - 11.13.18||*Change - Slowed down the responsiveness to remote inputs to avoid unintended command repeats.
*Change - Raised Vref index limit from 2500 to 3000 for marginal LDRs to reach 100R target during VRref phase of calibration
|215 - 10.23.18||* Change - Not a change per se but entire code was scrubbed and edited to make everything case sensitive going forward. This warranted to revision just in case there were any resulting issues (none found yet).|
|214 - 10.15.18||* Change - improved inter-board communications for dual board balanced systems
* New - Add Phase Inversion option for dual board balanced systems that are wired appropriately.
* New - Modified menu structure to allow for 3 different options for how volume display handles
channel balance, input change and inverse phase (see Preamp Controls in online documentation for details).
|213 - 9.25.18||* Change - Made sure primary LDRs isolated from buffer before turning on buffer
* Change - Added auto-start of cal cycle as last step in unit reset process
|212 - 9.7.18||* New - Adapted for SSB.V1 solid state buffer integration - added external Mute_Out output
* Change - Modified turnoff code so that unit would first ramp down volume before turning off
* Fix - Forced display to turn on and update when waking up from blanked display timeout
|211 - 08.16.18||* Fix - When muted, preamp would ramp down to zero volume and then immediately ramp back up again. Only a few users experienced this behavior because it only happened after switching inputs using the slow mode. Using fast input switching would not trigger this mute yo-yo behavior. A simple fix but took us a good while to figure this out since most units did not exhibit this behavior.|
|210 - 08.6.18||* Change - LDRs now initialize upon power boot up rather than waiting until after 1st turn on & unmute|
|209 - 07.3.18||** This update fixes a lurking bug in the Cal routine where Cal was not disconnecting the preamp's outputs during the calibration process. This could lead to erroneous calibration results of hung calibration if IC cables were left plugged in.
* Fix - Initialization of input labels when first converting existing units to OLED firmware
* Fix - Outputs were not disconnecting during cal which is why leaving output
IC's attached to preamp during calibratoin was causing difficulities with cal.
|208 - 06.28.18||** This update deals mostly with bugs and improvements related to adjustable impedance and cal.
* Fix - Inhibit screensaver when not set to volume control display
* Fix - Corrected logic that allowed impedance settings higher than 10
* New - When user quits cal and cal has not been previously completed for current setting/level (i.e. it's a new setting/level), the new imped setting/level get deleted (i.e. setting gets turned off) and preamp reverts to default 0/20k imped setting/level
* Tweak - Added explicit instructions to impedance display when changing levels - "Set to Off or press Enter to start Cal"
* Tweak - Improved logic and inter-board coordination related to user manually stopping cal
* Tweak - Improved reliability of multiple boards remaining in volume sync
|207 - 06.23.18||** This update addressed a key bug when updating existing V25 boards to OLED firmware for the 1st time. Also corrected a potential problem if user did not wait for boot up or turn-on splash screens to finish before issuing remote commands **
* Fix - Force initialization of input labels when updating V25's to OLED firmware 1st time
* Fix - Input label edit was not returning to volume control display properly upon pressing Enter
* Fix - Input labels not displaying properly
* Fix - Added command input inhibit during boot up, turn on and turn off transitions to prevent control lock-up
* Fix - Input count value was being overwritten at boot up
* Fix - Inhibit screensaver timeout while Cal is running
* Change - Increased Cal VLo target and slightly relaxed the VLo closure error to avoid getting caught in a needless cal loop that served no purpose
* Tweak - Formatting clean up to Cal info display
|206 - 06.18.18||* Fix - 7Seg Cal Mode didn't display 0 - 0; made it conform with prior behavior
* Fix - Precal startcount display ignored count 3-5
* Fix - Bug with saving VLo index created with version 204
* Change - Toggle between volume display Units can now be done using either Raise/Lower buttons
* Fix - Volume last associated with each input was being overwritten during power reboot
* Change - Starting Cal no longer clears cal status flag. Only changing imped level can now clear this flag and force calibration.
|205 - 06.13.18||Fix - height of volume bar varied with brightness level|
|204 - 06.12.18|| Tweak - factoring of the cal.c main loop code to tighen up the process
New - added LDR3_V25K model
|203 - 06.06.18||** Miscl fixes **
* Fix - Master was not receiving slave count in init.c
* Fix - Cal.c was not unmuting (reconnecting I/O) after cal was done
* Fix - Slave was not being allowed to turn off cal when done
* Fix - Volume not positioned properly in display when volume.ramp dropped below 10
|202 - 06.01.18||** 7-sement display compatibility update. Numerous fixes to ensure the 7-segment display continues to work normally **
* Fix - Added missing display type switches to Cal.c & Imped.c
* Fix - Preamp would immediately mute when turned on via Encoder pushbutton
* Tweak - moved interrupt call to menu handler from volume.c to timer.c (this has since been reversed)
* Fix - corrected info display during precal
|201 - 05.29.18|
THE "OLED" RELEASE
|** Initial release of firmware with OLED display feature. **
* New - Added OLED display capability
* Change - Complete overhaul of menu controls
* Change - Numerous changes under the hook to improve reliability and operability
|1029 - 04.18.18||* Fix - 1028 introduced a bug where fast switching input via left button press would result in selecting input +1 higher than max # of inputs available.|
|1028 - 04.15.18||* Fix - Last volume levels associated with each input were not being properly saved in all instances.|
|1027 - 04.12.18||* Tweak - Modified Cal VLo to ensure only lowest value of VLo is saved for both the left and right sides during the VLo cal process.|
|1026 - 04.6.18||* Change - Force system reset at conclusion of auto cal to ensure slave units properly reset after cal process. CalReset flag set in eeprom tells unit to turn on after reset and clears the flag.|
|1025 - 03.16.18||* Fix - Output was not muting properly when volume was manually set down to zero.|
|1024 - 01.18.18||* Fix - Firmware was hanging intermittently at turn off (Mute + Down).|
|1023 - 1.18.18||* Change - internal release related to changes in how pre-calibration is initiated (for factory use only)
|1022 - 1.8.18||* Change - Eliminated support for Tortuga Audio legacy remote. Code was responding to input from various non-Tortuga remotes that use the NEC protocol and same remote ID/codes
* Tweak - Added remote repeat command timeout that clears repeat command buffer
to avoid false repeats in response to non-Tortuga remotes that use the NEC protocol
|1021 - 12.16.17||* Fix - Corrected problem with impedance setting #10 that prevented info associated with this setting from being initiated and/or stored properly. This corrects a problem that was introduced with the major update in rev 1012.|
|1020 - 12.14.17||* Fix - Corrected a long standing problem where the Apple remote would fire off a repeat command too quickly causing double-hits on some commands depending on how quickly user pressed/released the remote buttons. As a result of this fix the responsiveness of the Apple remote should proved to be smoother and predictable for both single button presses and also for button hold/repeats.
* Tweak - Fine turned interrupt priorities for remote, encoder and internal timers
* Tweak - Eliminated special repeat command function
* Tweak - simplified code for _vref_get and _vref_save in cal.c
|1019 - 12.06.17||* Tweak - Added interrupt priorities to IR input, timers and encoder leg inputs to improve reliability of remote/encoder input response
* Tweak - Modified turn off logic so that user doesn't have to wait until volume has ramped down to zero to press the lower button which shuts off the preamp. Pressing Mute/Lower in a rapid 2 button sequence will now shut down the preamp.
|1018 - 12.01.17||* Fix - Corrected bug introduced with Rev 1017 where updated volume was being displayed incorrectly during fast input switching
|1017 - 11.20.17||* Fix - Volume was not being updated with volume level previously associated with input during fast input switching|
|1016 - 11.05.17||* Change (auto-repeat) - The faster Apple remote auto-repeat response introduced with 1014 has been slowed down for all buttons that can auto-repeat except for the Raise & Lower buttons.
* Change (turning off preamp) - The old way of turning off the preamp by press/holding the Menu button has been removed. The reason for this is the Menu button was serving two functions - toggling the mute status (brief press), and turning off the preamp (a longer press/hold). Too often this led to ambiguous results. Starting with 1016 the Menu button is now solely for muting/unmuting the preamp.
Turning off the preamp is now an unambiguous 2-step process:
1) Mute the preamp by briefly pressing the Menu(Mute) button
2) When the preamp is muted (volume @ 0), press the Lower button to turn it off.
|1015 - 10.18.17||This revision is included for consistency but does not affect any features or operations other than maintaing compatibility with V25 boards with different size EEPROM chips. Upgrading to this version if you already have 1013 or 1014 is not necessary or useful.
* New - Added the ability to detemine whether board's eeprom hardware chip uses 16 or 24 bit addressing. Early V25 boards had larger size eeproms that require 24 bit addressing (3 bytes). Subsequent boards have smaller eeproms that only require 16 bit addressing (2 bytes). Each time firmware boots address size is determined as first step in initializing.
|1014 - 10.16.17||* Tweak - This update improved the responsiveness of the controller to inputs from the Apple Remote and also corrects a minor error in how the preamp responded to repeat commands when user held down the certain buttons on the remote. As a result of this update the controller reacts faster to Apple command especially repeat commands when buttons are held down. Time will tell if the faster response is desireable to end-users or if it proves to be too rapid and may need to be slowed down a tad in a future update.
|1013 - 9.21.17|
(internal release only)
|* Fix - Preamp would not display volume after initializing the board in the event the default #1/20k setting/level had not been calibrated.|
|1012 - 9.20.17|
!! MAJOR UPDATE !!
Please read info carefully.
|Release 1012 represents a major change to how adjustable impedance is handled. Upgrading to 1012 will cause your preamp to erase and reset all existing impedance settings and calibration data followed by automatically running calibration at the new fixed default of setting #1 @ 20k. The update will not be completed until this calibration step is completed. Please allow up to 15 minutes to allow the updating, resetting and calibration process to complete. The unit will reboot and restart after completion. Try not to turn off power or otherwise interrupt this process or else it will repeat from the beginning until allowed to fully complete.
** Changes with 1012 **
1) Impedance settings increased from 5 to 10.
2) Impedance setting #1 is now fixed at the default of 20k and can no longer be changed by user. Only settings 2-10 can be setup and modified by user.
3) The display will now blink when user selects an impedance setting number and level combination that has not already been run through calibration.
4) Switching the unit to any setting/level combination that is not calibrated will result in no output from the preamp.
5) Changing an impedance setting/level will not be saved or go into effect until after calibration is run. Press the Enter/Center button on remote after completing a change and then proceed to run calibration as the next step. It's up to the user to ensure calibration is run as the final step. If calibration is not run immediately after making a setting/level change, the unit will revert to last known valid setting/level. If no other settings/levels have been configured the unit will revert to default #1/20k.
6) As before, each setting/level change must be done individually and then processed through calibration to become effective and/or available. User can not make multiple simultaneous changes to settings/levels and run them all through calibration together.
|1011 - 7.17.17||* New - Added controls for Mono feature - double press Enter button toggles mono on/off. User must press enter button on remote 2 times in a row within 1 second to toggle mono mode. Requires presence of an LDR module in the V25's mono switch socket. If this feature doesn't work in your V25 preamp after uploading this firmware revision there's about a 99.999% chance your preamp does not have a mono switch LDR installed.
* Tweak - Minor mods to certain timer routines to improve overall operation
|1010 - 7.5.17||This revision was almost entirely related to commissioning, calibration and testing of the V25. Not an urgent revision for end users so this revision was only posted when 1011 was released.
* Fix - Enabled ability to stop cal via encoder turn - had been disabled in prior builds
* New - Added automatic precal for use with new precal board (not for use by end user)
* New - Added ability to jump to next LDR during autocal using right button
|1009 - 6.28.17||* Change - Skips the Input Adjust menu on units with only a single input.|
|1008 - 6.20.17||* Tweak - Reset display to 0-0 after cal is completed. Was showing 4-1 which could be confusing|
|1007 - 6.14.17||* Fix - Muting via Encoder press/release was immediately unmuting once volume ramped down to zero rather than staying at zero and remaining muted.
* Fix - Max volume limiter on turn-on or input change was not limiting the volume to the user adjustable max limit value
* Fix - When changing input the volume was not changing to the volume level last associated with the input when it was previously selected
|1006 - 6.6.17||* New - 2 way serial data link is now operational between master and slave boards so it's now ok to connect master J7.TX1 & J7.RX1 to slave board's J7.RX2 & J7.TX2 respectively. Prior to 126.96.36.199 making the connection to slave.J7.TX2 would cause master board to stop working properly. (relevant to multi-board/balanced configurations only)
* Fix - Input switching via encoder was not getting through to attached slave boards. (relevant to multi-board/balanced configurations only).
* Fix - All boards were defaulting to 6 available inputs regardless of how many inputs were actually installed and available. This remains the default for DIY V25 boards regardless of installed inputs but V25 boards installed in finished preamp products now have defined input # limit.
|1005 - 5.23.17||* Fix - Volume last associated with input was not displaying properly when changing/selecting input
* Change/New - Now have 2 ways to turn off preamp
Old Way (modified) - Briefly press/hold Menu button. Volume ramps down and then
turns off rather than just abruptly turning off
New Way - First mute unit (press Menu without holding it down). When
volume muted (display blinking, right display = 0), press Lower button to
turn unit off.
|1004 - 5.18.17||* Change - Only master board can output diagnostics via uart
* Fix - Unit would mute immediately upon being turned on via encoder
* Fix - Current impedance settings' cal (attenuation) tables were being erased when impedance changed to a different setting number
* Fix - Eliminated brief volume surge when turning off preamp with music playing.
* Change - Shunt LDRs are now left on at around 200-300 ohms or roughly 2 ma idle current when the unit is turned off. This ensures close to zero audible output when unit is off if music source and amp are still on. Impact on LDR life negligible since 2 ma is only 10% of rated current capacity of LDR.
* Change - slowed down serial communications to display module to avoid possible comm errors - precautionary only
|1003 - Initial Release|| Fix - Revised precal process for 6 fixed resistance levels of 100R, 500R, 5k, 10k, 47k and 100k
Fix - bug in the Trigger out logic
Fix - bug in the impedance select/adjust
|1002 - (internal only)||* Change - made precal harder to accidentally start (precal not documented for users)
* Fix - several bugs related to calibration involving VRef and Vlo adjustments
during cal and properly saving same.
|1001 - (internal only)||* Change - removed standalone cal routines related to VRef - now use fixed initial values.
* Fix - corrected bug in cal index initialization
* Tweak - cleaned up cal index routines
|1000 - (internal only)||* Initial internal post-development release|