diff --git a/src/main/java/com/ardublock/translator/block/cast/CastAtoi.java b/src/main/java/com/ardublock/translator/block/cast/CastAtoi.java
new file mode 100644
index 0000000000000000000000000000000000000000..71915b27523307859dd4a48ee01249eb608a03da
--- /dev/null
+++ b/src/main/java/com/ardublock/translator/block/cast/CastAtoi.java
@@ -0,0 +1,23 @@
+package com.ardublock.translator.block.cast;
+
+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 CastAtoi extends TranslatorBlock
+{
+	public CastAtoi(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) {
+		super(blockId, translator, codePrefix, codeSuffix, label);
+	}
+
+	@Override
+	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
+	{
+		TranslatorBlock tb = this.getRequiredTranslatorBlockAtSocket(0);
+		String charArray = tb.toCode().replaceAll("\\s*_.new\\b\\s*", "");
+	
+		return "atoi("+ charArray + ")";
+	}
+
+}
diff --git a/src/main/java/com/ardublock/translator/block/cast/CastItoa.java b/src/main/java/com/ardublock/translator/block/cast/CastItoa.java
new file mode 100644
index 0000000000000000000000000000000000000000..09ef7e23e9a5ab2151ce6ec5dd63e47cf23395f6
--- /dev/null
+++ b/src/main/java/com/ardublock/translator/block/cast/CastItoa.java
@@ -0,0 +1,23 @@
+package com.ardublock.translator.block.cast;
+
+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 CastItoa extends TranslatorBlock
+{
+	public CastItoa(Long blockId, Translator translator, String codePrefix, String codeSuffix, String label) {
+		super(blockId, translator, codePrefix, codeSuffix, label);
+	}
+
+	@Override
+	public String toCode() throws SocketNullException, SubroutineNotDeclaredException
+	{
+		TranslatorBlock tb = this.getRequiredTranslatorBlockAtSocket(0);
+		String intValue = tb.toCode().replaceAll("\\s*_.new\\b\\s*", "");
+	
+		return "itoa("+ intValue + ")";
+	}
+
+}
diff --git a/src/main/resources/com/ardublock/block/ardublock.properties b/src/main/resources/com/ardublock/block/ardublock.properties
index 0b86b9677f6a0b927d6454ff268a95b3f6c92e1b..cc3fb0ed919164d80a52af3e833504910d3300b8 100644
--- a/src/main/resources/com/ardublock/block/ardublock.properties
+++ b/src/main/resources/com/ardublock/block/ardublock.properties
@@ -536,6 +536,12 @@ bc.element = element
 #****************************
 bd.cast=type cast
 
+bg.castDivider1=|       ASCII <-> int      |
+bg.castDivider2=|       datatypes      |
+bg.castDivider3=|       byte <-> char       |
+
+bg.cast_atoi=atoi
+bg.cast_itoa=itoa
 bg.cast_number=cast analog
 bg.cast_number_byte=cast short analog
 bg.cast_number_long=cast long analog
@@ -547,6 +553,8 @@ bg.cast_up_int_char=cast upper byte of int to char
 bg.cast_char_int=cast int from two char
 bg.cast_byte_int=cast int from two byte
 
+bg.cast_atoi.description=read int from char-array
+bg.cast_itoa.description=create char-array from int
 bg.cast_number.description=cast int
 bg.cast_number_byte.description=cast byte
 bg.cast_number_long.description=cast long
diff --git a/src/main/resources/com/ardublock/block/ardublock.xml b/src/main/resources/com/ardublock/block/ardublock.xml
index 520e9f613500f3648d2d0ba354223e1feb3373ff..441a061ffa2501fb3d084b1c6a189e5a86019de0 100644
--- a/src/main/resources/com/ardublock/block/ardublock.xml
+++ b/src/main/resources/com/ardublock/block/ardublock.xml
@@ -1468,6 +1468,32 @@
 		</BlockGenus>
 		
 		<!-- ******************** Cast *************** -->
+		<BlockGenus name="castDivider1" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.castDivider1" color="150 150 150" />
+		<BlockGenus name="castDivider2" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.castDivider2" color="150 150 150" />
+		<BlockGenus name="castDivider3" kind="command" is-starter="yes" is-terminator="yes" initlabel="bg.castDivider3" color="150 150 150" />
+		
+		<BlockGenus name="cast_atoi" kind="data" initlabel="bg.cast_atoi" editable-label="no" is-label-value="yes" color="255 50 0">
+			<description>
+				<text>
+					cast atoi
+				</text>
+			</description>
+			<BlockConnectors>
+				<BlockConnector connector-type="number" connector-kind="plug"  />
+				<BlockConnector connector-type="string" connector-kind="socket"  />
+			</BlockConnectors>
+		</BlockGenus>
+		<BlockGenus name="cast_itoa" kind="data" initlabel="bg.cast_itoa" editable-label="no" is-label-value="yes" color="255 50 0">
+			<description>
+				<text>
+					cast itoa
+				</text>
+			</description>
+			<BlockConnectors>
+				<BlockConnector connector-type="string" connector-kind="plug"  />
+				<BlockConnector connector-type="number" connector-kind="socket"  />
+			</BlockConnectors>
+		</BlockGenus>
 		<BlockGenus name="cast_number" kind="data" initlabel="bg.cast_number" editable-label="no" is-label-value="yes" color="255 50 0">
 			<description>
 				<text>
