diff --git a/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt b/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt
index 011096c874ea9ba3a3534fe4e353c11ec38a6199..8ac75d7562a26dd1c96a77cdf92d683ec42c9e56 100644
--- a/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt
+++ b/app/src/main/java/de/ccc/events/badge/card10/common/ConnectionService.kt
@@ -31,9 +31,6 @@ import de.ccc.events.badge.card10.FILE_SERVICE_UUID
 import de.ccc.events.badge.card10.R
 import de.ccc.events.badge.card10.filetransfer.LowEffortService
 import de.ccc.events.badge.card10.time.Card10Service
-import java.lang.IllegalStateException
-import java.lang.NullPointerException
-import java.util.*
 
 private const val TAG = "ConnectionService"
 
@@ -127,9 +124,7 @@ object ConnectionService {
         override fun onMtuChanged(gatt: BluetoothGatt?, newMtu: Int, status: Int) {
             Log.d(TAG, "MTU changed to: $newMtu")
 
-            if (gatt == null) {
-                throw IllegalStateException()
-            }
+            checkNotNull(gatt)
 
             mtu = newMtu - 3 // Very precise science
 
@@ -143,10 +138,8 @@ object ConnectionService {
             characteristic: BluetoothGattCharacteristic?,
             status: Int
         ) {
-            if (gatt == null || characteristic == null) {
-                throw IllegalStateException()
-            }
-
+            checkNotNull(gatt)
+            checkNotNull(characteristic)
             connection = gatt
 
             gattListeners.values.map { it.onCharacteristicWrite(characteristic, status) }
@@ -155,9 +148,8 @@ object ConnectionService {
         override fun onCharacteristicChanged(gatt: BluetoothGatt?, characteristic: BluetoothGattCharacteristic?) {
             connection = gatt
 
-            if (gatt == null || characteristic == null) {
-                throw IllegalStateException()
-            }
+            checkNotNull(gatt)
+            checkNotNull(characteristic)
 
             gattListeners.values.map { it.onCharacteristicChanged(characteristic) }
         }
diff --git a/app/src/main/java/de/ccc/events/badge/card10/mood/MoodFragment.kt b/app/src/main/java/de/ccc/events/badge/card10/mood/MoodFragment.kt
index f9224c5e68a627da2225ad00f5a02aaa5accf3ba..0723cec73ea7e4ca898d1c6d1d9b7c1d26a68b2b 100644
--- a/app/src/main/java/de/ccc/events/badge/card10/mood/MoodFragment.kt
+++ b/app/src/main/java/de/ccc/events/badge/card10/mood/MoodFragment.kt
@@ -27,33 +27,33 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.fragment.app.Fragment
+import de.ccc.events.badge.card10.PersonalState
 import de.ccc.events.badge.card10.R
 import de.ccc.events.badge.card10.common.ConnectionService
-import de.ccc.events.badge.card10.time.Card10Service
 import kotlinx.android.synthetic.main.mood_fragment.*
 
 class MoodFragment : Fragment() {
-    private var card10Service: Card10Service? = null
-
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
-
-        card10Service = ConnectionService.card10Service
-    }
+    private val card10Service = ConnectionService.card10Service
 
     override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
         return inflater.inflate(R.layout.mood_fragment, container, false)
     }
 
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        mood_good.setOnClickListener{
-            card10Service?.setRocketValue(ubyteArrayOf(0xffu, 0x00u, 0x00u).toByteArray())
+        mood_congress.setOnClickListener{
+            card10Service?.setPersonalState(PersonalState.CHAOS)
+        }
+        mood_chaos.setOnClickListener{
+            card10Service?.setPersonalState(PersonalState.COMMUNICATION)
+        }
+        mood_congress.setOnClickListener{
+            card10Service?.setPersonalState(PersonalState.CAMP)
         }
-        mood_neutral.setOnClickListener{
-            card10Service?.setRocketValue(ubyteArrayOf(0x00u, 0xffu, 0x00u).toByteArray())
+        no_contact.setOnClickListener{
+            card10Service?.setPersonalState(PersonalState.NO_CONTACT)
         }
-        mood_bad.setOnClickListener{
-            card10Service?.setRocketValue(ubyteArrayOf(0x00u, 0x00u, 0xffu).toByteArray())
+        no_contact.setOnClickListener{
+            card10Service?.setPersonalState(PersonalState.NONE)
         }
     }
 }
diff --git a/app/src/main/java/de/ccc/events/badge/card10/time/Card10Service.kt b/app/src/main/java/de/ccc/events/badge/card10/time/Card10Service.kt
index db1501c62425951bcb5f367a34fd02aea30469b6..13bf87028d4a51d6f88fcf2c388ff33e3c821252 100644
--- a/app/src/main/java/de/ccc/events/badge/card10/time/Card10Service.kt
+++ b/app/src/main/java/de/ccc/events/badge/card10/time/Card10Service.kt
@@ -24,9 +24,7 @@ package de.ccc.events.badge.card10.time
 
 import android.bluetooth.BluetoothGattCharacteristic
 import android.bluetooth.BluetoothGattService
-import de.ccc.events.badge.card10.LEDS_ABOVE_CHARACTERISTIC_UUID
-import de.ccc.events.badge.card10.ROCKETS_CHARACTERISTIC_UUID
-import de.ccc.events.badge.card10.TIME_CHARACTERISTIC_UUID
+import de.ccc.events.badge.card10.*
 import de.ccc.events.badge.card10.common.ConnectionService
 import java.nio.ByteBuffer
 
@@ -35,12 +33,16 @@ class Card10Service(
 ) {
     private val timeCharacteristic = service.getCharacteristic(TIME_CHARACTERISTIC_UUID)
     private val rocketsCharacteristic = service.getCharacteristic(ROCKETS_CHARACTERISTIC_UUID)
-    private var ledsAboveCharacteristic = service.getCharacteristic(LEDS_ABOVE_CHARACTERISTIC_UUID)
+    private val ledsAboveCharacteristic = service.getCharacteristic(LEDS_ABOVE_CHARACTERISTIC_UUID)
+    private val personalStateCharacteristic = service.getCharacteristic(PERSONAL_STATE_CHARACTERISTIC_UUID)
+
 
     init {
         timeCharacteristic.writeType = BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE
         rocketsCharacteristic.writeType = BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE
         ledsAboveCharacteristic.writeType = BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE
+        personalStateCharacteristic.writeType = BluetoothGattCharacteristic.WRITE_TYPE_NO_RESPONSE
+
     }
 
     fun setTime() {
@@ -59,4 +61,10 @@ class Card10Service(
         ledsAboveCharacteristic.value = value
         ConnectionService.writeCharacteristic(ledsAboveCharacteristic)
     }
+
+    fun setPersonalState(value: PersonalState) {
+        personalStateCharacteristic.value = ByteArray(1)
+        personalStateCharacteristic.value[0] = value.v
+        ConnectionService.writeCharacteristic(personalStateCharacteristic)
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/res/layout/mood_fragment.xml b/app/src/main/res/layout/mood_fragment.xml
index ce9e4f30b397c4c580879b703a9dce313b0341cd..ee8f213892a372c8007b0e30d1320f8720a13284 100644
--- a/app/src/main/res/layout/mood_fragment.xml
+++ b/app/src/main/res/layout/mood_fragment.xml
@@ -8,11 +8,15 @@
         android:padding="16dp"
 >
     <TextView android:layout_width="wrap_content"
-              android:layout_height="wrap_content" android:text="Mood"/>
-    <Button android:id="@+id/mood_good" android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="Good"/>
-    <Button android:id="@+id/mood_neutral" android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="Neutral"/>
-    <Button android:id="@+id/mood_bad" android:layout_width="wrap_content" android:layout_height="wrap_content"
-            android:text="Bad"/>
+              android:layout_height="wrap_content" android:text="@string/personal_state"/>
+    <Button android:id="@+id/mood_chaos" android:layout_width="wrap_content" android:layout_height="wrap_content"
+            android:text="@string/chaos"/>
+    <Button android:id="@+id/mood_communication" android:layout_width="wrap_content" android:layout_height="wrap_content"
+            android:text="@string/communication"/>
+    <Button android:id="@+id/mood_congress" android:layout_width="wrap_content" android:layout_height="wrap_content"
+            android:text="@string/congress"/>
+    <Button android:id="@+id/no_contact" android:layout_width="wrap_content" android:layout_height="wrap_content"
+            android:text="@string/no_contact"/>
+    <Button android:id="@+id/no_state" android:layout_width="wrap_content" android:layout_height="wrap_content"
+            android:text="@string/off"/>
 </LinearLayout>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 15ca45bfa675ecc8dd94eea2e0dacaf0694e6d29..ae99bfcb225bdad0e491dc11d20eaa77eab835eb 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -44,4 +44,10 @@
 
     <string name="connection_error_generic">Connection error</string>
     <string name="connection_error_no_bonded_device">No bonded card10s available</string>
+    <string name="personal_state">Personal State</string>
+    <string name="chaos">Chaos</string>
+    <string name="communication">Communication</string>
+    <string name="congress">Congress</string>
+    <string name="no_contact">No Contact</string>
+    <string name="off">Off</string>
 </resources>