3.1.V25 Version Firmware
For V25 Preamps Only
The firmware below is for V25 based preamps only. If you have a V2 based Tortuga Audio preamp model, please refer to similar info specific to the V2.
Determining Your Current Firmware Version
Preamps With 7-Segment LED Display
The firmware version will flash briefly on the display roughly 5 seconds after power is applied to your V25 preamp. To be clear, the firmware version does NOT display when you turn on the preamp but only when you apply power to the preamp.
The firmware version will be a 3-4 digit number like 1015 or 0201. If you don’t see a 4 digit number show up on all 4 digits of your dual 2-digit 7-segment LED display you do not have a V25 based preamp.
Preamps With OLED Display
The firmware version can be viewed on preamps with the OLED display by scrolling down and selecting Version from the Menu List.
Firmware Updating Instructions
Please refer to the section under Firmware Updates entitled Firmware Update Instructions for detailed instructions on how to upload firmware to your preamp.
The firmware for the V25 can be divided into 2 periods – Before OLED and After OLED. OLED refers to the graphic OLED display introduced in May, 2018 that required a major update to the firmware.
Before OLED – 7 Segment Display Only
Prior to introducting the OLED display, the firmware versioning was a 4 digit number that started with the numbers “10” followed by the actual version which ran from 01 through 29 as in 1029. This firmware only works with the original 7-segment display.
After OLED – Both Display Types
The “After OLED” firmware is intended for all V25 preamps regardless of display type but is required for OLED displays.
When the OLED display was introduced, the firmware versioning changed to a 4 digit number that starts with “0” followed by the actual version as in 0201. For convenience you can ignore the leading “0” and refer only to the 3 remaining digits.
Special Notice – Upgrading beyond Version 1011
Upgrading preamps that currently have version 1011 (or lower) will cause your preamp to go through a mandatory automatic re-initialization process.
This is a one-time process but must be allowed to run to completion to become effective. If interrupted, the automatic re-initialization process will repeat itself the next time your preamp is powered up until the process is allowed to run to completion.
Duing this re-initilziation process your existing impedance settings will be deleted as will the 100-step attenuation tables associated with each of those settings. Various numbers may be displayed during this process. When the first phase of the re-initilization process is complete your preamp will then automatically enter the second phase where it automatically runs through a calibration cycle associated with impedance setting #1 which will now become fixed at 20k ohms by default. When the calibration process is completed your preamp will reboot and then turn itself on after which it will be available to be used normally.
Users with balanced preamp will need to repeat this process with both V25 boards. When updating the left board there will be no information displayed. Please allow at least 15 minutes after uploading the firmware to allow the automatic re-initialization process to complete even if no information is displayed.
With this upgrade, setting/level #1/20k will no longer be available to be edited by the user as before. Only settings 2-9 will be available to the user to setup and adjust input impednace between 1-99k ohms.
Please consult Version 1012 under the V25 Changelog below for more information on how impedance adjustment works starting with Version 1012.
Firmware Files For Download
Current – For All V25 Preamps Including OLED Displays
This firmare supports both the new OLED display as well as the original 7-segment display. Users are encouraged to upgrade to the most current OLED version regardless of their display type.
The following table lists all changes to the V25 firmware since initial release including any proposed near term changes.
|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 22.214.171.124 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|
The following table lists all currently planned major changes to the V25 firmware.
|Calibration Diagnostics||If problems are encountered during autocal of the LDRs the V25 will identify which LDR is having a problem and a specific diagnostic code will be displayed which can be used by the owner to resolve the problem|
|Hands-off calibration||Autocal will operate automatically on a fixed schedule in the background when the preamp is turned off. If user turns on the preamp during an autocal cycle the cycle will immediately stop and the preamp will turn on and operate normally.
User can still opt to initiate and observe the autocal process manually.
|OLED graphical display||** completed May, 2018 **|
|Wireless communications||By plugging in an off-the-shelf WiFi module the V25 will be able to communicate via WiFi to local devices including smartphone apps for control.|
|Control via smartphone||Control V25 via iPhone and Android phones. Requires development of Wireless Communication first and also development of custom apps for both the iPhone and Android line of phones.|