diff --git a/ArduinoZeroTemplate.cproj b/ArduinoZeroTemplate.cproj
index 5fb17d2d543dba46214d9d376159f5cea41fd6f3..7fcf298263f0cf11ee30de9a48dc511e0ad5fb0b 100644
--- a/ArduinoZeroTemplate.cproj
+++ b/ArduinoZeroTemplate.cproj
@@ -250,12 +250,12 @@
     <file path="src/ASF/sam0/drivers/sercom/usart/quick_start_callback/qs_usart_callback.h" framework="" version="3.49.1" source="sam0\drivers\sercom\usart\quick_start_callback\qs_usart_callback.h" changed="False" content-id="Atmel.ASF" />
     <file path="src/ASF/sam0/drivers/sercom/usart/usart.h" framework="" version="3.49.1" source="sam0\drivers\sercom\usart\usart.h" changed="False" content-id="Atmel.ASF" />
     <file path="src/ASF/sam0/drivers/sercom/usart/quick_start_dma/qs_usart_dma_use.h" framework="" version="3.49.1" source="sam0\drivers\sercom\usart\quick_start_dma\qs_usart_dma_use.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/sam0/drivers/adc/adc.h" framework="" version="3.49.1" source="sam0\drivers\adc\adc.h" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/sam0/drivers/adc/adc_sam_d_r_h/adc.c" framework="" version="3.49.1" source="sam0\drivers\adc\adc_sam_d_r_h\adc.c" changed="False" content-id="Atmel.ASF" />
-    <file path="src/ASF/sam0/drivers/adc/adc_sam_d_r_h/adc_feature.h" framework="" version="3.49.1" source="sam0\drivers\adc\adc_sam_d_r_h\adc_feature.h" changed="False" content-id="Atmel.ASF" />
     <file path="src/ASF/sam0/drivers/wdt/wdt.c" framework="" version="3.49.1" source="sam0\drivers\wdt\wdt.c" changed="False" content-id="Atmel.ASF" />
     <file path="src/ASF/sam0/drivers/wdt/wdt.h" framework="" version="3.49.1" source="sam0\drivers\wdt\wdt.h" changed="False" content-id="Atmel.ASF" />
     <file path="src/ASF/sam0/drivers/wdt/quick_start/qs_wdt_basic.h" framework="" version="3.49.1" source="sam0\drivers\wdt\quick_start\qs_wdt_basic.h" changed="False" content-id="Atmel.ASF" />
+    <file path="src/ASF/sam0/drivers/adc/adc.h" framework="" version="3.49.1" source="sam0\drivers\adc\adc.h" changed="False" content-id="Atmel.ASF" />
+    <file path="src/ASF/sam0/drivers/adc/adc_sam_d_r_h/adc.c" framework="" version="3.49.1" source="sam0\drivers\adc\adc_sam_d_r_h\adc.c" changed="False" content-id="Atmel.ASF" />
+    <file path="src/ASF/sam0/drivers/adc/adc_sam_d_r_h/adc_feature.h" framework="" version="3.49.1" source="sam0\drivers\adc\adc_sam_d_r_h\adc_feature.h" changed="False" content-id="Atmel.ASF" />
   </files>
   <documentation help="https://asf.microchip.com/docs/3.49.1/common.applications.user_application.sam0_system.user_board.atsamd21g18a/html/index.html" />
   <offline-documentation help="" />
@@ -659,12 +659,6 @@
     <Compile Include="src\ArduinoZeroTemplate.h">
       <SubType>compile</SubType>
     </Compile>
-    <None Include="src\ASF\sam0\drivers\dac\dac.h">
-      <SubType>compile</SubType>
-    </None>
-    <None Include="src\asf.h">
-      <SubType>compile</SubType>
-    </None>
     <None Include="src\ASF\sam0\drivers\adc\adc.h">
       <SubType>compile</SubType>
     </None>
@@ -674,6 +668,15 @@
     <None Include="src\ASF\sam0\drivers\adc\adc_sam_d_r_h\adc_feature.h">
       <SubType>compile</SubType>
     </None>
+    <Compile Include="src\mymacros.h">
+      <SubType>compile</SubType>
+    </Compile>
+    <None Include="src\ASF\sam0\drivers\dac\dac.h">
+      <SubType>compile</SubType>
+    </None>
+    <None Include="src\asf.h">
+      <SubType>compile</SubType>
+    </None>
     <Compile Include="src\ASF\sam0\drivers\dac\dac_sam_d_c_h\dac.c">
       <SubType>compile</SubType>
     </Compile>
@@ -1298,9 +1301,6 @@
     <Compile Include="src\config\asf.h">
       <SubType>compile</SubType>
     </Compile>
-    <Compile Include="src\macros.h">
-      <SubType>compile</SubType>
-    </Compile>
     <Compile Include="src\main.c">
       <SubType>compile</SubType>
     </Compile>
