The joys of Xorg and nVidia drivers

I just upgraded Xorg on my debian machine and most GTK 2 widgets lost their borders. How annoying. Turns out the latest xserver-xorg-video-nvidia driver isn’t compatible with the latest Xorg ABI but; this driver doesn’t tell you, a more recent version will complain:

================ WARNING WARNING WARNING WARNING ================
This server has a video driver ABI version of 11.0 that this
driver does not officially support. Please check for driver updates or downgrade to an X
server with a supported driver ABI.
(WW) NVIDIA: The driver will continue to load, but may behave strangely.
(WW) NVIDIA: This driver was compiled against the X.Org server SDK from git commit b6c7b9b2f39e970cedb6bc1e073f901e28cb0fa3 and may not be compatible with the final version of this SDK.
(WW) NVIDIA: This server has an unsupported input driver ABI version (have 13.0, need < 13.0). The driver will continue to load, but may behave strangely.

The solution was to carefully downgrade xserver-xorg-core to 2:1.10.4-1 (that required downgrading xserver-xorg-input-evdev xserver-xorg-input-wacom too). Back with Xorg ABI 10 and everything works ! I now have border on my widgets !

sudo apt-get install xserver-xorg-core=2:1.10.4-1 xserver-xorg-input-evdev=1:2.6.0-2+b1 xserver-xorg-input-wacom=0.10.10+20110203-1)

The Singleton Pattern Revisited

Need to test a singleton ?

Suppose you have singleton class A:

class A {
public static A getInstance() {...}

private A() { ... }
public int doStuff() { ... }

How can you test it if you can’t use your mocks ? Simple put it in a package and make ASingleton that creates A using a constructor package default ! Since your tests run in the same package you will be able to extend it and use your mocks while still having a semi-private constructor.

class A {
A() { ... }
public int doStuff() { ... }

class ASingleton {
private ASingleton() {}
public static A getInstance() { ... }

Responsive Design: don't block the workflow

I’m currently designing the interface and testing the workflow for the whole iPad/iPhone application I’m making and everything is well when everything works. However, in the current setup that I have the Insteon nodes don’t get messages from time to time; with power line signaling there is always something that can go wrong and this is why I prefer dedicated wiring but I had no choice. What happens when a message is lost is quite irritating; the GUI just sits there util the server hits a timeout. This really breaks the flow of the user. So let’s look at why this happens.
Continue reading

4 Way Crossover for the MonsterSpeakers

Today marked another milestone; the cross-over for my 4 way active speaker is done. The input is a XLR followed by a very common instrumentation amplifier before entering the real crossover it is buffered and split to the signal detection circuitry. This last bit of circuitry is not mine; I originally designed one with a 2.5v voltage reference and another one with a comparator with build-in reference like a LT6703HV however, Rod Elliott‘s idea on Project 38 was very nice; a simple dual op-amp and voltage divider.

As always, comments are welcomed. Schema and Eagle Project files are provided. (Full view for links)

Monster Speakers Sketchup

Monster Speakers Sketch up

Monster Speakers Sketch up

Tonight I spent some time in Google Sketchup to sketch up my speakers. This is my ever lasting project and every bit helps to keep myself motivated ! I’m uncertain about the colors and the finish to use as it will all be MDF but the current render gives a good idea.

The project is a 4 way active system; with 2 subs, lower voice, upper voice and tweeter. I have completed an analog crossover but I’m tempted to replace it with a variant of the DSP board I published earlier. The system will feature the ability to turn on when “detecting audio” or with 12v triggers. An output trigger (also 12v) will be present and independent of the input trigger; it will turn on with the “speaker” so I can power/trigger other equipment.

The two subs will likely be a Class-D amplifier based on a TAS5630 while the voices will be based on a LME49811 ‘chip amp’. I will likely reuse my (modified) JLH Class-A for the tweeter, while overkill.

One thing I’m very uncertain is where to unbalance the signal. I’m currently doing it before the crossover (and therefor before the amplifiers) since it’s my understanding that matching parts is critical and very hard when purchasing small quantities.

Finally, the DSP board based on a DSP56371

It’s been a while but I’m very exited to tell you I’ve finished a small DSP board for a simple headphone amp. The original goal was to have a USB input in 16bit 48kHz and pass thought a DSP to “enhance” the sound before a tube power amplifier. I’ve been going mad trying to find a suitable DSP without committing too many hours; those DSP evaluation kits are not cheap.

That is until I found out about Freescale’s Soundbite which has decent inputs ADCs and output DACs. As a bonus they even have the Eagle files available (YES !)

My board is quite simple, two possible inputs:

  • PCM2707: USB to I2S
  • CS5346: 6 Single-Ended inputs with built-in PGA and MUX

The output is using a PCM4104: 24Bits with 118dB SNR 4-Channel Audio DAC.

The layout is still in review, a lot of thinking still has to be done, especially on the case and the power amp. However here is the board for your review and the Eagle files; please be aware that I make no guaranties this will work. If you like this you are free to buy me something from my Amazon wish list 🙂

Layout Advice

Not sure how to finish the layout and even if the layout is optimal

Ground Plane or not ?

Designing this front-end for my amps has been harder then I planned. Part of the complexity is the time delays I need to add; my woodworking is not bad but it’s not excellent and decided I’d put the speakers front-aligned. This lead to having to delay frequencies so everything sounds right. Now, there’s no way I wanted to do all that in analog so a simple DSP system is in order !

In order to keep the design work to a minimum I decided to use power board from panson_hk on diyaudio; then I only need to make a front-end. This front end shall have DC Servos and DACs so keep the number of PCBs and complexities to a minimum.

All is good until…

Ground Planes or not

Ground Planes or not

Here you can see Channel A has a ground plane and Channel B has a star ground; which is best and any ideas on optimizing the layout ?

More Roundness

Seems I had the tool to create round hole all along…
Almost nice round holes !