## How a decade resistance box works and how to build one

In this blog post I will explain how a decade resistance box works and will give a tutorial on how to build your own for less than 50€.

A decade resistance box is a precisely adjustable resistance and thus a usefull tool for testing and troubleshooting.

# How it works

Inside a decade resistance box several resistors are connected by a mechanical switch. With each switch the resistor values go up a decade (hence the name). Turning one of the switches will put another resistor of that decade in series allowing you to precisely dial in any resistance value you need. Therefor each decade requires a rotary switch and at least 9 resistors of the same value. When using push-button switches a binary system of resistor values can be used to reduce the number of switches and resistors.

The outer contacts of the rotary switches are connected with resistors. The first position is also the input terminal and the wiper contact is the output of each stage. A 3 kΩ resistor can be realised by turning the switch to the 4th position and thus putting three 1 kΩ resisotrs in series. By combining several switches with different resistance decades almost any resistance can be achieved.

When using very small resistances the resistance of the switches needs to be taken into account.

# Materials needed for a decade resistance box

I built a decade resistance box with 8 stages ranging from 100 mΩ to 10 MΩ. When I bought all my materials only 12-pole rotary switches where available. Also I got a bulk discount for buying at least 10 resistors. That’s why my decade resistance box has values from 0 to 10 for each decade.

I used series MF0 YAGEO resistors with tolerances of 0,1%, maximum powerd dissipation of 0.6 W and a temperature coefficient of 25 ppm/K.

For the 100 mΩ and 1 Ω ranges I used power resistors with higher tolerances to be able to use my decade resistance box as load. The VITROHM resistors have tolerances of 5% and a maximum power dissipation of 2 W with a temperature coefficient of 1000 ppm/K.

The switches I used are LORLIN 12-pole rotary switches with print contacts. They are specified with a contact resistance of less than 1 mΩ and can switch AC and DC loads up to 250 V.

I decided to use 4 mm terminal posts and put everything into a TEKO 362 desk type housing.

If you want to build this decade resistance box you can get all the materials here.

# Building a decade resistance box

Building a decade resitance box is pretty simple. You just need to solder the resistors for each decade to the outer contacts of the switches. The easiest way to do this is soldering the resistors standing on top of the switches in between two of the outer contacts of the switch. This reduces cable or trace length to a minimum. It is also possible to mount the switches on a PCB and use SMD resistors. The switches won’t fit into stripboard.

If all of the resistors are connected to the switches they can be mounted to the front panel. For drilling the holes I recommend using a stepped drill bit. When using regular drills make sure to start with a small diameter and go up bit by bit until you reach the needed diameter.

Once the switches are mounted to the front panel you can start connecting the switches with wires. The first pin of each switch needs to be connected to the wiper contact of the next switch. To reduce wire resistance use AWG 17 or lower. I used AWG 13 wire I had lying around. As a last step you can connect the terminal posts. I used third terminal for being able to connect only the 100 mΩ and 1 Ω range.

## Funktion und Aufbau einer Widerstandsdekade

In diesem Artikel erkläre ich die Funktionsweise einer Widerstandsdekade. Anschließend gibt es eine einfache Anleitung für den Aufbau einer Widerstandsdekade für weniger als 50€.

Eine Widerstandsdekade ist ein in weiten Bereichen einstellbarer Widerstand. Daher ist sie ein nützliches Werkzeug beim Auslegen und Testen von Schaltungen.

In einer Widerstandsdekade sind einzelne Widerstände über Schalter miteinander verschaltet. Von Schalter zu Schalter steigen die Widerstandswerte in Dekaden an (daher der Name). Mit jeder Schalterposition wird ein weiterer Widerstand der entsprechenden Dekade in Reihe geschaltet. Daher werden für jede zu realisierende Dekade ein Schalter und mindestens 9 Widerstände benötigt. Wenn man die Widerstände geschickt verschaltet und einfache Tast-Schalter einsetzt, kann man auch mit weniger auskommen.

