<?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>hardware design Archives - ClickedyClick</title>
	<atom:link href="https://gergely.imreh.net/blog/tag/hardware-design/feed/" rel="self" type="application/rss+xml" />
	<link>https://gergely.imreh.net/blog/tag/hardware-design/</link>
	<description>Life in real, complex and digital.</description>
	<lastBuildDate>Fri, 28 Aug 2015 01:52:26 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
	<item>
		<title>My first non-trivial hardware: PCIeDuino</title>
		<link>https://gergely.imreh.net/blog/2015/08/pcieduino/</link>
					<comments>https://gergely.imreh.net/blog/2015/08/pcieduino/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Fri, 21 Aug 2015 14:17:10 +0000</pubDate>
				<category><![CDATA[Maker]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[hardware design]]></category>
		<category><![CDATA[open hardware]]></category>
		<category><![CDATA[Tindie]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=1993</guid>

					<description><![CDATA[<p>Just a bit more than a year ago I&#8217;ve started to work on a hardware idea as a challenge &#8211; a mini-PCIe form factor Arduino clone, the PCIeDuino.  The inspiration was working with a bunch of embedded boards, especially the VIA VAB-600 Springboard, that had a mini-PCIe connector, but not that many accessories that can [&#8230;]</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/08/pcieduino/">My first non-trivial hardware: PCIeDuino</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Just a bit more than a year ago I&#8217;ve started to work on a hardware idea as a challenge &#8211; a mini-PCIe form factor <a href="https://www.arduino.cc/">Arduino</a> clone, the <a href="https://www.tindie.com/products/imrehg/pcieduino/">PCIeDuino</a>.  The inspiration was working with a bunch of embedded boards, especially the <a href="http://www.viaembedded.com/en/boards/pico-itx/vab-600/">VIA VAB-600 Springboard</a>, that had a mini-PCIe connector, but not that many accessories that can go in there. (Disclaimer, I work at VIA at the moment, though this wasn&#8217;t a work project). I thought it would be cool to put an embedded-grade microcontroller on these boards, mostly to expand the I/O capabilities.</p>
<h2>Idea</h2>
<figure id="attachment_2034" aria-describedby="caption-attachment-2034" style="width: 720px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="size-large wp-image-2034" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/LabBook1-min-1024x715.jpg" alt="The original PCIeDuino sketch in my lab book" width="720" height="503" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/LabBook1-min-1024x715.jpg 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/LabBook1-min-500x349.jpg 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/LabBook1-min-768x536.jpg 768w" sizes="(max-width: 720px) 100vw, 720px" /><figcaption id="caption-attachment-2034" class="wp-caption-text">The original PCIeDuino sketch in my lab book</figcaption></figure>
<p>Looking at the mini-PCIe specs, the connector has mandatory USB 2.0 lines so communication was solved. The area available, roughly 5.1 x 3.0 cm, is not too bad  -more than how big the <a href="https://www.arduino.cc/en/Main/ArduinoBoardNano">Arduino Nano</a> is in comparison. The biggest challenge probably was that there are only 3.3V power lines available, and most example designs use 5V power supply.</p>
<p><span id="more-1993"></span></p>
<p>Fortunately Arduino is released under quite permissive <a href="https://creativecommons.org/licenses/by-sa/3.0/">Creative Commons CC-BY-SA</a> license, which means whoever makes an Arduino clone, also has to release it under the same license. This gave a lot of interesting designs to scout and learn from.</p>
<p>The original plan was using a similar Bill of Materials as the Nano, based around the <a href="http://www.atmel.com/devices/atmega328p.aspx">ATmega328P</a>, but two things happened to change it. First, I&#8217;ve changed my mind that I didn&#8217;t want to use the FTDI FT232 chip they used for USB-to-UART conversion. Second, my clever electronics friend Niko figured out that the tiny bit more advanced <a href="http://www.atmel.com/devices/atmega328p.aspx">ATmega32U4</a> microcontroller would also work at 3.3V and since it speaks USB natively, could cut a bunch of components (that&#8217;s always good). The trade-off is a bit of clock speed (running at 8MHz), but that&#8217;s acceptable.</p>
<h2>Design</h2>
<p>I did find clone with these parameters (3.3V power and ATmega32U4), the <a href="https://www.sparkfun.com/products/12587">SparkFun Pro Micro 3.3V</a>.  Took that basic design, replaced some components, added a Power LED,  and broke out the pins differently. Done in <a href="http://www.kicad-pcb.org/">KiCad</a>, the result is this PCIeDuino design below (or check the <a href="https://github.com/moonpunchorg/pcieduino/blob/master/pcieduino.pdf">PDF version)</a>.</p>
<figure id="attachment_2055" aria-describedby="caption-attachment-2055" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/pcieduino_schematic.png"><img decoding="async" class="size-large wp-image-2055" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/pcieduino_schematic-1024x724.png" alt="PCIeDuino Schematic (click for full size)" width="604" height="427" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/pcieduino_schematic-1024x724.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/pcieduino_schematic-500x354.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/pcieduino_schematic-768x543.png 768w" sizes="(max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2055" class="wp-caption-text">PCIeDuino Schematic (click for full size)</figcaption></figure>
<p>The next step was fitting all these components onto a mini-PCIe card. The board size was sketched in detail in the specs, though somehow all the dimensions were described in a way that it was quite inconvenient for making a board outline. Nothing that an hour of math cannot fix&#8230;</p>
<figure id="attachment_2061" aria-describedby="caption-attachment-2061" style="width: 641px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/miniPCIe_full.png"><img decoding="async" class="size-full wp-image-2061" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/miniPCIe_full.png" alt="Full sized mini-PCIe card dimensions" width="641" height="400" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/miniPCIe_full.png 641w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/miniPCIe_full-500x312.png 500w" sizes="(max-width: 641px) 100vw, 641px" /></a><figcaption id="caption-attachment-2061" class="wp-caption-text">Full sized mini-PCIe card dimensions</figcaption></figure>
<p>Actually, had to do the board layout twice, because for the first prototype (that I actually got printed) somehow had a crystal footprint that doesn&#8217;t correspond to any available 8Mhz crystal that I needed &#8211; so had to start again a bit. I took that chance to reorganize the board bit, and that extra round of design did a lot of good to the quality! More logical layout, better component grouping, simplified arrangement.</p>
<p>The biggest challenge at this stage was wiring the output pins. That part was done with a few tries of autorouting with <a href="https://github.com/nikropht/FreeRouting/">FreeRouting</a>. The idea being that it&#8217;s a low frequency, small board so likely not too demanding design-wise, and getting it printed is more important that fine-tuning it to death. The USB line was hand-matched, though, and the LEDs were arranged to face the same way for easier mounting, so not all just auto-optimize.</p>
<p>The tape-out happened in May, about 9 months after getting started (and about 4 months downtime in between). The resulting board looks like this:</p>
<figure id="attachment_2056" aria-describedby="caption-attachment-2056" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/seeed_20150524_top_small_functional_white.png"><img loading="lazy" decoding="async" class="size-large wp-image-2056" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/seeed_20150524_top_small_functional_white-1002x1024.png" alt="Functional Diagram (click to enlarge)" width="604" height="617" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/seeed_20150524_top_small_functional_white-1002x1024.png 1002w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/seeed_20150524_top_small_functional_white-489x500.png 489w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/seeed_20150524_top_small_functional_white-768x785.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/seeed_20150524_top_small_functional_white.png 1164w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2056" class="wp-caption-text">Functional Diagram (click to enlarge)</figcaption></figure>
<p>I&#8217;ve submitted the board to <a href="http://www.seeedstudio.com/service/index.php?r=pcb">Seeed Studio&#8217;s Fusion PCB service</a>, and got it back in about 2 weeks. In the meantime the components were ordered from <a href="http://www.mouser.tw/Home.aspx">Mouser</a>, the parts for 10 boards (equal to the number of PCBs printed)  just being above the minimum threshold for free shipping.</p>
<h2>Alive</h2>
<p>Then came the assembly &#8211; hand soldered surface mount components can be really frustrating, but I really got to like them by now. If only my left hand was better (I&#8217;m right handed &#8211; solder in right hand, tweezers supposed to be in left). The assembly took about 1 hour altogether.</p>
<figure id="attachment_2057" aria-describedby="caption-attachment-2057" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_magnifying.jpg"><img loading="lazy" decoding="async" class="size-large wp-image-2057" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_magnifying-1024x576.jpg" alt="Under the magnifying glass (early prototype)" width="604" height="340" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_magnifying-1024x576.jpg 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_magnifying-500x281.jpg 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_magnifying-768x432.jpg 768w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2057" class="wp-caption-text">Under the magnifying glass (early prototype)</figcaption></figure>
<p>Now it&#8217;s time for waking the board up. Fortunately SparkFun&#8217;s <a href="https://github.com/sparkfun/SF32u4_boards">Pro Micro firmware</a> fits nicely onto the PCIeDuino too. Using an <a href="https://learn.adafruit.com/usbtinyisp/overview">USBTinyISP</a> clone (from eBay), a bunch of <a href="http://www.mouser.tw/Search/ProductDetail.aspx?R=0922-0-15-20-75-14-11-0virtualkey57510000virtualkey575-922015">pogo pins</a>, and the ISP headers on the board I could flash the firmware.</p>
<p>Plug it into the the embedded board and powering up, the blinking D13 LED showed that everything should be pretty close to alright!</p>
<figure id="attachment_2058" aria-describedby="caption-attachment-2058" style="width: 604px" class="wp-caption aligncenter"><a href="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_spark.jpg"><img loading="lazy" decoding="async" class="wp-image-2058 size-large" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_spark-1024x576.jpg" alt="The spark of life" width="604" height="340" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_spark-1024x576.jpg 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_spark-500x281.jpg 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/PCIeDuino_spark-768x432.jpg 768w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2058" class="wp-caption-text">The spark of life &#8211; PCIeDuino in a Springboard</figcaption></figure>
<p>Since then I&#8217;ve assembled altogether 7 of the boards (still takes about 1 hour each by hand, but I&#8217;m getting better). Had a few failures, but now I also know how to diagnose those issues better.</p>
<p>(If curious, so far had &#8220;magic smoke&#8221;, cold joint, shorted microcontroller pins, and now a board with a short somewhere that triggered the fuse. Ah, the learning!)</p>
<h2>Advanced</h2>
<p>Now the <a href="https://www.tindie.com/products/imrehg/pcieduino/">PCIeDuino is available on Tindie</a> (whenever I have a bit of time to assemble more). It a great experience trying to make a compelling maker project that other people want to use too! Having better documentation, more explanation, better software, better communication, and actually going out finding people who are interested in this could be pretty much full time work!</p>
<p>I got my first <a href="http://hackaday.com/2015/07/24/arduino-pci-express/">Hackaday feature</a> too, not that it was a great article, but the discussion was very illuminating and helped me to polish my own idea regarding this project.</p>
<p>All the <a href="https://github.com/moonpunchorg/pcieduino">KiCAd source and Gerber files</a> are available on Github with CC-BY-SA license, so others can take this design to places too!</p>
<h2>Future</h2>
<p>The PCIeDuino is still very much a prototype project, more suitable probably for advanced users who are not put off when not every path is well worn out. I have to test it a lot more too, and <strong>find interesting use cases</strong>!</p>
<p>It looks like that the SparkFun <strong>firmware</strong> is not very well maintained, and it could be useful to look for alternatives. <a href="https://github.com/Optiboot/optiboot">Optiboot</a> seems to be interesting, but it also needs some work for the ATmega32U4 chip. Software support is super important, though, so this got to be a high priority improvement.</p>
<p>The original idea was to use this on embedded boards, that are mostly ARM systems. It should also be easy to use, Arduino IDE compatible project. The problem is, that the two parts are at odds with each other. The <strong>Arduino IDE doesn&#8217;t quite work well on ARM</strong> yet, so it&#8217;s mostly command line operation at the moment. Not a breaking change, but still a fail that needs to be remedied somehow.</p>
<p>The board is designed to conform to the mini-PCIe board specs. It fulfills the full-sized board variation&#8217;s requirements: the board outline, 1.0mm PCB thickness, connector pins,  mounting, keep out zones, &#8230;. It does not do the beveled cut at the connector (45º bevel cut needed, but seems to work regardless). To help other people to design mini-PCIe boards, I&#8217;ve put together a <strong>bare board starter kit</strong> in KiCad, <a href="https://github.com/moonpunchorg/baseboards">available on Github</a>, which includes the connector schematic, board outline, pin placement, and top-end mounting holes. Would be good to make a half-sized board variation design as well in the future, though at the moment it&#8217;s not a priority (pull requests welcome!)</p>
<figure id="attachment_2069" aria-describedby="caption-attachment-2069" style="width: 604px" class="wp-caption aligncenter"><a href="https://github.com/moonpunchorg/baseboards"><img loading="lazy" decoding="async" class="size-large wp-image-2069" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/baseboard-1024x671.png" alt="Mini PCIe baseboard in KiCad (click for source)" width="604" height="396" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/baseboard-1024x671.png 1024w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/baseboard-500x327.png 500w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/baseboard-768x503.png 768w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/baseboard.png 1139w" sizes="auto, (max-width: 604px) 100vw, 604px" /></a><figcaption id="caption-attachment-2069" class="wp-caption-text">Mini PCIe baseboard in KiCad (click for source)</figcaption></figure>
<p>This project also gave me a lot of <strong>ideas for future devices</strong>: similar mini-PCIe designs with ATXmega or ARM Cortex-M microcontrollers, and other Arduino clones with special functionality, e.g. built around the <a href="http://www.atmel.com/devices/ATMEGA2564RFR2.aspx">ATmega2564RF2</a> for  <a href="https://en.wikipedia.org/wiki/IEEE_802.15.4">802.15.4</a> mesh networking&#8230; But first, take this design to its full potential&#8230;</p>
<p>If you like this idea, check out the <a href="https://www.tindie.com/products/imrehg/pcieduino/">PCIeDuino on Tindie</a>, and would love to hear any kind of feedback or comment too! There&#8217;s a lot to improve, even if this is really the most complex electronics design I made so far&#8230; Now back to the drawing board and to soldering!</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/08/pcieduino/">My first non-trivial hardware: PCIeDuino</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2015/08/pcieduino/feed/</wfw:commentRss>
			<slash:comments>5</slash:comments>
		
		
			</item>
		<item>
		<title>Is there an Uncanny Valley for hardware projects?</title>
		<link>https://gergely.imreh.net/blog/2015/08/maker-uncanny-valley/</link>
					<comments>https://gergely.imreh.net/blog/2015/08/maker-uncanny-valley/#comments</comments>
		
		<dc:creator><![CDATA[Gergely Imreh]]></dc:creator>
		<pubDate>Thu, 20 Aug 2015 06:02:18 +0000</pubDate>
				<category><![CDATA[Maker]]></category>
		<category><![CDATA[Thinking]]></category>
		<category><![CDATA[hardware design]]></category>
		<category><![CDATA[hardware startup]]></category>
		<guid isPermaLink="false">https://gergely.imreh.net/blog/?p=2048</guid>

					<description><![CDATA[<p>The concept of the Uncanny Valley comes from robotics, its hypothesis says that when humanoid robots move and feel almost, but not completely like the real thing, they can be more off-putting than the robots that have less human likeness. Working on quite a few hardware projects these days, I started to wonder (okay, say [&#8230;]</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/08/maker-uncanny-valley/">Is there an Uncanny Valley for hardware projects?</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>The concept of the <a href="https://en.wikipedia.org/wiki/Uncanny_valley">Uncanny Valley</a> comes from robotics, its hypothesis says that when humanoid robots move and feel almost, but not completely like the real thing, they can be more off-putting than the robots that have less human likeness.</p>
<p>Working on quite a few hardware projects these days, I started to wonder (okay, say it out loud: worry), that there&#8217;s an uncanny valley for hardware projects as well. My theory goes such that hardware projects that are almost, but not completely professional can be more off-putting (or underwhelming) than less advanced, clearly maker projects and prototypes.</p>
<p><span id="more-2048"></span></p>
<figure id="attachment_2049" aria-describedby="caption-attachment-2049" style="width: 700px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-2049 size-full" src="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/MakerUncannyValley.png" alt="Uncanny Valley sketch" width="700" height="400" srcset="https://gergely.imreh.net/blog/wp-content/uploads/2015/08/MakerUncannyValley.png 700w, https://gergely.imreh.net/blog/wp-content/uploads/2015/08/MakerUncannyValley-500x286.png 500w" sizes="auto, (max-width: 700px) 100vw, 700px" /><figcaption id="caption-attachment-2049" class="wp-caption-text">The hardware project Uncanny Valley sketch</figcaption></figure>
<p>To give a few examples of cases that I feel might fall into this uncanny valley:</p>
<ul>
<li>a gadget that moved on to more advanced, <strong>surface-mount components, but they are hand-soldered</strong> (instead of done with a reflow oven). Functionality is the same (hopefully), but the visual appearance is always a bit less organized</li>
<li>a project that has <strong>very detailed documentation, but not quite a complete manual</strong>, leaving just enough uncertainty to possibly frustrate some semi-advanced users</li>
<li><strong>packaging / invoice done nicely but not as good or clear or standardized</strong> as e.g. a Mouser order (just as an example), going overboard with what to include or not going far enough (quick start guide, any help, disclaimers, policies &#8211; are they needed, and if yes, in what depth to cover the topic?)</li>
<li><strong>communication is more polished but still fall short</strong> of professional customer service in clarity, or hitting the right tone, or being too corporate-y (or too little), taking just a bit too much time to reply to questions, and so on&#8230;.</li>
</ul>
<p>I guess many of these issues arise around the time when makers want to start earning a few buck with their work, and not everyone is prepared to cross this region of professionalism. But if there&#8217;s a valley, you&#8217;d better stay on the low side, or fight through to the upside with plenty of effort.</p>
<p>If there&#8217;s a valley like that, I guess it&#8217;s still a good problem to have, and platforms like <a href="https://www.tindie.com">Tindie</a> (the indie hardware marketplace) do a good job of throwing people into the deep end into these issues. I myself trying to figure out whether I&#8217;m in there yet (and whether I&#8217;m making progress). I might just be overthinking this&#8230;</p>
<p>So what do you think, is there such an Uncanny valley for hardware? If there is, have you experienced and survived it? (any advice if you did?;)</p>
<p><strong>Edit (2015 Aug 28)</strong>: this post got a surprise mention on <a href="http://www.theamphour.com/264-the-cost-of-doing-business/">The Amp Hour</a> podcast where <a href="https://twitter.com/Chris_Gammell">Chris Gammell</a> of <a href="https://contextualelectronics.com/">Contextual Electronics</a> and <a href="https://twitter.com/eevblog/">Dave Jones</a> of <a href="http://www.eevblog.com/">EEVblog</a> discuss all things electronics. Glad they (pretty strongly) disagreed, that means I&#8217;m overthinking it for the lack of experience (compared to them for sure). The part about this is between 5:00-15:00, but the whole podcast is good! (And I&#8217;m fan of their sites too:) Cheers~</p>
<p>The post <a href="https://gergely.imreh.net/blog/2015/08/maker-uncanny-valley/">Is there an Uncanny Valley for hardware projects?</a> appeared first on <a href="https://gergely.imreh.net/blog">ClickedyClick</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://gergely.imreh.net/blog/2015/08/maker-uncanny-valley/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 20/28 objects using APC
Page Caching using Disk: Enhanced 
Lazy Loading (feed)

Served from: gergely.imreh.net @ 2026-04-18 22:19:28 by W3 Total Cache
-->