AVR Projects - Juraś-Projects

AVR Projects

DiSEqC-Tester - Testing Device for DiSEqC-Switches

DiSEqC-Tester by Juras-Projects

This is my first AVR-project on this page. The DiSEqC-Tester allows to test DiSEqC-switches that uses 1.0 or 1.1 protocols. (DiSEqC-Switches with 2.0 and 2.1 protocol have backwards compatibility with 1.0 & 1.1 respectively and also may be tested). The device every second sends a DiSEqC-message that makes switch a DiSEqC-switch. Four LEDs are intended to show on/off state of ports of a DiSEqC-switch.

Schematic view of the device:

To test a DiSEqC-switch you must connect the red wire with "Receiver" input of the switch, blue wire with case, connect remaining yellow wires to ports of the switch in any order. Choose the protocol, tone-level and then turn power on. If the DiSEqC-switch is OK, a blue LED of the tester will be switching every second to another blue LED with short red LED blinking and beeping. Next photo and video shows how it looks.

Connection of the DiSEqC-Tester:
DiSEqC-Switch testing

The DiSEqC-Tester with a DiSEqC-switch 1.0 (video):

The heart of DiSEqC-Tester is AVR microcontroller ATtiny13-20PI, with clocking from internal RC-generator at 4.8 MHz.

Schematic Diagram of the device:
DiSEqC-Tester Schematic Diagram
Enlarge image
(Old schematic)

Testing in Proteus with DiSEqC-Switch 1.1 Model:
DiSEqC-Tester + DiSEqC 1.1 in Proteus

The device every second generates a DiSEqC-message which has duration of 54ms. Each message consist from 4 bytes. Byte is 8 bit + 9-th odd bit. If protocol 1.0 is used, then device sends next commands-sequences: $E01038C0, $E01038C4, $E01038C8, $E01038CC, $E01038C0 and so later, else $E01039F0, $E01039F1, $E01039F2, $E01039F3, $E01039F0... These commands are so called "Write Port Group N0" (38h) and "Write Port Group N1" (39h) by DiSEqC-Protocol. The full description of DiSEqC-Protocol can be found at web site. For example, DiSEqC-Message $E01038C0 switches port "LNB1" of DiSEqC-Switch 1.0/2.0 into active state.

A DiSEqC-message example on PB0-pin:
DiSEqC-Message example

The DiSEqC-Tester board in P-CAD:
DiSEqC-Tester PCB

The DiSEqC-Tester board view:
DiSEqC-Tester DiSEqC-Tester

DiSEqC-Tester firmware v1.0a (protocols 1.0, 1.1; Frequency 1Hz, no pause after power on).

DiSEqC-Tester firmware v1.0b (protocols 1.0, 1.1; Frequency 2Hz, pause 0.5s after power on).

DiSEqC-Tester board in P-CAD 2004 format

DiSEqC-Tester+ (used ATtiny2313)

New version of the DiSEqC-Tester using ATtiny2313:

Schematic diagram:
DiSEqC-Tester+ ATtiny2313

DiSEqC-Tester archive DiSEqC-Tester_T2313_rev_A - DiSEqC 1.0 (4 ports), 1.1 (8 porst), 1.2 ("west", "east"). After every 4-th/8-th command - large pause (for protocols 1.0 and 1.1). No large pauses in 1.2-protocol mode. The archive contains some diagrams. Number of port-LEDs may be variable, for example 8 or 10, and depends on type of your DiSEqC-Switch.

DiSEqC-Tester+ in Proteus (Designators may mismatch):
DiSEqC-Tester with ATtiny2313

DiSEqC-Tester v2 - DiSEqC-Tester with 22kHz tone support

In fact, this device is a DiSEqC-generator, that generates standard DiSEqC-messages. This version of tester is able to provide the 22kHz between the messages, if enabled by DIP-Switch. The DIP-Switch is intended to select protocol and mode you need. Also the DiSEqC-Tester v2 has an improved short circuit protection. Additionally, the 22kHz tone support allows you to test an 22kHz-switch. The DIP-switch allows to select DiSEqC level, type of framing byte and few other capabilities (see schematic diagram). The button is used only in manual mode, when the tester sends a message after button pressing.

DiSEqC-Tester v2 short circuit protection (video):

Schematic diagram:
DiSEqC-Tester v2 schematic diagram
Enlarge image

PCB of the DiSEqC-Tester v2:
DiSEqC-Tester v2 Board

Assembled DiSEqC-Tester v2:
DiSEqC-Tester v2 is assembled

