diff --git a/Logiciel/Test_hardware_basique/.cproject b/Logiciel/Test_hardware_basique/.cproject
index 53788ee2dfdd721a4db2f41ce5741359f87ad5de..fc16afc5cd6653458fd0878770f022e44934a8c9 100644
--- a/Logiciel/Test_hardware_basique/.cproject
+++ b/Logiciel/Test_hardware_basique/.cproject
@@ -22,7 +22,7 @@
 							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.314552216" name="CpuId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
 							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.1388368500" name="CpuCoreId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
 							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.2052577774" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="genericBoard" valueType="string"/>
-							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.604179303" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.3 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32F071V8Tx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Inc | ../Drivers/STM32F0xx_HAL_Driver/Inc | ../Drivers/CMSIS/Include | ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F0xx/Include ||  ||  || STM32F071xB | USE_HAL_DRIVER ||  || Drivers | Src | Startup ||  ||  || ${workspace_loc:/${ProjName}/STM32F071V8TX_FLASH.ld} || true || NonSecure ||  || secure_nsclib.o || " valueType="string"/>
+							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.604179303" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.3 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32F071V8Tx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || Drivers/STM32F0xx_HAL_Driver/Inc | ../Inc | ../Drivers/STM32F0xx_HAL_Driver/Inc | ../Drivers/CMSIS/Include | Drivers/CMSIS/Include | ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F0xx/Include | Drivers/CMSIS/Device/ST/STM32F0xx/Include | Drivers/STM32F0xx_HAL_Driver/Inc/Legacy | Inc ||  ||  || STM32F071xB | USE_HAL_DRIVER ||  || Drivers | Src | Startup ||  ||  || ${workspace_loc:/${ProjName}/STM32F071V8TX_FLASH.ld} || true || NonSecure ||  || secure_nsclib.o || " valueType="string"/>
 							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.2089815876" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
 							<builder buildPath="${workspace_loc:/Test_hardware_basique}/Debug" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1415670683" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
 							<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.1630119918" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
@@ -38,11 +38,16 @@
 									<listOptionValue builtIn="false" value="DEBUG"/>
 								</option>
 								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.1106004644" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
+									<listOptionValue builtIn="false" value="Drivers/STM32F0xx_HAL_Driver/Inc"/>
 									<listOptionValue builtIn="false" value="../Inc"/>
 									<listOptionValue builtIn="false" value="../Drivers/STM32F0xx_HAL_Driver/Inc"/>
 									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
+									<listOptionValue builtIn="false" value="Drivers/CMSIS/Include"/>
 									<listOptionValue builtIn="false" value="../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy"/>
 									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F0xx/Include"/>
+									<listOptionValue builtIn="false" value="Drivers/CMSIS/Device/ST/STM32F0xx/Include"/>
+									<listOptionValue builtIn="false" value="Drivers/STM32F0xx_HAL_Driver/Inc/Legacy"/>
+									<listOptionValue builtIn="false" value="Inc"/>
 								</option>
 								<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1965062290" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
 							</tool>
@@ -100,7 +105,7 @@
 							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.1891699824" name="CpuId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" value="0" valueType="string"/>
 							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.1601722525" name="CpuCoreId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" value="0" valueType="string"/>
 							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.464599364" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" value="genericBoard" valueType="string"/>
-							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1833922142" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.3 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32F071V8Tx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../Inc | ../Drivers/STM32F0xx_HAL_Driver/Inc | ../Drivers/CMSIS/Include | ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F0xx/Include ||  ||  || STM32F071xB | USE_HAL_DRIVER ||  || Drivers | Src | Startup ||  ||  || ${workspace_loc:/${ProjName}/STM32F071V8TX_FLASH.ld} || true || NonSecure ||  || secure_nsclib.o || " valueType="string"/>
+							<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1833922142" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.3 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.base.gnu-tools-for-stm32 || STM32F071V8Tx || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || Drivers/STM32F0xx_HAL_Driver/Inc | ../Inc | ../Drivers/STM32F0xx_HAL_Driver/Inc | ../Drivers/CMSIS/Include | Drivers/CMSIS/Include | ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy | ../Drivers/CMSIS/Device/ST/STM32F0xx/Include | Drivers/CMSIS/Device/ST/STM32F0xx/Include | Drivers/STM32F0xx_HAL_Driver/Inc/Legacy | Inc ||  ||  || STM32F071xB | USE_HAL_DRIVER ||  || Drivers | Src | Startup ||  ||  || ${workspace_loc:/${ProjName}/STM32F071V8TX_FLASH.ld} || true || NonSecure ||  || secure_nsclib.o || " valueType="string"/>
 							<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1155895726" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
 							<builder buildPath="${workspace_loc:/Test_hardware_basique}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.269973518" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
 							<tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.5999364" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
@@ -115,11 +120,16 @@
 									<listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
 								</option>
 								<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.26078360" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
+									<listOptionValue builtIn="false" value="Drivers/STM32F0xx_HAL_Driver/Inc"/>
 									<listOptionValue builtIn="false" value="../Inc"/>
 									<listOptionValue builtIn="false" value="../Drivers/STM32F0xx_HAL_Driver/Inc"/>
 									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Include"/>
+									<listOptionValue builtIn="false" value="Drivers/CMSIS/Include"/>
 									<listOptionValue builtIn="false" value="../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy"/>
 									<listOptionValue builtIn="false" value="../Drivers/CMSIS/Device/ST/STM32F0xx/Include"/>
+									<listOptionValue builtIn="false" value="Drivers/CMSIS/Device/ST/STM32F0xx/Include"/>
+									<listOptionValue builtIn="false" value="Drivers/STM32F0xx_HAL_Driver/Inc/Legacy"/>
+									<listOptionValue builtIn="false" value="Inc"/>
 								</option>
 								<inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1522129881" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
 							</tool>
diff --git a/Logiciel/Test_hardware_basique/.settings/language.settings.xml b/Logiciel/Test_hardware_basique/.settings/language.settings.xml
index ef79569a5f3a0cc5f7a2e69fe1c0c26c4b3ffada..f1e110962482ea26902491ee74144dde90335eb1 100644
--- a/Logiciel/Test_hardware_basique/.settings/language.settings.xml
+++ b/Logiciel/Test_hardware_basique/.settings/language.settings.xml
@@ -6,7 +6,7 @@
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
-			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="531324329442087942" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-984699078199059082" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
@@ -18,7 +18,7 @@
 			<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
 			<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
 			<provider copy-of="extension" id="org.eclipse.cdt.managedbuilder.core.GCCBuildCommandParser"/>
