Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Login


2 Pages12>
Options
View
Go to last post Go to first unread
elviz  
#1 Posted : Saturday, February 20, 2010 5:40:36 AM(UTC)
elviz

Rank: Member

Groups: Member
Joined: 3/29/2009(UTC)
Posts: 52
Location: Finland

I recently built a DIY power amp and i am using Buffalo 32s as analog source. I am planning to have a DIY solution to replace my old integrated amp that i am using as preamplifier between B32s and the amp. One solution would be to use B32s as preamplifier and use digital volume control, such as Volumite. I am assuming that the analog section driven with dual mono Placids would be sufficient to drive the power amp's input.

However, the preamplifier must be able to do the following:
- volume control
- left-right balance
- Volume level display
- Remote control

I have been thinking of using something like PRM-1 module on this page - http://www.bentaudio.com/index2.html (OEM / DIY TAP Modules section)- to replace Volumite. The PRM-1 module would meet all the requirements above. I am assuming the PRM-1 module works as stereo attenuator, which would be same as there were separate volume pots for left and right channels.

But how big a job you think it would be to build a custom control firmware/controller for B32s to use a custom unit like that? Does the Volumite work like this - The microcontroller interfaces into the audio stream from I2C socket and basically just attenuates the digital samples?

But since there are different firmware for different TPA DACs that makes me wonder that what device specific stuff is there? Or does Volumite just change some register values on the DAC chip which vary between products? Are there documents for the interface available somewhere (for Buffalo 32s) or even the firmware source code?

ps. I have around 25 years of programming experience. None of that comes from programming microcontrollers tho. Would be interesting to try something like that...

Edited by user Saturday, February 20, 2010 6:35:50 AM(UTC)  | Reason: Not specified

Russ White  
#2 Posted : Saturday, February 20, 2010 7:20:59 AM(UTC)
Russ White

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 3,979
Location: Nashville, TN

Thanks: 25 times
Was thanked: 89 time(s) in 83 post(s)
Not hard at all :)

This thread might interest you.

http://www.twistedpearau...?g=posts&m=2842#2842

Edited by user Saturday, February 20, 2010 7:22:06 AM(UTC)  | Reason: Not specified

elviz  
#3 Posted : Saturday, February 20, 2010 7:49:25 AM(UTC)
elviz

Rank: Member

Groups: Member
Joined: 3/29/2009(UTC)
Posts: 52
Location: Finland

Thanks! I did not realize that the soon-to-be-released "Audio Controller 1" and "Femto Processing Core" in the Web were exactly what i need. I guess i'll just wait until the AC1/Femto release and use the integrated as preamp until then.

Edited by user Saturday, February 20, 2010 8:04:28 AM(UTC)  | Reason: Not specified

kesgreen  
#4 Posted : Saturday, February 20, 2010 10:14:10 AM(UTC)
kesgreen

Rank: Member

Groups: Member
Joined: 1/12/2009(UTC)
Posts: 138
Location: London

Thanks: 15 times
Was thanked: 1 time(s) in 1 post(s)
I think "soon to be released" may be a tad optimistic :)

I'd be a very happy man if it is available sometime in the next few months as I have ordered a Volumite along with a Buffalo II. I was planning to replace the rotary encoder with a remote-controlled pot. If I can avoid the cost of buying all that only to replace it shortly thereafter with an AC1, it would be the icing on the cake... or the glazing on the (twisted) pear.

Edited by user Saturday, February 20, 2010 10:18:13 AM(UTC)  | Reason: Not specified

glt  
#5 Posted : Saturday, February 20, 2010 11:26:13 AM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

elviz wrote:
...
However, the preamplifier must be able to do the following:
- volume control
- left-right balance
- Volume level display
- Remote control

...

ps. I have around 25 years of programming experience. None of that comes from programming microcontrollers tho. Would be interesting to try something like that...


Try Arduino. I'm not a s/w guy but with the help of the Arduino community I was able to built a control for the OPUS DAC with LCD display and IR remote.

You will also need to request a datasheet from your local distributor and sign an NDA (seems just a formality or sales/marketing thing)
elviz  
#6 Posted : Saturday, February 20, 2010 3:22:26 PM(UTC)
elviz

Rank: Member

Groups: Member
Joined: 3/29/2009(UTC)
Posts: 52
Location: Finland

glt wrote:
elviz wrote:
...
However, the preamplifier must be able to do the following:
- volume control
- left-right balance
- Volume level display
- Remote control

...

ps. I have around 25 years of programming experience. None of that comes from programming microcontrollers tho. Would be interesting to try something like that...


Try Arduino. I'm not a s/w guy but with the help of the Arduino community I was able to built a control for the OPUS DAC with LCD display and IR remote.

You will also need to request a datasheet from your local distributor and sign an NDA (seems just a formality or sales/marketing thing)


That sounds good. Where can find the information on the es9018 i2c registers? Is that public information?
Russ White  
#7 Posted : Saturday, February 20, 2010 3:36:46 PM(UTC)
Russ White

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 3,979
Location: Nashville, TN

Thanks: 25 times
Was thanked: 89 time(s) in 83 post(s)
The registers are in the datasheet.

