Cheap Bipolar Power Supply

The Circuit



You definately should connect the 0V line to protective earth.

Also, lots of fake HiLink modules out there. Beware! Genuine ones DO have a serial number sticker attached to one of their sides.

HiLink Modules to be found here:





Speaker Restoration

A while ago, my coworker buddy stood at my doorstep, hauling two -for lack of a better word- obscenely large speakers along with him. Turns out he bought two pairs of 30 year old Bang&Olufsen Pentas, one pair of them powered (Beolab), the other not (Beovox). For some reason, the passive ones ended up staying at my place. Yay!

Thank you one more time, André!

Most unfortunately, all of those speakers were in absolutely desolate shape, simply terrible: Smashed woofers, rotten foam on all of the midrange drivers, while two of them were completely shot. The front grilles all filthy and ugly, candle wax stuck on top of one of them and, boy, were they dirty in general. Needless to mention, they also sounded horribly screeching and flat; Outright dreadful.


Time had inexorably rendered them into worthless pieces of junk. Such a shame! Much Unjust! So Sad! I simply had to do something about this.

You see, the beauty of these speakers lies within the fact that the midranges are configured for line array operation, within certain frequencies. Phase correction of the outward driver pair is done by physically shifting them backwards by a few millimeters, so the sound from those drivers is delayed by a few nanoseconds. This produces a sound beam, emanating from the front, minimizing floor and ceiling reflections. It also gives the stereo image they produce an airy, wide open, yet deeply detailed and defined quality not usually found in your average $1000 run-off-the-mill speakers.

So naturally, the first thing was to check for replacement midranges. Refoaming was out of question, since two of them were totally dead and measured open on the voice coil. B&O still supplies them, but quoted a price of EUR 235 per unit. Bloody ouch!

Also considering that the original ITT/NOKIA drivers were always a tiny little bit on the crappy side perhaps, another solution had to be found.


After following up on countless posts in diverse message boards, I read about some drivers from Visaton (a quality manufacturer from Germany), for which others reported success with. However, the reported drivers were 8 Ohm types, while the original had 4 Ohms (3.4 Ohm DC). After browsing around some more, I found that there’s a 4 Ohm version and decided to give it a try. The drivers had to be mechanically modified to fit into the mounting holes on the B&O enclosure, but that -thanks to my coworker’s ingenuity- turned out to be not much of a problem after all.


I decided to replace the cheapo spade connectors on the speaker terminals by soldering the wires to the terminals and using a 6 pin automotive high current connector for the entire assembly. Those mechanically interlock when connected and are coded, so cannot be connected up the wrong way.


While at it, I also completely redid the wiring for all the bass drivers. Instead of the daisy chain style 0.75mm2 wiring put it place by B&O, Im using 2.5mm2 wiring arranged in a star topology. The wires are soldered to the terminals, at the driver side. Distance between PCB14 and Terminal Blocks is kept at a minimum.


Due to age, the crossovers were completely recapped with Audyn MKT caps. It was my choice to replace all electrolytics, not just those directly in the signal path. Different electrical parameters of the replacement drivers also necessitated  tuning a few resistor values. I used both simulation and lots of trial-and-error listening to do this (which is the reason for the yellow tape on the floor, marking the speaker positions).


Theoretically not entirely perfect, but I didn’t want to replace any of the inductors and have no facilities for taking any meaningful speaker measurements. Yet, outcome in terms of sound is extremely good: very clear and elucidated mids and heights, absolutely profound and dry bass response, always comfortable to listen to (even at stupidly high or idiotic low volumes) and quite well balanced overall. Also, many orders of magnitude  better than the pair of (quite good) Quart MB speakers I used before.

My thread on beoworld has more detailed information about the crossover modifications.

Next was redoing the front grilles with black fabric instead of the original grey one. All the originally grey plastic parts were also repainted  in maté black.

So here’s what they look like now:


Final step, I did a new paint job on the became-undefinable, once-must-have-been coppery-silvery-goldish deco stripes running around the grilles. My color of choice was a dark metallic red, matching the interior of my living room.



