<?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>Flexpert to the rescue</title>
	<atom:link href="http://www.flexpert.be/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.flexpert.be</link>
	<description>Blog site about all things Adobe</description>
	<lastBuildDate>Tue, 15 May 2012 07:50:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>ColdFusion 10 has arrived</title>
		<link>http://www.flexpert.be/2012/05/coldfusion-10-has-arrived/</link>
		<comments>http://www.flexpert.be/2012/05/coldfusion-10-has-arrived/#comments</comments>
		<pubDate>Tue, 15 May 2012 07:50:19 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[ColdFusion 10]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=1204</guid>
		<description><![CDATA[It has been a while since we&#8217;ve heard anything on ColdFusion and what would be coming next. But that just means that the ColdFusion team has been very hard at work. And now the latest and greatest version has arrived. You can download the new version at http://www.adobe.com/products/coldfusion-family.html Now, let [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flexpert.be/images/cf-marquee-family.jpg"><img src="http://www.flexpert.be/images/cf-marquee-family.jpg" alt="ColdFusion 10" title="ColdFusion 10"  class="aligncenter" /></a></p>
<p>It has been a while since we&#8217;ve heard anything on ColdFusion and what would be coming next. But that just means that the ColdFusion team has been very hard at work. And now the latest and greatest version has arrived. You can download the new version at http://www.adobe.com/products/coldfusion-family.html</p>
<p>Now, let me go over some of the things that are new or have changed:</p>
<ul>
<li>Security enhancements to protect you from cross-site scripting etc</li>
<li>Dynamic and interactive HTML5 charting</li>
<li>Improved webservices support with Axis2</li>
<li>A very greatly improved scheduler (for scheduled tasks)</li>
<li>Enhanced caching to boost performance</li>
<li>Support for HTML5 websockets (which is plain awesome!)</li>
<li>Microsoft exchange server integration via Exhange Web Services (EWS)</li>
<li>HTML5 video player support with fallback to Flash Player</li>
<li>Enhanced bi-directional Java integration</li>
<li>&#8230;and many other features</li>
</ul>
<p>Let me comment on some of those topics. <strong>The HTML5 websockets integration is a really cool feature that allows you to conduct bidirectional communication between several clients at the same time.</strong> It is an alternative to the BlazeDS Java integration. You see the term <em>HTML5</em> popping p everywhere nowadays and thus also in ColdFusion. Adobe is keen on becoming a leader in the HTML5 technology as well and I personally think this is a very good step in that direction.</p>
<p><strong>One thing I find really cool is the fact that the Flash player is now being used as a fallback technology in case HTML5 cannot be rendered.</strong> It used to be the other way around, with HTML being the fallback. To me that sounds like HTML5 still has a long way to go before becoming a standard in the industry. Being at the cutting edge of technology myself, I sometimes forget that there are still people out there that use IE6 and not everyone is keen on updating their tools every few months. Especially companies are more reluctant to do frequent updates. They rather wait for a while and do a major update like once a year even. But again, Adobe has obviously though of that and has foreseen that fallback mechanism, so you can use the feature anyway and you don&#8217;t have to write some hacks to see if it can or cannot be used.</p>
<p>The extended bi-directional Java support is also something I find very useful. <strong>Now you can not only use Java classes inside of ColdFusion, but you can also write ColdFusion components and use them in plain Java code as well.</strong> Perhaps this will make the Java guys less reluctant towards ColdFusion technology, because <strong>any way you look at it, ColdFusion IS Java</strong>. It&#8217;s only been made a lot easier and faster to work with.</p>
<p>And of course I mustn&#8217;t forget the ORM feature. This is not really new and it&#8217;s also not really enhanced that much, but it is still a feature that is not enough used in my opinion. OK, it&#8217;s definitely not the holy grail for database applications and query performance enhancements are not always that easy to implement. But it is still a powerful feature for Rapid Application Development. You can even use it in your Flex and AIR applications, which keeps you from bothering yourself with creating the local database, synchronising data with the online server etc. The ORM feature does it all for you.</p>
<p><strong>In honour of this release the ColdFusion User Group Belgium is hosting one of the Scotch On The Rocks events in Brussels on May 24, 2012.</strong> If you have a chance to drop by, please do and I&#8217;ll explain more about this ORM feature in AIR on mobile devices. But you will also find a lot more great speakers who will explain a lot more about the new ColdFusion 10 features as well. So, don&#8217;t miss it and grab your free tickets at <a href="http://www.coldfusioneurope.eu" target="_blank">http://www.coldfusioneurope.eu</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/05/coldfusion-10-has-arrived/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Scotch On The Rocks is going on the road again</title>
		<link>http://www.flexpert.be/2012/04/scotch-on-the-rocks-is-going-on-the-road-again/</link>
		<comments>http://www.flexpert.be/2012/04/scotch-on-the-rocks-is-going-on-the-road-again/#comments</comments>
		<pubDate>Sat, 28 Apr 2012 10:01:37 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[ColdFusion]]></category>
		<category><![CDATA[Conference]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[ColdFusion 10]]></category>
		<category><![CDATA[launch event]]></category>
		<category><![CDATA[Scotch on The Rocks]]></category>
		<category><![CDATA[SOTR]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=1194</guid>
		<description><![CDATA[Guess what? Scotch On The Rocks is going to tour through Europa again. This conference is one of a kind. It is the longest running ColdFusion based conference in Europe and doesn&#8217;t only cover ColdFusion topics, but also other great related technologies and topics as well. In 2012, it was [...]]]></description>
			<content:encoded><![CDATA[<p>Guess what? <strong>Scotch On The Rocks is going to tour through Europa again.</strong> This conference is one of a kind. It is the longest running ColdFusion based conference in Europe and doesn&#8217;t only cover ColdFusion topics, but also other great related technologies and topics as well.</p>
<p>In 2012, it was not sure that the event was going to take place again, because of some setback in the past. But there was no way this event was not going to happen one way or another. So, instead of holding it in one single place, they&#8217;ve decided tot take it on tour again, as they&#8217;ve done a couple of years ago already.</p>
<p><strong>Scotch On The Road (SOTR) 2012 &#8211; ColdFusion 10 Edition will stop at the following locations:</strong><br/></p>
<ul>
<li>May 21 Munich</li>
<li>May 22 Zurich</li>
<li>May 23 Paris</li>
<li>May 24 Brussels</li>
<li>May 25 Amsterdam</li>
</ul>
<p style="text-align: center; "><iframe allowfullscreen="" frameborder="0" height="281" mozallowfullscreen="" src="http://player.vimeo.com/video/41082017?title=0&amp;byline=0&amp;portrait=0" webkitallowfullscreen="" width="500"></iframe></p>
<p>So, amongst the other event locations <strong>the Belgian ColdFusion user Group is proud to be hosting one of the events in collaboration with Adobe Systems in Brussels on May 24, 2012</strong>.</></p>
<p>You can find more information about speakers and schedule at <a href="http://www.coldfusioneurope.eu/">http://www.coldfusioneurope.eu/</a>. <strong>You can also order your FREE ticket for the Brussels event <a href="http://www.coldfusioneurope.eu/index.cfm/tour-dates/brussels-24052012/">right here</a>.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/04/scotch-on-the-rocks-is-going-on-the-road-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building an LED cube powered by Arduino (part 7)</title>
		<link>http://www.flexpert.be/2012/04/building-an-led-cube-powered-by-arduino-part-7/</link>
		<comments>http://www.flexpert.be/2012/04/building-an-led-cube-powered-by-arduino-part-7/#comments</comments>
		<pubDate>Sun, 01 Apr 2012 14:02:15 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Physical computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[LED Cube]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=1163</guid>
		<description><![CDATA[In the previous part of this online LED cube tutorial we&#8217;ve finished the entire hardware side of the cube. Now, while that&#8217;s looking awesome, it is still a dead object. In this final part I&#8217;ll guide you through the steps to get started in the Arduino environment, so you can [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-6/">In the previous part of this online LED cube tutorial we&#8217;ve finished the entire hardware side of the cube.</a> Now, while that&#8217;s looking awesome, it is still a dead object. In this final part I&#8217;ll guide you through the steps to get started in the Arduino environment, so you can create your own cool effects.</p>
<h3>Programming the cube</h3>
<p>If you are somewhat used to programming in the Arduino IDE you know that there are 2 main functions that you use for programming your input and output, namely <em>setup</em> and <em>loop</em>. You also use the <em>digitalRead</em> and <em>digitalWrite</em> methods to get and set values from and to certain input or output pins on your Arduino board. An example code is shown below that makes an LED blink at timed intervals.</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>                
  <span style="color: #666666; font-style: italic;">// initialize the digital pin as an output.</span>
  <span style="color: #666666; font-style: italic;">// Pin 13 has an LED connected on most Arduino boards:</span>
  pinMode<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">13</span><span style="color: #339933;">,</span> OUTPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>     
<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #993333;">void</span> loop<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  digitalWrite<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">13</span><span style="color: #339933;">,</span> HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   <span style="color: #666666; font-style: italic;">// set the LED on</span>
  delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>              <span style="color: #666666; font-style: italic;">// wait for a second</span>
  digitalWrite<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">13</span><span style="color: #339933;">,</span> LOW<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>    <span style="color: #666666; font-style: italic;">// set the LED off</span>
  delay<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">1000</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>              <span style="color: #666666; font-style: italic;">// wait for a second</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>While this way of working is great for most projects, <strong>in our LED cube these methods are just way to slow to be used</strong>. Why? Well, since we are using a system of multiplexing, which means that not all LEDs are turned on at once (although they may seem to be because of the principle of persistence of vision), <strong>we will have to turn the LEDs on and off several dozens, if not hundreds, of times per second</strong>. The general functions in the Arduino IDE are just not created to do exactly that.</p>
<p>If we cannot use the standard functions provided by the SDK, then what do we need to use? <strong>We are actually going to address entire pin ranges at once.</strong> For example, the 8-bit data bus is going to be addressed as 1 single unit, as well as the 3 bits for the timer IC (74HC138). But to be able to do that, the <em>setup</em> function is going to look quite different.<br/><strong>The Arduino chip (ATMega 328) is divided into 4 ports (port A, port B, port C and port D) and each port consists of 8 pins, which correspond to 8 bits.</strong> That means that if we are going to put the value of 7 to port C, for example, 3 pins on the Arduino are going to be set at once. We need this system to be able to use the 74HC138&#8242;s all 8 output lines when providing only 3 input lines.</p>
<p>If you hooked up the cube as I&#8217;ve described in the previous sections, you Arduino chip&#8217;s port configuration should be:</p>
<ul>
<li>port B, bits 0-2: address bus or timer IC (digital pins 8-10)</li>
<li>port B, bit 3: output enable (digital pin 11)</li>
<li>port B, bits 4-5 : layer selection (digital pins 12-13)
<li>port C, bits 0-5: layer selection (analog pins 0-5)</li>
<li>port D: the data bus (digital pins 0-7)</li>
</ul>
<p>The other pins on the Arduino chip are used for power (VCC and ground), the chrystal and some other features. These will not be used in our programming scheme.
</p>
<p>With this in mind the setup function looks like this:</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #993333;">void</span> setup<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #993333;">int</span> i<span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Set all pins as output pins</span>
  <span style="color: #b1b100;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #0000dd;">14</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span>
    pinMode<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span> OUTPUT<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// pinMode(A0, OUTPUT) as specified in the arduino reference didn't work. So I accessed the registers directly.</span>
  DDRC <span style="color: #339933;">=</span> <span style="color: #208080;">0xff</span><span style="color: #339933;">;</span>
  PORTC <span style="color: #339933;">=</span> <span style="color: #208080;">0x00</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Reset any PWM configuration that the arduino may have set up automagically!</span>
  TCCR2A <span style="color: #339933;">=</span> <span style="color: #208080;">0x00</span><span style="color: #339933;">;</span>
  TCCR2B <span style="color: #339933;">=</span> <span style="color: #208080;">0x00</span><span style="color: #339933;">;</span>
&nbsp;
  TCCR2A <span style="color: #339933;">|=</span> <span style="color: #009900;">&#40;</span><span style="color: #208080;">0x01</span> <span style="color: #339933;">&lt;&lt;</span> WGM21<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// CTC mode. clear counter on TCNT2 == OCR2A</span>
  OCR2A <span style="color: #339933;">=</span> <span style="color: #0000dd;">10</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Interrupt every 25600th cpu cycle (256*100)</span>
  TCNT2 <span style="color: #339933;">=</span> <span style="color: #208080;">0x00</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// start counting at 0</span>
  TCCR2B <span style="color: #339933;">|=</span> <span style="color: #009900;">&#40;</span><span style="color: #208080;">0x01</span> <span style="color: #339933;">&lt;&lt;</span> CS22<span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #208080;">0x01</span> <span style="color: #339933;">&lt;&lt;</span> CS21<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Start the clock with a 256 prescaler</span>
&nbsp;
  TIMSK2 <span style="color: #339933;">|=</span> <span style="color: #009900;">&#40;</span><span style="color: #208080;">0x01</span> <span style="color: #339933;">&lt;&lt;</span> OCIE2A<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p>As you can see in the comments in the code above, I&#8217;ve also set an interrupt so we can do some stuff there. <strong>Since the Arduino programming (or hardware programming in general) consists mainly of running an infinite loop, we need to be able to stop it, change some parameters etc at certain intervals, hence the interrupt routine.</strong> Now, in the Arduino documentation you can find that the ISR interrupt routine is called whenever the timer/counter reaches the OCR2A value.</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">ISR <span style="color: #009900;">&#40;</span>TIMER2_COMPA_vect<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #666666; font-style: italic;">// All layer selects off</span>
  PORTC <span style="color: #339933;">=</span> <span style="color: #208080;">0x00</span><span style="color: #339933;">;</span>
  PORTB <span style="color: #339933;">&amp;=</span> <span style="color: #208080;">0x0f</span><span style="color: #339933;">;</span>
&nbsp;
  PORTB <span style="color: #339933;">|=</span> <span style="color: #208080;">0x08</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// output enable off.</span>
&nbsp;
  <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #993333;">int</span> i<span style="color: #339933;">=</span><span style="color: #0000dd;">0</span><span style="color: #339933;">;</span> i<span style="color: #339933;">&lt;</span><span style="color: #0000dd;">8</span><span style="color: #339933;">;</span> i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #666666; font-style: italic;">// Put the data on port D</span>
    PORTD <span style="color: #339933;">=</span> cube<span style="color: #009900;">&#91;</span>current_layer<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
    <span style="color: #666666; font-style: italic;">// Trigger the latch IC to move the input to the output pins</span>
    <span style="color: #666666; font-style: italic;">// via the use of the 74HC138 timer IC</span>
    PORTB <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>PORTB <span style="color: #339933;">&amp;</span> <span style="color: #208080;">0xF8</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">|</span> <span style="color: #009900;">&#40;</span><span style="color: #208080;">0x07</span> <span style="color: #339933;">&amp;</span> <span style="color: #009900;">&#40;</span>i<span style="color: #339933;">+</span><span style="color: #0000dd;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  PORTB <span style="color: #339933;">&amp;=</span> <span style="color: #208080;">0b00110111</span><span style="color: #339933;">;</span> <span style="color: #666666; font-style: italic;">// Output enable on.</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Remember the layers are controlled by analog pins 0-5 </span>
  <span style="color: #666666; font-style: italic;">// and digital pins 12 and 13.</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>current_layer <span style="color: #339933;">&lt;</span> <span style="color: #0000dd;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    PORTC <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span><span style="color: #208080;">0x01</span> <span style="color: #339933;">&lt;&lt;</span> current_layer<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> 
  <span style="color: #b1b100;">else</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>current_layer <span style="color: #339933;">==</span> <span style="color: #0000dd;">6</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    digitalWrite<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">12</span><span style="color: #339933;">,</span> HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span> 
  <span style="color: #b1b100;">else</span> <span style="color: #009900;">&#123;</span>
    digitalWrite<span style="color: #009900;">&#40;</span><span style="color: #0000dd;">13</span><span style="color: #339933;">,</span> HIGH<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// Enable the next layer</span>
  current_layer<span style="color: #339933;">++;</span>
&nbsp;
  <span style="color: #666666; font-style: italic;">// If we run out of layers, just start at the beginning again</span>
  <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span>current_layer <span style="color: #339933;">==</span> <span style="color: #0000dd;">8</span><span style="color: #009900;">&#41;</span>
    current_layer <span style="color: #339933;">=</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></div></div>

<p><strong>With these methods in place you&#8217;re now all set for programming your special effects on the LED cube. The <em>loop</em> method just implements an infinite loop of your special effects.</strong> If you want to start with some example code <a href="http://www.instructables.com/id/Led-Cube-8x8x8/step70/Run-the-cube-on-an-Arduino/" target="_blank">I suggest you download it from this location</a>. <em>(I&#8217;m not taking any credit for this startup code, but I have used it to get cracking at the effects myself. Once you understand how the existing code works it is easy to create your own effects.)</em></p>
<p>This also concludes the blog post series on the Arduino LED cube. <strong>Should you use this to build one yourself and to create your own special effects, please leave a comment with a link to some photos or video material.</strong> I&#8217;m always curious to see what everyone else is up to. Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/04/building-an-led-cube-powered-by-arduino-part-7/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Photoshop CS6 béta is out with some cool new features</title>
		<link>http://www.flexpert.be/2012/03/photoshop-cs66-beta-is-out-with-some-cool-new-features/</link>
		<comments>http://www.flexpert.be/2012/03/photoshop-cs66-beta-is-out-with-some-cool-new-features/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 14:12:12 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[Photoshop]]></category>
		<category><![CDATA[bèta]]></category>
		<category><![CDATA[blur]]></category>
		<category><![CDATA[content-aware]]></category>
		<category><![CDATA[CS6]]></category>
		<category><![CDATA[move]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=1151</guid>
		<description><![CDATA[Allright, Photoshop CS6 béta has been made public and it has some very cool new features. In the video tutorial below I&#8217;m showing you a couple of them, namely the following: The improved content-aware fill The new non-destructive crop tool The patch tool combined with content-aware fill The new content-aware [...]]]></description>
			<content:encoded><![CDATA[<p>Allright, Photoshop CS6 béta has been made public and it has some very cool new features. In the video tutorial below I&#8217;m showing you a couple of them, namely the following:</p>
<ul>
<li>The improved content-aware fill</li>
<li>The new non-destructive crop tool</li>
<li>The patch tool combined with content-aware fill</li>
<li>The new content-aware move tool</li>
<li>Some tilt-shift blur filtering</li>
<li>Fish-eye lens correction to the extreme</li>
</ul>
<p><center><br />
<script type="text/javascript">
    		var parameters =
    			{	id: "1"
    			,	src: "http://www.flexpert.be/tutorials/PSCS6beta/PSCS6.f4v"
    			,	autoPlay: "false"
    			,   width: "360"
    			,   height: "301"
				,	autoHideControlBar: "false"
				,	controlBarPosition: "bottom"
    			};
    		// Embed the player SWF:
    		swfobject.embedSWF
				( "/strobe/StrobeMediaPlayback.swf"
				, "player"
				, parameters["width"], parameters["height"]
				, "10.0.0"
				, {}
				, parameters
				, { allowFullScreen: "true" }
				, { name: "StrobeMediaPlayback" }
				);		
     </script></p>
<div id="player">
<p>Please install Flash Player 10.0 or higher</p>
</p></div>
<p></center></p>
<p>These features are only a subset on what has been improved. Amongst other things there is the new &#8220;Freddy Mercury&#8221; <img src='http://www.flexpert.be/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  graphics engine that is also used for complex calculations&#8230;</p>
<p>I suggest you <a href="http://labs.adobe.com/technologies/photoshopcs6/" target="_blank">download the béta release here</a> and start playing around with it. Have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/03/photoshop-cs66-beta-is-out-with-some-cool-new-features/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Building an LED cube powered by Arduino (part 6)</title>
		<link>http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-6/</link>
		<comments>http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-6/#comments</comments>
		<pubDate>Sat, 17 Mar 2012 14:56:05 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Physical computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[LED Cube]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=1126</guid>
		<description><![CDATA[So, in the previous part I&#8217;ve shown you how to solder your prototype board to get the power circuit from the power connector to every single component. We&#8217;ve also added a few capacitors to regulate the power. Now it is time to solder the actual data circuit wires in place. [...]]]></description>
			<content:encoded><![CDATA[<p>So, <a href="http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-5">in the previous</a> part I&#8217;ve shown you how to solder your prototype board to get the power circuit from  the power connector to every single component. We&#8217;ve also added a few capacitors to regulate the power. Now it is time to solder the actual data circuit wires in place.</p>
<h3>Attaching the data circuit wires</h3>
<p>The first step we need to do is to make sure that, when we want a certain column to be addressed, the data is transmitted to the proper latch IC (74HC574). Now, this is actually done in 2 steps. The first step is to actually get the data to the IC. The second step is to trigger the right latch IC so that specific data is transmitted to the outgoing pins of that IC.</p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0250.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0250-300x179.jpg" alt="" title="data bus to all latch ICs" width="300" height="179" class="aligncenter size-medium wp-image-1127" /></a> </p>
<p><strong>As you can see in the image above, the 8-bit data transfer to the latch ICs is done in a way that resembles a bus topology.</strong> The first latch is connected to the proper Arduino ATMega328 pins and all the other latches are attached in a parallel circuit. That means that the blue wires run from input pin 1 on latch 1 to input pin 1 on latch 2 and input pin 1 on latch 3 and so on&#8230; The same system applies to the other input pins as well.</p>
<p>Now, you may wonder which pins we need to use on the ATMega328 for these connections. If you look at the schematic below, you can see the <strong>digital pins 0 to 7</strong>. Those are the ones you&#8217;ll need to connect to the latch ICs.</p>
<p><center><img src="http://arduino.cc/en/uploads/Hacking/Atmega168PinMap2.png" width="500"></center></p>
<p><strong>The next pin on the latches that we need to connect is the Output Enable pin.</strong> Powering this pin will allow you to actually use the latch and to have it retain its last output value. Again we use the same parallel circuitry, but since we only need 1 pin on the ATMega328 this time it&#8217;s a lot less work to do. The pin to use for this one is <strong>digital pin 11</strong> and you can see it in the image below as the yellow wires.</p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0251.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0251-300x179.jpg" alt="" title="Output Enabled wire connected" width="300" height="179" class="aligncenter size-medium wp-image-1132" /></a></p>
<p><strong>The third step is to attach the wiring that ensures the proper latch IC is triggered at the right time. This is where the so called &#039;clock IC&#039; (74HC138) comes into play.</strong> Since the Arduino chip doesn&#8217;t have enough output pins to connect them directly, we use the 74HC138 to convert 3 input lines into 8 output lines. How does this work? Well, it&#8217;s just a simple binary formula. With 3 bits you can count to 8, so setting those 3 bits at the same time on and/or off will send a small current through the output port that corresponds to that binary number. <strong>The pins you need to connect on the ATMega328 are digital pins 8 to 10.</strong></p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0252.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0252-300x179.jpg" alt="" title="The clock IC connected" width="300" height="179" class="aligncenter size-medium wp-image-1138" /></a></p>
<p><strong>Each of the 8 output pins on the &#039;clock IC&#039; need to be connected to one of the latch IC&#8217;s clock pin.</strong> This is a pin that reacts to a drop in current, so when we want to address a certain latch we will have to set that clock pin high, put the data onto the bus and then pull the clock pin low again to actually enable that output.</p>
<p>If you look carefully at the green wires in the image you can see that the output pin 8 is actually located on the other side of the other output pins. It might be easily overlooked when you&#8217;re soldering them on. you just go pin 1, pin 2, &#8230; until you soldered the wrong pin to the output. Not that I was guilty of doing that, but I certainly had to think twice which pin it was that I needed to skip <img src='http://www.flexpert.be/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> .</p>
<p><strong>The final step in wiring the brains of this contraption is to connect the transistors that control the layers of our LED cube.</strong> In the image below, these are the purple wires. On the ATMega328 you connect them to the <strong>analog pins 0 to 5 and the digital pins 12 and 13</strong>. These should be the last available pins on the ATMega328 chip.</p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0253.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0253-300x179.jpg" alt="" title="Transistors connected" width="300" height="179" class="aligncenter size-medium wp-image-1143" /></a></p>
<p>Now you have all the necessary wiring done and you can get cracking at programming the LED cube. <em><a href="http://www.flexpert.be/2012/04/building-an-led-cube-powered-by-arduino-part-7/">In the next part I&#8217;ll discuss how you set up the programming in the Arduino IDE so you can start to create your own cool effects.</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-6/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building an LED cube powered by Arduino (part 5)</title>
		<link>http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-5/</link>
		<comments>http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-5/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 19:29:03 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Physical computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[LED Cube]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=1085</guid>
		<description><![CDATA[So now you have the cube all wired up, it&#8217;s time to direct our attention to the actual prototype board. This is going to become the actual brain of the LED cube. It is not that difficult top build, but you need some basic knowledge of electronics to get it [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-4">So now you have the cube all wired up</a>, it&#8217;s time to direct our attention to the actual prototype board. This is going to become the actual brain of the LED cube. It is not that difficult top build, but you need some basic knowledge of electronics to get it right.<br/><br />
If you want to do this properly for a final design, it would be best that you do your own etching of the board and place the chips and other components on there, so you&#8217;ll end up with a print like the on you find in your laptop, for example. However, that takes some additional skills and money as well. If I were to sell my LED cube I&#8217;d do it, but for my own personal POC use, the prototype board will do just fine.</p>
<h3>Building the brains: soldering the components</h3>
<p><strong>The first and most important thing you need to do is to determine the actual layout of all the components.</strong> This means you&#8217;ll have to place all of the components on the board without soldering them, just to make sure your layout leaves enough space to have all the components on there. It would be a shame soldering all of the components on there only to find out in the end you don&#8217;t have enough room left for the last couple of resistors or ICs :-S.</p>
<p><strong>Once you are sure you have a correct layout, you are best off starting with the IC sockets for the 74HC574 ICs and the 100 Ohm resistors, together with the male pin headers.</strong> These will be connected to the LED cube and every latch IC will be connected to one of the UTP cables you prepared in the previous step. That means that every LED you will turn on will be have a 100 Ohm resistor in its electric circuit. After soldering them in place, your board should look like this.</p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0245.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0245-300x179.jpg" alt="" title="Latch ICs in place" width="300" height="179" class="aligncenter size-medium wp-image-1088" /></a></p>
<p><strong>Next up are the transistors that will control the layers.</strong> Each 2N2222 transistor is rated for about 800mA, which is not enough, since it will receive the current from maximum 64 LED at the same time. Since the LEDs can go to 20mA each, that means that the transistor would get 1280mA and be fried in seconds. <strong>That is why I&#8217;m placing an additional transistor for each layer in parallel, so each layer will be turned on by 2 2N2222 transistors in parallel to split the current.</strong></p>
<p>Simply put, each transistor can be seen as an electronic switch. <strong>For the NPN type of transistor you can compare it to a normally closed contact.</strong> If you supply power to it, the contact will allow the current to pass through. Otherwise not. Now, the transistor actually needs a separate circuit to trigger the switch and this circuit needs a 120 Ohm resistor in this case, to allow the maximum amount of current (20mA) to flow through the LEDs in the cube.</p>
<p><strong>I&#8217;ve connected 2 transistors and resistors in parallel by outlining them on the same rows on the prototype board.</strong> For the transistor, you need to bent the base leg a little to have all 3 legs in 1 line. So, you end up with a resistor connected to the middle leg and you just mirror the situation on the same line. This allows a small wire to connect both resistors in the middle.</p>
<p><strong>Then you connect the collectors and then the emitters of both transistors.</strong> And since we have 8 layers to play with, you&#8217;ll need to repeat this 7 more times.  <strong>Last but not least, you need to connect the collectors of all 8 layers to another pin header</strong> to allow the UTP from the layers to connect to these transistors. The end result in soldering can be seen in the following image.</p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0247.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0247-300x179.jpg" alt="" title="Bottom view of soldering" width="300" height="179" class="aligncenter size-medium wp-image-1096" /></a></p>
<p><strong>In the next step you are going to add the 74HC138 clock chip as well as the Arduino powered ATMega328, together with its crystal and 22pF capacitors.</strong> Please use the image below to connect the proper components to the proper output ports on the ATMega328 chip.</p>
<p><center><img src="http://arduino.cc/en/uploads/Hacking/Atmega168PinMap2.png" width="500"></center></p>
<p>In the next images you can also see some additional soldering in place to <strong>connect the VCC line and ground to the different components.</strong> In the top view you can see some wires running on the top of the board. This is necessary because the VCC line sometimes has to cross the ground line and this is why we need these wires. In the same image you can also see there are <strong>also some additional capacitors</strong> in place to regulate the current throughout the board.</p>
<p><strong>There is a 1000uF, a 100uF and a 10uF capacitor right behind the power input to get rid of the ripples in the 5V regulated power source</strong> we will be using to plug the cube into the power socket. And you can also notice <strong>another 10uF capacitor at the far end of the VCC line</strong>, which is the top of the board in the picture, right next to the transistors. It&#8217;s there to ensure some power is always available when the transistors are switching rapidly. The same rule goes for the <strong>100nF (or 0.1uF) capacitors you can see right next to every IC socket for the 74HC574 ICs</strong>. These components also need a certain amount of current available to be able to do their job. Normally this shouldn&#8217;t be any problem, but they are there just to make sure, because if the ICs do not get the power they need in time (we are going to be switching them on and off several hundreds of times per second) you may end up with the wrong result.</p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0248.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0248-300x179.jpg" alt="" title="Added the ATMega chip" width="300" height="179" class="aligncenter size-medium wp-image-1106" /></a><br />
<a href="http://www.flexpert.be/wp-content/IMAG0249.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0249-300x179.jpg" alt="" title="top view of prototype board" width="300" height="179" class="aligncenter size-medium wp-image-1114" /></a></p>
<p>This is all the soldering you need to do for attaching components to the prototype board. <a href="http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-6/"><em>In the next part of this series I&#8217;ll explain how to add all the necessary wires to get this up and running.</em></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building an LED cube powered by Arduino (part 4)</title>
		<link>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-4/</link>
		<comments>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-4/#comments</comments>
		<pubDate>Fri, 17 Feb 2012 07:03:30 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Physical computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[cube]]></category>
		<category><![CDATA[LED]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=1048</guid>
		<description><![CDATA[In the previous part of the blog post series you&#8217;ve constructed the actual 8x8x8 LED cube itself and mounted it onto the mould you used or the build. In this section I&#8217;ll show you how to wire up the cube. A first question is why did I choose this dimension [...]]]></description>
			<content:encoded><![CDATA[<p>In the previous part of the blog post series you&#8217;ve constructed the actual 8x8x8 LED cube itself and mounted it onto the mould you used or the build. In this section I&#8217;ll show you how to wire up the cube.</p>
<p>A first question is why did I choose this dimension for the cube? <strong>You can build a cube of any size you like</strong>: 4x4x4, 7x7x7, 12x12x12, &#8230; It doesn&#8217;t matter. The only thing you have to keep in mind is that <strong>the complexity grows exponentially when moving to a bigger dimension</strong>. I mean, with an 8x8x8 cube you already have to work with 521 LEDs. If you would create a 9x9x9 cube, the number of LEDs would already be 729.</p>
<p><strong>8&#215;8 pixels is also the smallest usable dimension to display text.</strong> If you want to do that, an 8x8x8 is the minimum. And of course I also chose this dimension because it is quite handy for wiring, because then you can simply use UTP cables, which have 8 wires.</p>
<h3>Wiring the cube</h3>
<p>First, you need to understand how you are going to program the cube&#8217;s animations. <strong>Since the cube contains 512 LEDs you will have to be able to control 521 individual outputs. Or so you might think, because you can simplify this a whole lot by using multiplexing.</strong> What is this? Well, multiplexing is a way of programming that switches only some of the LEDs on or off at the same time. Then you quickly move to another set of LEDs and then another and so on. By doing this very quickly the yes cannot keep up and it will appear as though you are turning all of them on when in fact only 64 LEDs will be turned on at any given time. You can see a good demonstration of this principle in the YouTube video below, where the switching is gradually increased in speed.</p>
<p><center><iframe src="http://www.youtube.com/embed/ECl0XgiVDrI?version=3&amp;wmode=transparent" width="560" height="340" title="YouTube video player" style="background-color:#000;display:block;margin-bottom:0;max-width:100%;" frameborder="0" allowfullscreen></iframe><p style="font-size:11px;margin-top:0;"><a href="http://www.youtube.com/watch?v=ECl0XgiVDrI" target="_blank" title="Watch on YouTube">Watch this video on YouTube</a>.</p></center></p>
<p>In our specific cube the multiplexing will go per vertical plane. That means that all the horizontal layers can be turned on at the same time and one vertical row of 8 LEDs as well. So 8 rows in a plane times 8 layers equals 64 LEDs. This system also keeps the power consumption really low as well.</p>
<p><strong>The first thing you need to do is create some wires.</strong> You simply cut off a piece of UTP cable about 20-25cm long and remove the outer layer for about 5cm on one end and about 10cm on the other end. Then you unwind the inner wires and place then in a fixed order. I used brown &#8211; brown/white &#8211; orange &#8211; orange/white &#8211; green &#8211; green/white &#8211; blue &#8211; blue/white. But you can choose any order you want. Just make sure that for each cable the order is the same to avoid mixups afterwards. <strong>You&#8217;ll need 9 of these cables: one for each plane and one for the layers.</strong></p>
<p><strong>The next thing you need to do is to solder the female headers to the shortest end.</strong> This in not an easy thing to do when you do it freehand soldering, so if you have a &#8220;third hand&#8221; device lying around, please use that. If you don&#8217;t, you can also use a pair of pliers to hold the female headers in place so you have both hands free for soldering. I know the picture below is a little bit dark, but you can clearly see the end result of this operation.</p>
<p><center><br />
<a href="http://www.flexpert.be/wp-content/IMAG0292.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0292-300x179.jpg" alt="" title="Female headers attached" width="300" height="179" class="aligncenter size-medium wp-image-1060" /></a><br />
</center></p>
<p>The last thing you have to do is to solder the other end in the same order to on of the rows of LED legs that are sticking out through the bottom of your mould. It is also a good idea to label the cables to make it easier later on to connect the proper cable to the proper IC.<br/><br />
Once you&#8217;ve done this, you simply do follow the same procedure for the other rows and one last time for controlling the layers. The bottom of your mould should now look something like this.</p>
<p><center><br />
<a href="http://www.flexpert.be/wp-content/IMAG0290.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0290-179x300.jpg" alt="" title="Finished wiring" width="179" height="300" class="aligncenter size-medium wp-image-1065" /></a><br />
</center></p>
<p><em><a href="http://www.flexpert.be/2012/03/building-an-led-cube-powered-by-arduino-part-5/">In the next section I&#8217;ll cover the brains of this thing and we&#8217;ll be making the prototype board</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-4/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building an LED cube powered by Arduino (part 3)</title>
		<link>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-3/</link>
		<comments>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-3/#comments</comments>
		<pubDate>Fri, 10 Feb 2012 19:15:00 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Physical computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[cube]]></category>
		<category><![CDATA[LED]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=1025</guid>
		<description><![CDATA[So now that you&#8217;ve ordered all the components and are probably waiting for deliveries to come in, let me continue with explaining how you are going to build the actual LED cube itself. Building the cube The most important aspect of the LED cube is the fact that all the [...]]]></description>
			<content:encoded><![CDATA[<p>So now that you&#8217;ve ordered all the components and are probably waiting for deliveries to come in, let me continue with explaining how you are going to build the actual LED cube itself.</p>
<h3>Building the cube</h3>
<p><strong>The most important aspect of the LED cube is the fact that all the LEDs are lined up perfectly.</strong> There are some LED cube examples out there that have great effects and colors, but the whole &#8220;wow&#8221; effect is just missing because the LEDs are not lined up at all. Saying they have to line up is one thing, but since we will be soldering 512 LEDs by hand, actually accomplishing that is a whole other thing.</p>
<p><strong>To make sure every single layer is lined up perfectly, I used the mould you can see below.</strong> I&#8217;ve just used a piece of wood and drew some intersecting lines on it. The distance between the intersections should be about 2mm less than the length of the shortest leg on your LED (this is called the cathode or negative side). This will allow for the legs to overlap a little for soldering purposes.</p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0239.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0239-300x179.jpg" alt="" title="Mould" width="300" height="179" class="aligncenter size-medium wp-image-1027" /></a></p>
<p><strong>Since you&#8217;ve bought 3mm LEDs you can drill holes on each intersection with a 3mm drill bit.</strong> The bottom part of the LED will be a little bit bigger so they should fit snugly. You can see some additional smaller holes on the left, but you don&#8217;t have to worry about those right now. They will come into play later on. Once you&#8217;ve drilled the holes you are sure that all the LEDs on every layer (because these 64 holes will become 1 single layer of the cube) will be in the same position. And as an added bonus, you can use the mould as the base for the cube, because the standing legs of the bottom LED layer will fit through the holes as well.</p>
<p> For soldering the LEDs together I&#8217;ve started with a horizontal top row. <strong>Make sure you bend the cathode legs of the LEDs 90 degrees in the same direction for every LED and make sure they touch slightly.</strong> In my case they were all pointing to the right. Once you&#8217;ve positioned them, you can solder them together. You will also notice that the last LED will have its leg sticking out. <strong>In the end you will have to cut it, but leave it on for now.</strong> It will allow you easier access to the layer for testing purposes.</p>
<p><strong>Then move on to the other LEDs and position them in vertical columns, making sure the second one from the top has its cathode leg touching the horizontal row you&#8217;ve just soldered.</strong> If you&#8217;re right-handed it is probably going to be best to start from the left and work your way to the right side of the layer. <strong>Once you&#8217;ve done all 8 columns every LED should be connected and your should have a kind of long comb structure.</strong> This whole structure is kind of flimsy at this point, so you&#8217;ll have to take some steel wire, straighten it and solder that on top of the structure. I wanted to take no risks so I actually added 3 additional reinforcement wires, as you can see on the right side of the image above.</p>
<p>This is also a good point to test the connections. <strong>What you&#8217;ve actually done is connected the negative legs of all the LEDs together.</strong> That means that the easiest way to test the LEDs is to have a 3-5V power source, attach a 220 Ohm resistor and use 2 small wires to connect the LEDs one by one. Actually, the value doesn&#8217;t matter that much at this point since we will be connecting the LED for a very short period, so you could use one of the 120 Ohm ones as well. Remember that I&#8217;ve told you not to cut that one leg that is sticking out? Well, you can use that one now to connect it to the negative wire. Then you can simply touch the leg that is sticking upwards of each LED with the positive wire and it should light up.</p>
<p><strong>Why should you test the connections right now?</strong> Well, LEDs are electronic components and as mentioned before they don&#8217;t cope that well with heat. Since you have been soldering very close to the actual LED component, you may have overheated one the is broken now. Now is the time to find that out, so you can still replace it. That will be a lot harder if you have soldered the layers together and maybe plain impossible if you find a broken LED in the middle of the cube.</p>
<p>At this point you have one layer finished, so that&#8217;s one down, 7 more to go. Just be careful when getting the LED structure out of the mould to make sure you don&#8217;t bend it. This is tedious work and requires some concentration to work on this small scale, but I can assure you it&#8217;s a great stress reliever <img src='http://www.flexpert.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . After a couple of layers you should have accomplished what I&#8217;ve shown in the picture below. And that&#8217;s only the half-way point&#8230;</p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0240.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0240-300x179.jpg" alt="" title="layers complete" width="300" height="179" class="aligncenter size-medium wp-image-1035" /></a></p>
<p>After you&#8217;ve completed all 8 layers you can start with soldering the layers together. Again you will be using the mould, so you can actually leave the last layer in there for starters. Of course, you have to make sure that the layer you put on top of it is actually parallel to the bottom one. I found the easiest way to do this is using something to put in between the layers. I&#8217;ve used some small pieces of wood that I cut to the proper thickness. <strong>The upwards pointing legs (anode) of the bottom layer have to be bent slightly to get around the LED of the next layer to connect to the upwards pointing leg (anode).</strong></p>
<p><strong>I would also recommend soldering the corners first, then the edges, the middle and again working your way to the outside of the cube.</strong> Once this layer is done, keep the bottom one in the mould and just move the wooden spacer one level up and start again. The first couple of layers are not going to feel that sturdy, but once you&#8217;ve soldered about 3-4 layers together things will feel a lot better. Again, better safe than sorry, so test each layer after you&#8217;ve soldered them together. This will allow you to find broken LEDs again or even connections you&#8217;ve forgotten to solder. After all, there are a lot of connections to do&#8230;</p>
<p><a href="http://www.flexpert.be/wp-content/IMAG0241.jpg"><img src="http://www.flexpert.be/wp-content/IMAG0241-300x179.jpg" alt="" title="finished cube" width="300" height="179" class="aligncenter size-medium wp-image-1042" /></a></p>
<p>After you&#8217;ve completed all 8 layers, you can now safely remove the cube from the mold and turn it around. You result should look something like you see in the picture above. <strong>If you&#8217;ve tested every single LED again, you can nog finally cut off the cathodes that are sticking out to the side.</strong></p>
<p>This is also the time to drill the smaller holes you saw in the first picture. These will be necessary to guide wires that connect each layer to the controller.I&#8217;ll explain that in more detail in the next part&#8230;</p>
<p><strong>You have now finished the cube and you can stick all of the anodes through the 64 holes of the mould.</strong> This is not as simple as it sounds, because it is like threading 64 needles simultaneous <img src='http://www.flexpert.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . After you&#8217;ve done that you just bend the legs around the wooden mould on the underside and that is sufficient to hold the cube in place.</p>
<p><em><a href="http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-4/">In the next part we will be adding the wires to the cube</a></em> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building an LED cube powered by Arduino (part 2)</title>
		<link>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-2/</link>
		<comments>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-2/#comments</comments>
		<pubDate>Mon, 06 Feb 2012 18:33:47 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Physical computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[cube]]></category>
		<category><![CDATA[LED]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=1009</guid>
		<description><![CDATA[OK, so now I&#8217;ve got your attention, let&#8217;s get started with this tutorial on how to build the Arduino based LED cube. First of all I must say that this tutorial is specifically aimed at building an 8x8x8 cube with single color LEDs. Things are going to be quite different [...]]]></description>
			<content:encoded><![CDATA[<p>OK, so now I&#8217;ve got your attention, let&#8217;s get started with this tutorial on how to build the Arduino based LED cube. First of all I must say that <strong>this tutorial is specifically aimed at building an 8x8x8 cube with single color LEDs</strong>. Things are going to be quite different if you want the cube to contain multicolor LEDs.</p>
<h3>The component list</h3>
<p>First things first: let&#8217;s sum up the components you will need to build this contraption:</p>
<ul>
<li>1 x ATmega 328pu with an Arduino boot loader (you can do without the boot loader, but then you&#8217;ll have to boot load it yourself)</li>
<li>1 x 28-pin IC socket</li>
<li>2 x 22pF capacitor</li>
<li>1 x 16Mhz chrystal</li>
<li>1 x 74HC138 IC (This will act as a timer chip)</li>
<li>1 x 16-pin IC socket</li>
<li>8 x 74HC574 IC (These will control the different columns in the cube)</li>
<li>8 x 20-pin IC socket</li>
<li>512 x 3mm LED (You can choose whatever color you like, but I liked the blue ones)</li>
<li>64 x 100 Ohm resistor (Metal film resistors have a smaller tollerance, so I chose those)</li>
<li>16 x 120 Ohm resistor (Again, use the metal film ones)</li>
<li>16 x 2N2222 transistor (You could use the PN2222 as well, but I couldn&#8217;t find them on time)</li>
<li>1 x 1000uF capacitor</li>
<li>2 x 100uF capacitor</li>
<li>1 x 10uF capacitor</li>
<li>10 x 0.1uF ceramic capacitor</li>
<li>72 x male pin headers</li>
<li>72 x female pin headers</li>
<li>About 2m of UTP cable</li>
<li>1 x power connector</li>
<li>1 x on/off switch</li>
</ul>
<p>If you look at your local electronics store, you will find that all of this will cost you quite some money. However, <strong>I don&#8217;t think you need to buy these expensive components when you can find all of these online on eBay for a tenth of the price</strong>. Sure, you&#8217;ll end up with too many components because they usually come in large packages, but that gives you another reason not to stop with this one project <img src='http://www.flexpert.be/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><strong>Including all the spare parts I have left now, the total cost for this little project comes down to around 100 Euro or 130 US Dollar.</strong> Which in my opinion was well worth it.</p>
<p><strong>Just one thing to look out for when buying the LEDs.</strong> The LEDs I bought have a leg length of 17mm. This makes the cube a bit smaller than I had anticipated (about 12cm on each side), but still, the result is not bad at all. If you buy LEDs with 25mm legs your LEDs will be spaced further apart (about 18cm on each side), making it more transparent as well. The choice is yours.</p>
<p>Also, using the IC sockets is completely optional, but I&#8217;ve found it very helpful, especially for the ATmega328 chip, because it makes it easy to take the chip out of the board and put it into an existing Arduino board for easy programming. Another good reason for using these IC sockets is the fact that you don&#8217;t risk frying your ICs while soldering them on the board. Electronic components have a tendency not to cope very well with the intense heat of soldering. If this is your first project, I definitely recommend it to avoid having to throw away some fried ICs.</p>
<p><em><a href="http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-3/">In the next part I will take you through the process of creating the actual LED cube itself</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Building an LED cube powered by Arduino (part 1)</title>
		<link>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-1/</link>
		<comments>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-1/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 18:46:54 +0000</pubDate>
		<dc:creator>Steven Peeters</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Physical computing]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[cube]]></category>
		<category><![CDATA[LED]]></category>
		<category><![CDATA[processing]]></category>

		<guid isPermaLink="false">http://www.flexpert.be/?p=988</guid>
		<description><![CDATA[A few weeks ago I was thinking it had been a while since I&#8217;ve done something with physical computing. I had created a mobile application that controls my BTicino domotics system, as you can see pin this video. Then I created a mobile remote controller for a physical maze game, [...]]]></description>
			<content:encoded><![CDATA[<p>A few weeks ago I was thinking it had been a while since I&#8217;ve done something with physical computing. I had created a mobile application that controls my BTicino domotics system, <a href="http://www.flexpert.be/2010/06/applications-in-air-on-android/" target="_self">as you can see pin this video</a>. Then I created a mobile remote controller for a physical maze game, <a href="http://www.flexpert.be/2010/07/controlling-phidgets-with-air-on-android/" target="_self">which you can find out more about in this video</a>. After some thinking and looking around on the internet, I came up with this idea to build an LED cube to display some cool animations.</p>
<p><strong>There a basically two well-known solutions for you  when you want to indulge yourself in physical computing and some real-world fun and games: <a href="http://www.arduino.cc">Arduino (http://www.arduino.cc)</a> and <a href="http://www.phidgets.com">Phidgets (http://www.phidgets.com)</a>.</strong> The biggest difference between the two is that with Phidgets you can buy plug-and-play circuit boards that are ready to go. You just connect them together and hook them up to a main controller board, which usually runs on a USB connection with your computer and you&#8217;re set to go. <strong>Phidgets is very easy to use and I highly recommend it if you want to get started with this type of applications, since you don&#8217;t really need to know much about electronics to get started.</strong> The downside is that it doesn&#8217;t run stand-alone (unless you buy the super expensive SBC stand-alone board which runs a full Debian OS).</p>
<p><strong>The advantage of using Arduino is that it does run stand-alone and it is even not that hard to get the chip out of the circuit board and onto a prototype board which you can build into any application you like.</strong>The biggest downside to Arduino is that you have to have at least some basic knowledge of electronic components and wiring. I don&#8217;t really consider this to be a downside, because you can make whatever you want, but it does make it a higher threshold to get started with it. Another downside is that the programming is a bit harder to do, especially for this LED cube type of application, since you will not be using the standard programming interface you might be used to if you&#8217;ve been doing some Arduino programming before. Having never touched a soldering iron before, I decided I liked the challenge and chose the Arduino approach to create a stand-alone version which I can easily reprogram if necessary.</p>
<p> Before I get started on telling you how to build such an LED cube, let me quickly show you the end result:</p>
<p><center><br />
<div id="flashcontent1682"><video controls='controls' width='445' height='250'>
<source src='http://www.flexpert.be/tutorials/ledCube/ledCube3.mp4' type='video/mp4'>
</video>
</div>

<script type="text/javascript">
	swfobject.embedSWF('http://fpdownload.adobe.com/strobe/FlashMediaPlayback_101.swf', 'flashcontent1682', '445', '250', '10.1.0', 'http://www.flexpert.be/wp-content/plugins/FMP-embed/expressinstall.swf', {src:'http%3A%2F%2Fwww.flexpert.be%2Ftutorials%2FledCube%2FledCube3.mp4', controlBarMode:'docked', controlBarAutoHide:'true', playButtonOverlay:'true', loop:'false', autoPlay:'false', streamType:'liveOrRecorded', scaleMode:'letterbox'}, {allowfullscreen:'true', allowscriptaccess:'always'})
</script>
<br />
</center></p>
<p>Now, <strong>this will be a multi-part blog post</strong> spread over the next couple of weeks, since there is a lot of information to share on this. But I can already say that some credits have to go to the author of <a href="http://www.instructables.com/id/Led-Cube-8x8x8/" target="_blank">this post</a> for getting me started on the project. Even though there are quite some mistakes in the post and it has been made more complex that necessary for my purpose and intention, it provides a good starting point. So, keep tuned for the first part of the build&#8230;</p>
<p><em><a href="http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-2/">In the next part I&#8217;ll guide you through the components you&#8217;ll need to complete this project</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.flexpert.be/2012/02/building-an-led-cube-powered-by-arduino-part-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
<enclosure url="http://www.flexpert.be/tutorials/ledCube/ledCube3.mp4" length="1" type="video/mp4" />
		</item>
	</channel>
</rss>

