Commander Basic 2tsm industrial electric door openening and closing

I want to use the 2tsm module to open an industrial electric door.
This door has 3 button on its control.

I want to use shortdial numbers on every possilble phone to open/stop/shut
the door. But mainly the DECT handys are the most important. I tried to
make a door opener configuration, but i can’t get it to work. The hardware
part is not a problem for me… only the software configuration.
The best solution would be to…for example:
dial internal number 12 and the door opens. (Relay 1, for 1 sec)
dial internal number 13 and the door stops. (Relay 2, for 1 sec)
dial internal number 14 and the door closes. (Relay 3, for 1 sec)
Is this possible? Or do i need to dial another short dial number?

My hardware:
-Commander Basic
-2tsm module
-Dect base 128
-3 Dect GAP handys




switching the relais of the 2TSM for a defined time by dialling a number is not possible. The only way to get a xxx seconds pulse is when the relais is configured as a door opener - but you also have no access to this “pulse output” by just dialling a short number.

Using function codes on a phone, you can just switch on or off a relais. After switching it on you have to switch it off again - not a big usability.

For switching the door by just dialling simple numbers, you have to do something by youself:

You have to use 3 analog ports with a ringtone-detection circuit for each port. The output of the detection circuit must be connected to i.e. a Siemens Logo which has to be programmed to put out an one second pulse when the first ringtone of the appropriate port is detected. After this, you have to wait for a 10 seconds idle of your input before allowing another switching.

Some work to do this… :rolleyes:

Garage door openes have a bad range and reliability. A good alternative for industrial door openings is this here, up to 1km range and active feedback to the transmitter. If you are interested in this, please contact me (


Thats a possibility,
But i can make some ‘fake’ extension nummers, and then program these numbers to react on an universal relais.

But than the relais switches for one minute. I can shorten the ‘up’ time of the relais with this diagram…

Would it be smart to develop something like this? Or is there another possibility?

I bought the 2TSM module for just doing this.
It didn’t cross my mind that it just could n’t work like i planned.


Thanks for the fast reply…


To shorten up the time … that´s why i said: Siemens Logo or something else. If you are familiar with microcontrollers, use something like an AVR Mega. You need this intelligence to generate short one-time-pulses out of the ringing signal.



Yes… Finally developed my time delay.
It works… perfectly!

I used an PIC 16F84 from microchip. An (old) microcontroller,
together with the MPLAB IDE from microchip and the CC5X Compiler from

If you want more info…
Mail me at:

Here is the code:
Project: Garage Gebr. Toonders BV
Roldeur sturing dmv een Auerswald Commander Basic 2TSM module
2TSM instellingen: 17 omhoog (Relais contact 1min hoog)
18 stop (Relais contact 1min hoog)
19 omlaag (Relais contact 1min hoog)
MCU: PIC 16F84
Inst: OSC=XT;WDT=on;PWRT=on;CP=off
Ontwerper: Ruud Toonders
Datum: 9 januari 2004
Plaats: Bergeijk

3 ingangen en 3 uitgangen
Per opgaande flank op de ingang,
geeft de uitgang puls van 1 seconde (een one-shot)!

IN1 ^^^^^^^^^^^^^^^^^__
OUT1 ^^^^^^^^___
1sec 1sec

Hetzelfde geldt voor IN2…OUT2 en IN3…OUT3

#pragma bit IN1 @ PORTB.0
#pragma bit IN2 @ PORTB.1
#pragma bit IN3 @ PORTB.2
#pragma bit OUT1 @ PORTA.0
#pragma bit OUT2 @ PORTA.1
#pragma bit OUT3 @ PORTA.2

#pragma bit RBPU @ 0x81.7 //port B RBPU define

void delay10( char n)
Delays a multiple of 10 milliseconds using the TMR0 timer
Clock : 4 MHz => period T = 0.25 microseconds
1 IS = 1 Instruction Cycle = 1 microsecond
error: 0.16 percent
char i;

do  {
    clrwdt();  // only if watchdog enabled
    i = TMR0 + 39; /* 256 microsec * 39 = 10 ms */
    while ( i != TMR0)
} while ( --n > 0);


bit OLDIN1;
bit OLDIN2;
bit OLDIN3;
bit ST1;
bit ST2;
bit ST3;
void main( void)
PORTA = 0x00; /* init /
TRISA = 0x00; /
all outputs /
PORTB = 0x00; /
init /
TRISB = 0xFF; /
all inputs */
T0CS=0; //timer internal
RBPU=0; //Port B pull up weerstanden enabled.

if ((ST1!=OLDIN1)&&(ST1==0)){
// delay_ms(1);

if ((ST2!=OLDIN2)&&(ST2==0)){

// delay_ms(1);
if ((ST3!=OLDIN3)&&(ST3==0)){
// delay_ms(1);
delay10(200); //1 sec

delay10(20); // key debounce 0.1sec
clrwdt(); // needed only if watchdog is enabled

Nice… (but i hate Pics … better use AVR´s :smiley: )

But within the 2 secs delay your circuit is “dead”, so your 3 outputs will not work parallel. What about using timer interrupts for this?


Yes, i read about timer interrupts…

But i don’t know how to implement these.
Im just a beginner with microcontrollers…

Do you have some tips for programming AVR microcontrollers?
Like a C-compiler and development/simulation tools?
(AVR is better… i agree on that, it was just that i had a PIC on the shelf for this)

But thanks for your advice…