-			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="531324329442087942" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
+			<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-984699078199059082" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
 				<language-scope id="org.eclipse.cdt.core.gcc"/>
 				<language-scope id="org.eclipse.cdt.core.g++"/>
 			</provider>
diff --git a/Logiciel/Test_hardware_basique/Inc/main.h b/Logiciel/Test_hardware_basique/Inc/main.h
index c86a61a55b3be2793db150531765c1ff1fc45081..c3536664da3b96f8ad41e72719a1123c3a53d74c 100644
--- a/Logiciel/Test_hardware_basique/Inc/main.h
+++ b/Logiciel/Test_hardware_basique/Inc/main.h
@@ -58,8 +58,154 @@ void Error_Handler(void);
 /* USER CODE END EFP */
 
 /* Private defines -----------------------------------------------------------*/
-#define POINT_TEST_Pin GPIO_PIN_2
-#define POINT_TEST_GPIO_Port GPIOE
+#define DS3_5_Pin GPIO_PIN_2
+#define DS3_5_GPIO_Port GPIOE
+#define DS3_4_Pin GPIO_PIN_3
+#define DS3_4_GPIO_Port GPIOE
+#define DS3_3_Pin GPIO_PIN_4
+#define DS3_3_GPIO_Port GPIOE
+#define DS3_2_Pin GPIO_PIN_5
+#define DS3_2_GPIO_Port GPIOE
+#define DS3_1_Pin GPIO_PIN_6
+#define DS3_1_GPIO_Port GPIOE
+#define DS2_7_Pin GPIO_PIN_13
+#define DS2_7_GPIO_Port GPIOC
+#define DS2_6_Pin GPIO_PIN_9
+#define DS2_6_GPIO_Port GPIOF
+#define DS2_5_Pin GPIO_PIN_10
+#define DS2_5_GPIO_Port GPIOF
+#define DS2_4_Pin GPIO_PIN_0
+#define DS2_4_GPIO_Port GPIOC
+#define DS2_3_Pin GPIO_PIN_1
+#define DS2_3_GPIO_Port GPIOC
+#define DS2_2_Pin GPIO_PIN_2
+#define DS2_2_GPIO_Port GPIOC
+#define DS2_1_Pin GPIO_PIN_3
+#define DS2_1_GPIO_Port GPIOC
+#define DS1_7_Pin GPIO_PIN_3
+#define DS1_7_GPIO_Port GPIOF
+#define DS1_6_Pin GPIO_PIN_0
+#define DS1_6_GPIO_Port GPIOA
+#define DS1_5_Pin GPIO_PIN_1
+#define DS1_5_GPIO_Port GPIOA
+#define DS1_4_Pin GPIO_PIN_2
+#define DS1_4_GPIO_Port GPIOA
+#define DS1_3_Pin GPIO_PIN_3
+#define DS1_3_GPIO_Port GPIOA
+#define DS1_2_Pin GPIO_PIN_4
+#define DS1_2_GPIO_Port GPIOA
+#define DS1_1_Pin GPIO_PIN_5
+#define DS1_1_GPIO_Port GPIOA
+#define ETHB_1_Pin GPIO_PIN_7
+#define ETHB_1_GPIO_Port GPIOA
+#define ETHB_2_Pin GPIO_PIN_4
+#define ETHB_2_GPIO_Port GPIOC
+#define ETHB_3_Pin GPIO_PIN_5
+#define ETHB_3_GPIO_Port GPIOC
+#define ETHB_4_Pin GPIO_PIN_0
+#define ETHB_4_GPIO_Port GPIOB
+#define ETHB_5_Pin GPIO_PIN_1
+#define ETHB_5_GPIO_Port GPIOB
+#define ETHB_6_Pin GPIO_PIN_2
+#define ETHB_6_GPIO_Port GPIOB
+#define ETHB_7_Pin GPIO_PIN_7
+#define ETHB_7_GPIO_Port GPIOE
+#define ETHB_8_Pin GPIO_PIN_8
+#define ETHB_8_GPIO_Port GPIOE
+#define ETHA_1_Pin GPIO_PIN_10
+#define ETHA_1_GPIO_Port GPIOE
+#define ETHA_2_Pin GPIO_PIN_11
+#define ETHA_2_GPIO_Port GPIOE
+#define ETHA_3_Pin GPIO_PIN_12
+#define ETHA_3_GPIO_Port GPIOE
+#define ETHA_4_Pin GPIO_PIN_13
+#define ETHA_4_GPIO_Port GPIOE
+#define ETHA_5_Pin GPIO_PIN_14
+#define ETHA_5_GPIO_Port GPIOE
+#define ETHA_6_Pin GPIO_PIN_15
+#define ETHA_6_GPIO_Port GPIOE
+#define ETHA_7_Pin GPIO_PIN_10
+#define ETHA_7_GPIO_Port GPIOB
+#define ETHA_8_Pin GPIO_PIN_11
+#define ETHA_8_GPIO_Port GPIOB
+#define EN_2V_Pin GPIO_PIN_15
+#define EN_2V_GPIO_Port GPIOB
+#define BTN_Pin GPIO_PIN_8
+#define BTN_GPIO_Port GPIOD
+#define DS8_7_Pin GPIO_PIN_9
+#define DS8_7_GPIO_Port GPIOD
+#define DS8_6_Pin GPIO_PIN_10
+#define DS8_6_GPIO_Port GPIOD
+#define DS8_5_Pin GPIO_PIN_11
+#define DS8_5_GPIO_Port GPIOD
+#define DS8_4_Pin GPIO_PIN_12
+#define DS8_4_GPIO_Port GPIOD
+#define DS8_3_Pin GPIO_PIN_13
+#define DS8_3_GPIO_Port GPIOD
+#define DS8_2_Pin GPIO_PIN_14
+#define DS8_2_GPIO_Port GPIOD
+#define DS8_1_Pin GPIO_PIN_15
+#define DS8_1_GPIO_Port GPIOD
+#define DS7_7_Pin GPIO_PIN_7
+#define DS7_7_GPIO_Port GPIOC
+#define DS7_6_Pin GPIO_PIN_8
+#define DS7_6_GPIO_Port GPIOC
+#define DS7_5_Pin GPIO_PIN_9
+#define DS7_5_GPIO_Port GPIOC
+#define DS7_4_Pin GPIO_PIN_8
+#define DS7_4_GPIO_Port GPIOA
+#define DS7_3_Pin GPIO_PIN_9
+#define DS7_3_GPIO_Port GPIOA
+#define DS7_2_Pin GPIO_PIN_10
+#define DS7_2_GPIO_Port GPIOA
+#define DS7_1_Pin GPIO_PIN_11
+#define DS7_1_GPIO_Port GPIOA
+#define DS6_7_Pin GPIO_PIN_12
+#define DS6_7_GPIO_Port GPIOA
+#define DS6_6_Pin GPIO_PIN_6
+#define DS6_6_GPIO_Port GPIOF
+#define DS6_5_Pin GPIO_PIN_15
+#define DS6_5_GPIO_Port GPIOA
+#define DS6_4_Pin GPIO_PIN_10
+#define DS6_4_GPIO_Port GPIOC
+#define DS6_3_Pin GPIO_PIN_11
+#define DS6_3_GPIO_Port GPIOC
+#define DS6_2_Pin GPIO_PIN_12
+#define DS6_2_GPIO_Port GPIOC
+#define DS6_1_Pin GPIO_PIN_0
+#define DS6_1_GPIO_Port GPIOD
+#define DS5_7_Pin GPIO_PIN_1
+#define DS5_7_GPIO_Port GPIOD
+#define DS5_6_Pin GPIO_PIN_2
+#define DS5_6_GPIO_Port GPIOD
+#define DS5_5_Pin GPIO_PIN_3
+#define DS5_5_GPIO_Port GPIOD
+#define DS5_4_Pin GPIO_PIN_4
+#define DS5_4_GPIO_Port GPIOD
+#define DS5_3_Pin GPIO_PIN_5
+#define DS5_3_GPIO_Port GPIOD
+#define DS5_2_Pin GPIO_PIN_6
+#define DS5_2_GPIO_Port GPIOD
+#define DS5_1_Pin GPIO_PIN_7
+#define DS5_1_GPIO_Port GPIOD
+#define DS4_7_Pin GPIO_PIN_3
+#define DS4_7_GPIO_Port GPIOB
+#define DS4_6_Pin GPIO_PIN_4
+#define DS4_6_GPIO_Port GPIOB
+#define DS4_5_Pin GPIO_PIN_5
+#define DS4_5_GPIO_Port GPIOB
+#define DS4_4_Pin GPIO_PIN_6
+#define DS4_4_GPIO_Port GPIOB
+#define DS4_3_Pin GPIO_PIN_7
+#define DS4_3_GPIO_Port GPIOB
+#define DS4_2_Pin GPIO_PIN_8
+#define DS4_2_GPIO_Port GPIOB
+#define DS4_1_Pin GPIO_PIN_9
+#define DS4_1_GPIO_Port GPIOB
+#define DS3_7_Pin GPIO_PIN_0
+#define DS3_7_GPIO_Port GPIOE
+#define DS3_6_Pin GPIO_PIN_1
+#define DS3_6_GPIO_Port GPIOE
 /* USER CODE BEGIN Private defines */
 
 /* USER CODE END Private defines */
