<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>trollmaker.com</title>
	<link>http://trollmaker.com/</link>
	<language>en</language>
	<description>Random Linux &amp; Electronic Experiments</description>
<atom:link xmlns:atom="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://trollmaker.com/feed/rss" />
	<lastBuildDate>Sat, 14 Jul 2012 19:11:00 +0200</lastBuildDate>
	<generator>PluXml</generator>
	<item>
		<title>How to Install Google Earth on Debian Wheezy</title> 
		<link>http://trollmaker.com/article13/how-to-install-google-earth-on-debian-wheezy</link>
		<guid>http://trollmaker.com/article13/how-to-install-google-earth-on-debian-wheezy</guid>
		<description>&lt;p&gt;Here is a quick tutorial to explain how to install Google Earth on Debian Wheezy.&lt;/p&gt;&lt;p&gt;This tutorial can also be used to install Google Earth on Ubuntu or any other Linux distribution, however it has only been tested on Debian Wheezy.&lt;/p&gt;

&lt;h3&gt;Installing Google Earth in Four easy steps&lt;/h3&gt;

&lt;p&gt;1) The first step is to install googleearth-package:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install googleearth-package&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;2) The second step is to install the dependencies:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install alien lib32nss-mdns libfreeimage3 lsb-core msttcorefonts&lt;br/&gt;pax rpm ttf-dejavu ttf-bitstream-vera&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;If you are using the nVidia proprietary driver, you can also install the following package:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt-get install libgl1-nvidia-glx-ia32&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;3) The third step is to build a deb package for Google Earth:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;make-googleearth-package --force&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;4) If everything worked as expected, the last step consist of installing the deb package built previously:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo dpkg -i googleearth*.deb&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Google Earth should now be installed on your system.&lt;br/&gt;
The software can simply be launched using the command &quot;googleearth&quot; or via a new icon in the menu.&lt;br/&gt;
If something went wrong when you followed the tutorial above, make sure you read the error message carefully and install any missing dependency needed by your package manager.&lt;/p&gt;

&lt;h3&gt;Video of Google Earth running on Debian Wheezy&lt;/h3&gt;
&lt;object width=&quot;580&quot; height=&quot;360&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/Dz7rPBt3hX8&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;
&lt;embed src=&quot;http://www.youtube.com/v/Dz7rPBt3hX8&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;580&quot; height=&quot;360&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;</description>
		<pubDate>Sat, 14 Jul 2012 19:11:00 +0200</pubDate>
		<dc:creator>virtualmix</dc:creator>
	</item>
	<item>
		<title>How to install Gnome Shell 3.2 on Debian Testing</title> 
		<link>http://trollmaker.com/article12/how-to-install-gnome-shell-3-2-in-debian-testing</link>
		<guid>http://trollmaker.com/article12/how-to-install-gnome-shell-3-2-in-debian-testing</guid>
		<description>&lt;p&gt;If you are using an up-to-date installation of Debian Testing today, you have probably realised that Gnome-Shell is only available in version 3.0 from the testing repository at the time I&#039;m writing this article (21.01.2012).&lt;/p&gt;&lt;div id=&quot;important&quot;&gt;Note: Gnome-Shell 3.2 is now in Debian Testing. Simply update your system to use it. These instructions are for information only.&lt;/div&gt;
&lt;h3&gt;Introduction&lt;/h3&gt;
&lt;p&gt;
If you want to install &lt;a href=&quot;https://extensions.gnome.org/&quot;&gt;some extensions&lt;/a&gt; to make Gnome more usable, you will need a version of Gnome-Shell &lt;= 3.2.&lt;br/&gt;
You can track the Status of Gnome 3.2 in Debian from &lt;a href=&quot;http://www.0d.be/debian/debian-gnome-3.2-status.html&quot;&gt;this page&lt;/a&gt;.&lt;br/&gt;
As you can see, the Gnome-Shell 3.2 package is stuck in the Unstable repository &lt;a href=&quot;http://release.debian.org/migration/testing.pl?package=gnome-shell&quot;&gt;for some reasons&lt;/a&gt; which means we will have to install it directly from Unstable.
&lt;/p&gt;

