<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Freedom Embedded</title>
	<atom:link href="https://balau82.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>https://balau82.wordpress.com</link>
	<description>Balau&#039;s technical blog on open hardware, free software and security</description>
	<lastBuildDate>Sun, 30 Oct 2016 20:58:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<site xmlns="com-wordpress:feed-additions:1">6718912</site><cloud domain='balau82.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>https://secure.gravatar.com/blavatar/fd6ef091beec118e02c47528df08bebde804acfbe5889e854436d3f356511546?s=96&#038;d=https%3A%2F%2Fs0.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Freedom Embedded</title>
		<link>https://balau82.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="https://balau82.wordpress.com/osd.xml" title="Freedom Embedded" />
	<atom:link rel='hub' href='https://balau82.wordpress.com/?pushpress=hub'/>
	<item>
		<title>My Maker Faire Rome 2016</title>
		<link>https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/</link>
					<comments>https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/#comments</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Sun, 30 Oct 2016 20:58:19 +0000</pubDate>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[3d printing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[drones]]></category>
		<category><![CDATA[internet of things]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[maker movement]]></category>
		<category><![CDATA[mfr2016]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[robotics]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=2155</guid>

					<description><![CDATA[Two weeks ago I visited the 2016 edition of the European Maker Faire in Rome. The Rome fair can be reached easily with the train that goes between Rome center (mostly Tiburtina station) and the airport of Fiumicino. The whole fair has ten pavilions, and the Maker Faire managed to fill six of them with all [&#8230;]]]></description>
										<content:encoded><![CDATA[<div data-shortcode="caption" id="attachment_2154" style="width: 199px" class="wp-caption alignright"><img aria-describedby="caption-attachment-2154" data-attachment-id="2154" data-permalink="https://balau82.wordpress.com/img_20161015_181100924/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_181100924.jpg" data-orig-size="720,1280" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.65&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;2.35&quot;,&quot;iso&quot;:&quot;3&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161015_181100924" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_181100924.jpg?w=169" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_181100924.jpg?w=576" class="alignright  wp-image-2154" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_181100924.jpg?w=189&#038;h=336" alt="img_20161015_181100924" width="189" height="336" srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_181100924.jpg?w=169 169w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_181100924.jpg?w=189 189w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_181100924.jpg?w=378 378w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_181100924.jpg?w=84 84w" sizes="(max-width: 189px) 100vw, 189px" /><p id="caption-attachment-2154" class="wp-caption-text">Everybody got their Google &#8220;glasses&#8221;.</p></div>
<p>Two weeks ago I visited the 2016 edition of the European Maker Faire in Rome.</p>
<p>The Rome fair can be reached easily with the train that goes between Rome center (mostly Tiburtina station) and the airport of Fiumicino. The whole fair has ten pavilions, and the Maker Faire managed to fill six of them with all kinds of exhibitors, stands, shops and conference rooms.</p>
<p>Each of the pavilions had a theme:</p>
<ul>
<li>5: Move: it contained the drone arena and mostly robots.</li>
<li>6: Life: solutions for the environment and health.</li>
<li>7: Interaction: Electronics, IoT, home automation, virtual reality.</li>
<li>8: Fabrication: mostly 3D printing.</li>
<li>9: Young makers: everything to inspire curiosity into kids and enable them to become makers.</li>
<li>10: Short-circuits: this pavilion has big conference rooms for big talks.</li>
</ul>
<div data-shortcode="caption" id="attachment_2160" style="width: 604px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2160" data-attachment-id="2160" data-permalink="https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/img_20161015_115056981/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg" data-orig-size="2592,1456" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;500&quot;,&quot;shutter_speed&quot;:&quot;0.03&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161015_115056981" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=594" class="alignnone size-large wp-image-2160" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=594&#038;h=334" alt="img_20161015_115056981"   srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=1024 1024w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=2048 2048w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=150 150w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=300 300w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=768 768w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=1440 1440w" sizes="(max-width: 1024px) 100vw, 1024px" /><p id="caption-attachment-2160" class="wp-caption-text">The drone arena.</p></div>
<p>I spent the first day exploring all the stands and the exhibitions. There were two kinds of stands: blue for enthusiasts and red for businesses and associations.</p>
<div data-shortcode="caption" id="attachment_2172" style="width: 2602px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2172" data-attachment-id="2172" data-permalink="https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/img_20161015_161011067_hdr/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg" data-orig-size="2592,1456" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;320&quot;,&quot;shutter_speed&quot;:&quot;0.03392&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161015_161011067_hdr" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg?w=594" class="aligncenter size-full wp-image-2172" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg?w=594" alt="IMG_20161015_161011067_HDR.jpg"   srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg 2592w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg?w=150&amp;h=84 150w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg?w=300&amp;h=169 300w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg?w=768&amp;h=431 768w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg?w=1024&amp;h=575 1024w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg?w=1440&amp;h=809 1440w" sizes="(max-width: 2592px) 100vw, 2592px" /><p id="caption-attachment-2172" class="wp-caption-text">The finals for the R.O.M.E. prize.</p></div>
<p>The faire hosted a competition called <em>R.O.M.E. Prize</em>, where the invention with the most social impact would win 100.000EUR in funding. The winner was a glove that translated sign language into words, called &#8220;Talking Hands&#8221;. Some of the other projects were, such as a 3D-printed incubator for newborn babies, or a smart toothbrush. Other were more curious, such as a toy for dogs that can be controlled by an app.</p>
<div data-shortcode="caption" id="attachment_2179" style="width: 373px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2179" loading="lazy" data-attachment-id="2179" data-permalink="https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/img_20161014_170024656-2/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1700246561.jpg" data-orig-size="1456,1508" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;400&quot;,&quot;shutter_speed&quot;:&quot;0.03664&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161014_170024656" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1700246561.jpg?w=290" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1700246561.jpg?w=594" class="aligncenter size-full wp-image-2179" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1700246561.jpg?w=363" alt="IMG_20161014_170024656.jpg" width="363" height="376" srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1700246561.jpg?w=363 363w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1700246561.jpg?w=726 726w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1700246561.jpg?w=145 145w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1700246561.jpg?w=290 290w" sizes="(max-width: 363px) 100vw, 363px" /><p id="caption-attachment-2179" class="wp-caption-text">This competitor tries to answer the question: Where is my jetpack?</p></div>
<p>&nbsp;</p>
<div data-shortcode="caption" id="attachment_media-8" style="width: 1825px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-media-8" loading="lazy" data-attachment-id="2182" data-permalink="https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/img_20161014_172129725/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg" data-orig-size="1815,1071" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;320&quot;,&quot;shutter_speed&quot;:&quot;0.08284&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161014_172129725" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg?w=594" class="aligncenter size-full wp-image-2182" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg?w=594" alt="IMG_20161014_172129725.jpg"   srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg 1815w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg?w=150&amp;h=89 150w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg?w=300&amp;h=177 300w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg?w=768&amp;h=453 768w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg?w=1024&amp;h=604 1024w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg?w=1440&amp;h=850 1440w" sizes="(max-width: 1815px) 100vw, 1815px" /><p id="caption-attachment-media-8" class="wp-caption-text"><a href="http://www.bautifulbox.com">Bautiful box</a>: play with your dog from the Internet.</p></div>
<p>3D printing was everywhere. There was an enormous printer from <a href="http://www.wasproject.it">WASP</a> that could extrude entire houses. There were metal printers, professional printers, portable, triangular, and so on. I attended a talk from Olivetti about their printers for <a href="http://olivetti3d.olivetti.com/en/products/olivetti-3d-s2">industry</a> and for <a href="http://olivetti3d.olivetti.com/it/prodotti/olivetti-3d-desk">education</a>.</p>
<div data-shortcode="caption" id="attachment_2184" style="width: 309px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2184" loading="lazy" data-attachment-id="2184" data-permalink="https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/img_20161014_163717828-2/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1637178281.jpg" data-orig-size="1456,1696" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;400&quot;,&quot;shutter_speed&quot;:&quot;0.0392&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161014_163717828" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1637178281.jpg?w=258" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1637178281.jpg?w=594" class="alignnone  wp-image-2184" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1637178281.jpg?w=299&#038;h=349" alt="img_20161014_163717828" width="299" height="349" srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1637178281.jpg?w=258 258w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1637178281.jpg?w=299 299w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1637178281.jpg?w=598 598w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1637178281.jpg?w=129 129w" sizes="(max-width: 299px) 100vw, 299px" /><p id="caption-attachment-2184" class="wp-caption-text"><a href="http://www.i3d.it/stampanti-3d">PivotMaker</a>, one of the biggest 3D printers at the faire.</p></div>
<p>&nbsp;</p>
<div data-shortcode="caption" id="attachment_2189" style="width: 241px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2189" loading="lazy" data-attachment-id="2189" data-permalink="https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/img_20161015_153518129_hdr-2/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_153518129_hdr1.jpg" data-orig-size="1456,1892" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;250&quot;,&quot;shutter_speed&quot;:&quot;0.03336&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161015_153518129_hdr" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_153518129_hdr1.jpg?w=231" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_153518129_hdr1.jpg?w=594" class="alignnone size-medium wp-image-2189" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_153518129_hdr1.jpg?w=231&#038;h=300" alt="img_20161015_153518129_hdr" width="231" height="300" srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_153518129_hdr1.jpg?w=231 231w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_153518129_hdr1.jpg?w=462 462w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_153518129_hdr1.jpg?w=115 115w" sizes="(max-width: 231px) 100vw, 231px" /><p id="caption-attachment-2189" class="wp-caption-text">Metal 3D printing.</p></div>
<p>Robotics played a big part of the exhibitions, with autonomous vehicles, humanoid robots and drones.</p>
<div data-shortcode="caption" id="attachment_2192" style="width: 248px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-2192" loading="lazy" data-attachment-id="2192" data-permalink="https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/img_20161015_132127184_hdr/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_132127184_hdr.jpg" data-orig-size="963,1215" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;320&quot;,&quot;shutter_speed&quot;:&quot;0.03333&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161015_132127184_hdr" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_132127184_hdr.jpg?w=238" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_132127184_hdr.jpg?w=594" class="alignnone size-medium wp-image-2192" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_132127184_hdr.jpg?w=238&#038;h=300" alt="img_20161015_132127184_hdr" width="238" height="300" srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_132127184_hdr.jpg?w=238 238w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_132127184_hdr.jpg?w=476 476w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_132127184_hdr.jpg?w=119 119w" sizes="(max-width: 238px) 100vw, 238px" /><p id="caption-attachment-2192" class="wp-caption-text">RoboSec <a href="http://rnext.it/panther/">Panther</a>.</p></div>
<p>&nbsp;</p>
<div data-shortcode="caption" id="attachment_media-12" style="width: 2602px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-media-12" loading="lazy" data-attachment-id="2195" data-permalink="https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/img_20161014_164318659_hdr/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg" data-orig-size="2592,1456" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;125&quot;,&quot;shutter_speed&quot;:&quot;0.00197&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161014_164318659_hdr" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg?w=594" class="alignnone size-full wp-image-2195" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg?w=594" alt="IMG_20161014_164318659_HDR.jpg"   srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg 2592w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg?w=150&amp;h=84 150w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg?w=300&amp;h=169 300w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg?w=768&amp;h=431 768w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg?w=1024&amp;h=575 1024w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg?w=1440&amp;h=809 1440w" sizes="(max-width: 2592px) 100vw, 2592px" /><p id="caption-attachment-media-12" class="wp-caption-text">The One Love Machine band.</p></div>
<p>The stands were full of ideas for the Internet of Things. Home automation such as the <a href="http://casajasmina.arduino.cc/">Casa Jasmina</a>, smart plug from <a href="http://www.powahome.com/">PoWaHome</a>, and <a href="http://www.miupanel.com/">µPanel</a>, a common web interface for all the sensors and actuator at home; wearable electronics, social gardening such as <a href="http://cloudgardenproject.net/">CloudGarden</a>, hardware platforms such as <a href="http://www.udoo.org/">UDOO</a> or <a href="http://fishino.it/en/">Fishino</a>. I also attended a talk given by <a href="https://blog.bofh.it/">Marco d&#8217;Itri</a> called &#8220;The Internet of other people&#8217;s things&#8221; on the dangers of connecting everything, in terms of reduced functionality (when the servers go offline or the companies discontinue the products), when you are giving away your sensitive data for free, and when malicious hackers can exploit weaknesses to perform cyber attacks and steal information.</p>
<div data-shortcode="caption" id="attachment_media-13" style="width: 2602px" class="wp-caption aligncenter"><img aria-describedby="caption-attachment-media-13" loading="lazy" data-attachment-id="2198" data-permalink="https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/img_20161014_151213889/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg" data-orig-size="2592,1456" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;1600&quot;,&quot;shutter_speed&quot;:&quot;0.1&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="img_20161014_151213889" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg?w=594" class="aligncenter size-full wp-image-2198" src="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg?w=594" alt="IMG_20161014_151213889.jpg"   srcset="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg 2592w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg?w=150&amp;h=84 150w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg?w=300&amp;h=169 300w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg?w=768&amp;h=431 768w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg?w=1024&amp;h=575 1024w, https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg?w=1440&amp;h=809 1440w" sizes="(max-width: 2592px) 100vw, 2592px" /><p id="caption-attachment-media-13" class="wp-caption-text">This dragon roars on tweets with particular hashtags.</p></div>
<p>All in all, it has been a wonderful weekend, and the faire really gave the makers the opportunity to share their work, exchange ideas, build connections and leap forward.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/10/30/my-maker-faire-rome-2016/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2155</post-id>
		<media:thumbnail url="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png" />
		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png" medium="image">
			<media:title type="html">makerobot</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_181100924.jpg?w=169" medium="image">
			<media:title type="html">img_20161015_181100924</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_115056981.jpg?w=1024" medium="image">
			<media:title type="html">img_20161015_115056981</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_161011067_hdr.jpg" medium="image">
			<media:title type="html">IMG_20161015_161011067_HDR.jpg</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1700246561.jpg?w=363" medium="image">
			<media:title type="html">IMG_20161014_170024656.jpg</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_172129725.jpg" medium="image">
			<media:title type="html">IMG_20161014_172129725.jpg</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_1637178281.jpg?w=258" medium="image">
			<media:title type="html">img_20161014_163717828</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_153518129_hdr1.jpg?w=231" medium="image">
			<media:title type="html">img_20161015_153518129_hdr</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161015_132127184_hdr.jpg?w=238" medium="image">
			<media:title type="html">img_20161015_132127184_hdr</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_164318659_hdr.jpg" medium="image">
			<media:title type="html">IMG_20161014_164318659_HDR.jpg</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/10/img_20161014_151213889.jpg" medium="image">
			<media:title type="html">IMG_20161014_151213889.jpg</media:title>
		</media:content>
	</item>
		<item>
		<title>Maker Faire is coming to Rome</title>
		<link>https://balau82.wordpress.com/2016/09/28/maker-faire-is-coming-to-rome/</link>
					<comments>https://balau82.wordpress.com/2016/09/28/maker-faire-is-coming-to-rome/#respond</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Wed, 28 Sep 2016 19:17:06 +0000</pubDate>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[make]]></category>
		<category><![CDATA[maker movement]]></category>
		<category><![CDATA[nucleo]]></category>
		<category><![CDATA[rome]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=2128</guid>

					<description><![CDATA[Maker Faire will come to Rome in the weekend of 14-15-16 October 2016, and I plan to go there. The faire format is  by Make Magazine, and gathers the makers from all around the globe, so that they have the possibility to interact and showcase their work and their art. The maker movement has gained traction [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" data-attachment-id="2129" data-permalink="https://balau82.wordpress.com/2016/09/28/maker-faire-is-coming-to-rome/makerobot/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png" data-orig-size="346,365" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="makerobot" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png?w=284" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png?w=346" class="alignright size-medium wp-image-2129" src="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png?w=284&#038;h=300" alt="makerobot" width="284" height="300" srcset="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png?w=284 284w, https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png?w=142 142w, https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png 346w" sizes="(max-width: 284px) 100vw, 284px" /></p>
<p><a href="http://www.makerfairerome.eu/en/">Maker Faire will come to Rome</a> in the weekend of 14-15-16 October 2016, and I plan to go there.</p>
<p>The faire format is  by <a href="http://makezine.com/">Make Magazine</a>, and gathers the makers from all around the globe, so that they have the possibility to interact and showcase their work and their art.</p>
<p>The maker movement has gained traction these years thanks to numerous factors. Some of these are technological, such as 3D printing, microcontroller boards such as Arduino and Nucleo, connectivity protocols at the base of the Internet of Things. Some of these are social: people have always made their own creation in the solitude of their own home, in their room full of screws, drills, saws and dust. Now there are so many ways to ask for suggestions and to share.</p>
<p>I hope it will be a fun weekend!</p>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/09/28/maker-faire-is-coming-to-rome/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2128</post-id>
		<media:thumbnail url="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png" />
		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png" medium="image">
			<media:title type="html">makerobot</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/09/makerobot.png?w=284" medium="image">
			<media:title type="html">makerobot</media:title>
		</media:content>
	</item>
		<item>
		<title>Coursera: Development of Real-Time Systems</title>
		<link>https://balau82.wordpress.com/2016/07/05/coursera-development-of-real-time-systems/</link>
					<comments>https://balau82.wordpress.com/2016/07/05/coursera-development-of-real-time-systems/#respond</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Tue, 05 Jul 2016 18:51:15 +0000</pubDate>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[coursera]]></category>
		<category><![CDATA[freertos]]></category>
		<category><![CDATA[interrupt controller]]></category>
		<category><![CDATA[microcontrollers]]></category>
		<category><![CDATA[real-time]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=2096</guid>

					<description><![CDATA[A course on the theories and implementations of real-time systems is about to start on Coursera platform. The course comes from the Finnish University Åbo Akademi, and lasts 5 weeks of low workload (2-3h per week). The instructor entices the learner by showing a famous real-time system failure, during the landing of the Apollo 11 on the surface of the [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>A <a href="https://www.coursera.org/learn/real-time-systems">course</a> on the theories and implementations of real-time systems is about to start on <a href="https://www.coursera.org/">Coursera platform</a>. The course comes from the Finnish University <a href="https://www.google.it/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=1&amp;cad=rja&amp;uact=8&amp;ved=0ahUKEwir-6X_-9zNAhXMchQKHQLUB5oQFggfMAA&amp;url=http%3A%2F%2Fwww.abo.fi%2Fpublic%2Fen%2F&amp;usg=AFQjCNE6blFd1UqcS6Fzj8P8rGBj8U7KDQ&amp;sig2=aXqeLabtWuTiegI8Kbgfzw">Åbo Akademi</a>, and lasts 5 weeks of low workload (2-3h per week).</p>
<p>The instructor entices the learner by showing a famous real-time system failure, during the <a href="https://www.hq.nasa.gov/alsj/a11/a11.1201-pa.html">landing of the Apollo 11</a> on the surface of the Moon. The course then sets the objective to teach to design a real-time system so that every deadline is always respected.</p>
<p>In a further note, it claims that of all computing systems in the world, about 98% are embedded systems, and most of them are real-time systems. This information alone gives a pretty clear idea of the relevance of the topic in the modern industry.</p>
<p>The course makes use of <a href="http://www.freertos.org">FreeRTOS</a> as a platform to implement the theories that are presented in the various lessons.</p>
<p><a href="https://www.coursera.org/learn/real-time-systems">Coursera: Development of Real-Time Systems</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/07/05/coursera-development-of-real-time-systems/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2096</post-id>
		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	</item>
		<item>
		<title>STM32 Nucleo: access SD cards with C standard library</title>
		<link>https://balau82.wordpress.com/2016/07/03/stm32-nucleo-access-sd-cards-with-c-standard-library/</link>
					<comments>https://balau82.wordpress.com/2016/07/03/stm32-nucleo-access-sd-cards-with-c-standard-library/#comments</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Sun, 03 Jul 2016 15:56:59 +0000</pubDate>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[cortex-m3]]></category>
		<category><![CDATA[fatfs]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[libopencm3]]></category>
		<category><![CDATA[libopenstm32]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[newlib]]></category>
		<category><![CDATA[nucleo]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[posix]]></category>
		<category><![CDATA[sdcard]]></category>
		<category><![CDATA[spi]]></category>
		<category><![CDATA[stm32]]></category>
		<category><![CDATA[stmicroelectronics]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=2023</guid>

					<description><![CDATA[The ST Nucleo is an Arduino-like board with an STM32 as the microcontroller, and many Arduino shields can be mounted on it. I recently played with an Ethernet shield for the network connection, but since the shield also contains a microSD card slot, I wanted to access the SD card to read/write files. I&#8217;d like to [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The <a href="http://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-eval-tools/stm32-mcu-eval-tools/stm32-mcu-nucleo.html?querycriteria=productId=LN1847">ST Nucleo</a> is an Arduino-like board with an STM32 as the microcontroller, and many Arduino shields can be mounted on it. I recently played with an <a href="https://www.arduino.cc/en/Main/ArduinoEthernetShield">Ethernet shield</a> for the network connection, but since the shield also contains a microSD card slot, I wanted to access the SD card to read/write files. I&#8217;d like to access files as I would with a standard C program, so I put together a solution that does it using some existing libraries and some code that I wrote myself.</p>
<h1>Hardware</h1>
<p>The Ethernet shield is a board with Arduino common connectors, an Ethernet port, a Wiznet chip (mine has <a href="http://www.wiznet.co.kr/product-item/w5100/">W5100</a>) and a microSD card slot. Both the Wiznet chip and the SD card are connected to the microcontroller with an SPI bus. The two targets have two different &#8220;chip select&#8221; signals connected to them, so that the microcontroller can choose which one to control. The SPI signals that go to the SD card are also reduced in voltage by resistive partitors, so that the 5V I/O pins of the Arduino Atmel chip can drive the 3.3V interface of SD cards. The STM32 microcontroller on the Nucleo board instead has 3.3V I/Os, so the same resistors will bring the voltage levels to around 2.2V; turns out this is enough to drive the SD card interface correctly. Note that for the Nucleo to adapt to the Ethernet shield I had to route three wires from the ICSP connector to the commmon Arduino connectors to bring the SPI signals to the correct places. This is explained in a previous blog post &#8220;<a href="https://balau82.wordpress.com/2015/08/02/arduino-ethernet-shield-on-stm32-nucleo/">Arduino Ethernet shield on STM32 Nucleo</a>&#8220;, summarizing the wiring is:</p>
<ul>
<li>MISO: pin 1 of the ICSP to pin 12 of the Arduino connector,</li>
<li>SCK: pin 3 of the ICSP to pin 13 of the Arduino connector,</li>
<li>MOSI: pin 4 of the ICSP to pin 11 of the Arduino connector.</li>
</ul>
<div data-shortcode="caption" id="attachment_1580" style="width: 2602px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-1580" loading="lazy" data-attachment-id="1580" data-permalink="https://balau82.wordpress.com/2015/08/02/arduino-ethernet-shield-on-stm32-nucleo/img_20150802_211129269/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg" data-orig-size="2592,1456" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;640&quot;,&quot;shutter_speed&quot;:&quot;0.1&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Nucleo board wired with Ethernet shield" data-image-description="&lt;p&gt;Nucleo board wired with Ethernet shield.&lt;/p&gt;
" data-image-caption="&lt;p&gt;Nucleo board wired with Ethernet shield.&lt;/p&gt;
" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=594" class="alignnone size-full wp-image-1580" src="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=594" alt="Nucleo board wired with Ethernet shield."   srcset="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg 2592w, https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=150&amp;h=84 150w, https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=300&amp;h=169 300w, https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=768&amp;h=431 768w, https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=1024&amp;h=575 1024w, https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=1440&amp;h=809 1440w" sizes="(max-width: 2592px) 100vw, 2592px" /><p id="caption-attachment-1580" class="wp-caption-text">Nucleo board wired with Ethernet shield.</p></div>
<h1>Software stack</h1>
<p>My goal is to use functions like <code>fopen</code>, <code>fprintf</code> and <code>fscanf</code> to access the SD card content, and the solution that I implemented is shown in the picture below. It&#8217;s a stack of libraries that talk to each other; some of them were already developed, some of them I made them myself (the colored boxes) to glue together the parts. I&#8217;m going to explain them from top to bottom.</p>
<div data-shortcode="caption" id="attachment_2041" style="width: 695px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-2041" loading="lazy" data-attachment-id="2041" data-permalink="https://balau82.wordpress.com/2016/07/03/stm32-nucleo-access-sd-cards-with-c-standard-library/stdio_fatfs/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/07/stdio_fatfs.png" data-orig-size="685,661" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="stdio_fatfs" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/07/stdio_fatfs.png?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/07/stdio_fatfs.png?w=594" class=" size-full wp-image-2041 alignnone" src="https://balau82.wordpress.com/wp-content/uploads/2016/07/stdio_fatfs.png?w=594" alt="stdio_fatfs"   srcset="https://balau82.wordpress.com/wp-content/uploads/2016/07/stdio_fatfs.png 685w, https://balau82.wordpress.com/wp-content/uploads/2016/07/stdio_fatfs.png?w=150&amp;h=145 150w, https://balau82.wordpress.com/wp-content/uploads/2016/07/stdio_fatfs.png?w=300&amp;h=289 300w" sizes="(max-width: 685px) 100vw, 685px" /><p id="caption-attachment-2041" class="wp-caption-text">Software stack to access SD card filesystem with C standard I/O functions.</p></div>
<h2>Main program and C standard library</h2>
<p>When anybody learns C, they make use of standard functions to access files. I wanted to write a solution that lets the same C program be compiled on something like a Linux system and also on a microcontroller such as STM32. The program should be compiled using a different toolchain, and should link different libraries. For the STM32, the toolchain that I used is <a href="https://launchpad.net/gcc-arm-embedded">GCC ARM Embedded</a> for Cortex-M microprocessors. This toolchain provides the C standard library functions by the <code><a href="https://sourceware.org/newlib/">newlib</a></code> library. This library implements the functionalities that can be found in &#8220;<code>stdio.h</code>&#8221; and other headers, and it is optimized for small systems. The low-level part of the <code>newlib</code> implementation resides on Linux-like system calls such as <code>_open</code> and <code>_write</code>. For example, when <code>fopen</code> is called by the <code>main</code> program, ultimately <code>newlib</code> calls the <code>_open</code> function.</p>
<h2>System calls and FAT filesystem</h2>
<p>In my case I don&#8217;t have an operating system running on STM32: the code runs on bare metal. For this reason, I had to develop these system calls myself. These system calls must provide ways to manage the file descriptors that are returned by <code>_open</code> and passed to functions such as <code>_write</code> to identify the file that should be accessed. So there are structure in this part of the stack that contain all the information needed to manage an open file, such as the access mode (read/write). I decided to write this part of the system following <a href="http://pubs.opengroup.org/onlinepubs/9699919799/mindex.html">POSIX specifications</a>, from the function prototype to the behavior and the error codes. In this way I didn&#8217;t have to invent anything and users might be more familiar with the way the code is working. With the same approach I also implemented some functions to manage directories, such as <code>mkdir</code> and <code>readdir</code>.</p>
<p>When a file needs to be opened or its data need to be read or written, a filesystem is needed. The filesystem itself has the role of organizing the files on a disk. An SD card does not have the concept of files, it&#8217;s a contiguous memory space that can be read or written. It&#8217;s the filesystem that writes tables and pointers on this memory to implement the hierarchy of directories and their content. I selected <a href="http://elm-chan.org/fsw/ff/00index_e.html">FatFS</a>, a library that manages FAT filesystems, because it works independently of the hardware or the operating system, and it&#8217;s exactly what I needed to transform the system calls to file system access. Specifically I am using version 0.11a at the time of my development. In fact, much of FatFS API is very similar to system calls, with functions like <code>f_open</code> that accept the same parameters (to some extent) as <code>fopen</code> and <code>_open</code>. My system calls in most cases just need to translate the input parameters, call the FatFS API and then translate the result and the return value. FAT is common for SD cards and it is supported by most operating systems such as Linux and Windows natively and for a long time. It has disadvantages such as the absence of links to files, but it is a trade-off for its simplicity. FatFS can be configured with a <a href="http://elm-chan.org/fsw/ff/en/config.html">simple header</a>, for example the filesystem can be configured as read-only to reduce the footprint of the library that won&#8217;t need the write functions anymore; as another example, the filenames can be restricted to be the classic 8 characters of file name and 3 characters of file extension.</p>
<h2>Disk I/O and SPI communication</h2>
<p>FatFS implements the FAT filesystem but needs an underlying layer to manage the actual hardware access as disk I/O. Each filesystem access is translated to an action that reads the disk or writes the disk, so there are low-level functions called <code>disk_read</code> and <code>disk_write</code> that must be provided. I had to write this code that specifically accesses SD cards through SPI. Note that down to this point the code was unaware that we were using SD cards or an SPI bus: it was hardware-independent C. In this layer of code I implemented the SD card protocol, described in some specifications such as the official SD standard <a href="https://www.sdcard.org/downloads/pls/index.html">Physical Layer Simplified Specification</a>. These specifications contain both an SD bus mode and an SPI mode to access the card. While the SD bus mode is generally faster because it uses more I/Os, the SPI mode is enough to implement all the functionalities, and it&#8217;s what we have to use because of the hardware connection between the microcontroller and the card.</p>
<p>The SD card can be commanded using simple SPI transactions, so I needed to access the SPI peripheral of the STM32 to perform these transfers. The last library that I used is <a href="http://libopencm3.org/wiki/Main_Page">libopencm3</a>, which provides low-level access to Cortex-M3 core and many peripherals. These SPI transactions pass through the wires that I connected on the boards and communicate the data back and forth between STM32 and memory card. The code has also to assert the chip select of the SD card during each transaction to indicate to the SD card that the data travelling through the SPI bus is directed to it.</p>
<div data-shortcode="caption" id="attachment_1582" style="width: 391px" class="wp-caption alignnone"><img aria-describedby="caption-attachment-1582" loading="lazy" data-attachment-id="1582" data-permalink="https://balau82.wordpress.com/2015/08/02/arduino-ethernet-shield-on-stm32-nucleo/381px-spi_single_slave-svg/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2015/08/381px-spi_single_slave-svg.png" data-orig-size="381,119" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="381px-SPI_single_slave.svg" data-image-description="" data-image-caption="&lt;p&gt;&amp;#8220;SPI single slave&amp;#8221; by en:User:Cburnett &amp;#8211; Own workThis vector image was created with Inkscape.. Licensed under CC BY-SA 3.0 via Wikimedia Commons &amp;#8211; https://commons.wikimedia.org/wiki/File:SPI_single_slave.svg#/media/File:SPI_single_slave.svg&lt;/p&gt;
" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2015/08/381px-spi_single_slave-svg.png?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2015/08/381px-spi_single_slave-svg.png?w=381" class="alignnone size-full wp-image-1582" src="https://balau82.wordpress.com/wp-content/uploads/2015/08/381px-spi_single_slave-svg.png?w=594" alt="381px-SPI_single_slave.svg"   srcset="https://balau82.wordpress.com/wp-content/uploads/2015/08/381px-spi_single_slave-svg.png 381w, https://balau82.wordpress.com/wp-content/uploads/2015/08/381px-spi_single_slave-svg.png?w=150&amp;h=47 150w, https://balau82.wordpress.com/wp-content/uploads/2015/08/381px-spi_single_slave-svg.png?w=300&amp;h=94 300w" sizes="(max-width: 381px) 100vw, 381px" /><p id="caption-attachment-1582" class="wp-caption-text">&#8220;SPI single slave&#8221; by en:User:Cburnett &#8211; Own workThis vector image was created with Inkscape.. Licensed under CC BY-SA 3.0 via Wikimedia Commons &#8211; <a href="https://commons.wikimedia.org/wiki/File:SPI_single_slave.svg#/media/File:SPI_single_slave.svg" rel="nofollow">https://commons.wikimedia.org/wiki/File:SPI_single_slave.svg#/media/File:SPI_single_slave.svg</a></p></div>
<h1>Conclusion</h1>
<p>All together, the collection of layers and libraries implement the file I/O that is expected to be available for common C programs. Each call to a C standard function will propagate downwards through all the library stack and perform accesses to the SD card, and the result of the operation will be propagated upwards to give to the main program the correct response.</p>
<p>The libraries and test code is currently available at my GitHub repository <a href="https://github.com/balau/nucleo_tests">nucleo_tests</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/07/03/stm32-nucleo-access-sd-cards-with-c-standard-library/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2023</post-id>
		<media:thumbnail url="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg" />
		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg" medium="image">
			<media:title type="html">Nucleo board wired with Ethernet shield</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/07/stdio_fatfs.png" medium="image">
			<media:title type="html">stdio_fatfs</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2015/08/381px-spi_single_slave-svg.png" medium="image">
			<media:title type="html">381px-SPI_single_slave.svg</media:title>
		</media:content>
	</item>
		<item>
		<title>Phil Koopman: Top 5 Embedded Software Problem Areas</title>
		<link>https://balau82.wordpress.com/2016/05/31/phil-koopman-top-5-embedded-software-problem-areas/</link>
					<comments>https://balau82.wordpress.com/2016/05/31/phil-koopman-top-5-embedded-software-problem-areas/#respond</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Tue, 31 May 2016 20:30:55 +0000</pubDate>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[code complexity]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[modularity]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[real-time]]></category>
		<category><![CDATA[testing]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=2021</guid>

					<description><![CDATA[The following resource is a thoughtful checklist that embedded software developers can take as inspiration to improve the product. It also links to further resources (as well as the author&#8217;s book) to explore the topics and analyze in depth the rationale of some of his suggestions. Better Embedded System SW: Top 5 Embedded Software Problem Areas &#8211; Five areas to dig into [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The following resource is a thoughtful checklist that embedded software developers can take as inspiration to improve the product. It also links to further resources (as well as the author&#8217;s book) to explore the topics and analyze in depth the rationale of some of his suggestions.</p>
<p><a href="http://betterembsw.blogspot.com/2016/05/top-5-embedded-software-problem-areas.html">Better Embedded System SW: Top 5 Embedded Software Problem Areas</a> <em>&#8211; Five areas to dig into when evaluating embedded software projects</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/05/31/phil-koopman-top-5-embedded-software-problem-areas/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2021</post-id>
		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	</item>
		<item>
		<title>Migrated from Debian 32bit to 64bit through dual boot</title>
		<link>https://balau82.wordpress.com/2016/05/16/migrated-from-debian-32bit-to-64bit-through-dual-boot/</link>
					<comments>https://balau82.wordpress.com/2016/05/16/migrated-from-debian-32bit-to-64bit-through-dual-boot/#comments</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Mon, 16 May 2016 19:17:49 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[32bit]]></category>
		<category><![CDATA[64bit]]></category>
		<category><![CDATA[debian]]></category>
		<category><![CDATA[dual boot]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1929</guid>

					<description><![CDATA[The desktop where I do most of my stuff is a Debian testing 32bit. Recently Google Chrome team declared the end of support of 32bit Linux distributions, and I decided to take the occasion to migrate towards a 64bit Debian. I read some guides around, some old, some with big warnings and disclaimers, some interesting. Ultimately I [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><img loading="lazy" data-attachment-id="1383" data-permalink="https://balau82.wordpress.com/2014/07/21/how-to-create-bare-minimum-debian-wheezy-rootfs-from-scratch/debian-wheezy-download/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2014/07/debian-wheezy-download.jpg" data-orig-size="635,307" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;}" data-image-title="debian-wheezy-download" data-image-description="" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2014/07/debian-wheezy-download.jpg?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2014/07/debian-wheezy-download.jpg?w=594" class="alignright size-medium wp-image-1383" src="https://balau82.wordpress.com/wp-content/uploads/2014/07/debian-wheezy-download.jpg?w=300&#038;h=145" alt="debian-wheezy-download" width="300" height="145" srcset="https://balau82.wordpress.com/wp-content/uploads/2014/07/debian-wheezy-download.jpg?w=300 300w, https://balau82.wordpress.com/wp-content/uploads/2014/07/debian-wheezy-download.jpg?w=600 600w, https://balau82.wordpress.com/wp-content/uploads/2014/07/debian-wheezy-download.jpg?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" />The desktop where I do most of my stuff is a Debian testing 32bit. Recently Google Chrome team <a href="https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/FoE6sL-p6oU">declared</a> the end of support of 32bit Linux distributions, and I decided to take the occasion to migrate towards a 64bit Debian.</p>
<p>I read some guides around, some <a href="https://wiki.debian.org/Migrate32To64Bit">old</a>, some with <a href="http://users.digitalkingdom.org/~rlpowell/hobbies/debian_arch_up/">big warnings</a> and disclaimers, some <a href="http://www.ewan.cc/?q=node/90">interesting</a>. Ultimately I decided to apply a strategy involving an intermediate step where I could <strong>dual boot</strong> between 32 and 64 bits, and this would allow me to return easily to the old system. When I first installed Debian 32bit, I separated my home, root and boot partitions, and this helped much in my migration.</p>
<p>The strategy has been:</p>
<ol>
<li>Reduce the size of some existing partitions. In my case I reduced my <code>home</code>, to make space for the new 64bit partitions.</li>
<li>Add new partitions for <code>root64</code> and <code>boot64</code>. Note that it doesn&#8217;t seem like a good idea to share boot partition between two distributions, otherwise one distro might decide to delete the kernels of the other ones. While Grub is able to detect Linux kernels and other operating systems in partitions other than boot.</li>
<li>Install (from CD or USB) Debian 64-bit on <code>root64</code> and <code>boot64</code>, keeping shared (and without formatting!) the home and swap directories. I used an &#8220;Alpha&#8221; snapshot of the Debian testing (Stretch) network installer (netinst).</li>
<li>Replicate the setup of installed packages and configurations. This has been an easy but iterative process of installing packages that I installed on previous</li>
<li>Remove old 32bit <code>root</code> and <code>boot</code> (actually, I haven&#8217;t yet done this one)</li>
</ol>
<p>Some notes about what happened:</p>
<ul>
<li>Before installation, I ran &#8220;<code>dpkg --get-selections &gt;selections.txt</code>&#8221; to get a list of all packages, but since I use aptitude, I ran &#8220;<code>aptitude search '~i !~M' &gt;pkgs.txt</code>&#8221; to search for packages that I did install and were not installed automatically as dependencies.</li>
<li>During CD installation, it complained about <code>systemd</code> vs <code>ifupdown</code> dependencies not met. I found <a href="http://bug=810785 http://forums.debian.net/viewtopic.php?f=17&amp;t=127215">this post</a>, and ran &#8220;apt-get install -f&#8221; from recovery shell to solve it.</li>
<li>I installed Grub into the Master Boot Record, and rebooted. The first time, it complained about home partition not clean, and I had to enter recovery console and run <code>fsck</code> manually.</li>
<li>I could log into my desktop, but it was very slow to start. I installed some XFCE packages and other software that I ran in autostart, and XFCE was then starting smoothly.</li>
<li>One problem that I had in my old setup and it still appeared was a failure in checking some partitions at boot: it would timeout after a minute and the partitions were not checked. Turns out I had to run &#8220;<code>systemctl mask systemd-fsckd.socket</code>&#8221; and &#8220;<code>systemctl mask systemd-fsckd.service</code>&#8221; that were interrupting the operation.</li>
<li>I noticed that I had no <code>xfce4-mixer</code> anymore, and I substituted it with a pulseaudio plugin instead.</li>
<li>dropbox, truecrypt and google chrome were installed by downloading from their respective websites.</li>
<li>I had some programs on <code>wine</code>, but it turns out I have to install the 32bit version to make them run. So I added the 32bit architecture with &#8220;<code>dpkg --add-architecture i386</code>&#8221; and installed wine32-development package.</li>
</ul>
<p>I am happy with the end result, I am typing right now in the 64bit version and I don&#8217;t notice the difference. The user experience seems more fluid, but it may very well be just an impression. I hope this strategy can be helpful for reference.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/05/16/migrated-from-debian-32bit-to-64bit-through-dual-boot/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1929</post-id>
		<media:thumbnail url="https://balau82.wordpress.com/wp-content/uploads/2014/09/openlogo-100.png" />
		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2014/09/openlogo-100.png" medium="image">
			<media:title type="html">openlogo-100</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2014/07/debian-wheezy-download.jpg?w=300" medium="image">
			<media:title type="html">debian-wheezy-download</media:title>
		</media:content>
	</item>
		<item>
		<title>Inline assembly in GCC [linux-insides]</title>
		<link>https://balau82.wordpress.com/2016/05/02/inline-assembly-in-gcc-linux-insides/</link>
					<comments>https://balau82.wordpress.com/2016/05/02/inline-assembly-in-gcc-linux-insides/#respond</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Mon, 02 May 2016 19:14:28 +0000</pubDate>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[ansi c]]></category>
		<category><![CDATA[assembly]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[extended asm]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[lwn]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1926</guid>

					<description><![CDATA[The news site lwn just posted a guide on GCC inline assembly. The guide is written in plain colloquial language and is a great complement to GCC documentation on the matter, which is more of a reference of the various functionalities. I found that the extended form of inline assembly is a powerful way to use the machine special [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>The news site <a href="http://lwn.net/Articles/685739/">lwn</a> just posted <a href="https://github.com/0xAX/linux-insides/blob/master/Theory/asm.md">a guide on GCC inline assembly</a>. The guide is written in plain colloquial language and is a great complement to <a href="https://gcc.gnu.org/onlinedocs/gcc/Using-Assembly-Language-with-C.html#Using-Assembly-Language-with-C">GCC documentation on the matter</a>, which is more of a reference of the various functionalities. I found that the extended form of inline assembly is a powerful way to use the machine special capabilities in C, but every line needs the correct inputs, outputs and flags. If they are not chosen correctly, the compiler could produce something that doesn&#8217;t work as you would expect, and this could happen silently and only with some combination of optimization options, function complexity and context.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/05/02/inline-assembly-in-gcc-linux-insides/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1926</post-id>
		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	</item>
		<item>
		<title>Linus Torvalds interview at TED</title>
		<link>https://balau82.wordpress.com/2016/04/11/linus-torvalds-interview-at-ted/</link>
					<comments>https://balau82.wordpress.com/2016/04/11/linus-torvalds-interview-at-ted/#comments</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Mon, 11 Apr 2016 18:57:30 +0000</pubDate>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linus torvalds]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ted]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1923</guid>

					<description><![CDATA[Chris Anderson, the creator of TED, interviews Linus Torvalds on the traits that are useful to create and maintain something remarkable as Linux. Linus appears as his usual self, joking about his own defects, and being overall very lucid in its analysis of the current status of Linux kernel and what happened to get there. He [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Chris Anderson, the creator of TED, interviews Linus Torvalds on the traits that are useful to create and maintain something remarkable as Linux. Linus appears as his usual self, joking about his own defects, and being overall very lucid in its analysis of the current status of Linux kernel and what happened to get there. He also offers a very peculiar approach on software openness which is, paraphrasing, giving people the freedom to push your software towards places where you have no intention to go. There&#8217;s also a discussion about taste: an artisan of computer programming over time acquires some sense of what&#8217;s the better code, and usually it has to do with simplicity.</p>
<p>Here&#8217;s the talk:</p>
<div class="embed-ted"><iframe title="Linus Torvalds: The mind behind Linux" src="https://embed.ted.com/talks/linus_torvalds_the_mind_behind_linux" sandbox="allow-popups allow-scripts allow-same-origin" width="594" height="334" frameborder="0" scrolling="no" webkitAllowFullScreen mozallowfullscreen allowFullScreen></iframe></div>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/04/11/linus-torvalds-interview-at-ted/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1923</post-id>
		<media:thumbnail url="https://balau82.wordpress.com/wp-content/uploads/2015/01/tux.png" />
		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2015/01/tux.png" medium="image">
			<media:title type="html">Tux</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>
	</item>
		<item>
		<title>Simple time synchronization for the Internet of Things</title>
		<link>https://balau82.wordpress.com/2016/02/18/simple-time-synchronization-for-the-internet-of-things/</link>
					<comments>https://balau82.wordpress.com/2016/02/18/simple-time-synchronization-for-the-internet-of-things/#comments</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Thu, 18 Feb 2016 21:04:55 +0000</pubDate>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[ethernet]]></category>
		<category><![CDATA[internet of things]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[nist]]></category>
		<category><![CDATA[ntp]]></category>
		<category><![CDATA[nucleo]]></category>
		<category><![CDATA[RFC4330]]></category>
		<category><![CDATA[RFC5905]]></category>
		<category><![CDATA[RFC868]]></category>
		<category><![CDATA[sntp]]></category>
		<category><![CDATA[stm32]]></category>
		<category><![CDATA[tcp]]></category>
		<category><![CDATA[tcp/ip]]></category>
		<category><![CDATA[time protocol]]></category>
		<category><![CDATA[udp]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1917</guid>

					<description><![CDATA[While adding HTTPS capabilities to my STM32 Nucleo board, I needed to solve the problem of current time. This is because TLS needs to check certificate expiration date, so we need a sufficiently accurate estimation of time. So I tried to understand what could I do to ask a network server about the time. I [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>While adding HTTPS cap<img loading="lazy" data-attachment-id="1920" data-permalink="https://balau82.wordpress.com/2016/02/18/simple-time-synchronization-for-the-internet-of-things/network-time-icon/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png" data-orig-size="512,512" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Network-time-icon" data-image-description="&lt;p&gt;http://www.iconarchive.com/show/large-time-icons-by-aha-soft/Network-time-icon.html&lt;/p&gt;
" data-image-caption="" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png?w=512" class="alignright size-medium wp-image-1920" src="https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png?w=300&#038;h=300" alt="Network-time-icon" width="300" height="300" srcset="https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png?w=300 300w, https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png?w=150 150w, https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png 512w" sizes="(max-width: 300px) 100vw, 300px" />abilities to my STM32 Nucleo board, I needed to solve the problem of current time. This is because TLS needs to check certificate expiration date, so we need a sufficiently accurate estimation of time. So I tried to understand what could I do to ask a network server about the time. I discovered a couple of protocols that are useful for small devices because they need only basic resources.</p>
<h1>Time Protocol</h1>
<p>The <a href="https://tools.ietf.org/html/rfc868">RFC 868</a> describes the &#8220;<a href="https://en.wikipedia.org/wiki/Time_Protocol">Time Protocol</a>&#8220;, which is a very old but deadly simple way to get the time from a server that implements this service. With this protocol a device is able to retrieve a 32-bit unsigned value indicating the number of seconds that have passed since the 1st of January 1900.</p>
<p>There are two ways to connect to the service: TCP or UDP. With TCP the device connects to port 37 and the server immediately sends back to the device the 32-bit value in 4 bytes (in network byte order); the device can now close the connection. With UDP, the device sends a dummy UDP datagram to port 37 of the server, containing 0 or more bytes whose content is ignored by the server; when the server receives a packet, it replies with the 32-bit value as before.</p>
<p>The precision of this time synchronization can&#8217;t be less than a second, moreover the time that passes between the sending and the receiving of the packet may vary. Anyway if we simply want the approximate time of the day, it&#8217;s good enough.</p>
<p>The implementation that I used in my Nucleo board is <a href="https://github.com/balau/nucleo_tests/blob/master/src/rfc868_time.c">here in rfc868_time.c</a>.</p>
<h1>Simple Network Time Protocol</h1>
<p>Many people are familiar with <a href="https://en.wikipedia.org/wiki/Network_Time_Protocol">NTP</a>, which is the protocol that our PCs use to synchronize the time with time servers around the globe. Its specifications are detailed in <a href="https://tools.ietf.org/html/rfc5905">RFC 5905</a>, and the precision that can be reached is very high.</p>
<p>But a simpler variant exists, aptly named <a href="https://en.wikipedia.org/wiki/Network_Time_Protocol#SNTP">SNTP</a> and described in <a href="https://tools.ietf.org/html/rfc4330">RFC 4330</a>. An implementation of this protocol is able to retrieve from a server the timestamp containing the number of seconds from 1st of January 1900 and a fraction of second. A whole timestamp occupies 64 bits, and its value is more precise that what can be achieved by the Time Protocol, especially when the device performs some estimation of packet travel time and clock offset, using the timestamps present in the exchanged packets. The interaction also in this case is simple: it&#8217;s about sending a 36-byte UDP packet and receiving a similar packet, whose fields contains the timestamps that are used to synchronize the device clock with the server clock.</p>
<p>The implementation that I used in my Nucleo board is <a href="https://github.com/balau/nucleo_tests/blob/master/src/sntp.c">here in sntp.c</a>.</p>
<p>There&#8217;s a list of NIST servers that implement the common time protocols here: <a href="http://tf.nist.gov/tf-cgi/servers.cgi">NIST Internet Time Servers</a>. It is advised to resolve time.nist.gov so that the client points to the nearest non-busy server.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/02/18/simple-time-synchronization-for-the-internet-of-things/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1917</post-id>
		<media:thumbnail url="https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png" />
		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png" medium="image">
			<media:title type="html">Network-time-icon</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2016/02/network-time-icon.png?w=300" medium="image">
			<media:title type="html">Network-time-icon</media:title>
		</media:content>
	</item>
		<item>
		<title>HTTPS client on STM32 Nucleo-F411RE</title>
		<link>https://balau82.wordpress.com/2016/02/04/https-client-on-stm32-nucleo-f411re/</link>
					<comments>https://balau82.wordpress.com/2016/02/04/https-client-on-stm32-nucleo-f411re/#comments</comments>
		
		<dc:creator><![CDATA[Balau]]></dc:creator>
		<pubDate>Thu, 04 Feb 2016 20:59:19 +0000</pubDate>
				<category><![CDATA[Embedded]]></category>
		<category><![CDATA[ARM]]></category>
		<category><![CDATA[arm-none-eabi-gcc]]></category>
		<category><![CDATA[certificate]]></category>
		<category><![CDATA[ethernet shield]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[internet of things]]></category>
		<category><![CDATA[iot]]></category>
		<category><![CDATA[jtag]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mbed]]></category>
		<category><![CDATA[minicom]]></category>
		<category><![CDATA[nucleo]]></category>
		<category><![CDATA[nucleo-f411re]]></category>
		<category><![CDATA[openocd]]></category>
		<category><![CDATA[openssl]]></category>
		<category><![CDATA[spi]]></category>
		<category><![CDATA[stm32]]></category>
		<category><![CDATA[stm32f4]]></category>
		<category><![CDATA[stm32f411re]]></category>
		<category><![CDATA[stmicroelectronics]]></category>
		<category><![CDATA[tcp]]></category>
		<category><![CDATA[tcp/ip]]></category>
		<category><![CDATA[tls]]></category>
		<category><![CDATA[w5100]]></category>
		<category><![CDATA[wiznet]]></category>
		<guid isPermaLink="false">http://balau82.wordpress.com/?p=1912</guid>

					<description><![CDATA[One of my goal of the past months was to use an STM32 Nucleo board to get a webpage through HTTPS, using an Ethernet shield for TCP/IP stack. I was close last time, but I discovered that my Nucleo-F103RB did not have enough RAM. Now I have my hands on a Nucleo-F411RE that has 128KiB of RAM [&#8230;]]]></description>
										<content:encoded><![CDATA[<div data-shortcode="caption" id="attachment_1580" style="width: 310px" class="wp-caption alignright"><img aria-describedby="caption-attachment-1580" loading="lazy" data-attachment-id="1580" data-permalink="https://balau82.wordpress.com/2015/08/02/arduino-ethernet-shield-on-stm32-nucleo/img_20150802_211129269/" data-orig-file="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg" data-orig-size="2592,1456" data-comments-opened="1" data-image-meta="{&quot;aperture&quot;:&quot;2.4&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;XT1039&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;1039348800&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;3.5&quot;,&quot;iso&quot;:&quot;640&quot;,&quot;shutter_speed&quot;:&quot;0.1&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}" data-image-title="Nucleo board wired with Ethernet shield" data-image-description="&lt;p&gt;Nucleo board wired with Ethernet shield.&lt;/p&gt;
" data-image-caption="&lt;p&gt;Nucleo board wired with Ethernet shield.&lt;/p&gt;
" data-medium-file="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=300" data-large-file="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=594" class="size-medium wp-image-1580" src="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=300&#038;h=169" alt="Nucleo board wired with Ethernet shield." width="300" height="169" srcset="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=300 300w, https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=600 600w, https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=150 150w" sizes="(max-width: 300px) 100vw, 300px" /><p id="caption-attachment-1580" class="wp-caption-text">Nucleo board wired with Ethernet shield.</p></div>
<p>One of my goal of the past months was to use an STM32 Nucleo board to get a webpage through HTTPS, using an Ethernet shield for TCP/IP stack. I was close last time, but I discovered that my <a href="https://balau82.wordpress.com/2016/01/10/stm32-nucleo-f103rb-has-low-resources-for-tls-1-2/">Nucleo-F103RB did not have enough RAM</a>. Now I have my hands on a <a href="http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1847/PF260320">Nucleo-F411RE</a> that has 128KiB of RAM and 512KiB of Flash, and I was finally able to do it.</p>
<p>The hardware is composed of:</p>
<ul>
<li>Nucleo-F411RE
<ul>
<li><a href="http://www.st.com/web/catalog/mmc/FM141/SC1169/SS1577/LN1877/PF260049">STM32F411RE</a> microcontroller</li>
<li>SPI master to communicate with other chips</li>
<li>USART serial port with STLink USB connection for standard I/O</li>
<li>JTAG with STLink USB connection to flash program</li>
</ul>
</li>
<li>Ethernet shield
<ul>
<li><a href="http://www.wiznet.co.kr/product-item/w5100/">Wiznet W5100</a> that implements the TCP/IP and UDP/IP stacks.</li>
<li>SPI connection to the board below.</li>
</ul>
</li>
</ul>
<p>The software that I uploaded on board is composed of:</p>
<ul>
<li>Low-level drivers provided by <a href="http://www.libopencm3.org/wiki/Main_Page">libopencm3</a></li>
<li>W5100 <a href="https://github.com/balau/nucleo_tests/blob/eb2cc1942618f745286028c3cc591012b92d56bc/src/w5100_spi.c">SPI driver</a> to expose the chip registers and memories.</li>
<li>Socket API: <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/V2_chap02.html#tag_15_10">POSIX socket</a> library <a href="https://github.com/balau/nucleo_tests/blob/eb2cc1942618f745286028c3cc591012b92d56bc/src/w5100_socket.c">developed by me</a> on top of W5100 functionality.</li>
<li>USART minimal driver to write/read from serial port through the STLink USB connection on the Nucleo.</li>
<li>DNS: I developed a <a href="https://github.com/balau/nucleo_tests/blob/eb2cc1942618f745286028c3cc591012b92d56bc/src/getaddrinfo.c">minimal implementation</a> of <a href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/freeaddrinfo.html">getaddrinfo()</a> to retrieve the IP address of a website from its name.</li>
<li>TLS: I used <a href="https://tls.mbed.org/">mbedTLS</a> 2.2.0 for the Transport Layer Security 1.2</li>
<li>The certificate of the CA, that is embedded statically as a binary blob into the program (I used Chrome to download it beforehand).</li>
<li>The <a href="https://github.com/balau/nucleo_tests/blob/eb2cc1942618f745286028c3cc591012b92d56bc/tests/mbedtls/mbedtls_test.c">application</a> is simply an HTTP GET request.</li>
</ul>
<p>The tools I used to build the software are:</p>
<ul>
<li><a href="https://launchpad.net/gcc-arm-embedded">GCC ARM Embedded</a> toolchain (version 4.9 2015q1) to compile and link the code,</li>
<li><a href="http://openocd.org/">OpenOCD</a> (version 0.9.0) to write the software image into the STM32 embedded flash,</li>
<li>Chrome to download the CA certificate,</li>
<li><a href="http://linux.die.net/man/1/minicom">minicom</a> to connect with the serial port</li>
<li>All on my <a href="https://www.debian.org/">Debian</a> (<a href="https://wiki.debian.org/DebianStretch">Stretch</a>) Linux box</li>
</ul>
<p>To build and run:</p>
<ol>
<li><code>git</code> checkout my <a href="https://github.com/balau/nucleo_tests/">nucleo_tests</a> repo (now at commit eb2cc1942618f745286028c3cc591012b92d56bc).</li>
<li>Go in <code>libopencm3</code> directory and run &#8220;<code>make</code>&#8221; to compile the low-level drivers.</li>
<li>Download <a href="https://tls.mbed.org/tech-updates/releases/mbedtls-2.2.0-2.1.3-1.3.15-and-polarssl.1.2.18-released">mbedTLS 2.2.0</a> and unpack it in nucleo_tests directory.</li>
<li>Open &#8220;<code>nucleo_tests/tests/test.mk</code>&#8220;, comment the stm32f103rb line and uncomment the stm32f411re line.</li>
<li>Go in &#8220;<code>nucleo_tests/tests/mbedtls</code>&#8221; directory and run &#8220;<code>make</code>&#8221; to build both the mbedTLS library and the application.</li>
<li>Connect the Nucleo board + Ethernet shield to the PC with USB, and connect the Ethernet cable.</li>
<li>In another terminal run &#8220;<code>minicom -b 57600 -D /dev/ttyACM0</code>&#8221; to connect to the serial port.</li>
<li>Run &#8220;<code>make flash</code>&#8221; to write the program into the STM32 embedded flash (uses <code>openocd</code> program)</li>
<li>Wait for the Link LED on the Ethernet shield to turn on.</li>
<li>Go in the minicom terminal, and you should see a prompt; press a key to continue.</li>
<li>The terminal should print the page that has been retrieved through HTTPS.</li>
</ol>
<p>This is the output I get from the serial port:</p>
<pre class="brush: plain; title: ; notranslate">Press any key to continue...
Certificate:
cert. version     : 3
serial number     : 02:0B:70:F4:68:67:1E:47:13:96:63:3D:99:2C:E5:CD
issuer name       : C=US, O=DigiCert Inc, CN=DigiCert SHA2 Secure Server CA
subject name      : C=US, ST=Cali
HTTP/1.1 200 OK
Server: nginx
Date: Thu, 04 Feb 2016 20:41:12 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
Last-Modified: Mon, 09 Nov 2015 23:59:43 GMT
ETag: &quot;687f8a-bd-52424631079c0&quot;
Cache-Control: max-age=1209600
Expires: Wed, 10 Feb 2016 15:34:38 GMT
Vary: Accept-Encoding
X-Varnish: 324309826 304737767
Age: 709594
Via: 1.1 varnish
Strict-Transport-Security: max-age=31536000; includeSubdomains
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN

bd
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;Site Under Maintenance&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;


&lt;h1&gt;This site is currently under maintenance. Please try back later.&lt;/h1&gt;


    &lt;/body&gt;
&lt;/html&gt;

0</pre>
<p>To conclude, this proof of concept shows a very small platform that can be used to build IoT applications with a layer of security. Instead of having an application processor running Linux, we have a microcontroller running at a frequency as low as 16MHz, the base software is around 90KiB of code running in flash, and needs around 50KiB of RAM, between static and dynamic memory. We are using a security layer that doesn&#8217;t invent anything new: it&#8217;s an implementation of the widely used TLS.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://balau82.wordpress.com/2016/02/04/https-client-on-stm32-nucleo-f411re/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1912</post-id>
		<media:thumbnail url="https://balau82.wordpress.com/wp-content/uploads/2015/12/nucleo_w5100.jpg" />
		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2015/12/nucleo_w5100.jpg" medium="image">
			<media:title type="html">nucleo_w5100</media:title>
		</media:content>

		<media:content url="https://2.gravatar.com/avatar/8a3f012ca2e57685afd62ce080559cc38a3a7831b2558a20dbcc8d0c9cc84943?s=96&#38;d=https%3A%2F%2F2.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D96&#38;r=PG" medium="image">
			<media:title type="html">Balau</media:title>
		</media:content>

		<media:content url="https://balau82.wordpress.com/wp-content/uploads/2015/08/img_20150802_211129269.jpg?w=300" medium="image">
			<media:title type="html">Nucleo board wired with Ethernet shield.</media:title>
		</media:content>
	</item>
	</channel>
</rss>