diff --git a/Logiciel/Test_hardware_basique/Src/main.c b/Logiciel/Test_hardware_basique/Src/main.c
index 1b978ace577a6c8830f0e35d30882eedca0b7736..f2280ec632d3c1915ab87a54275cbad705e80b0b 100644
--- a/Logiciel/Test_hardware_basique/Src/main.c
+++ b/Logiciel/Test_hardware_basique/Src/main.c
@@ -93,13 +93,89 @@ int main(void)
 
   /* Infinite loop */
   /* USER CODE BEGIN WHILE */
+
+  // Activer l'alimentation 2V
+  HAL_GPIO_WritePin(EN_2V_GPIO_Port, EN_2V_Pin, GPIO_PIN_SET);
+
   while (1)
   {
     /* USER CODE END WHILE */
-          HAL_GPIO_WritePin(POINT_TEST_GPIO_Port, POINT_TEST_Pin, GPIO_PIN_SET);
-          HAL_Delay(1000);
-          HAL_GPIO_WritePin(POINT_TEST_GPIO_Port, POINT_TEST_Pin, GPIO_PIN_RESET);
+
     /* USER CODE BEGIN 3 */
+          HAL_GPIO_WritePin(DS1_1_GPIO_Port, DS1_1_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS1_2_GPIO_Port, DS1_2_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS1_3_GPIO_Port, DS1_3_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS1_4_GPIO_Port, DS1_4_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS1_5_GPIO_Port, DS1_5_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS1_6_GPIO_Port, DS1_6_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS1_7_GPIO_Port, DS1_7_Pin, GPIO_PIN_SET);
+
+          HAL_GPIO_WritePin(DS2_1_GPIO_Port, DS2_1_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS2_2_GPIO_Port, DS2_2_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS2_3_GPIO_Port, DS2_3_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS2_4_GPIO_Port, DS2_4_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS2_5_GPIO_Port, DS2_5_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS2_6_GPIO_Port, DS2_6_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS2_7_GPIO_Port, DS2_7_Pin, GPIO_PIN_SET);
+
+          HAL_GPIO_WritePin(DS3_1_GPIO_Port, DS3_1_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS3_2_GPIO_Port, DS3_2_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS3_3_GPIO_Port, DS3_3_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS3_4_GPIO_Port, DS3_4_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS3_5_GPIO_Port, DS3_5_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS3_6_GPIO_Port, DS3_6_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS3_7_GPIO_Port, DS3_7_Pin, GPIO_PIN_SET);
+
+          HAL_GPIO_WritePin(DS4_1_GPIO_Port, DS4_1_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS4_2_GPIO_Port, DS4_2_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS4_3_GPIO_Port, DS4_3_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS4_4_GPIO_Port, DS4_4_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS4_5_GPIO_Port, DS4_5_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS4_6_GPIO_Port, DS4_6_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS4_7_GPIO_Port, DS4_7_Pin, GPIO_PIN_SET);
+
+          HAL_GPIO_WritePin(DS5_1_GPIO_Port, DS5_1_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS5_2_GPIO_Port, DS5_2_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS5_3_GPIO_Port, DS5_3_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS5_4_GPIO_Port, DS5_4_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS5_5_GPIO_Port, DS5_5_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS5_6_GPIO_Port, DS5_6_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS5_7_GPIO_Port, DS5_7_Pin, GPIO_PIN_SET);
+
+          HAL_GPIO_WritePin(DS6_1_GPIO_Port, DS6_1_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS6_2_GPIO_Port, DS6_2_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS6_3_GPIO_Port, DS6_3_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS6_4_GPIO_Port, DS6_4_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS6_5_GPIO_Port, DS6_5_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS6_6_GPIO_Port, DS6_6_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS6_7_GPIO_Port, DS6_7_Pin, GPIO_PIN_SET);
+
+          HAL_GPIO_WritePin(DS7_1_GPIO_Port, DS7_1_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS7_2_GPIO_Port, DS7_2_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS7_3_GPIO_Port, DS7_3_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS7_4_GPIO_Port, DS7_4_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS7_5_GPIO_Port, DS7_5_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS7_6_GPIO_Port, DS7_6_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS7_7_GPIO_Port, DS7_7_Pin, GPIO_PIN_SET);
+
+          HAL_GPIO_WritePin(DS8_1_GPIO_Port, DS8_1_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS8_2_GPIO_Port, DS8_2_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS8_3_GPIO_Port, DS8_3_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS8_4_GPIO_Port, DS8_4_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS8_5_GPIO_Port, DS8_5_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS8_6_GPIO_Port, DS8_6_Pin, GPIO_PIN_SET);
+          HAL_GPIO_WritePin(DS8_7_GPIO_Port, DS8_7_Pin, GPIO_PIN_SET);
+          HAL_Delay(1000);
+
+//          HAL_GPIO_WritePin(DS1_1_GPIO_Port, DS1_1_Pin, GPIO_PIN_RESET);
+//          HAL_GPIO_WritePin(DS1_2_GPIO_Port, DS1_2_Pin, GPIO_PIN_RESET);
+//          HAL_GPIO_WritePin(DS1_3_GPIO_Port, DS1_3_Pin, GPIO_PIN_RESET);
+//          HAL_GPIO_WritePin(DS1_4_GPIO_Port, DS1_4_Pin, GPIO_PIN_RESET);
+//          HAL_GPIO_WritePin(DS1_5_GPIO_Port, DS1_5_Pin, GPIO_PIN_RESET);
+//          HAL_GPIO_WritePin(DS1_6_GPIO_Port, DS1_6_Pin, GPIO_PIN_RESET);
+//          HAL_GPIO_WritePin(DS1_7_GPIO_Port, DS1_7_Pin, GPIO_PIN_RESET);
+//
+//          HAL_Delay(1000);
   }
   /* USER CODE END 3 */
 }