Die Kontakte des Drehschalters werden untereinander mit den Widerständen verbunden. Die erste Schaltposition ist auch gleichzeitig der Eingang und der Ausgang ist der Schleifkontakt. Mit jedem Weiterdrehen des Schalters wird somit ein weiterer Widerstand in Reihe geschaltet. So entsteht z.B. ein 3 kΩ Widerstand durch das Drehen des Schalters auf die 4. Position. Dann liegen zwischen Eingang und Schleifkontakt 3 mal 1 kΩ in Reihe. Durch die Kombination mehrerer Stufen lassen sich beliebige Widerstände einstellen.

Bei kleinen Widerstandswerten ist darauf zu achten, dass der Innenwiederstand der Schalter für große Abweichungen sorgen kann.

# Benötigte Materialien

Ich habe mich bei meiner Widerstandsdekade für 8 Stufen mit Widerstandswerten von 100 mΩ bis 10 MΩ entschieden. Da zum Zeitpunkt meiner Bestellung nur 12-polige Drehschalter verfügbar waren, habe ich 10 Widerstände pro Dekade bestellt und kann so Werte von 0 bis 10 einstellen. Je nach Distributor gibt es auch bereits ab 10 Widerständen Mengenrabatt.

Für meinen Aufbau habe ich hauptsächlich YAGEO  Widerstände verwendet. Die Baureihe MF0 gibt es in der Toleranzklasse 0,1% bei einer Leistung von max. 0.6W und einem Temperaturkoeffizenten von 25 ppm/K. Die Widerstände sind Spannungsfest bist 350V.

In den Bereichen von 100 mΩ und 1 Ω habe ich Leistungswiderstände mit größeren Toleranzen eingesetzt, um die Widerstandsdekade auch als Last einsetzen zu können. Hier kamen VITROHM Widerstände mit einer Toleranzklasse von 5% und Leistungen von 2 W zum Einsatz. Der Temperaturkoeffizient liegt bei 1000 ppm/K.

Als Schalter habe ich LORLIN Stufenschalter mit 12 Polen und Printkontakten verwendet. Diese Schalter sind mit einem Innenwiderstand von <1 mΩ spezifiziert und spannungsfest bist 250V.

Eingebaut habe ich die Widerstandsdekade in ein TEKO 362 Pultgehäuse.

Zum Anschluss der Widerstandsdekade werden Anschlussklemmen oder Buchsen benötigt. Ich habe mich für 4mm Laborbuchsen entschieden.

Wer die Widerstandsdekade nachbauen möchte kann sich hier den passenden Warenkorb bei reichelt.de bestellen.

Der Aufbau der Widerstandsdekade ist sehr einfach. Man muss an jeden der Schalter die Widerstände so anlöten, dass sie jeweils zwei Außenkontakte verbinden. Dazu bietet es sich an die Widerstände stehend auf die Schalter zu löten. Dadurch können Leitungslängen minimiert und der Aufbau klein gehalten werden. Alternativ können die Schalter auch auf einer Platine montiert werden, passen jedoch nicht auf Lochrasterplatinen.

Wenn alle Schalter mit Widerständen bestückt sind, können sie probeweise in der Frontplatte montiert werden. Dazu sind entsprechend große Löcher nötig. Die Aluminiumplatte lässt sich leicht mit einem Stufenbohrer bohren. Daher sollte man bei der Verwendung normaler Bohrer die Löcher Schritt für Schritt vergrößern.

Sind die Schalter in der Frontplatte montiert können die Verbindungskabel abgemessen und eingebaut werden. Dazu muss man den jeweils ersten Pin eines Schalters mit dem Schleifkontakt des nächsten verbinden. Damit kein zusätzlicher Widerstand entsteht, sollte man Litze oder Draht mit ausreichendem Querschnitt benutzen. In meinem Fall die etwas überdimensionierte 2,5 mm²-Litze aus der Restekiste. Abschließend die Anschlüsse mit dem verbleibenden Schleifkontakt und dem ersten Kontakt des ersten Schalters verbinden. Um die 100 mΩ und 1 Ω Stufen getrennt von den übrigen Nutzen zu können, habe ich eine dritte Anschlussbuchse verbaut.

