diff --git a/src/main/java/com/ardublock/translator/block/input/LGIUltrasonic2PinBlock.java b/src/main/java/com/ardublock/translator/block/input/LGIUltrasonic2PinBlock.java
new file mode 100644
index 0000000000000000000000000000000000000000..55ce2362524d8675c8fef2b5f97823f4b03deeb0
--- /dev/null
+++ b/src/main/java/com/ardublock/translator/block/input/LGIUltrasonic2PinBlock.java
@@ -0,0 +1,35 @@
+package com.ardublock.translator.block.input;
+
+import com.ardublock.translator.Translator;
+import com.ardublock.translator.block.TranslatorBlock;
+import com.ardublock.translator.block.exception.SocketNullException;
+import com.ardublock.translator.block.exception.SubroutineNotDeclaredException;
+
+public class LGIUltrasonic2PinBlock extends TranslatorBlock
+{
+	public LGIUltrasonic2PinBlock(Long blockId, Translator translator, String codePrefix,	String codeSuffix, String label)
+	{
+		super(blockId, translator, codePrefix, codeSuffix, label);
+	}
+
+	private final static String ultraSonic2PinFunction = "\nint ultraschallSensor2Pin(int triggerPin, int echoPin){\n long duration, cm; \n\n //starte Trigger \n digitalWrite(triggerPin, LOW);  \n delayMicroseconds(2); \n digitalWrite(triggerPin, HIGH); \n delayMicroseconds(10); \n digitalWrite(triggerPin, LOW); \n\n //messe Echo-Laufzeit \n duration = pulseIn(echoPin, HIGH); \n\n //berechne Abstand \n cm =  duration / 29.1 / 2; \n return cm;\n }\n";
+	
+	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
+	{
+		
+		TranslatorBlock tb_trigger = this.getRequiredTranslatorBlockAtSocket(0);
+		TranslatorBlock tb_echo = this.getRequiredTranslatorBlockAtSocket(1);
+		String triggerPin = tb_trigger.toCode().replaceAll("\\s*_.new\\b\\s*", "");
+		String echoPin = tb_echo.toCode().replaceAll("\\s*_.new\\b\\s*", "");
+		
+		translator.addSetupCommand("pinMode( " + triggerPin + " , INPUT); // Ultraschallsensor Trigger-Pin");
+		translator.addSetupCommand("pinMode( " + echoPin + " , INPUT); // Ultraschallsensor Echo-Pin\n");
+		
+		translator.addDefinitionCommand(ultraSonic2PinFunction);
+		
+		String ret = "ultraschallSensor2Pin(" + triggerPin + ", "+ echoPin + ")";
+		
+
+		return codePrefix + ret + codeSuffix;
+	}
+}
\ No newline at end of file
diff --git a/src/main/java/com/ardublock/translator/block/input/LGIUltrasonicBlock.java b/src/main/java/com/ardublock/translator/block/input/LGIUltrasonicBlock.java
index 516db0477513a4d80491f4c8cc5a11261a415126..60c84684bd7a036dfe619a01cc5fb70680e627fa 100644
--- a/src/main/java/com/ardublock/translator/block/input/LGIUltrasonicBlock.java
+++ b/src/main/java/com/ardublock/translator/block/input/LGIUltrasonicBlock.java
@@ -12,22 +12,21 @@ public class LGIUltrasonicBlock extends TranslatorBlock
 		super(blockId, translator, codePrefix, codeSuffix, label);
 	}
 