@@ -148,17 +224,137 @@ static void MX_GPIO_Init(void)
 
   /* GPIO Ports Clock Enable */
   __HAL_RCC_GPIOE_CLK_ENABLE();
+  __HAL_RCC_GPIOC_CLK_ENABLE();
+  __HAL_RCC_GPIOF_CLK_ENABLE();
   __HAL_RCC_GPIOA_CLK_ENABLE();
+  __HAL_RCC_GPIOB_CLK_ENABLE();
+  __HAL_RCC_GPIOD_CLK_ENABLE();
+
+  /*Configure GPIO pin Output Level */
+  HAL_GPIO_WritePin(GPIOE, DS3_5_Pin|DS3_4_Pin|DS3_3_Pin|DS3_2_Pin 
+                          |DS3_1_Pin|ETHA_1_Pin|ETHA_2_Pin|ETHA_3_Pin 
+                          |ETHA_4_Pin|ETHA_5_Pin|ETHA_6_Pin|DS3_7_Pin 
+                          |DS3_6_Pin, GPIO_PIN_RESET);
 
   /*Configure GPIO pin Output Level */
-  HAL_GPIO_WritePin(POINT_TEST_GPIO_Port, POINT_TEST_Pin, GPIO_PIN_RESET);
+  HAL_GPIO_WritePin(GPIOC, DS2_7_Pin|DS2_4_Pin|DS2_3_Pin|DS2_2_Pin 
+                          |DS2_1_Pin|DS7_7_Pin|DS7_6_Pin|DS7_5_Pin 
+                          |DS6_4_Pin|DS6_3_Pin|DS6_2_Pin, GPIO_PIN_RESET);
 