diff --git a/src/ArduinoZeroTemplate.c b/src/ArduinoZeroTemplate.c
index b0d900625147ac7a9e9172f713a2ec694790ce21..eb6e808a738eacccc0517376a4d6507bf1b9ecc6 100644
--- a/src/ArduinoZeroTemplate.c
+++ b/src/ArduinoZeroTemplate.c
@@ -7,7 +7,7 @@
 
 #include <asf.h>
 #include "ArduinoZeroTemplate.h"
-#include "macros.h"
+#include "mymacros.h"
 
 
 // Globala variabler
@@ -58,12 +58,18 @@ void ArduinoZeroTemplate(void)
 		}
 	}
 
-	// Create example of using ADC
+	// ADC example
+	ADC_Convert(ADC_INPUT_EXAMPLE);
+
+	// DAC example. All configuration needed is already done in Init. DAC is 10 bits and can convert in 350 ksps
+	dac_chan_write(&dac0_instance_struct, DAC_CHANNEL_0, 1023);	// 1023 is the value and is also maximum value.
 	
+//	Serial.begin(115200);
+
 	while (true)
 	{			
 	}// end while (true) infinite loop
-}// end ArduinoZeroTemplate
+}// end **** ArduinoZeroTemplate ****
 
 void ArduinoZeroTemplateInit(void)
 {
@@ -223,7 +229,7 @@ void ArduinoZeroTemplateInit(void)
 		dac_config_struct.reference = DAC_REFERENCE_AVCC;
 		dac_init(&dac0_instance_struct, DAC, &dac_config_struct);
 		dac_enable(&dac0_instance_struct);
-		// In the future the above should be done per DAC channel instead there each DAC in a device is supposed to be a channel.
+		// In the future the above should be done per DAC channel there each DAC in a device is supposed to be a channel.
 		// But in the current version of ASF there is no support for DAC channels. See dac.h
 		// Note: There are just a few SAM devices that has more than one DAC, like the SAM4L-family.
 
@@ -232,15 +238,35 @@ void ArduinoZeroTemplateInit(void)
 	// Internal ADC
 		adc_get_config_defaults(&adc_config_struct);
 		adc_config_struct.clock_source = GCLK_GENERATOR_4;
-		
 
 	// Clock timer
 		Init1msClock();
-} // end init
+} // **** end init ****
+
+uint_fast16_t ADC_Convert(uint8_t adcinput)
+{
+	static uint_fast16_t light=0;
+	uint16_t adcValue=0;
+	uint_fast16_t adcStatus=0;
+	struct adc_config adc_config_struct;							// ADC configuration structure
+
+	adc_get_config_defaults(&adc_config_struct);
+	adc_config_struct.positive_input  = adcinput;
+	adc_config_struct.reference = ADC_REFERENCE_INTVCC0;
+	adc_init(&adc0_instance_struct, ADC, &adc_config_struct);
+	adc_start_conversion(&adc0_instance_struct);
+	do
+	{
+		adcStatus = adc_read(&adc0_instance_struct, &adcValue);
+	}
+	while (adcStatus == STATUS_BUSY);
+	light = adcValue;
+	return light;
+}
 
 void usart5_read_callback(struct usart_module *const usart_module)
 {
-	// Here some signaling to main should be done. This is an example.
+	// Here some signaling to main should be done. This is an example of setting a flag after reception of a command.
 	usart5_command_received = true;
 }
 
diff --git a/src/ArduinoZeroTemplate.h b/src/ArduinoZeroTemplate.h
index b97329fd913d7cc1374ab343bfa296f930d90eaa..154aa512ff5871327e757d281e6f340021042fae 100644
--- a/src/ArduinoZeroTemplate.h
+++ b/src/ArduinoZeroTemplate.h
@@ -131,18 +131,20 @@ Available for user
 	#define TIMEOUT					3				// Nr of retries
 	*/
 
-	// For internal DAC if used
+	// For internal DAC if used. There is only one output so this is it!
+	// DAC is 10 bits and can convert in 350 ksps
 	#define DAC_PIN				PIN_PA02	// Min 5 kohm load, max 100 pF.
 
 	// USART5 in UART mode if used:
 	#define MAX_USART5_RX_BUFFER_LENGTH	5
 	
-	// Analog in addition in progress
-	// How to read is missing.
+	// For ADC if used
+	#define ADC_INPUT_EXAMPLE	ADC_POSITIVE_INPUT_PIN1	// PA01.
 
 // Functions
-void ArduinoZeroTemplateInit(void);
 void ArduinoZeroTemplate(void);
+void ArduinoZeroTemplateInit(void);
+uint_fast16_t ADC_Convert(uint8_t adcinput);
 void Update1msClock(void);
 void Init1msClock(void);
 
diff --git a/src/macros.h b/src/mymacros.h
similarity index 100%
rename from src/macros.h
rename to src/mymacros.h