I actually just redesigned the AC1 board (femto has been finished for quite a while).

The biggest barrier to ESS applications is that I would have to break the NDA to publish all the source code... That's a bummer. I am hoping ESS will change it's policy soon.

AC1 is very simple to use, programming is via USB.
sidiropa  
#8 Posted : Sunday, February 21, 2010 11:42:53 PM(UTC)
sidiropa

Rank: Member

Groups: Member
Joined: 4/6/2009(UTC)
Posts: 18
Switzerland
Location: Horgen, Switzerland

Thanks: 1 times
elviz,

have a look at cracktous.blogspot.com, where I have listed the code I used for my Buffallo/Arduino build. It may be usefull...

Abraham
elviz  
#9 Posted : Monday, February 22, 2010 3:09:31 AM(UTC)
elviz

Rank: Member

Groups: Member
Joined: 3/29/2009(UTC)
Posts: 52
Location: Finland

sidiropa wrote:
elviz,

have a look at cracktous.blogspot.com, where I have listed the code I used for my Buffallo/Arduino build. It may be usefull...

Abraham


Thanks, i kinda found it with google already tho ;). The remote and display controlling parts might come useful. Also there was also an example how to use the i2c interface. I would not mind seeing the wirings with arduino tho. I calculated 2 outputs for i2c, 1 input for remote and 10 inputs for display, plus some power pins and grounds used. If i am right and you did not use the mega version or arduino, i should have 1 pin left in the i/o side.

I sent the signed NDA to ESS as well (through local sales rep), lets see if/when i get the secret datasheet :). Arduino has been ordered, also the display and the remote. So everything is quite ready. Would be cool to get this thing going.

Brian & Russ:
One more thing that worries me tho is that if the onboard controller chip cannot be used together with i2c hardware connected how complex stuff exactly is in that firmware. Does it just initialize the chip according to the jumpers and set the volume levels for channels or is there more to it?
glt  
#10 Posted : Monday, February 22, 2010 9:09:18 AM(UTC)
glt

Rank: Member

Groups: Member
Joined: 11/9/2007(UTC)
Posts: 453
Location: usa

elviz wrote:


I would not mind seeing the wirings with arduino tho. I calculated 2 outputs for i2c, 1 input for remote and 10 inputs for display, plus some power pins and grounds used. If i am right and you did not use the mega version or arduino, i should have 1 pin left in the i/o side.

...


You could use the LCD in 4-bit mode and that would save you 4 pins...
kesgreen  
#11 Posted : Monday, February 22, 2010 11:32:04 AM(UTC)
kesgreen

Rank: Member

Groups: Member
Joined: 1/12/2009(UTC)
Posts: 138
Location: London

Thanks: 15 times
Was thanked: 1 time(s) in 1 post(s)
Russ White wrote:
T
The biggest barrier to ESS applications is that I would have to break the NDA to publish all the source code... That's a bummer. I am hoping ESS will change it's policy soon.


Does this mean that there'll be no AC1 until ESS remove the requirement for an NDA? That's bad news Boo hoo!

Could there be some arrangement whereby all buyers sign the NDA? The Arduino looks good but complicated. I'd much rather have a TP solution as then I'd know it would work 'out of the box'.
NicMac  
#12 Posted : Monday, February 22, 2010 3:10:01 PM(UTC)
NicMac

Rank: Advanced Member

Groups: Member
Joined: 2/10/2009(UTC)
Posts: 299
Location: Italy

Well - I for one would be more than happy with a AC1 "Lite" pre-programmed (i.e. no need to know source code) to operate some key TPA products. Although I like to customize I think the majority of customers would really only need a few features.
Personally I would like:
1) Volume control: Turning the knob (actuating a digital encoder with push function), or via remote control.
2) Source selection: Pushing the knob momentarily (or by remote control), rotating between the 4 MUX inputs and a 5/6th I2S/DSD source.
3) On/off control: Pushing the button for an slightly extended time. Or by use of remote.

The display could in its base state indicate attenuation, source and sampling frequency.
Only a two-line display should be needed (many would be tempted to stick to slim enclosures).

Only my 2 cents even if I would happily pay quite a bit more for itDrool

Nic
Russ White  
#13 Posted : Monday, February 22, 2010 9:21:21 PM(UTC)
Russ White

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 3,979
Location: Nashville, TN

Thanks: 25 times
Was thanked: 89 time(s) in 83 post(s)
HI Nic,

Thats pretty much what we have in mind. :)
elviz  
#14 Posted : Tuesday, February 23, 2010 10:28:59 AM(UTC)
elviz

Rank: Member

Groups: Member
Joined: 3/29/2009(UTC)
Posts: 52
Location: Finland

Got the datasheet.

So, when i start playing around with the register values i need to remove the B32's onboard firmware chip and initialize the DAC chip using my own controller into preffered operation mode through I2C? Right?

After removing the onboard firmware the b32s dip switches are useless and the Sabre32 chip operates with defaults only unless i control it to do otherwise? Right?

Edited by user Tuesday, February 23, 2010 10:35:44 AM(UTC)  | Reason: Not specified