-  /*Configure GPIO pin : POINT_TEST_Pin */
-  GPIO_InitStruct.Pin = POINT_TEST_Pin;
+  /*Configure GPIO pin Output Level */
+  HAL_GPIO_WritePin(GPIOF, DS2_6_Pin|DS2_5_Pin|DS1_7_Pin|DS6_6_Pin, GPIO_PIN_RESET);
+
+  /*Configure GPIO pin Output Level */
+  HAL_GPIO_WritePin(GPIOA, DS1_6_Pin|DS1_5_Pin|DS1_4_Pin|DS1_3_Pin 
+                          |DS1_2_Pin|DS1_1_Pin|DS7_4_Pin|DS7_3_Pin 
+                          |DS7_2_Pin|DS7_1_Pin|DS6_7_Pin|DS6_5_Pin, GPIO_PIN_RESET);
+
+  /*Configure GPIO pin Output Level */
+  HAL_GPIO_WritePin(GPIOB, ETHA_7_Pin|ETHA_8_Pin|EN_2V_Pin|DS4_7_Pin 
+                          |DS4_6_Pin|DS4_5_Pin|DS4_4_Pin|DS4_3_Pin 
+                          |DS4_2_Pin|DS4_1_Pin, GPIO_PIN_RESET);
+
+  /*Configure GPIO pin Output Level */
+  HAL_GPIO_WritePin(GPIOD, DS8_7_Pin|DS8_6_Pin|DS8_5_Pin|DS8_4_Pin 
+                          |DS8_3_Pin|DS8_2_Pin|DS8_1_Pin|DS6_1_Pin 
+                          |DS5_7_Pin|DS5_6_Pin|DS5_5_Pin|DS5_4_Pin 
+                          |DS5_3_Pin|DS5_2_Pin|DS5_1_Pin, GPIO_PIN_RESET);
+
+  /*Configure GPIO pins : DS3_5_Pin DS3_4_Pin DS3_3_Pin DS3_2_Pin 
+                           DS3_1_Pin ETHA_1_Pin ETHA_2_Pin ETHA_3_Pin 
+                           ETHA_4_Pin ETHA_5_Pin ETHA_6_Pin DS3_7_Pin 
+                           DS3_6_Pin */
+  GPIO_InitStruct.Pin = DS3_5_Pin|DS3_4_Pin|DS3_3_Pin|DS3_2_Pin 
+                          |DS3_1_Pin|ETHA_1_Pin|ETHA_2_Pin|ETHA_3_Pin 
+                          |ETHA_4_Pin|ETHA_5_Pin|ETHA_6_Pin|DS3_7_Pin 
+                          |DS3_6_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+  HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+  /*Configure GPIO pins : DS2_7_Pin DS2_4_Pin DS2_3_Pin DS2_2_Pin 
+                           DS2_1_Pin DS7_7_Pin DS7_6_Pin DS7_5_Pin 
+                           DS6_4_Pin DS6_3_Pin DS6_2_Pin */
+  GPIO_InitStruct.Pin = DS2_7_Pin|DS2_4_Pin|DS2_3_Pin|DS2_2_Pin 
+                          |DS2_1_Pin|DS7_7_Pin|DS7_6_Pin|DS7_5_Pin 
+                          |DS6_4_Pin|DS6_3_Pin|DS6_2_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+  /*Configure GPIO pins : DS2_6_Pin DS2_5_Pin DS1_7_Pin DS6_6_Pin */
+  GPIO_InitStruct.Pin = DS2_6_Pin|DS2_5_Pin|DS1_7_Pin|DS6_6_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+  HAL_GPIO_Init(GPIOF, &GPIO_InitStruct);
+
+  /*Configure GPIO pins : DS1_6_Pin DS1_5_Pin DS1_4_Pin DS1_3_Pin 
+                           DS1_2_Pin DS1_1_Pin DS7_4_Pin DS7_3_Pin 
+                           DS7_2_Pin DS7_1_Pin DS6_7_Pin DS6_5_Pin */
+  GPIO_InitStruct.Pin = DS1_6_Pin|DS1_5_Pin|DS1_4_Pin|DS1_3_Pin 
+                          |DS1_2_Pin|DS1_1_Pin|DS7_4_Pin|DS7_3_Pin 
+                          |DS7_2_Pin|DS7_1_Pin|DS6_7_Pin|DS6_5_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+  HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
+  /*Configure GPIO pin : ETHB_1_Pin */
+  GPIO_InitStruct.Pin = ETHB_1_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
+  HAL_GPIO_Init(ETHB_1_GPIO_Port, &GPIO_InitStruct);
+
+  /*Configure GPIO pins : ETHB_2_Pin ETHB_3_Pin */
+  GPIO_InitStruct.Pin = ETHB_2_Pin|ETHB_3_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
+  HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+
+  /*Configure GPIO pins : ETHB_4_Pin ETHB_5_Pin ETHB_6_Pin */
+  GPIO_InitStruct.Pin = ETHB_4_Pin|ETHB_5_Pin|ETHB_6_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+  /*Configure GPIO pins : ETHB_7_Pin ETHB_8_Pin */
+  GPIO_InitStruct.Pin = ETHB_7_Pin|ETHB_8_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
+  HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);
+
+  /*Configure GPIO pins : ETHA_7_Pin ETHA_8_Pin EN_2V_Pin DS4_7_Pin 
+                           DS4_6_Pin DS4_5_Pin DS4_4_Pin DS4_3_Pin 
+                           DS4_2_Pin DS4_1_Pin */
+  GPIO_InitStruct.Pin = ETHA_7_Pin|ETHA_8_Pin|EN_2V_Pin|DS4_7_Pin 
+                          |DS4_6_Pin|DS4_5_Pin|DS4_4_Pin|DS4_3_Pin 
+                          |DS4_2_Pin|DS4_1_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
+  GPIO_InitStruct.Pull = GPIO_NOPULL;
+  GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+  HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+  /*Configure GPIO pin : BTN_Pin */
+  GPIO_InitStruct.Pin = BTN_Pin;
+  GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
+  GPIO_InitStruct.Pull = GPIO_PULLDOWN;
+  HAL_GPIO_Init(BTN_GPIO_Port, &GPIO_InitStruct);
+
+  /*Configure GPIO pins : DS8_7_Pin DS8_6_Pin DS8_5_Pin DS8_4_Pin 
+                           DS8_3_Pin DS8_2_Pin DS8_1_Pin DS6_1_Pin 
+                           DS5_7_Pin DS5_6_Pin DS5_5_Pin DS5_4_Pin 
+                           DS5_3_Pin DS5_2_Pin DS5_1_Pin */
+  GPIO_InitStruct.Pin = DS8_7_Pin|DS8_6_Pin|DS8_5_Pin|DS8_4_Pin 
+                          |DS8_3_Pin|DS8_2_Pin|DS8_1_Pin|DS6_1_Pin 
+                          |DS5_7_Pin|DS5_6_Pin|DS5_5_Pin|DS5_4_Pin 
+                          |DS5_3_Pin|DS5_2_Pin|DS5_1_Pin;
   GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
   GPIO_InitStruct.Pull = GPIO_NOPULL;
   GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
-  HAL_GPIO_Init(POINT_TEST_GPIO_Port, &GPIO_InitStruct);
+  HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
 
 }
 
