<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>marcoriedi &#8211; CONTROLLINO</title>
	<atom:link href="https://www.controllino.com/author/marcoriedi/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.controllino.com</link>
	<description>Industrial PLCs &#124; 100% Arduino-compatible</description>
	<lastBuildDate>Wed, 10 Jan 2024 09:10:19 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://www.controllino.com/wp-content/uploads/2023/05/cropped-C_Logo_Filled_RGB-1-32x32.png</url>
	<title>marcoriedi &#8211; CONTROLLINO</title>
	<link>https://www.controllino.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Improve Your Training with &#8220;Factory Simulation 24V&#8221;</title>
		<link>https://www.controllino.com/improve-your-training-with-factory-simulation-24v/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Wed, 10 Jan 2024 09:09:05 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=15549</guid>

					<description><![CDATA[In the realm of industrial automation and digitalization, hands-on training and simulation are invaluable. Recognizing this need, our partner Fischer Technik has launched an innovative product that&#8217;s set to change the game in education and training: the Factory Simulation 24V &#8211; Simulation + Controllino. A Comprehensive Training and Simulation Model This comprehensive system integrates various [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In the realm of industrial automation and digitalization, hands-on training and simulation are invaluable. Recognizing this need, our partner Fischer Technik has launched an innovative product that&#8217;s set to change the game in education and training: the Factory Simulation 24V &#8211; Simulation + Controllino.</p>



<h3 class="wp-block-heading"><strong>A Comprehensive Training and Simulation Model</strong></h3>



<p class="wp-block-paragraph">This comprehensive system integrates various models such as a sorting line with color recognition, a multi-machining station with a kiln, an automated high-bay warehouse, and a vacuum suction gripper. What sets it apart is the closed material circuit. Workpieces are retrieved from the high-bay warehouse, processed at the machining station, color-sorted at the sorting station, and then returned to the warehouse. This cycle offers a realistic industrial automation experience.</p>



<h3 class="wp-block-heading"><strong>Advantages</strong></h3>



<ul class="wp-block-list">
<li>Educational Excellence: Perfect for education and training in industrial automation and Industry 4.0/digitalization.</li>



<li>Stability and Convenience: The model is pre-built, stable, and mounted on a wooden plate, ensuring ease of use and durability. It&#8217;s also packed in a sturdy cardboard box for secure transportation.</li>



<li>24V Industry Standard: Complies with industry standards, making it ideal for professional training.</li>



<li>Inclusive of Controllino: A powerful tool that enhances the learning and simulation experience.</li>



<li></li>
</ul>



<h3 class="wp-block-heading"><strong>Find out more about the product:</strong></h3>



<p class="wp-block-paragraph"><a href="https://www.fischertechnikwebshop.com/en-gb/factory-simulation-24v-complete-set-with-controlinno-536634-cl-01-en-gb">https://www.fischertechnikwebshop.com/en-gb/factory-simulation-24v-complete-set-with-controlinno-536634-cl-01-en-gb</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>HTTP Web Client</title>
		<link>https://www.controllino.com/http-web-client/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 10:50:30 +0000</pubDate>
				<category><![CDATA[MICRO]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=15025</guid>

					<description><![CDATA[Introduction Welcome to the &#8220;HTTP Web Client&#8221; tutorial using the CONTROLLINO MICRO. In this tutorial, we will learn how to create a web client that connects to a web server, using the provided example code as a starting point. Prerequisites Example Code Please grab the following example .ino file from Github: Step-by-Step Guide Step 1: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">Welcome to the &#8220;HTTP Web Client&#8221; tutorial using the CONTROLLINO MICRO. In this tutorial, we will learn how to create a web client that connects to a web server, using the provided example code as a starting point.</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<ul class="wp-block-list">
<li>Installed Arduino IDE.</li>



<li>CONTROLLINO MICRO board.</li>
</ul>



<h2 class="wp-block-heading">Example Code</h2>



<p class="wp-block-paragraph">Please grab the following example .ino file from Github:</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/CONTROLLINO-PLC/controllino_rp2040_firmware/blob/master/examples/arduino/common/WebClientRepeating/WebClientRepeating.ino" target="_blank" rel="noreferrer noopener">HTTP Web Client Example</a></div>
</div>



<h2 class="wp-block-heading">Step-by-Step Guide</h2>



<h3 class="wp-block-heading">Step 1: Setup the Arduino Environment</h3>



<ol class="wp-block-list">
<li><strong>Connect your MICRO </strong>to your computer.</li>



<li>Open the <strong>Arduino IDE</strong>.</li>



<li>Ensure that the <strong>appropriate board and port</strong> are selected in the Tools menu.</li>
</ol>



<h3 class="wp-block-heading">Step 2: Understanding the Code</h3>



<p class="wp-block-paragraph">The example code can be broken down into several key parts:</p>



<h4 class="wp-block-heading">Initialization</h4>



<ul class="wp-block-list">
<li><strong>MAC Address</strong>: A unique identifier for your network interface. You can use the provided address.</li>



<li><strong>IP and DNS</strong>: Optionally, you can set a static IP and DNS server address if DHCP fails.</li>
</ul>



<h4 class="wp-block-heading">Setup Function</h4>



<ul class="wp-block-list">
<li><strong>Start Serial Communication</strong>: Initialize serial communication for debugging.</li>



<li><strong>Initialize Ethernet</strong>: Attempt to start Ethernet with DHCP. If it fails, it uses the static IP set earlier.</li>
</ul>



<h4 class="wp-block-heading">Loop Function</h4>



<ul class="wp-block-list">
<li><strong>Handle Incoming Data</strong>: If data is received from the Ethernet, it is printed to the serial monitor for debugging.</li>



<li><strong>Reconnect and Send Requests</strong>: Every 10 seconds (as set by <code>postingInterval</code>), the <code>httpRequest</code> function is called to send a new request.</li>
</ul>



<h4 class="wp-block-heading">HTTP Request Function</h4>



<ul class="wp-block-list">
<li><strong>Connect to Server</strong>: Attempt to connect to the specified server on port 80.</li>



<li><strong>Send HTTP Request</strong>: If the connection is successful, send an HTTP GET request.</li>



<li><strong>Handle Failed Connection</strong>: If the connection fails, print an error message.</li>
</ul>



<h3 class="wp-block-heading">Step 3: Create the Web Client</h3>



<ol class="wp-block-list">
<li><strong>Modify the MAC Address</strong>: Change the <code>mac[]</code> array if you want to use a different MAC address.</li>



<li><strong>Set IP and DNS (Optional)</strong>: Modify <code>ip</code> and <code>myDns</code> if you need to use a static IP and DNS.</li>



<li><strong>Change Server Address</strong>: Replace <code>server[]</code> with the address of the web server you want to connect to.</li>



<li><strong>Upload Code</strong>: Connect your CONTROLLINO MICRO to your computer, select the appropriate board and port in the Arduino IDE, and upload the code.</li>



<li><strong>Monitor Output</strong>: Open the Serial Monitor in the Arduino IDE to see debug output and responses from the server.</li>
</ol>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">You now have a basic web client running on your CONTROLLINO MICRO. This client connects to a specified web server, sends an HTTP GET request, and prints the response. You can expand on this by modifying the request, handling different types of responses, or integrating this functionality into a larger project.</p>



<p class="wp-block-paragraph">Remember, networking can sometimes be tricky, so don&#8217;t hesitate to experiment and troubleshoot as needed. Enjoy exploring the capabilities of your CONTROLLINO MICRO!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Scan for I2C Devices</title>
		<link>https://www.controllino.com/scan-for-i2c-devices/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 10:43:42 +0000</pubDate>
				<category><![CDATA[MICRO]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=15023</guid>

					<description><![CDATA[Introduction The I2C (Inter-Integrated Circuit) protocol is a popular means of communication between various sensors and devices. In this tutorial, we will learn how to create an I2C scanner using the CONTROLLINO MICRO, which is useful for detecting the I2C addresses of devices connected to your microcontroller. Prerequisites Example Code Please grab the following example [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">The I2C (Inter-Integrated Circuit) protocol is a popular means of communication between various sensors and devices. In this tutorial, we will learn how to create an I2C scanner using the CONTROLLINO MICRO, which is useful for detecting the I2C addresses of devices connected to your microcontroller.</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<ul class="wp-block-list">
<li>Installed Arduino IDE.</li>



<li>CONTROLLINO MICRO board.</li>
</ul>



<h2 class="wp-block-heading">Example Code</h2>



<p class="wp-block-paragraph">Please grab the following example .ino file from Github:</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/CONTROLLINO-PLC/controllino_rp2040_firmware/blob/master/examples/arduino/common/i2c_scanner/i2c_scanner.ino" target="_blank" rel="noreferrer noopener">I2C Scanner Example</a></div>
</div>



<h2 class="wp-block-heading">Step-by-Step Guide</h2>



<h3 class="wp-block-heading">Step 1: Setup the Arduino Environment</h3>



<ol class="wp-block-list">
<li><strong>Connect your MICRO </strong>to your computer.</li>



<li>Open the <strong>Arduino IDE</strong>.</li>



<li>Ensure that the <strong>appropriate board and port</strong> are selected in the Tools menu.</li>
</ol>



<h3 class="wp-block-heading">Step 2: Understanding the Code</h3>



<h4 class="wp-block-heading">The Setup Function</h4>



<pre class="wp-block-code"><code>void setup()
{
  Wire.setSDA(PIN_WIRE0_SDA);
  Wire.setSCL(PIN_WIRE0_SCL);
  Wire.begin();
  Serial.begin(9600);
  while (!Serial);
  Serial.println("\nI2C Scanner");
}
</code></pre>



<ul class="wp-block-list">
<li><code>Wire.setSDA()</code> and <code>Wire.setSCL()</code>: Sets the SDA (data line) and SCL (clock line) pins for I2C communication.</li>



<li><code>Wire.begin()</code>: Initializes the I2C bus.</li>



<li><code>Serial.begin(9600)</code>: Starts serial communication at 9600 baud rate.</li>



<li><code>Serial.println("\nI2C Scanner")</code>: Prints a message to the Serial Monitor.</li>
</ul>



<h4 class="wp-block-heading">The Loop Function</h4>



<pre class="wp-block-code"><code>void loop()
{
  byte error, address;
  int nDevices;
  Serial.println("Scanning...");
  nDevices = 0;
  for (address = 1; address &lt; 127; address++)
  {
    Wire.beginTransmission(address);
    error = Wire.endTransmission();
    if (error == 0)
    {
      // Device found
    }
    else if (error == 4)
    {
      // Unknown error
    }
  }
  // Print scan results
  delay(5000); // Wait for next scan
}
</code></pre>



<ul class="wp-block-list">
<li>Scans I2C addresses from 1 to 126.</li>



<li><code>Wire.beginTransmission(address)</code>: Starts transmission to a device at <code>address</code>.</li>



<li><code>error = Wire.endTransmission()</code>: Ends the transmission and returns an error status.</li>



<li>If <code>error</code> is 0, an I2C device is found.</li>



<li>If <code>error</code> is 4, there&#8217;s an unknown error at the address.</li>
</ul>



<h3 class="wp-block-heading">Step 3: Hardware Setup</h3>



<ol class="wp-block-list">
<li>Connect your I2C device(s) to the CONTROLLINO MICRO.</li>



<li>Ensure proper connections for SDA and SCL lines, along with power and ground.</li>
</ol>



<h3 class="wp-block-heading">Step 4: Using the I2C Scanner</h3>



<ol class="wp-block-list">
<li>Open the Serial Monitor in the Arduino IDE.</li>



<li>Set the baud rate to 9600.</li>



<li>Observe the output. The scanner will list the addresses of detected I2C devices.</li>
</ol>



<h3 class="wp-block-heading">Step 5: Interpreting Results</h3>



<ul class="wp-block-list">
<li>Addresses will be displayed in hexadecimal format.</li>



<li>Note down the addresses of your I2C devices for use in your projects.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">This tutorial has guided you through setting up an I2C scanner on the CONTROLLINO MICRO. This tool is invaluable for troubleshooting and setting up I2C communication with various sensors and peripherals.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Modbus RTU Server</title>
		<link>https://www.controllino.com/modbus-rtu-server/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 10:38:06 +0000</pubDate>
				<category><![CDATA[MICRO]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=15021</guid>

					<description><![CDATA[Introduction This tutorial will guide you through setting up a Modbus RTU server on a CONTROLLINO MICRO. We&#8217;ll be using a modified version of an example code that demonstrates how to control an LED via a Modbus RTU server. Prerequisites Example Code Please grab the following example .ino file from Github: Step-by-Step Guide Step 1: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">This tutorial will guide you through setting up a Modbus RTU server on a CONTROLLINO MICRO. We&#8217;ll be using a modified version of an example code that demonstrates how to control an LED via a Modbus RTU server.</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<ul class="wp-block-list">
<li>Installed Arduino IDE.</li>



<li>CONTROLLINO MICRO board.</li>
</ul>



<h2 class="wp-block-heading">Example Code</h2>



<p class="wp-block-paragraph">Please grab the following example .ino file from Github:</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/CONTROLLINO-PLC/controllino_rp2040_firmware/blob/master/examples/arduino/common/ModbusRTUServerLED/ModbusRTUServerLED.ino" target="_blank" rel="noreferrer noopener">Modbus RTU Server Example</a></div>
</div>



<h2 class="wp-block-heading">Step-by-Step Guide</h2>



<h3 class="wp-block-heading">Step 1: Setup the Arduino Environment</h3>



<ol class="wp-block-list">
<li><strong>Connect your MICRO </strong>to your computer.</li>



<li>Open the <strong>Arduino IDE</strong>.</li>



<li>Ensure that the <strong>appropriate board and port</strong> are selected in the Tools menu.</li>



<li>Install the <code>ArduinoRS485</code> and <code>ArduinoModbus</code> libraries via the Library Manager in the Arduino IDE.</li>
</ol>



<h3 class="wp-block-heading">Step 2: Understanding the Modbus RTU Server Code</h3>



<p class="wp-block-paragraph">The provided code snippet establishes a Modbus RTU server. Here&#8217;s a breakdown:</p>



<ul class="wp-block-list">
<li><strong>Libraries</strong>: Include <code>ArduinoRS485</code> and <code>ArduinoModbus</code>.</li>



<li><strong>RS485 Configuration</strong>: Set up the RS485 serial communication.</li>



<li><strong>Setup Function</strong>: Initialize serial communication, set up the Modbus server and LED.</li>



<li><strong>Loop Function</strong>: Constantly checks for Modbus requests and toggles the LED based on the coil value.</li>
</ul>



<h3 class="wp-block-heading">Step 3: Testing the code</h3>



<p class="wp-block-paragraph">After uploading, your CONTROLLINO MICRO should be ready to respond to Modbus RTU client requests. Use a Modbus RTU client to send requests to your server:</p>



<ul class="wp-block-list">
<li>Writing a value of <code>1</code> to coil address <code>0x00</code> should turn the LED on.</li>



<li>Writing a value of <code>0</code> should turn it off.</li>
</ul>



<h2 class="wp-block-heading">Troubleshooting</h2>



<p class="wp-block-paragraph">If the LED does not respond as expected, check the following:</p>



<ul class="wp-block-list">
<li>Correct wiring of the LED and Modbus connections.</li>



<li>Verify the correct COM port and board settings in the Arduino IDE.</li>



<li>Make sure the Modbus client is correctly configured to communicate with your server.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">You have now successfully created a Modbus RTU server on your CONTROLLINO MICRO. This server can interact with Modbus clients, allowing for various automation and control applications. Experiment with different Modbus registers and functionalities to expand your project!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Modbus TCP Server</title>
		<link>https://www.controllino.com/modbus-tcp-server/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 10:32:57 +0000</pubDate>
				<category><![CDATA[MICRO]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=15019</guid>

					<description><![CDATA[Introduction This tutorial will guide you through setting up a Modbus TCP server on a CONTROLLINO MICRO. We&#8217;ll be using a modified version of an example code that demonstrates how to control an LED via a Modbus TCP server. Prerequisites Example Code Please grab the following example .ino file from Github: Step-by-Step Guide Step 1: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">This tutorial will guide you through setting up a Modbus TCP server on a CONTROLLINO MICRO. We&#8217;ll be using a modified version of an example code that demonstrates how to control an LED via a Modbus TCP server.</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<ul class="wp-block-list">
<li>Installed Arduino IDE.</li>



<li>CONTROLLINO MICRO board.</li>
</ul>



<h2 class="wp-block-heading">Example Code</h2>



<p class="wp-block-paragraph">Please grab the following example .ino file from Github:</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/CONTROLLINO-PLC/controllino_rp2040_firmware/blob/master/examples/arduino/common/EthernetModbusServerLED/EthernetModbusServerLED.ino" target="_blank" rel="noreferrer noopener">Modbus TCP Server Example</a></div>
</div>



<h2 class="wp-block-heading">Step-by-Step Guide</h2>



<h3 class="wp-block-heading">Step 1: Setup the Arduino Environment</h3>



<ol class="wp-block-list">
<li><strong>Connect your MICRO </strong>to your computer.</li>



<li>Open the <strong>Arduino IDE</strong>.</li>



<li>Ensure that the <strong>appropriate board and port</strong> are selected in the Tools menu.</li>



<li>In the Arduino IDE, include the SPI, Ethernet, ArduinoRS485, and ArduinoModbus libraries.</li>
</ol>



<h3 class="wp-block-heading">Step 2: Configure Network Settings</h3>



<p class="wp-block-paragraph">Define a MAC address and IP address for your device. Replace the <code>mac</code> and <code>ip</code> variables with your desired values.</p>



<h3 class="wp-block-heading">Step 3: Initialize Ethernet and Modbus TCP Server</h3>



<p class="wp-block-paragraph">In the <code>setup()</code> function, start the Ethernet connection using <code>Ethernet.begin(mac, ip)</code>. Verify Ethernet hardware and connection status and initialize the Modbus TCP server with <code>modbusTCPServer.begin()</code>.</p>



<h3 class="wp-block-heading">Step 4: Configure Digital Outputs &amp; Modbus Coils</h3>



<p class="wp-block-paragraph">Set the LED pin as an output and initialize it to LOW (off). Configure a single coil at address <code>0x00</code> using <code>modbusTCPServer.configureCoils(0x00, 1)</code>.</p>



<h3 class="wp-block-heading">Step 5: Handling connections and updating the LED value</h3>



<p class="wp-block-paragraph"><strong>Handling Client Connections</strong></p>



<p class="wp-block-paragraph">In the <code>loop()</code> function, use <code>ethServer.available()</code> to listen for incoming clients. Once a client is connected, use <code>modbusTCPServer.accept(client)</code> to accept the connection.</p>



<p class="wp-block-paragraph"><strong>Polling and Controlling the LED</strong></p>



<p class="wp-block-paragraph">Continuously call <code>modbusTCPServer.poll()</code> to listen for Modbus requests. Use <code>updateLED()</code> to read the coil value and update the LED state.</p>



<p class="wp-block-paragraph"><strong>The <code>updateLED</code> Function</strong></p>



<p class="wp-block-paragraph">This function reads the coil value using <code>modbusTCPServer.coilRead(0x00)</code>. It then sets the LED state based on the coil value.</p>



<h2 class="wp-block-heading">Troubleshooting</h2>



<ul class="wp-block-list">
<li>If the LED does not respond, check your network connection and ensure your Modbus client is configured correctly.</li>



<li>Verify the MAC and IP address are correctly set for your network environment.</li>



<li>Make sure the correct board and port are selected in the Arduino IDE.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">You have now successfully created a Modbus TCP server on your CONTROLLINO MICRO. This server can interact with Modbus clients, allowing for various automation and control applications. Experiment with different Modbus registers and functionalities to expand your project!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ECC608 Crypto Chip: Random Number Generator</title>
		<link>https://www.controllino.com/ecc608-crypto-chip-random-number-generator/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 10:26:20 +0000</pubDate>
				<category><![CDATA[MICRO]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=15017</guid>

					<description><![CDATA[Introduction In this tutorial, we will explore how to use the ECC608 Crypto Chip on a CONTROLLINO MICRO board to generate truly random numbers. This is particularly useful in applications requiring high levels of security, such as cryptographic operations, secure communications, or any scenario where unpredictability is crucial. Prerequisites Example Code Please grab the following [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">In this tutorial, we will explore how to use the ECC608 Crypto Chip on a CONTROLLINO MICRO board to generate truly random numbers. This is particularly useful in applications requiring high levels of security, such as cryptographic operations, secure communications, or any scenario where unpredictability is crucial.</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<ul class="wp-block-list">
<li>Installed Arduino IDE.</li>



<li>CONTROLLINO MICRO board.</li>
</ul>



<h2 class="wp-block-heading">Example Code</h2>



<p class="wp-block-paragraph">Please grab the following example .ino file from Github:</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/CONTROLLINO-PLC/controllino_rp2040_firmware/blob/master/examples/arduino/common/ECCX08RandomNumber/ECCX08RandomNumber.ino" target="_blank" rel="noreferrer noopener">ECC608 Random Number Generator Example</a></div>
</div>



<h2 class="wp-block-heading">Step-by-Step Guide</h2>



<h3 class="wp-block-heading">Step 1: Setup the Arduino Environment</h3>



<ol class="wp-block-list">
<li><strong>Connect your MICRO </strong>to your computer.</li>



<li>Open the <strong>Arduino IDE</strong>.</li>



<li>Ensure that the <strong>appropriate board and port</strong> are selected in the Tools menu.</li>
</ol>



<h3 class="wp-block-heading">Step 2: Understanding the Provided Code</h3>



<pre class="wp-block-code"><code>
#include &lt;SPI.h>
#include &lt;ArduinoECCX08.h>

void setup() {
  Serial.begin(115200);
  while (!Serial);
  delay(2000);

  Wire.setSDA(2);
  Wire.setSCL(3);
  
  if (!ECCX08.begin()) {
    Serial.println("Failed to communicate with ECC508/ECC608!");
    while (1);
  }

  if (!ECCX08.locked()) {
    Serial.println("The ECC508/ECC608 is not locked!");
    while (1);
  }
}

void loop() {
  Serial.print("Random number = ");
  Serial.println(ECCX08.random(65535));

  delay(1000);
}</code></pre>



<h3 class="wp-block-heading"><em>Code Breakdown</em></h3>



<ul class="wp-block-list">
<li><strong>Initialization:</strong> The <code>setup()</code> function initializes serial communication and sets up the I2C communication with specific SDA and SCL pins. It also checks if the ECC608 chip is properly communicating and locked for secure operations.</li>



<li><strong>Generating Random Numbers:</strong> The <code>loop()</code> function continuously generates a random number using <code>ECCX08.random(65535)</code> and prints it to the Serial Monitor every second.</li>
</ul>



<h3 class="wp-block-heading">Step 3: Running the Code</h3>



<ol class="wp-block-list">
<li>Copy the provided code into a new sketch in the Arduino IDE.</li>



<li>Upload the sketch to your CONTROLLINO MICRO.</li>



<li>Open the Serial Monitor (<code>Tools &gt; Serial Monitor</code>) to view the random numbers being generated.</li>
</ol>



<h2 class="wp-block-heading">Troubleshooting</h2>



<ul class="wp-block-list">
<li>If the Serial Monitor displays an error related to the ECC608 chip, ensure that the chip is correctly configured and locked.</li>



<li>For any issues related to the Arduino IDE or board connections, consult the official Arduino forums or documentation.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">By following this tutorial, you have successfully used the ECC608 Crypto Chip on your CONTROLLINO MICRO to generate truly random numbers. This functionality can be integrated into larger projects where secure random number generation is required.</p>



<p class="wp-block-paragraph">Feel free to modify the code to suit your specific application needs, and explore other capabilities of the ECC608 chip to enhance the security of your projects.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>ECC608 Crypto Chip: Self-signed Certificate</title>
		<link>https://www.controllino.com/ecc608-crypto-chip-self-signed-certificate/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 10:18:26 +0000</pubDate>
				<category><![CDATA[MICRO]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=15015</guid>

					<description><![CDATA[Introduction Creating a self-signed certificate using the ECC608 crypto chip involves generating a private key within the chip and then creating a certificate that is signed with this key. This tutorial demonstrates the process using CONTROLLINO MICRO and the ECC608 chip. Prerequisites Example Code Please grab the following example .ino file from Github: Step-by-Step Guide [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">Creating a self-signed certificate using the ECC608 crypto chip involves generating a private key within the chip and then creating a certificate that is signed with this key. This tutorial demonstrates the process using CONTROLLINO MICRO and the ECC608 chip.</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<ul class="wp-block-list">
<li>Installed Arduino IDE.</li>



<li>CONTROLLINO MICRO board.</li>
</ul>



<h2 class="wp-block-heading">Example Code</h2>



<p class="wp-block-paragraph">Please grab the following example .ino file from Github:</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/CONTROLLINO-PLC/controllino_rp2040_firmware/blob/master/examples/arduino/common/ECCX08SelfSignedCert/ECCX08SelfSignedCert.ino" target="_blank" rel="noreferrer noopener">ECC608 Self-Signed Cert Example</a></div>
</div>



<h2 class="wp-block-heading">Step-by-Step Guide</h2>



<h3 class="wp-block-heading">Step 1: Setup the Arduino Environment</h3>



<ol class="wp-block-list">
<li><strong>Connect your MICRO </strong>to your computer.</li>



<li>Open the <strong>Arduino IDE</strong>.</li>



<li>Ensure that the <strong>appropriate board and port</strong> are selected in the Tools menu.</li>
</ol>



<h3 class="wp-block-heading">Step 2: Understanding the Provided Code</h3>



<p class="wp-block-paragraph">The provided example code performs the following functions:</p>



<ul class="wp-block-list">
<li>Initializes the ECC608 chip.</li>



<li>Checks if the chip is locked and prompts the user to lock it with a default TLS configuration if not.</li>



<li>Gathers input for certificate details such as issue date, expiry, and slot numbers for key storage.</li>



<li>Generates a new private key (if required) and a self-signed certificate.</li>



<li>Outputs the certificate and its SHA1 fingerprint.</li>
</ul>



<h3 class="wp-block-heading">Step 3: Load the Example Code</h3>



<ol class="wp-block-list">
<li>Copy the provided code into a new sketch in the Arduino IDE.</li>



<li>Review the code to understand its flow and functionality.</li>
</ol>



<h3 class="wp-block-heading">Step 4: Modify the Code (Optional)</h3>



<p class="wp-block-paragraph">You can modify the default values or add additional functionality as needed. For instance, you might want to change the default slot numbers or the default years of validity for the certificate.</p>



<h3 class="wp-block-heading">Step 5: Compile and Upload the Code</h3>



<ol class="wp-block-list">
<li>Click on the <strong>Verify</strong> button to compile the code.</li>



<li>Click on the <strong>Upload</strong> button to upload the code to your Arduino MKR board.</li>
</ol>



<h3 class="wp-block-heading">Step 6: Interact with the Program</h3>



<p class="wp-block-paragraph">After uploading, open the Serial Monitor. You will see prompts asking for various details needed to generate the certificate:</p>



<ul class="wp-block-list">
<li>Issue date and time of the certificate.</li>



<li>Expiry duration of the certificate.</li>



<li>Slots for storing the private key and certificate.</li>



<li>Choice to generate a new key.</li>
</ul>



<h3 class="wp-block-heading">Step 7: Generate the Certificate</h3>



<p class="wp-block-paragraph">Respond to the prompts in the Serial Monitor. The program will generate a self-signed certificate based on your responses and display it along with its SHA1 fingerprint.</p>



<h2 class="wp-block-heading">Troubleshooting</h2>



<ul class="wp-block-list">
<li>If the Serial Monitor displays an error related to the ECC608 chip, ensure that the chip is correctly configured and locked.</li>



<li>For any issues related to the Arduino IDE or board connections, consult the official Arduino forums or documentation.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">You now have a self-signed certificate generated by the ECC608 chip. This certificate can be used for various cryptographic purposes, enhancing the security of your projects.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CAN Sender</title>
		<link>https://www.controllino.com/can-sender/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Tue, 28 Nov 2023 10:14:00 +0000</pubDate>
				<category><![CDATA[MICRO]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=15013</guid>

					<description><![CDATA[Introduction This tutorial will guide you through using the CAN (Controller Area Network) port on the CONTROLLINO MICRO to send data. We&#8217;ll use example code to demonstrate how to set up and send both standard and extended CAN messages. Prerequisites Example Code Please grab the following example .ino file from Github: Step-by-Step Guide Step 1: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">This tutorial will guide you through using the CAN (Controller Area Network) port on the CONTROLLINO MICRO to send data. We&#8217;ll use example code to demonstrate how to set up and send both standard and extended CAN messages.</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<ul class="wp-block-list">
<li>Installed Arduino IDE.</li>



<li>CONTROLLINO MICRO board.</li>
</ul>



<h2 class="wp-block-heading">Example Code</h2>



<p class="wp-block-paragraph">Please grab the following example .ino file from Github:</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/CONTROLLINO-PLC/controllino_rp2040_firmware/blob/master/examples/arduino/common/CANSender/CANSender.ino" target="_blank" rel="noreferrer noopener">CAN Sender Example</a></div>
</div>



<h2 class="wp-block-heading">Step-by-Step Guide</h2>



<h3 class="wp-block-heading">Step 1: Initialization</h3>



<ul class="wp-block-list">
<li><strong>Serial Begin</strong>: Initialize serial communication at 115200 baud rate to monitor the data sending process.cppCopy code<code>Serial.begin(115200);</code></li>



<li><strong>CAN Initialization</strong>: Start the CAN bus at 500 kbps. This is a common speed for CAN networks.cppCopy code<code>SPI1.setRX(PIN_SPI1_MISO); SPI1.setTX(PIN_SPI1_MOSI); SPI1.setSCK(PIN_SPI1_SCK); if (!CAN.begin(500E3)) { Serial.println("Starting CAN failed!"); while (1); }</code></li>
</ul>



<h3 class="wp-block-heading">Step 2: Sending Standard CAN Packets</h3>



<ul class="wp-block-list">
<li><strong>Begin Packet</strong>: Start a CAN packet with a standard ID (11 bits). In this example, <code>0x12</code> is used as the ID.cppCopy code<code>CAN.beginPacket(0x12);</code></li>



<li><strong>Write Data</strong>: Send the data bytes. Here, we&#8217;re sending the word &#8216;hello&#8217;.cppCopy code<code>CAN.write('h'); CAN.write('e'); CAN.write('l'); CAN.write('l'); CAN.write('o');</code></li>



<li><strong>End Packet</strong>: End the CAN packet transmission.cppCopy code<code>CAN.endPacket();</code></li>
</ul>



<h3 class="wp-block-heading">Step 3: Sending Extended CAN Packets</h3>



<ul class="wp-block-list">
<li><strong>Begin Extended Packet</strong>: Start an extended CAN packet with a 29-bit ID. Example ID: <code>0xabcdef</code>.cppCopy code<code>CAN.beginExtendedPacket(0xabcdef);</code></li>



<li><strong>Write Extended Data</strong>: Similar to standard packets, but with different data. In this case, &#8216;world&#8217;.cppCopy code<code>CAN.write('w'); CAN.write('o'); CAN.write('r'); CAN.write('l'); CAN.write('d');</code></li>



<li><strong>End Extended Packet</strong>: Conclude the extended packet transmission.cppCopy code<code>CAN.endPacket();</code></li>
</ul>



<h3 class="wp-block-heading">Step 4: Loop</h3>



<p class="wp-block-paragraph">The <code>loop()</code> function sends these packets continuously at one-second intervals.</p>



<h2 class="wp-block-heading">Testing and Validation</h2>



<ol class="wp-block-list">
<li><strong>Monitor Serial Output</strong>: Open the Serial Monitor in your Arduino IDE to view the sending process and confirm successful transmission.</li>



<li><strong>Check CAN Network</strong>: If possible, use a CAN analyzer or another CAN device to ensure the packets are being received correctly.</li>



<li><strong>Troubleshooting</strong>: If there are issues in transmission, check connections, baud rate settings, and CAN IDs.</li>
</ol>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">With this tutorial, you should be able to send both standard and extended CAN messages from your CONTROLLINO MICRO. This functionality is essential for many automotive and industrial applications using the CAN network.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>CAN Receiver</title>
		<link>https://www.controllino.com/can-receiver/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Mon, 27 Nov 2023 09:45:25 +0000</pubDate>
				<category><![CDATA[MICRO]]></category>
		<category><![CDATA[Tutorials]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=15004</guid>

					<description><![CDATA[Introduction In this tutorial, we&#8217;ll learn how to use the CAN (Controller Area Network) port on the CONTROLLINO MICRO to receive data. CAN is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other&#8217;s applications without a host computer. Prerequisites Example Code Please grab the following example .ino file [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Introduction</h2>



<p class="wp-block-paragraph">In this tutorial, we&#8217;ll learn how to use the CAN (Controller Area Network) port on the CONTROLLINO MICRO to receive data. CAN is a robust vehicle bus standard designed to allow microcontrollers and devices to communicate with each other&#8217;s applications without a host computer.</p>



<h2 class="wp-block-heading">Prerequisites</h2>



<ul class="wp-block-list">
<li>Installed Arduino IDE.</li>



<li>CONTROLLINO MICRO board.</li>
</ul>



<h2 class="wp-block-heading">Example Code</h2>



<p class="wp-block-paragraph">Please grab the following example .ino file from Github:</p>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://github.com/CONTROLLINO-PLC/controllino_rp2040_firmware/blob/master/examples/arduino/common/CANReceiver/CANReceiver.ino" target="_blank" rel="noreferrer noopener">CAN Receiver Example</a></div>
</div>



<h2 class="wp-block-heading">Overview of the Example Code</h2>



<p class="wp-block-paragraph">The provided example code is a simple CAN Receiver program. It initializes the CAN bus at a speed of 500 kbps and continuously checks for incoming CAN packets. When a packet is received, it prints its details and data to the Serial Monitor.</p>



<h3 class="wp-block-heading">Key Functions</h3>



<ul class="wp-block-list">
<li><code>CAN.begin(speed)</code>: Initializes the CAN bus at the specified speed.</li>



<li><code>CAN.parsePacket()</code>: Checks for incoming packets and returns their size.</li>



<li><code>CAN.packetId()</code>: Returns the ID of the received packet.</li>



<li><code>CAN.packetExtended()</code>: Checks if the packet uses an extended ID.</li>



<li><code>CAN.packetRtr()</code>: Checks if the packet is a Remote Transmission Request (RTR).</li>



<li><code>CAN.read()</code>: Reads a byte of data from the received packet.</li>
</ul>



<h2 class="wp-block-heading">Step-by-Step Guide</h2>



<h3 class="wp-block-heading">Step 1: Setting Up Your Environment</h3>



<ol class="wp-block-list">
<li>Connect your CONTROLLINO MICRO to your computer.</li>



<li>Open the Arduino IDE and select the correct board and port for your CONTROLLINO MICRO.</li>
</ol>



<h3 class="wp-block-heading">Step 2: Understanding the Code</h3>



<ol class="wp-block-list">
<li><strong>Serial Communication</strong>: The <code>Serial.begin(115200);</code> command starts serial communication at a baud rate of 115200. This is useful for debugging and monitoring CAN traffic.</li>



<li><strong>CAN Initialization</strong>: <code>CAN.begin(500E3);</code> initializes the CAN bus at 500 kbps. The <code>if</code> statement checks if the CAN bus starts successfully.</li>



<li><strong>Receiving CAN Packets</strong>: Inside the <code>loop()</code>, <code>CAN.parsePacket();</code> checks for incoming packets. If a packet is received, its details (like ID, type, size) are printed to the Serial Monitor.</li>
</ol>



<h3 class="wp-block-heading">Step 3: Modifying the Code for Your Application</h3>



<ul class="wp-block-list">
<li>You can modify the <code>loop()</code> function to suit your application needs. For example, you might want to perform specific actions based on the packet&#8217;s ID or data.</li>
</ul>



<h3 class="wp-block-heading">Step 4: Uploading and Testing</h3>



<ol class="wp-block-list">
<li>Copy the provided example code into a new sketch in the Arduino IDE.</li>



<li>Upload the sketch to your CONTROLLINO MICRO.</li>



<li>Open the Serial Monitor to view the output.</li>
</ol>



<h3 class="wp-block-heading">Step 5: Debugging</h3>



<ul class="wp-block-list">
<li>If you encounter issues, ensure your CAN bus is correctly configured and all devices are properly connected.</li>



<li>Check the baud rate and CAN bus settings.</li>
</ul>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">You now have a basic understanding of how to use the CAN port on the CONTROLLINO MICRO to receive data. This setup can be the foundation for more complex applications involving vehicle networks, industrial automation, and more.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SPS Fair 2023</title>
		<link>https://www.controllino.com/sps-fair-2023/</link>
		
		<dc:creator><![CDATA[marcoriedi]]></dc:creator>
		<pubDate>Tue, 21 Nov 2023 12:57:26 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<guid isPermaLink="false">https://www.controllino.com/?p=14910</guid>

					<description><![CDATA[CONTROLLINO was again an exhibitor at SPS Fair 2023. We celebrated the launch of our MICRO, showcased new products (psst, stay tuned for more!) and of course: enjoyed quite a bunch of Negronis! Thanks for everyone who visited us! 🙂]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">CONTROLLINO was again an exhibitor at SPS Fair 2023. We celebrated the launch of our MICRO, showcased new products (psst, stay tuned for more!) and of course: enjoyed quite a bunch of Negronis!</p>



<p class="wp-block-paragraph">Thanks for everyone who visited us! <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/82298326-79c0-4882-9cd0-cd36a2e98c18.jpg"><img fetchpriority="high" decoding="async" width="1024" height="768" data-id="14940" src="https://www.controllino.com/wp-content/uploads/2023/11/82298326-79c0-4882-9cd0-cd36a2e98c18-1024x768.jpg" alt="" class="wp-image-14940" srcset="https://www.controllino.com/wp-content/uploads/2023/11/82298326-79c0-4882-9cd0-cd36a2e98c18-1024x768.jpg 1024w, https://www.controllino.com/wp-content/uploads/2023/11/82298326-79c0-4882-9cd0-cd36a2e98c18-300x225.jpg 300w, https://www.controllino.com/wp-content/uploads/2023/11/82298326-79c0-4882-9cd0-cd36a2e98c18-768x576.jpg 768w, https://www.controllino.com/wp-content/uploads/2023/11/82298326-79c0-4882-9cd0-cd36a2e98c18-1536x1152.jpg 1536w, https://www.controllino.com/wp-content/uploads/2023/11/82298326-79c0-4882-9cd0-cd36a2e98c18-1200x900.jpg 1200w, https://www.controllino.com/wp-content/uploads/2023/11/82298326-79c0-4882-9cd0-cd36a2e98c18.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/10df5d50-e09a-4e2a-a86d-0dbe553ef9dc.jpg"><img decoding="async" width="1024" height="768" data-id="14939" src="https://www.controllino.com/wp-content/uploads/2023/11/10df5d50-e09a-4e2a-a86d-0dbe553ef9dc-1024x768.jpg" alt="" class="wp-image-14939" srcset="https://www.controllino.com/wp-content/uploads/2023/11/10df5d50-e09a-4e2a-a86d-0dbe553ef9dc-1024x768.jpg 1024w, https://www.controllino.com/wp-content/uploads/2023/11/10df5d50-e09a-4e2a-a86d-0dbe553ef9dc-300x225.jpg 300w, https://www.controllino.com/wp-content/uploads/2023/11/10df5d50-e09a-4e2a-a86d-0dbe553ef9dc-768x576.jpg 768w, https://www.controllino.com/wp-content/uploads/2023/11/10df5d50-e09a-4e2a-a86d-0dbe553ef9dc-1536x1152.jpg 1536w, https://www.controllino.com/wp-content/uploads/2023/11/10df5d50-e09a-4e2a-a86d-0dbe553ef9dc-1200x900.jpg 1200w, https://www.controllino.com/wp-content/uploads/2023/11/10df5d50-e09a-4e2a-a86d-0dbe553ef9dc.jpg 1600w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/image9.jpg"><img decoding="async" width="1024" height="768" data-id="14914" src="https://www.controllino.com/wp-content/uploads/2023/11/image9.jpg" alt="" class="wp-image-14914" srcset="https://www.controllino.com/wp-content/uploads/2023/11/image9.jpg 1024w, https://www.controllino.com/wp-content/uploads/2023/11/image9-300x225.jpg 300w, https://www.controllino.com/wp-content/uploads/2023/11/image9-768x576.jpg 768w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/image8.jpg"><img loading="lazy" decoding="async" width="1024" height="636" data-id="14911" src="https://www.controllino.com/wp-content/uploads/2023/11/image8.jpg" alt="" class="wp-image-14911" srcset="https://www.controllino.com/wp-content/uploads/2023/11/image8.jpg 1024w, https://www.controllino.com/wp-content/uploads/2023/11/image8-300x186.jpg 300w, https://www.controllino.com/wp-content/uploads/2023/11/image8-768x477.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/image7.jpg"><img loading="lazy" decoding="async" width="1024" height="768" data-id="14912" src="https://www.controllino.com/wp-content/uploads/2023/11/image7.jpg" alt="" class="wp-image-14912" srcset="https://www.controllino.com/wp-content/uploads/2023/11/image7.jpg 1024w, https://www.controllino.com/wp-content/uploads/2023/11/image7-300x225.jpg 300w, https://www.controllino.com/wp-content/uploads/2023/11/image7-768x576.jpg 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/image6.jpg"><img loading="lazy" decoding="async" width="768" height="1024" data-id="14913" src="https://www.controllino.com/wp-content/uploads/2023/11/image6.jpg" alt="" class="wp-image-14913" srcset="https://www.controllino.com/wp-content/uploads/2023/11/image6.jpg 768w, https://www.controllino.com/wp-content/uploads/2023/11/image6-225x300.jpg 225w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/image5.jpg"><img loading="lazy" decoding="async" width="768" height="1024" data-id="14915" src="https://www.controllino.com/wp-content/uploads/2023/11/image5-768x1024.jpg" alt="" class="wp-image-14915" srcset="https://www.controllino.com/wp-content/uploads/2023/11/image5-768x1024.jpg 768w, https://www.controllino.com/wp-content/uploads/2023/11/image5-225x300.jpg 225w, https://www.controllino.com/wp-content/uploads/2023/11/image5-1152x1536.jpg 1152w, https://www.controllino.com/wp-content/uploads/2023/11/image5-1200x1600.jpg 1200w, https://www.controllino.com/wp-content/uploads/2023/11/image5.jpg 1536w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/image4.jpg"><img loading="lazy" decoding="async" width="1024" height="768" data-id="14917" src="https://www.controllino.com/wp-content/uploads/2023/11/image4-1024x768.jpg" alt="" class="wp-image-14917" srcset="https://www.controllino.com/wp-content/uploads/2023/11/image4-1024x768.jpg 1024w, https://www.controllino.com/wp-content/uploads/2023/11/image4-300x225.jpg 300w, https://www.controllino.com/wp-content/uploads/2023/11/image4-768x576.jpg 768w, https://www.controllino.com/wp-content/uploads/2023/11/image4-1536x1152.jpg 1536w, https://www.controllino.com/wp-content/uploads/2023/11/image4-1200x900.jpg 1200w, https://www.controllino.com/wp-content/uploads/2023/11/image4.jpg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/image3.jpg"><img loading="lazy" decoding="async" width="1024" height="768" data-id="14918" src="https://www.controllino.com/wp-content/uploads/2023/11/image3-1024x768.jpg" alt="" class="wp-image-14918" srcset="https://www.controllino.com/wp-content/uploads/2023/11/image3-1024x768.jpg 1024w, https://www.controllino.com/wp-content/uploads/2023/11/image3-300x225.jpg 300w, https://www.controllino.com/wp-content/uploads/2023/11/image3-768x576.jpg 768w, https://www.controllino.com/wp-content/uploads/2023/11/image3-1536x1152.jpg 1536w, https://www.controllino.com/wp-content/uploads/2023/11/image3-1200x900.jpg 1200w, https://www.controllino.com/wp-content/uploads/2023/11/image3.jpg 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/image2.jpg"><img loading="lazy" decoding="async" width="1024" height="768" data-id="14916" src="https://www.controllino.com/wp-content/uploads/2023/11/image2-1024x768.jpg" alt="" class="wp-image-14916" srcset="https://www.controllino.com/wp-content/uploads/2023/11/image2-1024x768.jpg 1024w, https://www.controllino.com/wp-content/uploads/2023/11/image2-300x225.jpg 300w, https://www.controllino.com/wp-content/uploads/2023/11/image2-768x576.jpg 768w, https://www.controllino.com/wp-content/uploads/2023/11/image2-1536x1152.jpg 1536w, https://www.controllino.com/wp-content/uploads/2023/11/image2-1200x900.jpg 1200w, https://www.controllino.com/wp-content/uploads/2023/11/image2.jpg 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>



<figure class="wp-block-image size-large"><a href="https://www.controllino.com/wp-content/uploads/2023/11/image1.jpeg"><img loading="lazy" decoding="async" width="1024" height="768" data-id="14919" src="https://www.controllino.com/wp-content/uploads/2023/11/image1-1024x768.jpeg" alt="" class="wp-image-14919" srcset="https://www.controllino.com/wp-content/uploads/2023/11/image1-1024x768.jpeg 1024w, https://www.controllino.com/wp-content/uploads/2023/11/image1-300x225.jpeg 300w, https://www.controllino.com/wp-content/uploads/2023/11/image1-768x576.jpeg 768w, https://www.controllino.com/wp-content/uploads/2023/11/image1-1536x1152.jpeg 1536w, https://www.controllino.com/wp-content/uploads/2023/11/image1-1200x900.jpeg 1200w, https://www.controllino.com/wp-content/uploads/2023/11/image1.jpeg 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></a></figure>
</figure>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