@@ -3108,11 +3134,17 @@
 			</BlockDrawer>
 			
 			<BlockDrawer button-color="255 50 0" name="bd.cast" type="custom">
+				<BlockGenusMember>castDivider1</BlockGenusMember>
+				<BlockGenusMember>cast_atoi</BlockGenusMember>
+				<BlockGenusMember>cast_itoa</BlockGenusMember>
+				
+				<BlockGenusMember>castDivider2</BlockGenusMember>
 				<BlockGenusMember>cast_number</BlockGenusMember>
 				<BlockGenusMember>cast_number_byte</BlockGenusMember>
 				<BlockGenusMember>cast_number_long</BlockGenusMember>
 				<BlockGenusMember>cast_number_float</BlockGenusMember>
 				
+				<BlockGenusMember>castDivider3</BlockGenusMember>
 				<BlockGenusMember>cast_up_int_char</BlockGenusMember>	
 				<BlockGenusMember>cast_low_int_char</BlockGenusMember>
 				
diff --git a/src/main/resources/com/ardublock/block/ardublock_de.properties b/src/main/resources/com/ardublock/block/ardublock_de.properties
index eb574f2f213e080cc4d2de4ad4ffbe1fc904d0da..140642b134e0cbd3dc8f6c980b9ab7791d693d9a 100644
--- a/src/main/resources/com/ardublock/block/ardublock_de.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_de.properties
@@ -533,6 +533,12 @@ bc.element = Element
 #****************************
 bd.cast=Typ Konvertierung
 
+bg.castDivider1=|       Zeichenketten <-> analoge Werte      |
+bg.castDivider2=|       Datentypen      |
+bg.castDivider3=|       kurze analoge Werte <-> Zeichen       |
+
+bg.cast_atoi=Zeichenkette zu analogem Wert
+bg.cast_itoa=analoger Wert zu Zeichenkette
 bg.cast_number=wandle in analogen Wert
 bg.cast_number_byte=wandle in kurzen analogen Wert
 bg.cast_number_long=wandle in langen analogen Wert
@@ -544,6 +550,8 @@ bg.cast_up_int_char=oberer Teil analoger Wert zu Zeichen
 bg.cast_char_int=Zeichen zu analoger Wert
 bg.cast_byte_int=kurzer analoger Wert zu analogem Wert
 
+bg.cast_atoi.description=lese analogen Wert (int) aus Zeichenkette (char)
+bg.cast_itoa.description=erstelle  Zeichenkette (char) aus analogem Wert (int)
 bg.cast_number.description=wandle in analogen Wert
 bg.cast_number_byte.description=wandle in kurzen analogen Wert
 bg.cast_number_long.description=wandle in langen analogen Wert
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 2a04923287e4ce65037914e1fbba47e272acfef4..c3b40f10ebb4dae576ac204ceba7dbac783895e2 100644
--- a/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
+++ b/src/main/resources/com/ardublock/block/ardublock_en_GB.properties
@@ -533,6 +533,12 @@ bc.element = Element
 #****************************
 bd.cast=Typ Konvertierung
 
+bg.castDivider1=|       ASCII <-> int      |
+bg.castDivider2=|       Datentypen      |
+bg.castDivider3=|       byte <-> char       |
+
+bg.cast_atoi=atoi
+bg.cast_itoa=itoa
 bg.cast_number=(int)
 bg.cast_number_byte=(byte)
 bg.cast_number_long=(long)
@@ -544,6 +550,8 @@ bg.cast_up_int_char=(int >> 8) zu char
 bg.cast_char_int=char zu int
 bg.cast_byte_int=byte zu int
 
+bg.cast_atoi.description=lese int-Wert aus char-array
+bg.cast_itoa.description=erstelle char-array aus int-Wert
 bg.cast_number.description=wandle zu int
 bg.cast_number_byte.description=wandle zu byte
 bg.cast_number_long.description=wandle zu long
diff --git a/src/main/resources/com/ardublock/block/block-mapping.properties b/src/main/resources/com/ardublock/block/block-mapping.properties
index 381d417e77576251fb2cdcdf9dba70bce3076029..bdd771c77c0eb554bec04970c17e5e9f794442fc 100644
--- a/src/main/resources/com/ardublock/block/block-mapping.properties
+++ b/src/main/resources/com/ardublock/block/block-mapping.properties
@@ -168,6 +168,8 @@ map=com.ardublock.translator.block.operators.MapBlock
 
 #CAST
 #****************************
+cast_atoi=com.ardublock.translator.block.cast.CastAtoi
+cast_itoa=com.ardublock.translator.block.cast.CastItoa
 cast_number=com.ardublock.translator.block.cast.CastNumberBlock
 cast_number_byte=com.ardublock.translator.block.cast.CastNumberByteBlock
 cast_number_long=com.ardublock.translator.block.cast.CastNumberLongBlock