diff --git a/Logiciel/Test_hardware_basique/Test_hardware_basique Debug.launch b/Logiciel/Test_hardware_basique/Test_hardware_basique Debug.launch
new file mode 100644
index 0000000000000000000000000000000000000000..70e4ba8ba0b7bf4742170b82e019fea1f48f7a64
--- /dev/null
+++ b/Logiciel/Test_hardware_basique/Test_hardware_basique Debug.launch	
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="com.st.stm32cube.ide.mcu.debug.launch.launchConfigurationType">
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.access_port_id" value="0"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_live_expr" value="true"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.enable_swv" value="false"/>
+<intAttribute key="com.st.stm32cube.ide.mcu.debug.launch.formatVersion" value="2"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.ip_address_local" value="localhost"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.loadList" value="{&quot;fItems&quot;:[{&quot;fIsFromMainTab&quot;:true,&quot;fPath&quot;:&quot;Debug\\Test_hardware_basique.elf&quot;,&quot;fProjectName&quot;:&quot;Test_hardware_basique&quot;,&quot;fPerformBuild&quot;:true,&quot;fDownload&quot;:true,&quot;fLoadSymbols&quot;:true}]}"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.remoteCommand" value="target remote"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startServer" value="true"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.divby0" value="true"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.exception.unaligned" value="false"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.startuptab.haltonexception" value="true"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swd_mode" value="true"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_port" value="61235"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_div" value="8"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_trace_hclk" value="16000000"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.swv_wait_for_sync" value="true"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.useRemoteTarget" value="true"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.launch.verify_flash_download" value="true"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_allow_halt" value="false"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.cti_signal_halt" value="false"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_external_loader" value="false"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_logging" value="false"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_max_halt_delay" value="false"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.enable_shared_stlink" value="false"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader" value=""/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.external_loader_init" value="false"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.frequency" value="0"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.halt_all_on_reset" value="false"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.log_file" value="C:\Users\Yann Roberge\Documents\Ingé\A2019\Testeur de câble\Logiciel\Test_hardware_basique\Debug\st-link_gdbserver_log.txt"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.low_power_debug" value="enable"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.max_halt_delay" value="2"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.reset_strategy" value="connect_under_reset"/>
+<booleanAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_check_serial_number" value="false"/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.stlink_txt_serial_number" value=""/>
+<stringAttribute key="com.st.stm32cube.ide.mcu.debug.stlink.watchdog_config" value="none"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doHalt" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.doReset" value="false"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.initCommands" value=""/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.ipAddress" value="localhost"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.jtagDevice" value="ST-LINK (ST-LINK GDB server)"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.pcRegister" value=""/>
+<intAttribute key="org.eclipse.cdt.debug.gdbjtag.core.portNumber" value="61234"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.runCommands" value=""/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setPcRegister" value="false"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setResume" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.debug.gdbjtag.core.setStopAt" value="true"/>
+<stringAttribute key="org.eclipse.cdt.debug.gdbjtag.core.stopAt" value="main"/>
+<stringAttribute key="org.eclipse.cdt.dsf.gdb.DEBUG_NAME" value="${TOOLCHAIN_PATH}/arm-none-eabi-gdb"/>
+<booleanAttribute key="org.eclipse.cdt.dsf.gdb.NON_STOP" value="true"/>
+<booleanAttribute key="org.eclipse.cdt.dsf.gdb.UPDATE_THREADLIST_ON_SUSPEND" value="false"/>
+<intAttribute key="org.eclipse.cdt.launch.ATTR_BUILD_BEFORE_LAUNCH_ATTR" value="2"/>
+<stringAttribute key="org.eclipse.cdt.launch.COREFILE_PATH" value=""/>
+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_START_MODE" value="remote"/>
+<booleanAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN" value="true"/>
+<stringAttribute key="org.eclipse.cdt.launch.DEBUGGER_STOP_AT_MAIN_SYMBOL" value="main"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROGRAM_NAME" value="Debug\Test_hardware_basique.elf"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_ATTR" value="Test_hardware_basique"/>
+<booleanAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_AUTO_ATTR" value="true"/>
+<stringAttribute key="org.eclipse.cdt.launch.PROJECT_BUILD_CONFIG_ID_ATTR" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.864905901"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/Test_hardware_basique"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="4"/>
+</listAttribute>
+<stringAttribute key="process_factory_id" value="org.eclipse.cdt.dsf.gdb.GdbProcessFactory"/>
+</launchConfiguration>
diff --git a/Logiciel/Test_hardware_basique/Test_hardware_basique.ioc b/Logiciel/Test_hardware_basique/Test_hardware_basique.ioc
index a1e123cb93094da279e96afb132be07f9f19999d..28e39c95a103b06b43273c8c826c7512c317a3eb 100644
--- a/Logiciel/Test_hardware_basique/Test_hardware_basique.ioc
+++ b/Logiciel/Test_hardware_basique/Test_hardware_basique.ioc
@@ -9,10 +9,83 @@ Mcu.IPNb=3
 Mcu.Name=STM32F071V(8-B)Tx
 Mcu.Package=LQFP100
 Mcu.Pin0=PE2
-Mcu.Pin1=PA13
-Mcu.Pin2=PA14
-Mcu.Pin3=VP_SYS_VS_Systick
-Mcu.PinsNb=4
+Mcu.Pin1=PE3
+Mcu.Pin10=PC2
+Mcu.Pin11=PC3
+Mcu.Pin12=PF3
+Mcu.Pin13=PA0
+Mcu.Pin14=PA1
+Mcu.Pin15=PA2
+Mcu.Pin16=PA3
+Mcu.Pin17=PA4
+Mcu.Pin18=PA5
+Mcu.Pin19=PA7
+Mcu.Pin2=PE4
+Mcu.Pin20=PC4
+Mcu.Pin21=PC5
+Mcu.Pin22=PB0
+Mcu.Pin23=PB1
+Mcu.Pin24=PB2
+Mcu.Pin25=PE7
+Mcu.Pin26=PE8
+Mcu.Pin27=PE10
+Mcu.Pin28=PE11
+Mcu.Pin29=PE12
+Mcu.Pin3=PE5
+Mcu.Pin30=PE13
+Mcu.Pin31=PE14
+Mcu.Pin32=PE15
+Mcu.Pin33=PB10
+Mcu.Pin34=PB11
+Mcu.Pin35=PB15
+Mcu.Pin36=PD8
+Mcu.Pin37=PD9
+Mcu.Pin38=PD10
+Mcu.Pin39=PD11
+Mcu.Pin4=PE6
+Mcu.Pin40=PD12
+Mcu.Pin41=PD13
+Mcu.Pin42=PD14
+Mcu.Pin43=PD15
+Mcu.Pin44=PC7
+Mcu.Pin45=PC8
+Mcu.Pin46=PC9
+Mcu.Pin47=PA8
+Mcu.Pin48=PA9
+Mcu.Pin49=PA10
+Mcu.Pin5=PC13
+Mcu.Pin50=PA11
+Mcu.Pin51=PA12
+Mcu.Pin52=PA13
+Mcu.Pin53=PF6
+Mcu.Pin54=PA14
+Mcu.Pin55=PA15
+Mcu.Pin56=PC10
+Mcu.Pin57=PC11
+Mcu.Pin58=PC12
+Mcu.Pin59=PD0
+Mcu.Pin6=PF9
+Mcu.Pin60=PD1
+Mcu.Pin61=PD2
+Mcu.Pin62=PD3
+Mcu.Pin63=PD4
+Mcu.Pin64=PD5
+Mcu.Pin65=PD6
+Mcu.Pin66=PD7
+Mcu.Pin67=PB3
+Mcu.Pin68=PB4
+Mcu.Pin69=PB5
+Mcu.Pin7=PF10
+Mcu.Pin70=PB6
+Mcu.Pin71=PB7
+Mcu.Pin72=PB8
+Mcu.Pin73=PB9
+Mcu.Pin74=PE0
+Mcu.Pin75=PE1
+Mcu.Pin76=VP_SYS_VS_Systick
+Mcu.Pin8=PC0
+Mcu.Pin9=PC1
+Mcu.PinsNb=77
 Mcu.ThirdPartyNb=0
 Mcu.UserConstants=
 Mcu.UserName=STM32F071V8Tx
@@ -24,10 +97,172 @@ NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.SVC_IRQn=true\:0\:0\:false\:false\:true\:false\:false
 NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+PA0.GPIOParameters=GPIO_Label
+PA0.GPIO_Label=DS1_6
+PA0.Locked=true
+PA0.Signal=GPIO_Output
+PA1.GPIOParameters=GPIO_Label
+PA1.GPIO_Label=DS1_5
+PA1.Locked=true
+PA1.Signal=GPIO_Output
+PA10.GPIOParameters=GPIO_Label
+PA10.GPIO_Label=DS7_2
+PA10.Locked=true
+PA10.Signal=GPIO_Output
+PA11.GPIOParameters=GPIO_Label
+PA11.GPIO_Label=DS7_1
+PA11.Locked=true
+PA11.Signal=GPIO_Output
+PA12.GPIOParameters=GPIO_Label
+PA12.GPIO_Label=DS6_7
+PA12.Locked=true
+PA12.Signal=GPIO_Output
 PA13.Mode=Serial_Wire
 PA13.Signal=SYS_SWDIO
 PA14.Mode=Serial_Wire
 PA14.Signal=SYS_SWCLK