&lt;h3&gt;Disclaimer&lt;/h3&gt;
&lt;p&gt;You understand that we are going to install a package from the Unstable repository (also called SID for Still In Development) so please don&#039;t blame me if something goes wrong :-)&lt;/p&gt;
&lt;h3&gt;Installation&lt;/h3&gt;
&lt;p&gt;Open a terminal and login your root account or use sudo before typing the following commands.&lt;/p&gt;
&lt;p&gt;First, make sure you system is up-to-date:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# apt-get update &amp;&amp; apt-get upgrade&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Open your sources.list in order to add the Unstable repository (sid):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# nano /etc/apt/sources.list&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then paste the following lines:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;##DEBIAN SID
deb http://ftp.debian.org/debian/ sid main non-free contrib
##deb-src http://ftp.debian.org/debian/ sid main non-free contrib&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Once this is done, you can save and close the file but you will need to reload the package list:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# apt-get update&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then you can install Gnome-Shell from the sid repository:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;# apt-get install gnome-shell/unstable&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;When the install of Gnome-Shell is finished, I recommend you remove (or comment) the lines we added to the sources.list file.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;That&#039;s it. You can now &lt;a href=&quot;https://extensions.gnome.org/&quot;&gt;install extensions&lt;/a&gt; from your broswer (you will need to use a compatible browser such as &lt;del&gt;Firefox&lt;/del&gt; Iceweasel or Epiphany) and start enjoying the other great features of Gnome 3.2.&lt;/p&gt;</description>
		<pubDate>Sat, 21 Jan 2012 14:56:00 +0100</pubDate>
		<dc:creator>virtualmix</dc:creator>
	</item>
	<item>
		<title>Arduino 1.0 with enc28j60 Ethernet Shield V1.1</title> 
		<link>http://trollmaker.com/article11/arduino-1-0-with-enc28j60-ethernet-shield-v1-1</link>
		<guid>http://trollmaker.com/article11/arduino-1-0-with-enc28j60-ethernet-shield-v1-1</guid>
		<description>&lt;p&gt;Here is how to use the enc28j60 Ethernet Shield V1.1 with Arduino 1.0.&lt;/p&gt;&lt;h3&gt;Introduction&lt;/h3&gt;
&lt;p&gt;The Arduino team recently released the Arduino software in version 1.0, which adds a lots of new feature and bug fix (&lt;a href=&quot;http://arduino.cc/en/Main/ReleaseNotes&quot;&gt;see release notes&lt;/a&gt;) but also breaks backward compatibility with sketches and libraries written for the previous versions of the software.&lt;/p&gt;
&lt;p&gt;From now, in order to use the cheap enc28j60 Ethernet Shield V1.1 you will need a library that is compatible with the latest revision of the Arduino IDE.&lt;/p&gt;
&lt;p&gt;After some research on the web, I found a library that works properly but I still had to change a few path name before I could compile a sketch without error.&lt;/p&gt;

&lt;h3&gt;Download and install the library&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Download the library here: &lt;a href=&quot;http://trollmaker.com/data/documents/ethershield_v1.1_for_arduino_v1.0.zip&quot;&gt;ethershield_v1.1_for_arduino_v1.0.zip&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Extract the zip file.&lt;/li&gt;
&lt;li&gt;Copy the folders &quot;ETHER_28J60&quot; and &quot;etherShield&quot; into your libraries folder.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;On Linux: $HOME/sketchbook/libraries&lt;/li&gt;
&lt;li&gt;On Mac:   $HOME/Documents/Arduino/libraries&lt;/li&gt;
&lt;li&gt;On Windows: ..\My Documents\Arduino\libraries&lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
&lt;li&gt;Open the Arduino software and go to &quot;File → Examples → ETHER_28J60&quot; and try some of the examples.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Use a web browser to turn an LED on or off&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Connect the Ethernet Shield and Ethernet cable to the Arduino.&lt;/li&gt;
&lt;li&gt;Upload the code below.&lt;/li&gt;
&lt;li&gt;Connect an LED between Pin 6 and Ground.&lt;/li&gt;
&lt;li&gt;Open a web browser and visit &lt;a href=&quot;http://192.168.1.15/&quot;&gt;http://192.168.1.15/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Click the button to turn the LED on or off.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Code&lt;/h3&gt;
&lt;p&gt;The code below is taken from the library example with some minor modifications from myself:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;
// A simple web server that turn an LED on or off&quot;

#include &quot;etherShield.h&quot;
#include &quot;ETHER_28J60.h&quot;

int outputPin = 6;

static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24};   // this just needs to be unique for your network, 
                                                           
