4.4.V25 UART Command Codes
The V25 Preamp Controller Board can be controlled by external control devices such as an Arduino board or any other programmable device with standard UART serial communications hardware or the equivalent in software.
When an external controller is employed the external controller’s UART transmit (TX) and receive (RX) signals are connected to the V25 Master Board’s RX2 and 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 built-in to the V25 processor’s hardware, utilize data receipt interrupts, and are considered extremely accurate and reliable.
The V25 employs the following UART communications protocol.
- Baud Rate: 115,200 bps
- Stop Bits: 1 stop bit
- Parity: none
- Data bits: 8
- Flow Control: none
V25 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 these commands to control their V25 controller.
|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|
External Control Integration
To effectively use the UART control commands the use must be mindful of the overall V25 remote control scheme. For convenience the V25 Apple remote control scheme is shown in the table below.
For example, in order to change inputs, an external controller must first place the V25 into input control mode and then issue the appropriate raise, lower, left, right, and enter commands consistent with instructions for changing input as described below.
|Turn On||Menu||Pressing button turns the unit on.|
|Turn Off||Menu||There are 2 ways to turn off the preamp depending on the firmware version in your preamp.
1-step turn off (prior to firmware rev 1016) - Press/hold the Menu button and then release. Note that if held down too long unit may turn back on and if held down too briefly will result in muting the preamp but not turning it off.
2-step turn off (starting with firmware rev 1016) - First mute the unit by briefly pressing the Menu button. When the volume has fully ramped down to zero, a subsequent press of the Lower button will turn off the preamp. Starting with firmware rev 1019 you don't have to wait for the ramp down to finish - just a quick 2 button Mute->Lower press will shut off the preamp.
|Volume Muting||Menu||Brief press of Mute button will mute or unmute the unit. The volume will ramp down to zero when muted. When unmuted the volume will ramp back up to its prior setting.|
|Volume Adjust||Up/Down||Raises and lowers the volume by 1 step for each press. Holding down the buttons will cause the command to repeat.|
|Balance Adjust||Left/Right||While in the default Volume Adjust mode, use the left/right buttons to adjust the channel balance 1 step to the left or right a maximum of 20 steps either way. Each step changes channel balance by ~0.5 dB. As channel balance continues to skew towards a given side (left or right), the combined volume level of both sides will automatically adjust to maintain the same overall volume level.|
|Control Modes||Mode||In addition to the default Volume Control mode there are 5 other control modes as listed below. The modes are accessed by sequentially pressing the Mode button (lower right) on the Apple remote. At any time, pressing the Center button on the remote will return the unit to the default Volume Control mode.
0) Volume Adjust Mode - default
1 Input Adjust Mode
2) Impedance Adjust Mode
3) Display Adjuse Mode
4) Max Volume On Input Change Mode
5) Auto Calibration Mode
Each of these modes are explained below.
|Input Adjust Mode (Slow)||Mode, Raise/Lower & Left/Right||Pressing the Mode(play) button once will switch the unit into Input Adjust mode. The right display will show the currently selected input number. The left display will show the prior volume level associated with that input when it was last selected.
Music will continue to play on current input channel while while the preamp is in Input Adjust mode and you make your input selection.
Use the raise/lower buttons to adjust the input to desired number.
Press the Center/Enter button to activate the newly selected input and return to volume control mode.
If you select the same same input as your're currently listening to, nothing happens upon pressing the Enter button and returning to volume control mode.
If you select a new input, pressing the Enter button will cause the existing input signal volume to ramp down, the new input to then be connected, and the new input volume to ramp back up.
|Input Adjust Mode (Fast)||Mode, Left/Right||Pressing the Mode(play) button once will switch the unit into Input Adjust mode. The right display will show the currently selected input number. The left display will show the prior volume level associated with that input when it was last selected.
Unlike the Slow Mode described above, the Fast Mode immediately changes the input without first muting the volume.
Use the left/right buttons to change inputs immediately.
There will be a brief 200 millisecond delay in fast switching the inputs which will hardly be perceptible.
|Impedance Adjust Mode||Mode, Raise/Lower||Pressing Control Mode (play) twice will switch the unit into Impedance Adjust mode. The left display will show the impedance setting number (1 through 5) and the right display will show the impedance level (in xxK ohms) associated with the currently selected impedance setting number.
Use the raise/lower buttons to change the impedance setting number (1-5). Use the left/right buttons to change the impedance level for the currently selected impedance setting. Press the Center/Enter button to exit Impedance Adjust mode and return to volume control.
Changing the impedance setting number will instantly change the preamps impedance to the level associated with the setting number provided that this setting and its associated level have already been run through the auto-calibration process.
If you switch to an impedance setting number (1-5) that has not already been initialized through auto-calibration then selecting it will result in the audio being turned off. This is the single most common error users make when working with the Adjustable Impedance feature.
|Display Adjust Mode||Mode, Raise/Lower & Left/Right||Pressing Control Mode (play) three (3) times will switch the unit into Display Adjust mode.
The right display will show the brightness level number between 0-15.
Use the raise/lower buttons to change the brightness level. Press the Center/Enter button to exit the Display Adjust mode and return to volume control.
Timeout allows you to cause the display to turn off at the selected number of seconds after prior command input via the remote. Timeout only works when in Volume Adjust Mode and is disabled when the preamp is in any other control mode.
The left display will show the timeout number between 0 and 99 seconds. If set at 0 the display timeout feature is disabled. The minimum timeout setting is 5 seconds.
Use the left/right buttons to adjust the timeout to desired level. Press the Center/Enter button to exit the Display Adjust mode and return to volume control.
|Max Volume On Input Change Adjust Mode||Mode, Raise/Lower||Pressing Control Mode (play) four (4) times will switch the unit into Max Volume On Input Change mode. The left display will be blank. The right display will show the maximum volume allowable when switching to a new input or when the unit is first turned on. This can be adjust between 1 and 99. The initial default value is 50. This protects your audio gear (speakers!) from accidentally going to full volume when switching to an input they may have been at or near full volume when previously selected as would be the case if the preamp was being used in a home theater bypass scenario.
Use the raise/lower buttons to change the max volume on input change level. Press the Center/Enter button to exit the max volume on input change adjust mode and return to volume control.
|Auto Calibration Mode||Mode, Right||Pressing Control Mode (play) button five (5) times will switch the unit into Auto Calibration mode
Both displays will initially show 0 upon entering the auto-cal mode.
Press the Right button 3 times to enable auto-calibration. The right display will show the count up as you press the button.
Once enabled the unit go through several stages of calibration. The first stage involves making 4 adjustments during which time a 4 digit number will be displayed typically ranging from 1500-1850. If the preamp does not cycle through these 4 adjustments within say 30 seconds or so that's an indication one or more LDRs may be having a problem. If there's a problem the numbers will either continue to increase or decrease steadily until hitting some upper or lower limit and then remain fixed.
The unit will the proceed to cycle through each of 4 LDRs showing the LDR number in left display and the calibration step number in right display. There are 99 calibration steps for each LDR. Upon completion of 4th LDR, unit will terminate calibration, briefly shut off the preamp, and then start the preamp again normally.
At the beginning of each LDR's calibration the step number will likely remain at step 1 for a while. That's normal. After no more than a minute the step count should proceed upwards. Sometimes the step count goes quickly and other times it may slow down quite a bit. This is normal.
If the calibration step process slows down and stops or never proceeds beyond step 1 and does not proceed after a minute of waiting that is a fairly definitive indication that the LDR whose number displayed in the left display has gone bad and needs replacement.
You can skip over an LDR any time during autocal by pressing the right button. If you skip past the 4th LDR, autocal will terminate.