I think they sound (and look) absolutely stunning. The only thing I’ve ever heard that comes even close in terms of spatial resolution (stereo imaging and depth) are Martin Logan Sequel electrostatic speakers. My coworker was so impressed that he also had -after listening to my pair for a while- the same replacements and modifications (except paint job) done to his powered pair.


Old 80s Speakers in all new and shiny glory. Absolutely, totally gorgeous!


And in case you wonder: If you were to give me EUR 2000 and cover all expenses, then yes, I’d consider applying the very same procedures to your pair of Beovox Pentas. Yes, it was quite a bit of work that took me several moons of working on them in my spare time.

IoT Blinkenlights!

Niston Cloud’s WiFi IoT Signaleer is -you guessed it- an Internet-of-Things signal lamp. It can visualize a great many things: Internet connection availability, NAGIOS alarms, home automation indicators, (3D) printer job status – you name it. My use case is to monitor the order queue of a webshop we run at work. So, the current Signaleer Firmware uses HTTP polling. I plan to write an MQTT version for some other use cases.

Niston Cloud's IoT Signaleer

Niston Cloud’s WiFi IoT Signaleer – The Internet-of-Things Blinkenlights

The heart of the IoT Signaleer consists of a nodeMCU board. This integrates an ESP8266 Microcontroller (has built-in WiFi), 4MB FLASH memory, a 3v3 regulator and an USB-TTL Serial bridge onto a tiny, ridiculously cheap board. Thanks to the nodeMCU firmware, the ESP can be programmed in LUA. I had some previous experience in writing LUA code, dating back to my World-of-Warcraft days. So, getting going with nodeMCU wasn’t much involving. I found that it’s event-driven approach is very similar to writing event-driven programms in (ancient) Visual Basic 6 – Which is something I once used to be extremely comfortable with.

Stripeboard PCB, Revision 1

Stripeboard PCB, Revision 1

The light stack used in this project has incadescent lamps. As you can see, I took to some rather very, totally and extremely beefy MOSFETS (IRFP064N) to blink ’em lights. Because, you know, Overkill! The MOSFETS do not fully turn on @ 3v3, so I used pairs of BC547 transistors as non-inverting gate drivers (thx SpeedEvil). Due to the relatively high MOSFET slew rate, I had to take some measures to prevent ringing (which would emit unwanted RFI) and so used a 100KOhm gate resistor. Filament protection is provided by a bunch of 470Ohm bias resistors across the MOSFETs, which pre-heat the bulb filaments with roughly 30mA each (thx Kludge & _abc_).

Incandescent Lamp Driver w/ Softstart Option

Incandescent Lamp Driver (1 Channel shown) w/ Softstart Option

To further extend bulb life, I implemented softstart on all lamp channels, paralleling a 4.7uF capacitance with each MOSFETs Gate. Going overkill++ on the MOSFETs allows for this mode of operation (slowly ramping down RDS) without using any heatsinking or even considering thermal management.  Considering thermal management: I had to rewire the beeper inside the lamp stack, for common anode operation. Doing so, it came to light that the manufacturer had put unsuitable wiring in place, rated for 105°C only. But I measured the inside of the stack to reach 103°C @ 24°C ambient. Thus, some new 180°C rated SiF wiring finally fixed this potential fire hazard. There’s also a little piezo beeper inside the lamp stack; it is driven by a single BC547.

MOSFET sofstart curve (5V,20ms / div)

MOSFET sofstart curve (Gate Voltage – 5V, 20ms / Div)

MOSFET shutdown curve (5V, 10us / Div)

MOSFET shutdown curve (Gate Voltage – 5V, 10us / Div)

I mostly used ESPlorer to code the Firmware, which you can obtain from here. ESPlorer is a tad bit cumbersome to use, and some of the features don’t work at all while others do work, but just not quite right. Still: It got the job done, nonetheless! I need to look around for a suitable dev environment though. Something VS-ish would be nice indeed.

Using ESPlorer as a *rudimentary* IDE.

Using ESPlorer as a *rudimentary* IDE.


New: Raspberry Pi 2

