Archive for the ‘Computer’ Category

Fit-PC 2 as HTPC using (L) Ubuntu 11.04 Natty Narwhal

Monday, May 23rd, 2011

This post explains how you can setup our own media centre using Lubuntu. Using my Fit-PC 2 as example.

Fit-PC is a small, light, fan-less nettop computer manufactured by the Israeli company CompuLab. I use it in my living room and it’s nearly invisible. When I install an SSD in it, I will stick it back on my TV.

After the installing Lubuntu from USB stick I had to manually shut the computer down. Apparently there are some ACPI bugs in Natty, but it’s not important. It will be on most of it’s life. I made sure the computer was up to date before installing display driver.
sudo apt-get update
sudo apt-get upgrade

The fit-pc 2 ships with GMA500 Intel graphics. It kinda sucks since Intel is unable to give us proper drivers for it! This is why I will think twice or even three times before buying anything from Intel again.

To use GMA500 I deceided to use EMGD (source):
sudo add-apt-repository ppa:gma500/emgd
sudo apt-get update
sudo apt-get install xorg-emgd emgd-dkms
sudo emgd-xorg-conf

emgd-xorg-conf creates a config in /usr/share/X11/xorg.conf.d/10-emgd.conf. This is when the problems occour. emgd-xorg-conf discovers wrong port which I had to manually edit. My modified 10-emgd.conf:
Section “ServerLayout”
Identifier “Default Layout”
Screen 0 “Screen0″ 0 0
EndSection

Section “Device”
Identifier “Intel_IEGD-0″
Driver “emgd”
VendorName “Intel(R) DEG”
BoardName “Embedded Graphics”
BusID “0:2:0″
Screen 0
Option “PcfVersion” “1792″
Option “ConfigId” “1″
Option “ALL/1/name” “svdo-display”
Option “ALL/1/General/PortOrder” “24000″
Option “ALL/1/General/DisplayConfig” “1″
Option “ALL/1/General/DisplayDetect” “1″
Option “ALL/1/General/Accel” “1″
Option “PortDrivers” “svdo”
Option “ALL/1/General/VideoRam” “131072″
Option “ALL/1/Port/2/General/name” “sdvo”
Option “ALL/1/Port/2/General/Edid” “1″
Option “ALL/1/Port/2/Attr/70″ “0″
EndSection

Section “Screen”
Identifier “Screen0″
Device “Intel_IEGD-0″
Monitor “sdvo”
SubSection “Display”
Depth 24
Modes “1024×768″
EndSubSection
EndSection

Section “Monitor”
Identifier “sdvo”
ModelName “sdvo panel 1024×768″
EndSection

Section “DRI”
Mode 0666
EndSection

Section “Extensions”
Option “composite” “enable”
EndSection

Keyword here is ALL/1/Port/2 were port 2 was 4 in the orginal configuration and sdvo was lvds.

I then installed lirc to be able to use my transcend remote for my picture frame, you can use anything. I followed some tutorial for making it work. Basically run irrecord to trian lirc to understand my remote.

sudo irrecord -d /dev/lirc0 /etc/lirc/transcend.conf

 

I tried Boxee first, but it’s bloated. Ended up using XBMC:

sudo add-apt-repository ppa:team-xbmc
sudo apt-get update
sudo apt-get install xbmc
sudo apt-get update
sudo apt-get upgrade

Edit #1
If you want XBMC to automatically detect new movies just open crontab

crontab -e

and add the line

* 10 * * * wget -T 60 -q -O /dev/null "http://user:passwd@localhost:8080/xbmcCmds/xbmcHttp?command=ExecBuiltIn(updatelibrary(video))" # run once a day

You will of course have to enable HTTP controlling in XBMC for this to work. Also make sure your user, password and port is correct from the line above.

End of edit

To make lirc work with XBMC we will have to setup a config in XBMC. It should be located in /home/user/.xbmc/userdata/Lircmap.xml. Here is mine:

<lircmap>
 <remote device="/etc/lirc/transcend.conf">
 <play>KEY_PLAYPAUSE</play>
 <pause>KEY_PLAYPAUSE</pause>
 <stop>KEY_STOP</stop>
 <forward>KEY_NEXT</forward>
 <reverse>KEY_PREV</reverse>
 <left>KEY_LEFT</left>
 <right>KEY_RIGHT</right>
 <up>KEY_UP</up>
 <down>KEY_DOWN</down>
 <select>KEY_OK</select>
 <pageplus>KEY_PAGEUP</pageplus>
 <pageminus>KEY_PAGEDOWN</pageminus>
 <back>KEY_EXIT</back>
 <menu>KEY_MODE</menu>
 <title>Guide</title>
 <info>KEY_CYCLEWINDOWS</info>
 <skipplus>Skip</skipplus>
 <skipminus>Replay</skipminus>
 <display>Aspect</display>
 <start>KEY_HOME</start>
 <record>Record</record>
 <volumeplus>KEY_VOLUMEUP</volumeplus>
 <volumeminus>KEY_VOLUMEDOWN</volumeminus>
 <mute>KEY_MUTE</mute>
 <power>KEY_POWER</power>
 <myvideo>KEY_VIDEO</myvideo>
 <mymusic>KEY_MUSIC</mymusic>
 <mypictures>KEY_PROG1</mypictures>
 <mytv>KEY_CALENDAR</mytv>
 <one>One</one>
 <two>Two</two>
 <three>Three</three>
 <four>Four</four>
 <five>Five</five>
 <six>Six</six>
 <seven>Seven</seven>
 <eight>Eight</eight>
 <nine>Nine</nine>
 <zero>Zero</zero>
 <star>Star</star>
 <hash>Hash</hash>
 <clear>Clear</clear>
 <enter>Enter</enter>
 <red>Red</red>
 <green>Green</green>
 <yellow>Yellow</yellow>
 <blue>Blue</blue>
 <teletext>Teletext</teletext>
 </remote>
</lircmap>

Give me a comment if anything is unclear.

RC Part Finder!

Tuesday, April 5th, 2011

Very early this year, I started another(!) project. This is a webbased tool for everyone RC-interested which crashed and are in need of parts. Let’s be honest, we all crash and need parts. Which makes me believe this is a good project.

RC Part Finder.com is a click’n'buy service which let’s you find accurate and cheap(est) part for your vehicle. At this moment, anyone can register and add blueprints and start helping. I don’t earn any money on this, actually I loose some due to web hotel and data transfer. My goal nevertheless to make a useful tool for everyone at the cost of nothing.

Student “company”

Tuesday, April 5th, 2011

To receive an additional 10 points I’m taking a “course” directly translated to: student company. This subject is as close to a real company as you get in Norway where the ultimate goal is to earn 140,000 NOK (~$25,000). Our company; MiAu-SB specializes in GSM communication. We are currently working on three projects for external customers. Will be giving details on this when they are finished.

Bachelor project

Tuesday, April 5th, 2011

I’m currently finishing my Automation bachelor degree collecting the last 30 points. 20 of these points are achieved by one last project, main project.

Me and three other students are doing a project for Repant ASA, by making a vending machine.

You can get details and information on our website, setup and maintained by myself; http://www.hovedprosjekt.com/

16-bit Arithmetic Logic Unit inside a game

Tuesday, September 28th, 2010

Since this is both computer and electronics related I will post this youtube link containg a video game with custom made ALU by using game pieces.

After having ALU and how computers are built bottom up as last terms curriculum, I can imagine the energy required to make this setup. Take a look: http://www.youtube.com/watch?v=LGkkyKZVzug

School project – track counter

Friday, August 27th, 2010

This article will have an overview of our school project (term 3/6). We were only two persons completing the project and I did all the coding. Our goal with this project was to make a simple, cheap and easy implantable tracking system.

After setting our goal on making a track counter (later called TC) we did our research on google searching for similar projects. We did not find much information about this and had to do some research before pursuing our goal. We faced a difficult question about IrDA. since we were planning to use infrared technology. Would the sensor be able to detect IR moving very fast? thinking back on FY1 (physics) we knew IR is running on a very high frequency and the experience with TV-remotes made us certain our choice of technology.

This year we had to expand knowledge we had been or would be learning into our project. This means Java and Verilog. We also focused on making a accurate budget since it was one of our goals.

The idea
Each object in a shortened circuit has an uncovered module which runs on a unique frequency. This frequency is sent to an IR diode on the module making the diode to blink at a given rate.