Bill of materials (BOM) of the DiSEqC-Tester v2
Designator Name/Value Footprint Description Quantity
A1 LM78L05 TO-92 3-Terminal Positive Voltage Regulator 1
BZ1 XCPT22A d=16.5mm Green Electronics Piezoelectric/Ceramic Sound Transducer 1
C1, C2, C4, C6, C7, C8 0.1u 25/50V SMD 0805 Ceramic Capacitor 6
C3, C5 220u 16V d=8, h=11.5mm CapXon LZ Series Capacitor 2
HL1-HL4 LED d=3mm Blue LED 4
HL5 LED d=3mm Green LED 1
HL6 LED d=3mm Red LED 1
MCU1 ATtiny2313-PU/PI DIP20 8-bit Microcontroller with 2K Bytes In-System Programmable Flash 1
R1, R7 10k SMD 0805 Chip Resistor 2
R2 15 SMD 0805 Chip Resistor 1
R3 1k SMD 0805 Chip Resistor 1
R4, R8 100 SMD 0805 Chip Resistor 2
R5, R6 560 SMD 0805 Chip Resistor 2
R9, R10, R11, R12 2k SMD 0805 Chip Resistor 4
SW1 0605 6x6 Switronic 06xx Series Tact Switch 1
SW2 BS06GR BS06 - 6pos BS Series DIP SWITCH 1
VT1 BCX53-16 SOT-89 PNP general purpose transistor 1
VT2 BC847B SOT-23 NPN general purpose transistor 1
XP1 ISP6CON HDR2x3 Atmel Standard ISP 6-pin Male Connector 1
XS1 DC10A DC10A Cliff PCB mounting pin / ring type with switch connector 1
XT1, XT2 350-3 350-3 (3 pin) Degson 350 Series Terminal Block 2
ZD1 BZV55-C7V5/6V8 SOD-80C BZV55 Series Voltage Regulator Diode 1

Note that "1" means fuse is unprogrammed.

DiSEqC-Tester v2 firmware (3004 downloads)

DiSEqC-Tester v2 board (for a printer) (3976 downloads)

DiSEqC-Converter - Converts DiSEqC 1.0 into DiSEqC 1.2 to control a motor via DiSEqC 1.0

The DiSEqC-Converter is intended for PC DVB-cards which have not support the DiSEqC 1.2 level. Also some cards can work poorly with DiSEqC 1.2. The device decodes DiSEqC 1.0 messages and sends DiSEqC 1.2 messages to a motor. A position corresponds to a port of DiSEqC 1.0. Four positions are possible, because it is the restriction of the DiSEqC 1.0 level. The converter sends a message to a motor when DiSEqC 1.0 port number is changing to another.

Press and hold the button "GO WEST" or "GO EAST" to drive a motor and release to stop it.

Connection of the DiSEqC-Converter:
Connection of the DiSEqC-Converter

The device is based on AVR ATmega8 MCU.

Schematic diagram:

click to enlarge

The PCB of the DiSEqC-Converter in a design software:

A prototype of the DiSEqC-Converter:

Testing of the prototype in the converting mode (video):

DiSEqC-Converter firmware (1659 downloads) - (the archive also contains a fuse settings file, the schematic diagram and a BOM)

DiSEqC-Converter board (for a printer) (2715 downloads)

To be continued. See also

Externally controlled DiSEqC-Generator

The device can generate any DiSEqC-message. Eight DiSEqC-messages are stored in EEPROM of MCU. The length of a message can be three to six bytes. Also the generator is able to provide 22kHz tone.

Externally controlled DiSEqC-Generator

DiSEqC-Generator (mode without 22kHz tone, message "0xE01039F3")
Externally controlled DiSEqC-Generator

DiSEqC-Generator (mode with 22kHz tone, message "0xE01039F3")
Externally controlled DiSEqC-Generator

When 22kHz tone is used (A3=1), you can see at the diagram the pauses of 15ms before and after DiSEqC-message. The pauses are also present when 22kHz tone is disabled (A3=0).

EEPROM data format:

For example: 0x04,0xE0,0x10,0x38,0xCC,0x00,0x00,0x00 - DiSEqC 1.0 message, length of the message is 4 bytes, will switch port #4 of a DiSEqC-Switch 1.0/2.0. The number of required DiSEqC-message is selected by pins A0..A2 of MCU.


Note that "1" means fuse is unprogrammed.

Externally controlled DiSEqC-Generator (simplified version)

If you are using an ISP-programmer, when it is necessary to use RESET-pin during the programming, after you set RSTDSBL FUSE to zero, you'll cannot program your MCU more, only it will be possible with a High-Voltage programmator. To prevent such situations, use the simplified solution of the DiSEqC-Generator. This version does not use RESET-pin as general in-out pin.

Externally controlled DiSEqC-Generator (simplified version)

DiSEqC-Generator v.2 (mode without 22kHz tone, message "0xE01038C4")
Externally controlled DiSEqC-Generator v.2

DiSEqC-Generator v.2 (mode with 22kHz tone, message "0xE01038C0")
Externally controlled DiSEqC-Generator v.2

The EEPROM-data format is same as in previous case, but only for 4 messages (next others are ignored).


ECDG_T13_v2_rev_B.zip (pauses between the messages and 22kHz-tone are 25ms)

Note that "1" means fuse is unprogrammed.

Ŭeb dyzajn, zdymki i malunki ad Juraś-Projects. Jurasieva amatarskaja staronka. Usie pravy abaronienyja. © 2024 Simple English version.