+PA15.GPIOParameters=GPIO_Label
+PA15.GPIO_Label=DS6_5
+PA15.Locked=true
+PA15.Signal=GPIO_Output
+PA2.GPIOParameters=GPIO_Label
+PA2.GPIO_Label=DS1_4
+PA2.Locked=true
+PA2.Signal=GPIO_Output
+PA3.GPIOParameters=GPIO_Label
+PA3.GPIO_Label=DS1_3
+PA3.Locked=true
+PA3.Signal=GPIO_Output
+PA4.GPIOParameters=GPIO_Label
+PA4.GPIO_Label=DS1_2
+PA4.Locked=true
+PA4.Signal=GPIO_Output
+PA5.GPIOParameters=GPIO_Label
+PA5.GPIO_Label=DS1_1
+PA5.Locked=true
+PA5.Signal=GPIO_Output
+PA7.GPIOParameters=GPIO_PuPd,GPIO_Label
+PA7.GPIO_Label=ETHB_1
+PA7.GPIO_PuPd=GPIO_PULLDOWN
+PA7.Locked=true
+PA7.Signal=GPIO_Input
+PA8.GPIOParameters=GPIO_Label
+PA8.GPIO_Label=DS7_4
+PA8.Locked=true
+PA8.Signal=GPIO_Output
+PA9.GPIOParameters=GPIO_Label
+PA9.GPIO_Label=DS7_3
+PA9.Locked=true
+PA9.Signal=GPIO_Output
+PB0.GPIOParameters=GPIO_PuPd,GPIO_Label
+PB0.GPIO_Label=ETHB_4
+PB0.GPIO_PuPd=GPIO_PULLDOWN
+PB0.Locked=true
+PB0.Signal=GPIO_Input
+PB1.GPIOParameters=GPIO_PuPd,GPIO_Label
+PB1.GPIO_Label=ETHB_5
+PB1.GPIO_PuPd=GPIO_PULLDOWN
+PB1.Locked=true
+PB1.Signal=GPIO_Input
+PB10.GPIOParameters=GPIO_Label
+PB10.GPIO_Label=ETHA_7
+PB10.Locked=true
+PB10.Signal=GPIO_Output
+PB11.GPIOParameters=GPIO_Label
+PB11.GPIO_Label=ETHA_8
+PB11.Locked=true
+PB11.Signal=GPIO_Output
+PB15.GPIOParameters=GPIO_Label
+PB15.GPIO_Label=EN_2V
+PB15.Locked=true
+PB15.Signal=GPIO_Output
+PB2.GPIOParameters=GPIO_PuPd,GPIO_Label
+PB2.GPIO_Label=ETHB_6
+PB2.GPIO_PuPd=GPIO_PULLDOWN
+PB2.Locked=true
+PB2.Signal=GPIO_Input
+PB3.GPIOParameters=GPIO_Label
+PB3.GPIO_Label=DS4_7
+PB3.Locked=true
+PB3.Signal=GPIO_Output
+PB4.GPIOParameters=GPIO_Label
+PB4.GPIO_Label=DS4_6
+PB4.Locked=true
+PB4.Signal=GPIO_Output
+PB5.GPIOParameters=GPIO_Label
+PB5.GPIO_Label=DS4_5
+PB5.Locked=true
+PB5.Signal=GPIO_Output
+PB6.GPIOParameters=GPIO_Label
+PB6.GPIO_Label=DS4_4
+PB6.Locked=true
+PB6.Signal=GPIO_Output
+PB7.GPIOParameters=GPIO_Label
+PB7.GPIO_Label=DS4_3
+PB7.Locked=true
+PB7.Signal=GPIO_Output
+PB8.GPIOParameters=GPIO_Label
+PB8.GPIO_Label=DS4_2
+PB8.Locked=true
+PB8.Signal=GPIO_Output
+PB9.GPIOParameters=GPIO_Label
+PB9.GPIO_Label=DS4_1
+PB9.Locked=true
+PB9.Signal=GPIO_Output
+PC0.GPIOParameters=GPIO_Label
+PC0.GPIO_Label=DS2_4
+PC0.Locked=true
+PC0.Signal=GPIO_Output
+PC1.GPIOParameters=GPIO_Label
+PC1.GPIO_Label=DS2_3
+PC1.Locked=true
+PC1.Signal=GPIO_Output
+PC10.GPIOParameters=GPIO_Label
+PC10.GPIO_Label=DS6_4
+PC10.Locked=true
+PC10.Signal=GPIO_Output
+PC11.GPIOParameters=GPIO_Label
+PC11.GPIO_Label=DS6_3
+PC11.Locked=true
+PC11.Signal=GPIO_Output
+PC12.GPIOParameters=GPIO_Label
+PC12.GPIO_Label=DS6_2
+PC12.Locked=true
+PC12.Signal=GPIO_Output
+PC13.GPIOParameters=GPIO_Label
+PC13.GPIO_Label=DS2_7
+PC13.Locked=true
+PC13.Signal=GPIO_Output
+PC2.GPIOParameters=GPIO_Label
+PC2.GPIO_Label=DS2_2
+PC2.Locked=true
+PC2.Signal=GPIO_Output
+PC3.GPIOParameters=GPIO_Label
+PC3.GPIO_Label=DS2_1
+PC3.Locked=true
+PC3.Signal=GPIO_Output
+PC4.GPIOParameters=GPIO_PuPd,GPIO_Label
+PC4.GPIO_Label=ETHB_2
+PC4.GPIO_PuPd=GPIO_PULLDOWN
+PC4.Locked=true
+PC4.Signal=GPIO_Input
+PC5.GPIOParameters=GPIO_PuPd,GPIO_Label
+PC5.GPIO_Label=ETHB_3
+PC5.GPIO_PuPd=GPIO_PULLDOWN
+PC5.Locked=true
+PC5.Signal=GPIO_Input
+PC7.GPIOParameters=GPIO_Label
+PC7.GPIO_Label=DS7_7
+PC7.Locked=true
+PC7.Signal=GPIO_Output
+PC8.GPIOParameters=GPIO_Label
+PC8.GPIO_Label=DS7_6
+PC8.Locked=true
+PC8.Signal=GPIO_Output
+PC9.GPIOParameters=GPIO_Label
+PC9.GPIO_Label=DS7_5
+PC9.Locked=true
+PC9.Signal=GPIO_Output
 PCC.Checker=false
 PCC.Line=STM32F0x1
 PCC.MCU=STM32F071V(8-B)Tx