## Kleiner selbstgebauter Tisch bzw. Werkbank

Ich benötigte für meine Ständerbohrmaschine eine geeignete Werkbank bzw. einen Tisch um diese aufstellen zu können. Aus Kostengründen und auf Grund des begrenzten Platzes kam nur ein Eigenbau in Frage. Die nötigen Materialien sind alle im Baumarkt zu finden und die Gesamtkosten lagen bei ca. 20€ inklusive aller Schrauben und Materialien.

# Planung der Werkbank

Am ausgewählten Standort stehen ca 45 x 50 cm Platz für einen Tisch zur Verfügung. Der Selbstbau sollte dabei möglichst stabil und günstig sein. Ich entschied mich daher dazu, eine Quadratische Grundplatte mit 45 cm Kantenlänge zu verwenden. Um ausreichend Stabilität zu erreichen, habe ich mich dafür entschieden Querstreben anzubringen. Optische Aspekte hatten keinen großen Einfluss auf die Planung. Der Tisch hat eine Höhe von ca. 73 cm und Querstreben in zwei Ebenen.

Die Tischbeine bestehen aus quadratischen Kanthölzern mit ca. 5 cm Kantenlänge und die Querstreben sind Bretter mit 10 cm Breite und 2,3 cm Stärke. Die quadratische Tischplatte hat ca. 3 cm Stärke bei 45 cm Kantenlänge. Die Tischbeine werden mit Winkeln mit der Tischplatte verschraubt und dann untereinander mit Querstreben verbunden.

# Materialien für die Werkbank

[table id=mat_werkbank /]

# Aufbau der Werkbank

Ich habe mir die Materialien im Baumarkt direkt auf die passenden Längen zuschneiden lassen. Mit einer Kreis-, Stich- oder Handsäge kann das aber auch selbst gemacht werden.

Die Beine der Werkbank werden leicht nach innen versetzt montiert so, dass die Querstreben bündig mit der Tischplatte angebracht werden können. In diesem Fall bedeutet das, die Beine von jeder Seite aus um 2,3 cm nach innen zu versetzten. Diese Stellen werden markiert und die Tischbeine mit den Winkeln mit der Tischplatte verschraubt. Der Tisch ist zwar schon voll belastbar aber noch relativ instabil. Daher werden die Bretter als Querstreben angebracht.

Anschließend werden die oberen Querstreben angebracht. Ich habe die längeren Bretter an der Stirn- und Rückseite und die kürzeren an den Seiten angebracht. Dazu habe ich zunächst zwei Punkte in der Mitte der Tischbeine auf den Brettern markiert und vorgebohrt. Anschließend habe ich die Bretter an die Tischbeine geschraubt.

Um zusätzliche Stabilität zu erreichen habe ich weitere Querstreben am unteren Ende der Beine ca. 10 cm über dem Boden angebracht. Wie oben beschrieben zunächst die Bohrpunkte markiert und anschließend vorgebohrt und dann die Bretter an die Beine geschraubt.

## Setting up a terminal window for the serial port in Eclipse

When programming microcontrollers I regularly use the serial port to send status or debug information to the PC. When using the debugger in Eclipse it switching betwen the terminal program and eclipse becomes tedious. That’s why I was looking for a way to include the terminal into Eclipse. Luckily there are plugins available to do so. This article describes the setup of the plugins.

## Setting up TM Terminal

Select ‚Install New Software…‘ in the ‚Help‘ menu. The ‚Install‘ window will open. First you need to select the correct repository. I currently work with the Mars version of Eclipse and selected the according repository. This should work accordingly with other versions of Eclipse. Using the filter field you can reduce the list of packages by typing ‚terminal‘ in. Then select the ‚TM Terminal‘ package and hit ‚Next‘. Go through the dialogs and accept the license agreement. Hitting ‚Finish‘ at the last step installs the plugin. Select ‚No‘ when asked if you want to restart Eclipse.

## Setting up RXTX