static uint8_t ip[4] = {192, 168, 1, 15}; // IP address for the webserver

static uint16_t port = 80; // Use port 80 - the standard for HTTP

ETHER_28J60 e;

void setup()
{ 
  e.setup(mac, ip, port);
  pinMode(outputPin, OUTPUT);
}

void loop()
{
  char* params;
  if (params = e.serviceRequest())
  {
    e.print(&quot;&amp;lt;h1&amp;gt;&amp;lt;a href=&#039;/?led=off&#039;&amp;gt;Arduino Web Remote&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;&quot;);
    if (strcmp(params, &quot;?led=on&quot;) == 0)
    {
      digitalWrite(outputPin, HIGH);
      e.print(&quot;&amp;lt;a href=&#039;?led=off&#039;&amp;gt;&amp;lt;button style=&#039;border: 1px solid #ff0000; border-left: 10px solid #ff0000&#039; type=&#039;button&#039;&amp;gt;LED IS ON&amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&quot;);
    }
    else if (strcmp(params, &quot;?led=off&quot;) == 0)
    {
      digitalWrite(outputPin, LOW);
      e.print(&quot;&amp;lt;a href=&#039;?led=on&#039;&amp;gt;&amp;lt;button style=&#039;border: 1px solid #000; border-left: 10px solid #000&#039; type=&#039;button&#039;&amp;gt;LED IS OFF&amp;lt;/button&amp;gt;&amp;lt;/a&amp;gt;&quot;);
    }
    e.respond();
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Video&lt;/h3&gt;
&lt;object width=&quot;580&quot; height=&quot;360&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/SU0m_MJh6mY&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;
&lt;embed src=&quot;http://www.youtube.com/v/SU0m_MJh6mY&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;580&quot; height=&quot;360&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;h3&gt;Going further&lt;/h3&gt;
&lt;p&gt;Here is &lt;a href=&quot;http://trollmaker.com/data/documents/2_buttons_ethernet_example.ino&quot;&gt;another example using 2 buttons to control 2 LED&lt;/a&gt;, as requested in the comments below.&lt;/p&gt;
&lt;h3&gt;Reader Contribution&lt;/h3&gt;
&lt;p&gt;EDIT 01/01/2013: Reader &quot;Nio&quot; have sent me a modified version of the library described above, removing the buffer size limit and adding new print_P function.&lt;/p&gt;
&lt;p&gt;If you would like to try Nio&#039;s version of the library, you will find it &lt;a href=&quot;https://www.dropbox.com/s/qfbf8emmsgokx16/modified_ETHER_28J60.zip&quot;&gt;here&lt;/a&gt;. (*Not* tested yet)&lt;/p&gt;</description>
		<pubDate>Sun, 18 Dec 2011 10:24:00 +0100</pubDate>
		<dc:creator>virtualmix</dc:creator>
	</item>
	<item>
		<title>Arduino LED Notification for Gmail on Linux</title> 
		<link>http://trollmaker.com/article10/arduino-led-notification-for-gmail-on-linux</link>
		<guid>http://trollmaker.com/article10/arduino-led-notification-for-gmail-on-linux</guid>
		<description>&lt;p&gt;This is a small project to display new mail notification with a RGB LED connected to an Arduino.&lt;br/&gt;
Every few minutes, the computer will check a Gmail inbox for unread emails. If one or more unread emails are found, it will tell the Arduino to turn a light on.&lt;/p&gt;&lt;div id=&quot;important&quot;&gt;&lt;p&gt;This article is not complete yet. I&#039;m going to had more details later...&lt;/p&gt;&lt;/div&gt;

&lt;h3&gt;Electrical Diagram:&lt;/h3&gt;
&lt;a href=&quot;http://trollmaker.com/data/images/arduino_gmail_checker.png&quot;&gt;&lt;img src=&quot;http://trollmaker.com/data/images/arduino_gmail_checker.tb.png&quot; alt=&quot;arduino_gmail_checker_electrical diagram&quot; /&gt;&lt;/a&gt;

&lt;h3&gt;Bash Script:&lt;/h3&gt;
&lt;p&gt;On the computer, a bash script is running to regularly check for unread emails on a Gmail account. Depending on the result, a number will be send to the Arduino in order to display a notification.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0: No new mail.&lt;/li&gt;
&lt;li&gt;1: Red LED, error while fetching the number of unread mail.&lt;/li&gt;
&lt;li&gt;2: Green Led, new emails.&lt;/li&gt;
&lt;li&gt;3: Blue Led, new emails.&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;
#!/bin/bash
#SCRIPT_NAME=&quot;Arduino Gmail Checker&quot;
#SCRIPT_VERSION=&quot;0.1&quot;
#figlet $SCRIPT_NAME $SCRIPT_VERSION
#########################################################################################
# Description: Check Gmail for unread email and switch RGB LED on Arduino in accordance #
# Dependencies: sed, curl,                                                              #
# Author: Virtualmix                                                                    #
# http://blog.trollmaker.com/article10/arduino-led-notification-for-gmail-on-linux      #
# License: CC BY                                                                        #
#########################################################################################
# Enter Gmail username and password below (Warning: Unsafe storage):
USERID=yourUsernameHere
PASSWORD=yourPasswordHere
# Enter number of seconds between email verification:
WAIT=300
#########################################################################################

# Loop to check for new mail every X minutes:
while [ &quot;1&quot; -eq &quot;1&quot; ]; do

    # Command line to fetch the number of unread emails:
    MAILCOUNTER=`curl -u $USERID:$PASSWORD --silent &quot;https://mail.google.com/mail/feed/atom&quot; | sed -n &#039;s|&amp;lt;fullcount&amp;gt;\(.*\)&amp;lt;/fullcount&amp;gt;|\1|p&#039;`

    if [[ &quot;$MAILCOUNTER&quot; = &quot;&quot; ]]; then
        echo &quot;ERROR: The program coulndn&#039;t fetch the account for user \&quot;$USERID\&quot;.&quot;
        echo &quot;- Are you connected to the Internet?&quot;
        echo -e &quot;- Is the userid and password correct for \&quot;$USERID\&quot;?\n&quot;
        echo 111 &gt; /dev/ttyUSB0 # Turn Red Led on
    elif [[ &quot;$MAILCOUNTER&quot; -eq &quot;0&quot; ]]; then
        echo &quot;* There is 0 new email for user $USERID.&quot;
        echo 000 &gt; /dev/ttyUSB0 # Turn all leds off
    elif [[ &quot;$MAILCOUNTER&quot; -gt &quot;0&quot; ]]; then
        echo &quot;* There is $MAILCOUNTER new email for user $USERID.&quot;
        echo 232 &gt; /dev/ttyUSB0 # Turn blue and then green led on
    fi

    echo &quot;* Waiting $WAIT seconds before checking for emails again.&quot;
    echo &quot;* (^C to quit the program)&quot;
    sleep 300

done
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Arduino Code:&lt;/h3&gt;
&lt;p&gt;The program running on the Arduino is very simple. All it does is wait to receive a number sent via serial communication from the computer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;0: The LED will is turned off.&lt;/li&gt;
&lt;li&gt;1: Red LED is switched on.&lt;/li&gt;
&lt;li&gt;2: Green LED is switched on.&lt;/li&gt;
&lt;li&gt;3: Blue LED is switched on.&lt;/li&gt;
&lt;/ul&gt;

&lt;pre&gt;&lt;code&gt;
/*****************
RGB LED connected to Arduino with 330 ohm resistor to GND
Read value from serial and set LED high or low depending on the number received
0: All off
1: Red LED on
2: Green LED on
3: Blue LED on
******************/

int redLed = 11;
int greenLed = 10;
int blueLed = 9;

void setup() {
  Serial.begin(9600);
  pinMode(redLed, OUTPUT);
  pinMode(greenLed, OUTPUT);
  pinMode(blueLed, OUTPUT);
}

void loop () {
  int value = Serial.read();

  if (value == &#039;0&#039;) {
    digitalWrite(redLed,LOW);
    digitalWrite(greenLed,LOW);
    digitalWrite(blueLed,LOW);
  }

  if (value == &#039;1&#039;) {
    digitalWrite(redLed,HIGH);
    digitalWrite(greenLed,LOW);
    digitalWrite(blueLed,LOW);
  }

  if (value == &#039;2&#039;) {
    digitalWrite(redLed,LOW);
    digitalWrite(greenLed,HIGH);
    digitalWrite(blueLed,LOW);
  }

  if (value == &#039;3&#039;) {
    digitalWrite(redLed,LOW);
    digitalWrite(greenLed,LOW);
    digitalWrite(blueLed,HIGH);
  }

  delay(1000);
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Download:&lt;/h3&gt;
&lt;p&gt;Bash Script and Arduino Code:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://trollmaker.com/data/documents/arduino_gmail_checker.zip&quot;&gt;arduino_gmail_checker.zip&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Let me know if you ever make something cool with it!&lt;/p&gt;</description>
		<pubDate>Fri, 02 Dec 2011 16:54:00 +0100</pubDate>
		<dc:creator>virtualmix</dc:creator>
	</item>
	<item>
		<title>Big-Fourmi Hexapod Walking Robot</title> 
		<link>http://trollmaker.com/article7/big-fourmi-hexapod-walking-robot</link>
		<guid>http://trollmaker.com/article7/big-fourmi-hexapod-walking-robot</guid>
		<description>&lt;p&gt;Big-Fourmi is an hexapod walking robot I have designed and built in the scope of a final year project at university.&lt;/p&gt;&lt;h3&gt;Video:&lt;/h3&gt;

&lt;object width=&quot;580&quot; height=&quot;360&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/3SEzLQic7Sg&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;
&lt;embed src=&quot;http://www.youtube.com/v/3SEzLQic7Sg&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;580&quot; height=&quot;360&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;

&lt;br /&gt;
&lt;object width=&quot;580&quot; height=&quot;360&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/xIECCdkCRes&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;
&lt;embed src=&quot;http://www.youtube.com/v/xIECCdkCRes&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;580&quot; height=&quot;360&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;h3&gt;Project Constrains:&lt;/h3&gt;
&lt;p&gt;There is many different ways to design an hexapod robot but Big-Fourmi was influenced by 3 major constraints:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Smooth walk: The main goal of the project was to develop a robot that can walk smoothly.&lt;/li&gt;
&lt;li&gt;Very low budget: The final cost was 550 Australian dollars, not including labour time. With a greater budget, a better robot can be build.&lt;/li&gt;
&lt;li&gt;No prototype: With such time and budget constrains, only one robot could be produced.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Components List:&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Main Controler: 1x &lt;a href=&quot;http://www.freetronics.com/products/twentyten&quot;&gt;Freetronic Twentyten&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Servos controller: 1x &lt;a href=&quot;http://www.lynxmotion.com/p-395-ssc-32-servo-controller.aspx&quot;&gt;Lynxmotion SSC-32&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Servomotors: 18x &lt;a href=&quot;http://www.pololu.com/catalog/product/507&quot;&gt;GWS S03T STD&lt;/a&gt; (the cheapest servos I could find in Australia)&lt;/li&gt;
&lt;li&gt;1x Micro servo (from ebay)&lt;/li&gt;
&lt;li&gt;6x Small ball bearings (from ebay)&lt;/li&gt;
&lt;li&gt;1x RGB LED&lt;/li&gt;
&lt;li&gt;3x 220 Ohm resistors&lt;/li&gt;
&lt;li&gt;1x Small Piezo Speaker&lt;/li&gt;
&lt;li&gt;2x Toggle Switches&lt;/li&gt;
&lt;li&gt;1x Sharp Infrared Sensor GP2Y0A21YK&lt;/li&gt;
&lt;li&gt;1x 9 Volt Battery (standard)&lt;/li&gt;
&lt;li&gt;1x 6 Volt Battery (to power the servomotors)&lt;/li&gt;
&lt;li&gt;Material: Aluminium and Plexiglass (leftover from previous projects)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Technical Details:&lt;/h3&gt;
&lt;p&gt;Electrical Diagram:&lt;br/&gt;
&lt;a href=&quot;http://trollmaker.com/data/images/big-fourmi_electrical_diagram.png&quot;&gt;&lt;img src=&quot;http://trollmaker.com/data/images/big-fourmi_electrical_diagram.tb.png&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;Possible improvements:&lt;/h3&gt;
&lt;p&gt;The greatest way to improve Big-Fourmi is to use higher quality servomotors.&lt;br/&gt;
The servomotors currently in use are pushed to their limit. Using better quality servos would produce a faster and more accurate motion of the robot.&lt;/p&gt;

&lt;h3&gt;Download:&lt;/h3&gt;
&lt;p&gt;If you want to build your own Big-Fourmi hexapod robot I am sharing the robot Arduino program and CAD assembly files.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://trollmaker.com/data/documents/Program_Big-Fourmi.zip&quot;&gt;Big-Fourmi Arduino Program&lt;/a&gt; [11.7 KB]&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://trollmaker.com/data/documents/CAD_Big-Fourmi.zip&quot;&gt;Big-Fourmi CAD Design&lt;/a&gt; (SolidWorks 2010) [21.2 MB]&lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Please let me know if you make anything cool with it!&lt;/p&gt;</description>
		<pubDate>Sun, 06 Nov 2011 07:01:00 +0100</pubDate>
		<dc:creator>virtualmix</dc:creator>
	</item>
	<item>
		<title>Use custom mouse buttons on a Linux system</title> 
		<link>http://trollmaker.com/article9/use-custom-mouse-buttons-on-a-linux-system</link>
		<guid>http://trollmaker.com/article9/use-custom-mouse-buttons-on-a-linux-system</guid>
		<description>&lt;p&gt;Btnx is a small software that will let you configure your mouse&#039;s extra button on Linux.&lt;/p&gt;&lt;p&gt;For example with Debian or Ubuntu, the btnx package can be installed using the command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo apt get install btnx&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Once the software is installed, btnx must be configured using administrator privileges:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo btnx-config&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;The configuration window will let you affect a command or a keyboard shortcut to each of your mouse buttons.&lt;/p&gt;

&lt;p&gt;Once the setup is finished, btnx must be restarted in order to load the new configuration. This can be done on the config window or with the command:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo btnx&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;I have a &quot;Logitech Performance MX&quot; mouse with plenty of extra buttons and this software let me use them all.&lt;/p&gt;</description>
		<pubDate>Tue, 01 Nov 2011 02:42:00 +0100</pubDate>
		<dc:creator>virtualmix</dc:creator>
	</item>
	<item>
		<title>[bug fix] Nvidia non-free driver on Debian Testing</title> 
		<link>http://trollmaker.com/article8/debian-wheezy-xserver-bug-with-nvidia-driver</link>
		<guid>http://trollmaker.com/article8/debian-wheezy-xserver-bug-with-nvidia-driver</guid>
		<description>&lt;p&gt;Here is how to (temporary) fix an important bug (&lt;a href=&quot;http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=642757&quot;&gt;#642757&lt;/a&gt;) occurring with nvidia non-free driver on Debian Wheezy (Testing) and xserver-xorg version 1.11.1.&lt;/p&gt;&lt;div id=&quot;important&quot;&gt;Note: The problem has been fixed in Debian Testing, this article is for information only.&lt;/div&gt;
&lt;p&gt;This bug affect the Xserver-xorg and result in very high CPU loads causing the system to freeze or lag...&lt;/p&gt;

&lt;p&gt;An easy way to fix this issue is to downgrade the xserver&#039;s packages to the version present in Debian Squeeze (Stable) until the issue is fixed:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add Debian Stable repository to your &lt;a href=&quot;http://wiki.debian.org/SourcesList&quot;&gt;sources.list&lt;/a&gt; and update the &lt;a href=&quot;http://wiki.debian.org/Aptitude&quot;&gt;packages list&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;Then use aptitude to downgrade the xserver-xorg packages:
&lt;pre&gt;&lt;code&gt;#aptitude install &quot;~i xserver-xorg-*&quot;/stable&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;Restart the X server (by login out the session for example) for the modifications to take effect.&lt;/li&gt;
&lt;/ul&gt;</description>
		<pubDate>Tue, 01 Nov 2011 01:49:00 +0100</pubDate>
		<dc:creator>virtualmix</dc:creator>
	</item>
	<item>
		<title>Arduino and SN754410 H-Bridge Motor Driver</title> 
		<link>http://trollmaker.com/article6/arduino-and-sn754410-h-bridge-motor-driver</link>
		<guid>http://trollmaker.com/article6/arduino-and-sn754410-h-bridge-motor-driver</guid>
		<description>&lt;p&gt;A simple set-up to control one motor speed (PWM) and rotational direction over serial using SN754410 (L293D) motor driver.&lt;/p&gt;&lt;h3&gt;Video:&lt;/h3&gt;
&lt;object width=&quot;580&quot; height=&quot;360&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/MwDp4W6cGZg&quot; /&gt;
&lt;param name=&quot;allowFullScreen&quot; value=&quot;true&quot; /&gt;
&lt;param name=&quot;allowscriptaccess&quot; value=&quot;always&quot; /&gt;
&lt;embed src=&quot;http://www.youtube.com/v/MwDp4W6cGZg&quot; type=&quot;application/x-shockwave-flash&quot; allowscriptaccess=&quot;always&quot; allowfullscreen=&quot;true&quot; width=&quot;580&quot; height=&quot;360&quot;&gt;&lt;/embed&gt;
&lt;/object&gt;

&lt;br/&gt;
&lt;h3&gt;Code:&lt;/h3&gt;
&lt;pre&gt;&lt;code&gt;
/*SCHEMATIC USING ONLY ONE MOTOR:
 (N/A MEANS FREE PIN)
 
 5V  N/A  N/A  GND  GND  N/A  N/A  N/A
 |    |    |    |    |    |    |    |
 ------------------------------------
 |            SN754410              |
 ------------------------------------
 |    |    |    |    |    |    |    |
N/A  PIN5 MOT1 GND  GND  MOT2 PIN6 VIN
 
 */

#define motorPinOne 5 //The chosen pin must have PWM
#define motorPinTwo 6 //The chosen pin must have PWM

/* Define the rotational direction of the motor. (0 = clockwise and 1 = counter-clockwise) */
int val = 0;
/* Define the rotational speed of the motor. MUST be between 0 and 255. */
int pulse = 0;
/* Used to store the current rotational direction */
int storage = 0;

void setup() {
  Serial.begin(9600);
  Serial.println(&quot;Enter 0 or 1 to choose rotational direction&quot;);
  Serial.println(&quot;Then enter + or - to increase/decrease the rotational speed.&quot;);
  Serial.println(&quot;Warning: Rotational speed MUST be between 0 and 250.&quot;);
}

void loop() {

  val = Serial.read(); //

  switch (val) {
  case &#039;0&#039;:
    clockwise();
    break;
  case &#039;1&#039;:
    counterClockwise();
    break;
  case &#039;+&#039;:
    pulse = pulse + 10;
    updateSpeed();
    break;
  case &#039;-&#039;:
    pulse = pulse - 10;
    updateSpeed();
    break;
  }
}

void clockwise(){
  storage = 0;
  Serial.print(&quot;Rotation is clockwise and speed is &quot;);
  Serial.println(pulse);
  analogWrite(motorPinOne,pulse);   // set leg 1 of the H-bridge low
  analogWrite(motorPinTwo,0);
}

void counterClockwise(){
  storage = 1;
  Serial.print(&quot;Rotation is counter-clockwise and speed is &quot;);
  Serial.println(pulse);
  analogWrite(motorPinOne,0);   // set leg 1 of the H-bridge low
  analogWrite(motorPinTwo,pulse);
}

void updateSpeed(){
  if (storage == 0){
    clockwise();
  }
  if(storage == 1){
    counterClockwise();
  }
}
&lt;/code&gt;&lt;/pre&gt;</description>
		<pubDate>Wed, 14 Sep 2011 16:59:00 +0200</pubDate>
		<dc:creator>virtualmix</dc:creator>
	</item>
</channel>
</rss>