-	private final static String ultraSonicFunction = "\nint UltraschallSensor(int SensorPin){\n long duration, cm; \n pinMode(SensorPin, OUTPUT); \n digitalWrite(SensorPin, LOW);  \n delayMicroseconds(2); \n digitalWrite(SensorPin, HIGH); \n delayMicroseconds(5); \n digitalWrite(SensorPin, LOW); \n pinMode(SensorPin, INPUT); \n duration = pulseIn(SensorPin, HIGH); \n cm =  duration / 29 / 2; \n return cm;\n }\n";
+	private final static String ultraSonicFunction = "\nint ultraschallSensor(int sensorPin){\n long duration, cm; \n\n //starte Trigger \n pinMode(sensorPin, OUTPUT); \n digitalWrite(sensorPin, LOW);  \n delayMicroseconds(2); \n digitalWrite(sensorPin, HIGH); \n delayMicroseconds(5); \n digitalWrite(sensorPin, LOW); \n\n //messe Echo-Laufzeit \n pinMode(sensorPin, INPUT); \n duration = pulseIn(sensorPin, HIGH); \n\n //berechne Abstand  \n cm =  duration / 29.1 / 2; \n return cm;\n }\n";
 	
 	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
 	{
 		String SensorPin;
-	//	String echoPin;
+
 		TranslatorBlock translatorBlock = this.getRequiredTranslatorBlockAtSocket(0);
 		SensorPin = translatorBlock.toCode().replaceAll("\\s*_.new\\b\\s*", "");
-		//translatorBlock = this.getRequiredTranslatorBlockAtSocket(1);
-		//echoPin = translatorBlock.toCode();
+
 		
-		translator.addSetupCommand("\tdigitalWrite( " + SensorPin + " , LOW );\n");
+		translator.addSetupCommand("digitalWrite(" + SensorPin + ", LOW );\n");
 		
 		translator.addDefinitionCommand(ultraSonicFunction);
 		
-		String ret = "\tUltraschallSensor( " + SensorPin + " )";
+		String ret = "ultraschallSensor(" + SensorPin + ")";
 		
 
 		return codePrefix + ret + codeSuffix;
diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties
index 8e92310ab798dcb1c26230c9dcd11e69a2bf325e..64ea9e444ffcda7a5ba74da7704acc68f44c3f52 100644
--- a/src/main/resources/com/ardublock/block/ardublock.properties
+++ b/src/main/resources/com/ardublock/block/ardublock.properties
@@ -381,6 +381,8 @@ bg.pin-read-digital=digital pin
 bg.pin-read-digital-pullup=input pullup
 bg.pin-mode-input=pinMode INPUT
 bg.LGI_Ultrasonic=ultrasonic
+bg.LGI_Ultrasonic2Pin=ultrasonic
+
 
 bg.LGI_Qtouch_Init1=LGI_Qtouch_Init1
 bg.LGI_Qtouch_Init2=LGI_Qtouch_Init2
@@ -409,6 +411,7 @@ bg.pin-read-digital.description=Read digital value (HIGH or LOW) from pin.
 bg.pin-read-digital-pullup.description=Set pin to digital input\nPin will report HIGH if unconnected.
 bg.pin-mode-input.description= Set Pin-Mode to INPUT
 bg.LGI_Ultrasonic.description=ultrasonic sensor
+bg.LGI_Ultrasonic2Pin.description=ultrasonic sensor
 bg.LGI_Qtouch_Init1.description=LGI_Qtouch_Init1
 bg.LGI_Qtouch_Init2.description=LGI_Qtouch_Init2
 bg.LGI_Qtouch_Init3.description=LGI_Qtouch_Init3
@@ -435,7 +438,8 @@ bc.analogpin_number=#AnalogPin
 bc.dhtType=DHT
 bc.DHTtemp=temperature
 bc.DHThumid=humidity
-
+bc.triggerPin=trigger pin
+bc.echoPin=echo pin
 #LOGIC
 #****************************
 bd.logic=Logical Operators
diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml
index 8fba12b581c4f3858b167368c06d54cf52e5270b..32ecfaaf4955e8866c884db9e538759a9e969929 100644
--- a/src/main/resources/com/ardublock/block/ardublock.xml
+++ b/src/main/resources/com/ardublock/block/ardublock.xml
@@ -961,13 +961,27 @@
 		</BlockGenus>
 		<BlockGenus name="LGI_Ultrasonic" kind="data" color="44 165 226" initlabel="bg.LGI_Ultrasonic" editable-label="no" is-label-value="no" >
 		  <description>
-		    <text>Read digital value from pin</text>
+		    <text></text>
 		  </description>
 		  <BlockConnectors>
+		    <BlockConnector connector-type="number" connector-kind="plug" position-type="single"/>
 		    <BlockConnector label="bc.pin_number" connector-type="number" connector-kind="socket" position-type="single">
 		      <DefaultArg genus-name="number" label="2"/>
 		    </BlockConnector>
-		    <BlockConnector label="1" connector-type="number" connector-kind="plug" position-type="single"/>
+		  </BlockConnectors>
+		</BlockGenus>	
+		<BlockGenus name="LGI_Ultrasonic2Pin" kind="data" color="44 165 226" initlabel="bg.LGI_Ultrasonic2Pin" editable-label="no" is-label-value="no" >
+		  <description>
+		    <text></text>
+		  </description>
+		  <BlockConnectors>
+		  	<BlockConnector connector-type="number" connector-kind="plug" position-type="single"/>
+		    <BlockConnector label="bc.triggerPin" connector-type="number" connector-kind="socket" position-type="single">
+		      <DefaultArg genus-name="number" label="2"/>
+		    </BlockConnector>
+		    <BlockConnector label="bc.echoPin" connector-type="number" connector-kind="socket" position-type="single">
+		      <DefaultArg genus-name="number" label="3"/>
+		    </BlockConnector>
 		  </BlockConnectors>
 		</BlockGenus>		
 		<BlockGenus name="dht_sensor_setup" kind="command" color="44 165 226" initlabel="bg.dht_sensor_setup">
@@ -3241,7 +3255,8 @@
 				<BlockGenusMember>LGI_Qtouch_Button1_isTouched</BlockGenusMember>
 				
 				<BlockGenusMember>inputDivider3</BlockGenusMember> 
-				<BlockGenusMember>LGI_Ultrasonic</BlockGenusMember> 	
+				<BlockGenusMember>LGI_Ultrasonic</BlockGenusMember> 
+				<BlockGenusMember>LGI_Ultrasonic2Pin</BlockGenusMember>	
 				
 				<BlockGenusMember>dht_sensor_setup</BlockGenusMember>
 				<BlockGenusMember>dht_sensor_read_temp</BlockGenusMember>
diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties
index 3be237ac6457e930d9d2c3fb80d22ae40672116e..d68d394fa2c2351b19a39b0386bd3b47e613e377 100644
--- a/src/main/resources/com/ardublock/block/ardublock_de.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_de.properties
@@ -378,7 +378,8 @@ bg.pin-read-analog=analogRead
 bg.pin-read-digital=digitalRead
 bg.pin-read-digital-pullup=inputPullup
 bg.pin-mode-input=pinMode INPUT
-bg.LGI_Ultrasonic=Wert Ultraschall Sensor
+bg.LGI_Ultrasonic=lese Ultraschall Sensor
+bg.LGI_Ultrasonic2Pin=lese Ultraschall Sensor
 
 bg.LGI_Qtouch_Init1=Setup fuer Q-Touch-Button1
 bg.LGI_Qtouch_Init2=Setup fuer Q-Touch-Button2
@@ -407,6 +408,7 @@ bg.pin-read-digital.description=Liest den digitalen Wert vom Pin ein (HIGH or LO
 bg.pin-read-digital-pullup.description=Setzt den Pin auf Eingang mit einem Pullup-Widerstand\n Gibt HIGH zurück, wenn nichts angeschlossen ist
 bg.pin-mode-input.description= Setze Pin als Eingang (INPUT)
 bg.LGI_Ultrasonic.description=Lese Messwert vom Unltraschallsensor
+bg.LGI_Ultrasonic2Pin.description=Lese Messwert vom Unltraschallsensor
 bg.LGI_Qtouch_Init1.description=Setup fuer Q-Touch-Button1
 bg.LGI_Qtouch_Init2.description=Setup fuer Q-Touch-Button2
 bg.LGI_Qtouch_Init3.description=Setup fuer Q-Touch-Button3
@@ -433,6 +435,8 @@ bc.analogpin_number=#AnalogPin
 bc.dhtType=DHT
 bc.DHTtemp=Temperatur
 bc.DHThumid=Luftfeuchtigkeit
+bc.triggerPin=Trigger-Pin
+bc.echoPin=Echo-Pin
 
 #LOGIC
 #****************************
diff --git a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
index f6e9de1cb86ee1b84494b9d115dea84f68bd18ae..e9f3a5cc2055103ab6cebb2741ebb597732ec1b9 100644
--- a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
@@ -380,6 +380,7 @@ bg.pin-read-digital=digitalRead
 bg.pin-read-digital-pullup=inputPullup
 bg.pin-mode-input=pinMode INPUT
 bg.LGI_Ultrasonic=lese Ultraschall-Sensor
+bg.LGI_Ultrasonic2Pin=lese Ultraschall-Sensor
 
 bg.LGI_Qtouch_Init1=Setup fuer Q-Touch-Button1
 bg.LGI_Qtouch_Init2=Setup fuer Q-Touch-Button2
@@ -408,6 +409,7 @@ bg.pin-read-digital.description=Liest den digitalen Wert vom Pin ein (HIGH or LO
 bg.pin-read-digital-pullup.description=Setzt den Pin auf Eingang mit einem Pullup-Widerstand\n Gibt HIGH zurück, wenn nichts angeschlossen ist
 bg.pin-mode-input.description= Setze Pin als Eingang (INPUT)
 bg.LGI_Ultrasonic.description=Lese Messwert vom Unltraschallsensor
+bg.LGI_Ultrasonic2Pin.description=Lese Messwert vom Unltraschallsensor
 bg.LGI_Qtouch_Init1.description=Setup fuer Q-Touch-Button1
 bg.LGI_Qtouch_Init2.description=Setup fuer Q-Touch-Button2
 bg.LGI_Qtouch_Init3.description=Setup fuer Q-Touch-Button3
@@ -434,7 +436,8 @@ bc.analogpin_number=#AnalogPin
 bc.dhtType=DHT
 bc.DHTtemp=Temperatur
 bc.DHThumid=Luftfeuchtigkeit
-
+bc.triggerPin=Trigger-Pin
+bc.echoPin=Echo-Pin
 #LOGIC
 #****************************
 bd.logic=Log. Operatoren
diff --git a/src/main/resources/com/ardublock/block/block-mapping.properties b/src/main/resources/com/ardublock/block/block-mapping.properties
index e094f633c2c556768722a9df04f0a2410e6e7744..68a78f35d1512191d6ca3d9971dc729b7d60005e 100644
--- a/src/main/resources/com/ardublock/block/block-mapping.properties
+++ b/src/main/resources/com/ardublock/block/block-mapping.properties
@@ -118,6 +118,7 @@ LGI_Qtouch_Slider_getOffset1=com.ardublock.translator.block.input.LGIQtouchSlide
 LGI_Qtouch_Slider_getOffset2=com.ardublock.translator.block.input.LGIQtouchSliderGetOffset2Block
 LGI_Qtouch_Slider_getOffset3=com.ardublock.translator.block.input.LGIQtouchSliderGetOffset3Block
 LGI_Ultrasonic=com.ardublock.translator.block.input.LGIUltrasonicBlock
+LGI_Ultrasonic2Pin=com.ardublock.translator.block.input.LGIUltrasonic2PinBlock
 dht_sensor_setup=com.ardublock.translator.block.input.DHT11setup
 dht_sensor_read_temp=com.ardublock.translator.block.input.DHT11getTemperature
 dht_sensor_read_humid=com.ardublock.translator.block.input.DHT11getHumidity