Just like before select ‚Install New Software…‘ from the ‚Help‘ menu and wait for the ‚Install‘ window to open. To install RXTX you need to add the RXTX repository first. You can do this by clicking the button ‚Add‘ in the upper right corner. Select a name for the repository and typ in the following URL into the according field: http://rxtx.qbang.org/eclipse/ . Hit ‚OK‘ to add the repository.

Select the most recent version of RXTX and make sure to select both packages. You can start installing the plugin just like before by clicking through the dialogs with ‚Next‘ and accepting the license agreement. During the installation process a warning may pop up. Select ‚OK‘ to continue the installation.

After the installation of RXTX is done you can quit Eclipse.

## Installing additional files for the RXTX plugin

In the last step we need to install a few files to enable the plugin to access your computers serial port hardware.

If you’re using 32-bit Java download the Windows-x86 packet. For 64-bit Java download the Windows-x64 packet. Extract the downloaded file into a folder of your choice. Finally we need to copy the files into the Java Runtime Environment folder.

Copy RXTXcomm.jar to C:\Program Files\Java\jre1.8.0_65\lib\ext

Copy rxtxParallel.dll and rxtxSerial.dll to C:\Program Files\Java\jre1.8.0_65\bin

For 32-bit Java chang the paths to C:\Program Files (x86)\Java\jre1.8.0_65\lib\ext and C:\Program Files (x86)\Java\jre1.8.0_65\bin

Replace the JRE version (\jre1.8.0_65\) with your installed version of the JRE.

## Configuring the Terminal plugin

Once all files are copied the installation is done and you can start to configure the plugin. Start Eclipse and enable the Terminal window. Open the ‚Show View‘ Dialog from the ‚Window‘ menu and select ‚Other…‘ or use the key combination Alt+Shift+Q and hit Q a second time. By typing ‚terminal‘ into the filter field you should see the Terminal-View. Select it and hit ‚OK‘. The Terminal window will be added and you can move it to a position of your choice.

You can open a new terminal by clicking on the computer icon in the Terminal-View or use the key combination Strg + Alt + Shift + T. A config window should open. We want to chose ‚Serial Termianl‘ as our terminal. You can now enter your hardware settings into the dialog. Select the correct COM-Port and baud rate as well as the data settings. Clicking on ‚OK‘ will start the terminal. Use the buttons in the Terminal-View to clear the terminal, open the input field or enable and disable automatic scrolling.

## Motivation

Ich benötige einen Toslink Umschalter, um unterschiedliche Audioquellen an meinem Logitech Z5500 Surroundsystem verwenden zu können, da dieses nur einen optischen Eingang besitzt. Dieser Umschalter soll, wenn auf der Fernbedienung des Surroundsystems die Taste für den optischen Eingang gedrückt wird, die unterschiedlichen Audioquellen durchschalten. Dadurch kann die bestehende Fernbedienung weiter genutzt werden.

## Konzept für einen Toslink Umschalter

Dazu werden zunächst für jeden Eingangskanal ein Toslink-Receivermodul und für jeden Ausgangskanal ein Toslink-Transmittermodul benötigt. Die Eingänge sollen durch einen Multiplexer auf den Ausgang geschaltet werden. Die Ansteuerung des Multiplexers und die Auswertung des IR-Signals soll mit einem STM32 Mikrocontroller erfolgen. Zusätzlich soll ein kleines Display verbaut werden, welches den aktuell gewählten Eingang anzeigt. Zunächst soll ein einfacher Steckbrettaufbau mit LEDs den Umschalter simulieren. Sobald ein Programm für den Mikrocontroller geschrieben wurde, dass die gewünschte Funktionalität bereitstellt, kann der eigentliche Umschalter aufgebaut werden. Danach wird ein Platinenlayout erstellt und ein passendes Gehäuse gesucht.

## Teilprobleme die bearbeitet werden müssen

##### Erkennung des IR-Signals der Fernbedienung

Das Signal der Fernbedienung muss aufgezeichnet werden und vom Mikrocontroller erkannt werden. Für die gängigen von Fernbedienungen genutzten Infrarotprotokollen gibt es fertige Libraries für Unterschiedliche Mikrocontroller. Hier kann möglicherweise von einer Eigenentwicklung abgesehen werden.