@@ -36,10 +271,149 @@ PCC.Seq0=0
 PCC.Series=STM32F0
 PCC.Temperature=25
 PCC.Vdd=3.6
+PD0.GPIOParameters=GPIO_Label
+PD0.GPIO_Label=DS6_1
+PD0.Locked=true
+PD0.Signal=GPIO_Output
+PD1.GPIOParameters=GPIO_Label
+PD1.GPIO_Label=DS5_7
+PD1.Locked=true
+PD1.Signal=GPIO_Output
+PD10.GPIOParameters=GPIO_Label
+PD10.GPIO_Label=DS8_6
+PD10.Locked=true
+PD10.Signal=GPIO_Output
+PD11.GPIOParameters=GPIO_Label
+PD11.GPIO_Label=DS8_5
+PD11.Locked=true
+PD11.Signal=GPIO_Output
+PD12.GPIOParameters=GPIO_Label
+PD12.GPIO_Label=DS8_4
+PD12.Locked=true
+PD12.Signal=GPIO_Output
+PD13.GPIOParameters=GPIO_Label
+PD13.GPIO_Label=DS8_3
+PD13.Locked=true
+PD13.Signal=GPIO_Output
+PD14.GPIOParameters=GPIO_Label
+PD14.GPIO_Label=DS8_2
+PD14.Locked=true
+PD14.Signal=GPIO_Output
+PD15.GPIOParameters=GPIO_Label
+PD15.GPIO_Label=DS8_1
+PD15.Locked=true
+PD15.Signal=GPIO_Output
+PD2.GPIOParameters=GPIO_Label
+PD2.GPIO_Label=DS5_6
+PD2.Locked=true
+PD2.Signal=GPIO_Output
+PD3.GPIOParameters=GPIO_Label
+PD3.GPIO_Label=DS5_5
+PD3.Locked=true
+PD3.Signal=GPIO_Output
+PD4.GPIOParameters=GPIO_Label
+PD4.GPIO_Label=DS5_4
+PD4.Locked=true
+PD4.Signal=GPIO_Output
+PD5.GPIOParameters=GPIO_Label
+PD5.GPIO_Label=DS5_3
+PD5.Locked=true
+PD5.Signal=GPIO_Output
+PD6.GPIOParameters=GPIO_Label
+PD6.GPIO_Label=DS5_2
+PD6.Locked=true
+PD6.Signal=GPIO_Output
+PD7.GPIOParameters=GPIO_Label
+PD7.GPIO_Label=DS5_1
+PD7.Locked=true
+PD7.Signal=GPIO_Output
+PD8.GPIOParameters=GPIO_PuPd,GPIO_Label
+PD8.GPIO_Label=BTN
+PD8.GPIO_PuPd=GPIO_PULLDOWN
+PD8.Locked=true
+PD8.Signal=GPIO_Input
+PD9.GPIOParameters=GPIO_Label
+PD9.GPIO_Label=DS8_7
+PD9.Locked=true
+PD9.Signal=GPIO_Output
+PE0.GPIOParameters=GPIO_Label
+PE0.GPIO_Label=DS3_7
+PE0.Locked=true
+PE0.Signal=GPIO_Output
+PE1.GPIOParameters=GPIO_Label
+PE1.GPIO_Label=DS3_6
+PE1.Locked=true
+PE1.Signal=GPIO_Output
+PE10.GPIOParameters=GPIO_Label
+PE10.GPIO_Label=ETHA_1
+PE10.Locked=true
+PE10.Signal=GPIO_Output
+PE11.GPIOParameters=GPIO_Label
+PE11.GPIO_Label=ETHA_2
+PE11.Locked=true
+PE11.Signal=GPIO_Output
+PE12.GPIOParameters=GPIO_Label
+PE12.GPIO_Label=ETHA_3
+PE12.Locked=true
+PE12.Signal=GPIO_Output
+PE13.GPIOParameters=GPIO_Label
+PE13.GPIO_Label=ETHA_4
+PE13.Locked=true
+PE13.Signal=GPIO_Output
+PE14.GPIOParameters=GPIO_Label
+PE14.GPIO_Label=ETHA_5
+PE14.Locked=true
+PE14.Signal=GPIO_Output
+PE15.GPIOParameters=GPIO_Label
+PE15.GPIO_Label=ETHA_6
+PE15.Locked=true
+PE15.Signal=GPIO_Output
 PE2.GPIOParameters=GPIO_Label
-PE2.GPIO_Label=POINT_TEST
+PE2.GPIO_Label=DS3_5
 PE2.Locked=true
 PE2.Signal=GPIO_Output
+PE3.GPIOParameters=GPIO_Label
+PE3.GPIO_Label=DS3_4
+PE3.Locked=true
+PE3.Signal=GPIO_Output
+PE4.GPIOParameters=GPIO_Label
+PE4.GPIO_Label=DS3_3
+PE4.Locked=true
+PE4.Signal=GPIO_Output
+PE5.GPIOParameters=GPIO_Label
+PE5.GPIO_Label=DS3_2
+PE5.Locked=true
+PE5.Signal=GPIO_Output
+PE6.GPIOParameters=GPIO_Label
+PE6.GPIO_Label=DS3_1
+PE6.Locked=true
+PE6.Signal=GPIO_Output
+PE7.GPIOParameters=GPIO_PuPd,GPIO_Label
+PE7.GPIO_Label=ETHB_7
+PE7.GPIO_PuPd=GPIO_PULLDOWN
+PE7.Locked=true
+PE7.Signal=GPIO_Input
+PE8.GPIOParameters=GPIO_PuPd,GPIO_Label
+PE8.GPIO_Label=ETHB_8
+PE8.GPIO_PuPd=GPIO_PULLDOWN
+PE8.Locked=true
+PE8.Signal=GPIO_Input
+PF10.GPIOParameters=GPIO_Label
+PF10.GPIO_Label=DS2_5
+PF10.Locked=true
+PF10.Signal=GPIO_Output
+PF3.GPIOParameters=GPIO_Label
+PF3.GPIO_Label=DS1_7
+PF3.Locked=true
+PF3.Signal=GPIO_Output
+PF6.GPIOParameters=GPIO_Label
+PF6.GPIO_Label=DS6_6
+PF6.Locked=true
+PF6.Signal=GPIO_Output
+PF9.GPIOParameters=GPIO_Label
+PF9.GPIO_Label=DS2_6
+PF9.Locked=true
+PF9.Signal=GPIO_Output
 PinOutPanel.RotationAngle=0
 ProjectManager.AskForMigrate=true
 ProjectManager.BackupPrevious=false