At finishing line we have an IR sensor connected to an PLD-card sending the info to a computer. The computer runs a TC-application written in Java with a SWING GUI.

Track counter rapport it`s in Norwegian, use a translator to get it to English or contact me and I will translate it for you.

Video

ALL IN 1 HDD Docking (Unitek) in Linux

Thursday, May 27th, 2010

Since my external HDD`s adapter died and I found out that these Western Digital`s adapters are bad all over through Google. I threw the contoller away and bought a new instead of another faulty adapter. There were little information about this controller, but it has tons of features at a low cost. My main concern was support in Ubuntu, but I found some defuse info about Linux support after some heavy Googling. I gave it a shoot and this post is my blessing for it`s plug`n`play comparability with Linux. I can now use the WD SATA disk and an old IDE disk laying around!

Tech and photographing

Sunday, March 7th, 2010

Rube Goldberg Machine version

Unbelievable plane build and it`s movie

Sound technology, listen to nearby planes pretty cool idea

Snowplow

youtube speed

Photographing cotton

Miniature New York

Food landscape

Make it smaller and become bigger

Marion on Arduino

Laser scissors

Analog and Digital TV Signal Generation

Computer and Arduino controlled car (1:18)

Thursday, February 18th, 2010

So I decided to make something with RC-servos using the Arduino board and the sensor shield which I recently purchased.

I went ahead figuring out how to send arrow signals from my computer to Arduino using USB interface.

Using void setup() { Serial.begin(9600); } on Arduino and screen /dev/ttyUSB0 9600 on my computer, I managed to send commands back and forth. I hooked up the standard servo library and write some code before I mounted the Arduino board on my mini rock crawler. I now had a computer controlled car. Because of Arduino`s simple interface I had it all up and running around an hour. Check the small video and code below.

You can view and or use the code as you like below. (Sorry about the indention, WordPress messes it up).

//
// LIBRARY
//
#include <Servo.h>

//
// OBJ
//
Servo servo1;
Servo servo2;

// VARS
int readByte;
int servo1Angle = 90; //default servo angle
int servo2Angle = 90;

int minPulse = 700; // minimum servo position
int maxPulse = 2300; // maximum servo position

void setup()
{
servo1.attach(2, minPulse, maxPulse); //connect servo
servo2.attach(3, minPulse, maxPulse);

Serial.begin(9600); // start serial
Serial.println(“Ready\n”);
}

void loop()
{
if (Serial.available() > 1) // procced when two bytes is avaiable
{
readByte; = Serial.read(); //read first byte
if (readByte; == 91)
{
readByte; = Serial.read(); //read second byte to determine arrow type
if (readByte; == 65 && servo1Angle <= 180) //UP
{
servo1Angle += 5;
}
else if(readByte; == 66 && servo1Angle >= 0) //DOWN
{
servo1Angle -= 5;
}
else if(readByte; == 67 && servo2Angle <= 180) //RIGHT
{
servo2Angle += 5;
}
else if(readByte; == 68 && servo2Angle >= 0) //LEFT
{
servo2Angle -= 5;
}

}
}
// set servo positions
servo1.write(servo1Angle);
servo2.write(servo2Angle);
delay(15);
}

Re winding a brushless mini motor

Friday, November 27th, 2009

After running this motor to hard outside, I managed to burn the motor. You can see pictures of the “burnt” motor in the gallery below.

First of all I opened the motor to take a look noticing protective isolation layer on the copper were melted. Not so strange, because when I approaced the motor after the plane fell from the sky, it was insane hot.

Before removing all wire I measured the wire diameter to 0,30mm. I found this king of wire inside very small tranformators in a computer power supply.

By using this picutre, found on this page. I was able to re wound the motor.

I actually did wound all the poles at the same time, well, one by one, but all three wires were in use, if you follow.

After finish wounding I had to connect wires together to make only three wires, brushless motor has three out wires.

Since it`s a pretty fast motor I made a delta hookup, but I did a mistake at first. This motor should have around 195mOhm per 14-turn, maybe I did not mention it is a 14-turn motor. Which means each pole (there are nine here) needs 14 turns of isolated copper wire and in a small motor like this one, it`s not that easy. Anyway, by hooking up wrong end`s I broke a ESC of mine ($10) so I had to buy another one.

The motor works just great now and I might add a video later.

Gallery

Fixing brushless motor