According to a news article at ElReg, a new Raspberry Pi Version 2 is being released today. Related discussion about this is ongoing at Reddit. If rumors are true, we will have a Raspberry Pi featuring 4 Cortex A7 cores @ 900MHz and (finally) a full Gig of RAM.

New Raspberry Pi 2


Here’s /proc/cpuinfo for those who are interested. The GPU is reportedly the same VideoCore IV as in previous models, as is the USB controller. The BCM2836 SoC is said to run much cooler than the BCM2835 from the 1st generation Pis. Overclocking to 1100MHz should not be a problem and will apparently be the default OC option.

rpiv2_1 rpiv2_2

NISTON Stream One

What can you do with C#, a Raspberry Pi, a Pi-DAC, and a Matrix Orbital GLK Display?
Build a HiFi component that receives Internet streaming audio! But see for yourself:

Base plate with display unit mounted.

Base plate with display unit mounted.

The wonderful GLK series HMI unit comes from Canadian display manufacturer Matrix Orbital in either USB, Serial or I2C flavour. I develop the Firmware on my Windows machine, and not on the Raspberry Pi itself, so the prototype uses the USB version. Easy for me, because I can connect the display straight to my workstation for development and debugging purposes.

Raspberry Pi, PiDAC, Power supply & distribution.

Raspberry Pi, Pi-DAC, Power supply & distribution added.

Good single malt and good audio boards come from Scotland, it appears. IQaudIO’s Pi-DAC employs a Burr Brown (now TI) chip, the PCM5122. Not as audiophile as the legendary PCM1704 perhaps, but listening to it is certainly a pleasant experience. The engineers at IQaudIO designed the power conditioning with great care, and the output signal is very clean. This is indeed a high quality line output card for the Raspberry Pi!

Almost complete...

Almost complete…

A 15W Mean Well SMPS feeds its 5VDC supply to the distribution rails, where a 10k uF capacitor provides additional stability and reduces ripple. The display, the Raspberry/Pi-DAC-Combo, as well as the external USB port each have their individual power feeds from the power distribution rails. The USB port has an extra 3300uF capacitance added, to smooth out any load surges that might occur when operating power hungry USB devices.

Backplate with Line out, Ethernet and USB.

Backplate with line out, Ethernet and USB.

I chose professional (read: expensive) Neutrik connectors for Ethernet and USB on the prototype, as they are particularly sturdy and durable. The line out has isolated, gold plated RCA receptacles. A 500 mA fuse protects against catastrophic SMPS failure while still allowing for (theoretical) 110VAC operation. I took utmost care not to produce any ground loops in the internal wiring harness: Power distribution and grounding follow a pure star topology while the analogue line output ground is isolated from the (earth ref’d) chassis.

Stream One assembled and working.

Stream One assembled and working.

I wrote the SDD# open source firmware platform in C#. While the Stream One hardware runs SDD# on Raspbian ARMv6 Linux, SDD# executes on Windows, too. The software is a prototype framework design, composed of subsystems for audio streaming (built around the BASS audio library), LCD display abstraction, GUI and user interaction, general input/output and for application software management (Apps). With the project further serving as a technology demo, the Stream One Internet receiver is implemented as an actual App running on top of the SDD# core.

Instead of navigating through lists of tens of thousands of stations available on both Shout- and Icecast, I gave the Stream One a “TV-style” memory that holds up to 99 presets. Programming these presets is conveniently done through a web interface (yet to be developed as of today). The receiver also provides gap-less transitions between station presets and displays extended real-time information about the current station and the streaming conditions (buffer level).

Enclosure lighting controlled by GPIO.

Case illumination controlled by GPIO.

A special effect, the Raspberry Pi controls the blue enclosure lighting by GPIO pin. I plan to use the illumination for an alarm clock feature.

Build time for the hardware was 14 hours, for the software 200+ hours so far. And I spent close to $500 on materials – including shipping, handling and taxes.

Further information about the project can be found in this PDF: Building Stream One.2

USB Chargers

The USB Battery Charging Specification 1.2 can be found here:

More information:

An USB charger IC:

A table with D+/D- connections in common Chargers: