diff --git a/Documentation/Diagrams/MeasurementSequenceDiagram.plantuml b/Documentation/Diagrams/MeasurementSequenceDiagram.plantuml
new file mode 100644
index 0000000..819986e
--- /dev/null
+++ b/Documentation/Diagrams/MeasurementSequenceDiagram.plantuml
@@ -0,0 +1,31 @@
+@startuml
+box "Layers"
+ participant "State Machine"
+ participant "Application Layer"
+ participant "Transport Layer"
+ participant "Physical Layer"
+ participant "Measurement Storage"
+end box
+
+"State Machine" -> "Application Layer" : connect()
+"Application Layer" -> "Transport Layer" : connect()
+"Transport Layer" -> "Physical Layer" : connect()
+"Physical Layer" -> "Device" : Establish connection
+
+loop Repeat for each measurement
+
+"State Machine" -> "Application Layer" : getMeasurement()
+"Application Layer" -> "Transport Layer" : getFrame()
+"Transport Layer" -> "Physical Layer" : getData()
+"Device" -> "Physical Layer" : data
+"Physical Layer" -> "Transport Layer" : data
+
+"Transport Layer" -> "Application Layer" : frame
+"Application Layer" -> "State Machine" : measurement
+
+"State Machine" -> "Measurement Storage" : saveMeasurement()
+"Measurement Storage" -> File : Write data to CSV
+
+"State Machine" -> Console : Display measurement
+end
+@enduml
\ No newline at end of file
diff --git a/Documentation/Diagrams/MeasurementSequenceDiagram.svg b/Documentation/Diagrams/MeasurementSequenceDiagram.svg
new file mode 100644
index 0000000..c794201
--- /dev/null
+++ b/Documentation/Diagrams/MeasurementSequenceDiagram.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Documentation/Diagrams/MeasurementStateMachine.plantuml b/Documentation/Diagrams/MeasurementStateMachine.plantuml
new file mode 100644
index 0000000..ce66889
--- /dev/null
+++ b/Documentation/Diagrams/MeasurementStateMachine.plantuml
@@ -0,0 +1,31 @@
+@startuml
+state "Ionization Chamber State Machine" as SM {
+ [*] --> InitIonizationChamber : Start
+
+ state "Init Ionization Chamber" as InitIonizationChamber {
+ }
+ InitIonizationChamber --> InitMeasurementStorage : Connected
+
+ state "Init Measurement Storage" as InitMeasurementStorage {
+ }
+ InitMeasurementStorage --> GetMeasurementFromIonizationChamber : Storage Ready
+
+ state "Get Measurement From Ionization Chamber" as GetMeasurementFromIonizationChamber {
+ }
+ GetMeasurementFromIonizationChamber --> SaveMeasurement : Measurement Acquired
+
+ state "Save Measurement" as SaveMeasurement {
+ }
+ SaveMeasurement --> ShowMeasurementToUser : Saved
+
+ state "Show Measurement To User" as ShowMeasurementToUser {
+ }
+ ShowMeasurementToUser --> GetMeasurementFromIonizationChamber : Continue Measurement
+
+ InitIonizationChamber --> [*] : Failure
+ InitMeasurementStorage --> [*] : Failure
+ GetMeasurementFromIonizationChamber --> [*] : Failure
+ SaveMeasurement --> [*] : Failure
+ ShowMeasurementToUser --> [*] : Failure
+}
+@enduml
diff --git a/Documentation/Diagrams/MeasurementStateMachine.svg b/Documentation/Diagrams/MeasurementStateMachine.svg
new file mode 100644
index 0000000..8872c3d
--- /dev/null
+++ b/Documentation/Diagrams/MeasurementStateMachine.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/README.md b/README.md
index aa96c88..4ccf6dc 100755
--- a/README.md
+++ b/README.md
@@ -17,6 +17,9 @@ An ionization chamber is a type of radiation detector that measures ionizing rad
* **Ion Collection:** The free electrons, which are negatively charged, are attracted to the positive anode, while the positively charged ions are attracted to the cathode. As these ions move toward the electrodes, they create an electrical current.
* **Current Measurement:** The generated current is directly proportional to the number of ions produced, which in turn is related to the amount of radiation that has passed through the chamber. This current is then measured and used to calculate the intensity of the radiation.
+Below is an image of the device that was assembled and tested (hardware revision 4.0). Since then, a new version has been developed but has not yet been tested. This repository, in its current state, represents the latest version. For details on the tested version, [refer to 4.0 tag](https://github.com/RobertGawron/IonizationChamber/releases/tag/4.0).
+
+
![picture of device](https://raw.githubusercontent.com/RobertGawron/IonizationChamber/master/Documentation/Pictures/pcb_01_09_2019.jpg)
diff --git a/Software/MeasurementAcquisition/README.md b/Software/MeasurementAcquisition/README.md
index d89c555..071e0f9 100644
--- a/Software/MeasurementAcquisition/README.md
+++ b/Software/MeasurementAcquisition/README.md
@@ -10,3 +10,18 @@ It was developed to run on a Raspberry Pi but should work on any Linux or Window
[Information on how to use this tool can be found in the "Building, running, and stopping a Docker image" and "Running MeasurementAcquisition scripts" sections.](../DevOps/Docker/README.md)
+
+## Architecture
+
+The diagram below shows the **Sequence Diagram** of this application:
+
+![state diagram](../../Documentation/Diagrams/MeasurementSequenceDiagram.svg)
+
+Note that the application can't be stopped normally; use Ctrl+C to terminate it.
+
+The diagram below shows the **State Diagram** of this application:
+
+![state diagram](../../Documentation/Diagrams/MeasurementStateMachine.svg)
+
+Note that the "Failure" state is not implemented. We assume that everything works correctly all the time.
+