• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!
No, I didn't have any other messages. I hope they are doing something...
 
That would be nice, really.
Hope dies last.
But unfortunately SMSL, Sabaj, Loxjie have shown in the past that they have neither the manpower nor the know-how for high-quality software/firmware. I suspect that there are neither useful logging tools nor requirements specifications, which makes such changes extremely difficult and then creates new errors.

This also means that the potential of the devices is not exploited, keyword usability and functionality.
This company is not aware of the marketing potential of taking care of the firmware and adding usability and functionality.

@SMSL-Mandy Fixing errors in the firmware should actually be a matter of course and have the highest priority. SMSL does not seem to be aware that these very customers have already supported the company financially through their purchases.
Instead, the priority is placed on the next device in development/production that has not been fully developed and tested, of which SMSL already has dozens on the market.


My question would also be why they don't use the potential of the open source community. There are enough examples where this has led to much better devices and sales/revenues for these devices have gone through the roof.
 
Hope dies last.
But unfortunately SMSL, Sabaj, Loxjie have shown in the past that they have neither the manpower nor the know-how for high-quality software/firmware. I suspect that there are neither useful logging tools nor requirements specifications, which makes such changes extremely difficult and then creates new errors.

This also means that the potential of the devices is not exploited, keyword usability and functionality.
This company is not aware of the marketing potential of taking care of the firmware and adding usability and functionality.

@SMSL-Mandy Fixing errors in the firmware should actually be a matter of course and have the highest priority. SMSL does not seem to be aware that these very customers have already supported the company financially through their purchases.
Instead, the priority is placed on the next device in development/production that has not been fully developed and tested, of which SMSL already has dozens on the market.


My question would also be why they don't use the potential of the open source community. There are enough examples where this has led to much better devices and sales/revenues for these devices have gone through the roof.
This is a really easy fix. It is just assignment errors. For instance, for the DL200 and D6-S, the UI controller input - FLnumin - is not correctly assigned to its output in the DAC chip's code - 3'dnumout - register 88 bits [2:0]. ESS starts their numbers with 0 and goes up to 7 while SMSL starts at 1 and goes up to 7 as well. SMSL's stated list of filters is
FL1: Minimum phase (ESS#1, code: 3'd0)
FL2: Linear phase apodizing fast roll-off (ESS#2, code: 3'd1)
FL3: Linear phase fast roll-off (ESS#3, code: 3'd2)
FL4: Linear phase fast roll-off low ripple (ESS#4, code: 3'd3)
FL5: Linear phase slow roll-off (ESS#5, code: 3'd4)
FL6: Minimum phase fast roll-off (ESS#6, code: 3'd5)
FL7: Minimum phase slow roll-off low dispersion (ESS#8, code: 3'd7)

The actual assignment is
FL1 - Minimum phase slow roll-off low dispersion (ESS #8)
FL2 - Linear phase apodizing fast roll-off (ESS #2)
FL3 - Linear phase fast roll-off (ESS #3)
FL4 - Linear phase fast roll-off low-ripple (ESS #4)
FL5 - Linear phase slow roll-off (ESS #5)
FL6 - Minimum phase fast roll-off (ESS #6)
FL7 - Minimum phase slow roll-off (ESS #7, code: 3'd6)
Thus, FL2-FL6 are correct but FL1 and FL7 are incorrect.

In terms of programming it correctly, this is straightforward depending on the language used. Suppose, the controller input for the filter is just num assigned to variable filter such that filter = num corresponds to FLnum being selected by the user. Then, the translation to the DAC chip's code can be as simple as
if filter != 7
FILTER_SHAPE = 3'd(filter - 1)
else
FILTER_SHAPE = 3'dfilter
end
There might some intermediary steps in the assignment such as translating an interger to a string and concatenating afterwards but SMSL seem to know them since they different filters are selected by the UI control.

Similarly, on the DL200 and D6-S, there is also a step missing in the volume contol between 88 and 89 which should be 0.5 dB apart. The relevant assignment section for the DAC chip is registers 74 and 75 bits [7:0] for the channels 1 and 2, respectively. Since there is no balance settings, they are always the same and thus if the input for the controller is volume = num, the assignment is again straight forward. From volume 99 down to 27 are in steps of 0.5 dB, from 26 to 19 are in speps of 1 dB and from 18 to 01 are in steps of 1.5 dB with 00 being mute. The volume control for the DAC chip is in 255 0.5 dB steps, i.e. 0 dB and 255 levels each 0.5 lower than the preceding with the assignment code 8'dnum with num going from 0 at 0 dB to 255 at 127.5 dB. Mute is controlled via register 86 bits [1:0] where 1'b1 is mute and 1'b0 is normal operation. Muting can be done through the remote control denoted by mute = 1 for mute and mute = 0 otherwise or by turning down the volume all the way to 00.

Thus, it can be programmed straightforwardly as
if mute == 1 or volume == 0
DAC_MUTE_CH1 = 1'b1
else
DAC_MUTE_CH1 = 1'b0
if volume > 25
VOLUME_CH1 = 8'd(99 - volume)
elseif volume > 18
VOLUME_CH1 = 8'd(99 - 27 + 2*(27 - volume))
else
VOLUME_CH1 = 8'd(99 - 27 + 2*(27 - 19) + 3*(19 - volume))
end
VOLUME_CH2 = VOLUME_CH1
end
DAC_MUTE_CH2 = DAC_MUTE_CH1
The fact that they skip a step between 88 and 89 suggest some really longwinded coding with individual level assignments for every volume settings, i.e. 100 or so conditionals instead of 3.
 
Last edited:
Back
Top Bottom