##### Ansteuerung eines Displays

Bisher ist ein einfaches kleines OLED-Display mit SPI-Schnittstelle vorgesehen. Auch hier gibt es möglicherweise fertige Libraries zur Ansteuerung.

##### Elektrischer Aufbau des Umschalters

Der eigentliche Umschalter ist elektrisch relativ einfach. Die Receiver- und Transmittermodule müssen korrekt beschaltet werden. Das Signal kann über einen Multiplexer umgeschaltet werden. Dieser Aufbau kann getrennt vom restlichen Projekt erfolgen. Eine Ausführliche Dokumentation zu digitalen Audio Schnittstellen findet sich hier

##### Mechanischer Aufbau

Sobald die Entwicklung der Elektronik abgeschlossen ist, kann ein passendes Gehäuse für den Toslink Umschalter ausgewählt werden. Aus ästhetischen Gründen tendiere ich hier zu einem Gehäuse aus extrudiertem Aluminium. In der Frontplatte muss ein Ausschnitt für das Display vorgesehen werden. Auf der Rückseite muss Platz für die vier Toslink Buchsen sowie ein Anschluss zur Energieversorgung sein.

## Über WLAN steuerbarer RGB-LED-Streifen mit ESP8266

Nachdem ich schon viel über den WLAN Chip ESP8266 gelesen hatte wollte ich selber ein Projekt damit umsetzen. Um den elektrischen Aufbau möglichst einfach zu halten fiel die Wahl schnell auf die Ansteuerung eines RGB-LED-Streifen.

### Aufbau einer Testplatine

Da das ESP8266 Modul mit einen Pinabstand von 2mm nicht direkt auf eine Lochrasterplatine gelötet werden kann, habe ich mit kurzen Drähten eine fliegende Verdrahtung erstellt. Inzwischen habe ich mir passende Adapterplatinen zugelegt. Die Beschaltung ist so einfach wie möglich gehalten. Neben der Standardbeschaltung sind noch eine Steckleiste zur Programmierung, sowie drei Transistoren zur Ansteuerung des RGB-LED-Streifen.

Platine zum Testen des ESP8266 mit einem RGB-LED Streifen

Nach den ersten Tests mit fest programmierten PWM-Werten musste noch die Steuerung per WLAN realisiert werden. Dazu habe ich mich für Multicast entschieden.

### Netzwerkanbindung

Wird Multicast von der Netzwerk-Hardware unterstützt kann man UDP-Packete an die höchste Adresse des Netzwerks senden und dieses wird dann an alle Clients weitergeleitet. Auf dem ESP8266 läuft ein Client der auf einem frei einstellbarem Port auf solche Pakete wartet. In diesen Paketen werden die RGB-Farbwerte übermittelt.

### Farboptimierung

Zur besseren Farbdarstellung werden die LEDs über eine logarithmische Helligkeitskennlinie angesteuert. Dazu werden in einer Look-Up Tabelle die passenden PWM-Werte zu den RGB-Farbwerten hinterlegt.

## Terminal für die serielle Schnittstelle in Eclipse einrichten

Beim programmieren mit Mikrocontrollern benutze ich regelmäßig die serielle Schnittstelle, um Status- oder Debuginformationen auszugeben. Gerade in Kombination mit dem Debuggen in Eclipse ist es lästig, zum Terminal Programm zu wechseln, um einen Blick auf die Ausgabe auf der seriellen Schnittstelle zu Werfen. Daher habe ich eine Möglichkeit gesucht, das Terminal direkt in Eclipse anzeigen zu lassen. Das Terminal-Plugin übernimmt diese Aufgabe. Die Installation ist in diesem Artikel beschrieben.

Zunächst müssen zwei Eclipse Plugins installiert werden: TM Terminal und RXTX

## Installation TM Terminal