Russ White  
#15 Posted : Tuesday, February 23, 2010 11:24:01 AM(UTC)
Russ White

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 3,979
Location: Nashville, TN

Thanks: 25 times
Was thanked: 89 time(s) in 83 post(s)
elviz wrote:
Got the datasheet.

So, when i start playing around with the register values i need to remove the B32's onboard firmware chip and initialize the DAC chip using my own controller into preffered operation mode through I2C? Right?

After removing the onboard firmware the b32s dip switches are useless and the Sabre32 chip operates with defaults only unless i control it to do otherwise? Right?



Correct.
elviz  
#16 Posted : Thursday, February 25, 2010 9:58:21 AM(UTC)
elviz

Rank: Member

Groups: Member
Joined: 3/29/2009(UTC)
Posts: 52
Location: Finland

One more question. If i am trying to find better match between B32s' Vrms output and the power amp by adding the R47 - R50 resistors, do i need to re-wire the cuts between the traces on the board? What i am asking is, does the cuts disable R47 - R50 resistors?

Edited by user Thursday, February 25, 2010 10:00:34 AM(UTC)  | Reason: Not specified

elviz  
#17 Posted : Sunday, February 28, 2010 10:05:27 AM(UTC)
elviz

Rank: Member

Groups: Member
Joined: 3/29/2009(UTC)
Posts: 52
Location: Finland

Ok, i have built driver for my old SD5708 led matrix display for Arduino. I got the IR receiver working, with some random IR receiver i bought for a couple euros. I also built a simple UI for setting volume, balance, and some other settings with remote control.

But, i cannot get the I2C working. I removed the onboard firmware and connected (Arduino analog pin 4)SDA->(B32s)SDA and (Arduino analog pin 5)SCL->(B32s)SCL pins.

The b32s does not seem to take any commands in and after several commands sent the Wire.endTransmission() just freezes. That function does that actual transfer. I built pretty solid cables between the devices and soldered them in place so poor connection shouldn't be the problem. And after rechecking 100 times, i am very certain the wirings are good.

I also figured that Wire Api shifts I2C device id one bit right to add R/W bit in (7 bit devide id), but fixing that did not help either. Then i thought maybe its the power from USB, so i hooked up LCDPS @ 9V to power Arduino. Still no go.

I am getting pretty clueless here, but I hope its just some stupic mistake I've made and not a incompability problem.

Questions:

Is there something else i need to take care of to enable the I2C on B32s side? Just take off the firmware and connect the I2C pins?

Are there 4.7k resistors in B32s for I2C? I read some people are using those with Arduino and I2C. Looking at Volumite's schematics, there are some 2.2K pull up resistors. Do i need to add those to SDA and SCL lines?

Edited by user Sunday, February 28, 2010 10:08:49 AM(UTC)  | Reason: Not specified

Russ White  
#18 Posted : Sunday, February 28, 2010 12:18:12 PM(UTC)
Russ White

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 3,979
Location: Nashville, TN

Thanks: 25 times
Was thanked: 89 time(s) in 83 post(s)
SDA and SCL are already pulled up.

Make sure you connect GND as well as SDA/SCL.

Also make sure you are indeed writing the correct address byte. Remember that the high 7 bits are the address, and the low bit is the read/write flag.

Other than that its pretty easy to get I2C working.

If it help here is the I2C code I use for volumite etc:

File Attachment(s):
USI_TWI_Master.c (9kb) downloaded 66 time(s).
USI_TWI_Master.h (5kb) downloaded 41 time(s).

You cannot view/download attachments. Try to login or register.
elviz  
#19 Posted : Sunday, February 28, 2010 1:18:23 PM(UTC)
elviz

Rank: Member

Groups: Member
Joined: 3/29/2009(UTC)
Posts: 52
Location: Finland

Russ White wrote:
SDA and SCL are already pulled up.

Make sure you connect GND as well as SDA/SCL.

Also make sure you are indeed writing the correct address byte. Remember that the high 7 bits are the address, and the low bit is the read/write flag.

Other than that its pretty easy to get I2C working.

If it help here is the I2C code I use for volumite etc:



Thank you! I got it working.

It was the GND line that was missing. All the other I2C applications i tried to learn used two wires and since the whole thing is based on "Two Wire Interface" aka TWI, I just didn't realize GND between the devices was needed as well.

Anyways, i am glad the problem was a trivial one.

Edited by user Sunday, February 28, 2010 2:08:53 PM(UTC)  | Reason: Not specified

Brian Donegan  
#20 Posted : Sunday, February 28, 2010 2:28:18 PM(UTC)
Brian Donegan

Rank: Administration

Groups: Administration, Customer
Joined: 10/24/2006(UTC)
Posts: 2,868
Location: Massachusetts, USA

Thanks: 2 times
Was thanked: 141 time(s) in 134 post(s)
Quote:
I just didn't realize GND between the devices was needed as well


If both ends share the same power supply, you would not need the additional ground wire. You just need both ends to share a common reference for logic levels.
Rss Feed  Atom Feed
Users browsing this topic
GuestUser (9)
2 Pages12>
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.