Dazu im „Help“ Menü den Punkt „Install New Software…“ auswählen. Es öffnet sich ein Fenster. In diesem Fenster muss zunächst das richtige Repository gewählt werden. Ich arbeite aktuell mit der Eclipse Version „Mars“ daher wähle ich das entsprechende Repository. Für andere Eclipse Versionen funktioniert dies analog. Über das Filter-Feld kann durch die Eingabe von „terminal“ die Auswahl an Paketen auf das gewünschte eingeschränkt und das Paket „TM Terminal“ ausgewählt werden. Danach mit „Next“ durch die Dialoge klicken und die Lizenz akzeptieren. Mit einem Klick auf „Finish“ wird das Plugin installiert. Die Nachfrage ob Eclipse neugestartet werden soll mit „No“ bestätigen.

## Installation RXTX

Wie zuvor über das „Help“ Menü „Install New Software…“ auswählen und warten bis sich das „Install“-Fenster öffnet. Für die Installation muss zunächst das RXTX Repository hinzugefügt werden. Dazu auf den Button „Add…“ klicken. Im Dialogfeld einen Namen vergeben und als Location die folgende Adresse angeben: http://rxtx.qbang.org/eclipse/ und mit „OK“ bestätigen.

Danach die aktuellste Version von RXTX auswählen und beide Pakete auswählen. Der Installationsprozess wird wie zuvor über klicken auf „Next“ und akzeptieren der Lizenz gestartet. Während der Installtion erscheint eine Warnung, dass das Paket nicht signierte Inhalte enthält. Diese Warnung mit einem Klick auf „OK“ bestätigen.

Nach der Installation des RXTX Plugins kann Eclipse vorerst beendet werden.

## Installation zusätzlicher Dateien für das RXTX-Plugin

Abschließend müssen zusätzliche Dateien installiert werden, damit das Plugin Zugriff auf die Hardware erhält.

Dazu müssen zunächst die für Windows kompilierten Binaries heruntergeladen werden. Diese sind unter diesem Link verfügbar: http://fizzed.com/oss/rxtx-for-java. Für eine 32-bit Java Version muss das Windows-x86 Paket gewählt werden und für eine 64-bit Java Version das Windows-x64 Paket. Die heruntergeladenen Dateien in einen Ordner entpacken. Jetzt müssen die entpackten Dateien in das Verzeichnis der Java Runtime Environment kopiert werden.

Die Datei RXTXcomm.jar kopieren nach: C:\Program Files\Java\jre1.8.0_65\lib\ext

Die Dateien rxtxParallel.dll und rxtxSerial.dll kopieren nach C:\Program Files\Java\jre1.8.0_65\bin

Bei einer 32-bit Java Version sind die Pfade C:\Program Files (x86)\Java\jre1.8.0_65\lib\ext bzw. C:\Program Files (x86)\Java\jre1.8.0_65\bin

Die Java Version (\jre1.8.0_65\) muss durch natürlich die tatsächlich installierte Version ersetzt werden.

## Konfigurieren des Plugins

Sind alle Dateien kopiert ist die Installation abgeschlossen und das Plugin kann konfiguriert werden. Dazu Eclipse wieder starten. Nach dem Start kann das Terminal Fenster eingeblendet werden. Dazu im Menü „Window“ den Punkt „Show View“ und dort „Other…“ auswählen. Alternativ die Tastenkombination Alt+Shift+Q und direkt danach erneut Q drücken. In das Filterfel „terminal“ eintragen und den Terminal-View auswählen und mit „OK“ bestätigen. Das Terminal-Fenster wird hinzugefügt und kann beliebig platziert werden.

Über das Computer-Icon im Terminal-View kann ein neues Terminal geöffnet werden. Alternativ kann die Tastenkombination Strg + Alt + Shift + T genutzt werden. Es öffnet sich das Konfigurationsfenster für das Terminal. Bei „Choose terminal:“ muss „Serial Terminal“ ausgewählt werden. Der Dialog verändert sich und alle nötigen Einstellungen wie Port, Baudrate und Dateneinstellungen können vorgenommen werden. Nach einem Klick auf „OK“ startet das Terminal. Über die Buttonleiste kann das Eingabefeld geöffnet, der Terminalinhalt gelöscht und das automatische Scrollen deaktiviert werden.