Power to the People of Iran



Hello...
..and welcome to eeeGadgets! This blog is dedicated to everything associated with the wide (and interesting) field of mobile computing. The main focus is on presenting all the various hardware modifications I made to my eeePC, but I will also give short reviews of other interesting Mobile Internet Devices I come across. Further I want to share some tips and tricks I found out to be helpful in getting the most performance out of Ubuntu linux...
On the right side under "LABELS" you can navigate between various assorted article categories. Also, on the very bottom of the site you will find some useful weblinks, as well as a small broadband connection speed test (which can be very useful sometimes).
If you want to, you can subscribe to my RSS news feed too, to be always up to date about my latest articles - simply click on "subscribe now!" in the little box on the right side. Alternatively, you can subscribe to my simple email newsletter by clicking here.
For questions, feedback, suggestions, criticism and everything else, don't hesitate to contact me:
emailfuerdennis@web.de

....have fun reading!

If you like my site and want to support me , you can always donate to my personal "coffee funds" using the PayPal "donate" button further down on the right! :)
Dennis

Sunday, October 25, 2009

"TwitterCheck 1.05" - twitter for your taskbar






During the last days I've been quite busy (moved to a new apartment) but managed to write a new win32 application nevertheless (took me two evenings, overall eight hours of work).
The original idea was that I wanted to write some application which actually made use of the LED notifier device - besides of just "manually" lighting it up in different ways. Seeing that Scotts "Gmail Alert" (which I'm using) seems to evolve into a very nice full-featured email client at present time, I didn't feel any need for writing something email related - so I decided it would be a good idea to do something with twitter (after all, their API is nice to work with, IMO) maybe. After searching for a suitable twitter API wrapper for vb.net, I settled on using the "yedda_twitter" library for the purpose (see http://devblog.yedda.com/index.php/2007/05/16/twitter-c-library/ for more details). The timeline is being fetched, saved and parsed as XML file. The user interface was designed based on bitmap graphics created while playing with the new gimp 2 (making it possible to add skin support in the future if needed), Here's a screenshot of the main window:


I included a checkbox to enable the thing to autostart when windows starts up, the application remembers your twitter account data (but it hides your password, of course!), and checks your twitter "friends timeline" every minute, then it decides whether the last tweet is a new one or not, and in case it IS a new tweet the LED notifier is lighting up in turquoise, tray icon changes color to red, a balloon popup shows up displaying the new tweet sender's name and actual message, and on clicking it, the twitter tray icon becomes normal colored and the LED goes off again.

"Twittercheck 1.05" is available for download here:
http://sourceforge.net/projects/twittercheck/


Application requirements are installed "VisualBasic PowerPacks 3.0" and ".NET Framework 3.5 SP1", and of course you need a twitter account too, if you want to make use of twittercheck's features.. :)

Saturday, September 26, 2009

LED notifier software ported to Windows


I've been tinkering around with win32 software development lately, and managed to make my LED notifier work with Windows 7. For the purpose I had to create a custom driver based on libusb which replaced the generic usb HID device driver that is part of windows. I also recompiled the command line tool "set-led.exe" using minGW32 and Dev-C++, and managed to pack a few snippets of python source code from my dBird notifier into executables by using the marvelous "py2exe" module for python 2.6..

This made the device work, but without software to talk to it, the notifier was soon pretty boring. So I finally wrote another app, this time in VisualBasic 2008 Express (with .NET 3.5 SP1) which controls my LED notifier hardware (to date color selection is the only thing that is possible, plans are to use it for controlling my home-made ambient room lighting in the near future...)





here is a screenshot of an earlier
version - "LEDControl 1.27":

and here a download link for the latest version 2.05:
http://sourceforge.net/projects/ledcontrol/files/LEDCtl-205-Setup.exe/download

this is how the latest ver2.05 looks
like - note tray icon and tray menu

I packaged all into a nice installer, which also simplifies driver installation greatly, since you can select to install them along with the application if needed. And now everything is copied to the right folders automagically, finally.

Update
now I finished work on the new release, version 2.05, featuring new GUI, more functions, smaller download size (50% reduced, now its only 1.98 MB small), comfortable setup routine, auto driver install, and "auto mode" color fading with less CPU load (all fading is written in C++ now). I also fixed a bug with the "off" button not working as it should, and added speed and brightness adjustment features for auto mode too.

Here I want to note too that I'm pleased to announce that my "LEDcontrol" software has been rated "100% malware spyware and virus free" by SoftPedia.com - thanks for taking the time guys.. See button at top of this article for a download link.

Also I want to make mention here of a nice little piece of software written by Scott Merryfield, "Scotts Gmail Alert", which checks your gmail or googlemail account periodically, gives on-screen alerts in case of unread message, and lights up my LED notifier hardware in the color corresponding to the sender's alert color! VERY useful software. Recommended.

Saturday, July 18, 2009

repairing a HTC MDA pro



I got ahold of a damaged MDA Pro recently, and soon tried to repair it (the usb charger plug was broken), successfully as you can see. Here are a few pictures of the innards of this device..

Sunday, July 12, 2009

Asus announces new T101 convertible netbook

Asus has just confirmed the release of another netbook, presumably to happen in late August, which will feature a 10 inch convertible touchscreen (finally). The marvelous little device bearing the name "eeePC T101H" comes with several nice features long awaited by the eeePC fan community, namely integrated GPS, above mentioned 10.2" resitive touch screen panel, LiPolymer battery for up to 5.4h run time, sleak design with a weight of just 1500g (both made possible though use of a 16GB solid state disk instead of the more common 2.5"/160GB hard disks seen with other netbooks) and of course the obvious intel Atom CPU (this time only a Z520 running at 1.33GHz) supported by 1GB RAM (upgradeable to 2GB). Connectivity is gooood - since this thingie has 3G broadband modem, 802.11 b/g/n wifi and bluetooth built-in you'll probably never feel "under-connected" again.. Also included are a 0.3MP webcam (a bit grainy pictures are predictable with such low resolutions, but for video telephony it might be just ok), microphone and stereo speakers - and as a special extra an included TV tuner too (no further details are known yet).
Price is unknown too, as well as the exact release date. Since Asus claims it will be "Windows 7 ready" it will probably ship with WinXP and an option to upgrade to Win7 later - and thus it might become available well before october. We'll keep you updated..

Wednesday, July 1, 2009

USB mail notifier - final hardware and software revision

Over the past few weeks I've refined the design of my LED message notifier device that has been the topic of my last few articles. For those of you who aren't familiar with how it works or what is meant: the notifier device inquestion is capable of lighting up a multi-color LED in the corresponding color when/if messages are received. It indicates several types of messages: instant messages received via Pidgin (green LED/purple LED), emails and RSS/Atom feeds received via Mozilla Thunderbird (red LED), and it also informs about new tweets on my Twitter account (turquoise LED).

Thanks to the help of forum.eeeuser.com member justblair (from justblair.co.uk / ayetea.com) who was kind enough to donate all necessary parts for making a prototype, I am now using a USB notifier dongle based on the ATtiny45 microcontroller, running firmware written by Dave Hillier (from Linden Labs / Dave's Blog) - who built a notifier too (Dave in turn says he got his idea from the blog www.j4mie.org, so its fair to say that this is really a kind of some pass-on open-source project).
In fact this firmware from Dave implements a free virtual hardware USB driver for AVR microcontrollers called V-USB (based on libusb which is available for all major operating systems incl. Win32 and MacOS and, of course, linux too) and works by emulating some sort of generic "Human Interface Device", which is controlled by a small command line tool called "set-led", written in C (also courtesy of Dave Hillier!), which in turn is called by my "dBird Notifier" scripts as appropriately - which is when new messages do arrive.

For this purpose I've rewritten the scripts to support the new USB hardware and have released a new version "dBird-notify-usb-1.5" which can be found here at its sourceforge page for download. To install it, just extract the .tar.gz archive into your home folder, navigate to the newly created subfolder /LEDnotifier", run "sudo ./install.sh" and edit the file "config.conf" to fit your needs (more instructions can be found in the file HowTo.txt).

So far for the software part...

The hardware has been further developed too and has become significantly smaller thanks to omitting the now useless USB->serial adapter circuit, through consequent use of the Attiny45 in SOIC package and all SMD 0805 parts, and by etching an own PCB for the purpose. Only thing that is still the same compared to my initial design of a serial device are the 5mm common cathode rgb LED, and the USB plug.

I've found a very nice light diffuser in form of a tiny keychain lavalamp (filled with viscous liquid and some glitter stuff) which I managed to fit to my notifier and which, although just "a little bit" flashy, looks mighty cool (in my opinion at least).

The final PCB layout Blair and I designed:




A few pics of the hardware building process (from left to right: partially assembled unit, etched PCB, cardboard prototype made using through-hole parts):













Here you can see how the final external USB notifier (and attached lava lamp) look like:



If you want someting like this but feel not skilled enough with the soldering iron, or simply don't have the time for building one yourself, you can contact me for a pre-assembled board (fully functional), or if you like to solder things yourself you can contact me for a DIY kit consisting of a PCB with pre-soldered and programmed microcontroller, and solder the SMD resistors and diodes, LED and usb plug by yourself - I've still got a few PCBs and attinys left over... ;)

By the way: firmware and source-code of Dave Hillier's AVR-USB-LED software as well as the PCB layout and wiring schematic can be found in the subfolders "/AVR-USB-LED" and "/hardware" of dBird-notify-usb-1.5.tar.gz, which can be downloaded from my sourceforge project page
http://sourceforge.net/projects/dbirdnotifier/files.
Support the dBird notifier Project over at Sourceforge.net - donate now!
Support the dBird notifier Project over at Sourceforge.net -
donate now by clicking the button above.


EDIT:
As it turns out people do like this gadget! In the meantime Dave Hillier has obviously been impressed with the lavalamp I added, and has written a short report about it on his blog, as well as JustBlair from justblair.co.uk - who has built a notifier device too - and JustBlair even managed to fit it inside his eeePC 901, despite him using the through-hole DIP variety of the attiny45! To accomplish this he omitted the PCB alltogether, and decided to wire up the chip and resistors "dead bug" style, which enabled him to hide the circuit in the base of his netbook, while the LED itself sits on the top left corner of his LCD bezel, where it is apparently very visible - even from across the room. He admits he has already become addicted to reading email as soon as it arrives, due to his new "netbook-notifier". :)

Saturday, June 20, 2009

PCB etching @home...

Doesn't it look nice? (stay tuned!)

Sunday, June 14, 2009

dBird release 1.15 - due to Pidgin problems

During recent conversations on ICQ I noticed that my dBird Notifier scripts don't behaved like I wanted: each incoming ICQ message created a new tray icon, regardless of whether the conversation was already opened or not, causing many tray icons to accumulate during a longer conversation which was quite annoying and ugly. I changed the code to fix this bug - only one icon shows up now, all following messages belonging to the same conversation don't cause further icons to appear - UNLESS they are from someone new, i.e. if a new conversation is opened.

The new release v1.15 (incl source) can be downloaded here:
http://sourceforge.net/projects/dbirdnotifier

Sunday, June 7, 2009

dBird Notifier 1.1 - new version

I've just finished work on a few improvements of my dBird notifier scripts collection.
Now all relevant user data (twitter account name & password, ICQ buddy list, domain for which special alert will be given, serial port to use) is saved in one central "config.conf" file, I tried to prevent problems with missing packages by compiling all modules into python bytecode executables, and added a bugfix for the forthcoming "twitpocalypse" buffer overflow bug (and cleaned up the code a bit).

You can download the whole as a tarball here: http://sourceforge.net/projects/dbirdnotifier/

Installation is easy, just extract into home directory, go to "/LEDnotifier" subfolder, edit "config.conf" and paste your account data in the upper two lines (first username, then password) and maybe adjust the other things too, then start "BirdNotify_TrayVersion" from the command line (or create a starter on your desktop or inside the gnomenu). Remember to launch Thunderbird and pidgin too, and also don't forget thunderbird needs "dbus notifications" extensions installed.

Have fun.

Friday, June 5, 2009

New LED mail notifier pics






I've added a light diffuser made of milky glass. Now the color mxing is much more visible..

Wednesday, June 3, 2009

dBird-notifier checks for twitter, ICQ, email

I refined the software part of my last project a bit. Now the thing consists of one main python script calling various subprocedures as separate threads, it has a nice colorful "parrot" tray icon (for closing the "application"), it listens on the dBus interface for alerts from various other software and shows three different types of incoming messages with

a) respective system alerts (indicating message content and type),
b) with a pop-up tray icon showing type of message by icon, and
c) with some RGB LED wired to a RS232toUSB-adapter via a small picaxe08m microcontroller, which lights up in the corresponding color (twitter is turquoise, pidgin is purple, email is red).

When the pop-up tray icon is clicked the LED is switched off, receiving numerous messages at the same time will cause several pop-up tray icons to appear.

It took me a while to get familiar with the python-twitter API interface, especially since I'm totally new to writing python code at all! Therefore the code is most definitely not the smartest, experienced python programmers feel free to improve this (you can also contact me to join the sourceforge project as a developer, help is always welcome!).

But at least it works. Without errors and with all features I wanted it to have.
And I've also learned to like twitter during writing the code..

Everyone interested can download my "dBird-notifier" python scripts v1.0 (packed as a .tar.gz archive including installation instructions) from here:
http://sourceforge.net/projects/dbirdnotifier/

some screenshots will maybe follow soon.

UPDATE
i just figured out that you can assign each device a unique symbolic link in /dev by writing a custom "udev" rule for it. I wrote a udev rule for the RS232 converter I'm using that causes the LED notifier device to be always visible as "/dev/LEDnotifer" when plugged in. I have edited all my ".py" scripts to point to this device node for ease and consistency (before the notifier device was sometimes /dev/ttyUSB0 and sometimes /dev/ttyUSB3 which was quite annoying since required me to edit three files by hand each time the system booted. Now thats not necessary anymore).
Here's my udev rule (store as "/etc/udev/rules.d/70-persistent-aserial.rules"):

BUS=="usb", KERNEL=="ttyUSB?", SYSFS{idProduct}=="2303", SYSFS{idVendor}=="067b", SYMLINK+="LEDnotifier"
(yep it's just one single line)
If you are using a different serial->USB adapter cable you might need to adjust the {idProduct} and {idVendor} tags with the values shown by "lsusb" for your device, i.e. open a terminal, type "lsusb" with and without adapter cable inserted, then indentify the product and vendor id of your adapter, then place these in your udev rule. Restart the udev service by running "sudo /etc/init.d/udev reload" inside a terminal.
Then, finally, edit your ".py" script files to point to the new "/dev/LEDnotifier" symlink, and start "BirdNotify_TrayVersion.py" as usual. Voilá.

The second prototype in action. Note system notification alert on upper right of screen,
as well as pop-up "twitter" tray icon (here, clicking this icon would
turn off the LED again for example)
The batteries will be replaced with direct wiring to
the USB power lines at a later point in time!


Wednesday, May 27, 2009

HowTo: make a small LED email notifier

I guess after my last articles bearing somewhat randomized topics it is time for a real "eeeGadget" again.. So, what about having multi-color LED signaling incoming email (and ICQ instant messages) for you, visually with various blinking colors for assorted message types, even when your netbook's lid is closed, for example? This is easily done using just a small circuit centred around a cheap 8-pin "picaxe08M" microcontroller, a USB/serial adapter cable and some python scripting (well - it surely can be done in a million different ways, but thats how I approached things!)...
















The whole idea is based on Toms original design of a LED mail notifier, but I refined things a bit (specifically the py script part) to better suit my needs (also big thanks go out to Pete from nermal.org for his assistance/ideas regarding python coding!).. The device listens to instructions sent over the (emulated) serial port of my usb/serial converter by two python scripts. Those scripts regularly check my gmail account for new incoming mail (done by the first script which is called every ten minutes as a CRON scheduler job) and - this is where the other script comes into play - continuously listen to dbus system alerts concerning new instant message arrival, which are issued by Pidgin (my favorite instant messenger) as soon as a new instant message is being received (thanks to a Pidgin dbus notifying plugin). This can also be done with Thunderbird (email client), provided the necessary thunderbird dbus plugin is installed.
But first lets have a look at the hardware:


wiring schematic of the PICaxe circuit


The hardware part is simple (see schematic above). It consists of only six resistors, one common cathode RGB LED, a picaxe08m microcontroller (and some 9-pin female serial port connector) . The picaxe listens on Input 3 to bytes sent by the python script(s), and encodes Outputs 0, 1 and 2 according to the last three bit of each byte received. If it receives the ascii sign "1" the LED comes up red, "2" causes a green color and so on (there are seven possible colors). If it receives "8" the picaxe switches off the LED. It can be easily built on some piece of veroboard - but for the sake of being able to build this into my eeePc's interior (it has to be really small and tiny) I decided to design a small PCB using only surface-mount components (besides of three wire bridges).
this is scaled up to 200 percent already!

The python script that gathers email information is using the python "feedparser" library to fetch an RSS/atom feed of my gmail account's inbox two times in succession, each five minutes. If the number of mails in my "inbox" mail folder has increased (meaning new mail has arrived) the LED slowly flashes in red for, lets say, seven times when I have seven new emails. As soon ( a few minutes later actually) as I have read all my emails, the atom feed is updated with the new overall mail number "zero", and the LED doesn't light up anymore. The script is launched regularly every ten minutes by cron scheduler, so overall it observes my email inbox folder nonstop every five minutes. I reckon this is a bit often, but as long as it doesn't hurt...
The other script listens nonstop on the dbus for incoming alerts from Pidgin Instant Messenger, and decides whether the incoming message is from

a) a known person ("buddy")
b) a certain domain (for example all messages from employees of one company)
c) unknown person

Then the corresponding byte sequence is sent to the picaxe (who is using the last three bits of each byte to decide which pin to put high or low). For each of the three types of message the python script sends out the right bytes with the proper delay, so the LED is flashed accordingly: in case A it flashes fast and green for a few seconds, for B it flashes fast, red and not long (only a short burst) and for C it blinks three times very slowly in blue.
Both scripts also give some info output on the console, but can perfectly run in the background too since they don't need user interaction.. Only problem for windows users, the pidgin/dbus thingie doesn't work outside linux since there exists no dbus extensions for win32 (not yet, but a windows port of dBus is in development!). The email notifier does work with WinXP though.



fuzzy picture of the secret prototype :)

UPDATE
You can download the needed python scripts and PICaxe basic code here
http://www.mediafire.com/file/qyykwnxj4mk/notifier_gmail.py
http://www.mediafire.com/file/5q0y5mzzmhd/notifier_pidgin.py
http://www.mediafire.com/file/qzmznxjgjln/twinkle.bas
Heres a small script to test your circuit (cycles through all colors one time)
http://www.mediafire.com/file/qdjdlycjgmz/LEDtest.py
Also here's the PCB layout
http://www.mediafire.com/file/mf5iyytohyo/twinklePCB.bmp

The scripts are written for python 2.6/linux and need to be customized a bit,
for example you need to change the buddy ICQ number entries to match your
buddy list, and adjust the /dev/ttyUSBxxx to your serial port's name...
Also you may need to install python-serial and python-time from the
ubuntu repositories, then it should work.

UPDATE2
This all is "deprecated" as they say in linuxland. In other words it should be considered "public alpha" release and has been superseded by my all-new and shiny dBird notifier script collection as detailed in the article ABOVE. (just wanted to mention it here too)
cheers

Friday, May 22, 2009

what have fireflies got to do with BASIC?

During the last days I've been quite excited about a certain idea I want to report about here, and which I think is quite an entertaining project. During one of my web journeys I recently happened to stumble upon this link over at instructables.com and was fascinated: I was looking at a 5x5 LED matrix that initially blinked its LEDs randomly, but somehow "magically" (with the support of 25 light-dependent resistors) synchronized them very slowly, to finally reach a state of absolute synchronicity - and all this with 25 totally independent control circuits, all based on 25 single atTiny13 microprocessors!! The whole thing should be considered as being a model of large swarms of thousands of male fireflies in sout-eastern asia, which are capable of synchronizing their blinking to attract more female fireflies over a greater distance. For more detailed explanations about the background (and how to set up a physical logic model using AtTiny13 chips and C coding) I want to forward you to the instructables link above as well as to this scientific paper explaining the underlying mathematical theory behind this..

And, of course, to a video of "the real McCoy" - real fireflies sitting in a tree, blinking like there would be no tomorrow:



To put it shortly: I decided I wanted something like this hanging on my wall too!

..but since neither the AtTiny nor its "C" language appeal to me, and since further I'm NOT in posession of any ATMEL programmer to accomplish this new goal of mine, I decided that I needed to use something simpler. I instantly thought of the "picaxe" microcontrollers (which are intended for schools originally, sold by a company called "rev-ed.co.uk", these things are basically a customized "microchip" PIC microcontroller with a bootloader enabling easy direct programming via serial cable, and programmable in a very easy-to-learn BASIC dialect), which would surely allow me to arrive at a nice blinking and syncing LED array in not too much time.

Now while I have not started to assemble any circuit yet, I already have written a small piece of BASIC code which, I think, is quite easy to understand and fun to read - and so I will present it here for the amusement of my dear readers.

here it is:


; *** FIREFLY.BAS ************ Version 1.1 beta ******* SELF-SYNCHRONIZING NETWORK OF LED FIREFLIES ***
; this program is intended for simulation of a swarm of fireflies by many individually controlled LEDs, designed
; to run on a PICaxe08M with a LDR connected to pin 1 and one LED wired to pin 2 (each firefly needs one PICaxe)
; Since they are totally independent besides of sharing the same reset switch, one can easily combine any number of
; fireflies to form a large array of blinking, self-organizing LEDs... pressing the "reset" switch will of course disturb
; the fireflies and their uniform blinking pattern, like walking right into a swarm would disturb real blinking fireflies too,
; probably, and it takes awhile before they start blinking and syncing again...
; --------------------------------------------------------------------------------------------------------------------------------------------------
; Copyright (c) 22/05/2009
; Dennis Schulze


; variables
symbol Power = w4 ;determines how urgently the firefly wants to pulse or how hard it "desires" to do so
symbol Brightness=w3 ;this later contains the reading of the LDR value
symbol Ambient =w2 ;initial ambient light intensity value is stored here for comparison reasons
symbol Counter = b2 ;Counter needed for initialisation blinking loop
symbol RndDelay = b1 ;this will be seeded with a random number for individual delay time


; constants
symbol Daylight=195 ; above this light intensity threshold the firefly does not glow at all (i.e. if its not "night")
symbol MaxPower = 80 ; Urgency threshold that triggers an immediate pulse


;counters
let Counter = 1 ;reset all counters
let Power = 1 ;



gosub pulse ; firefly wakes up



;randomize a bit to give individuality - "the learning phase" during sunset!

for Counter = 1 to 10 ; read out ten times...


read 0, w0 ; ...a random value from EEPROM..
readadc10 1, Brightness ; ......and the current LDR value....
w0 = w0 + Brightness ; combine the values giving a seed....
random w0 ;....which is used for seeding RANDOM with some highly individual value
write 0, w0 ; seed stored for next readout cycle, "randomness accumulates"
pause 100

next Counter



let RndDelay = b1 * 24 ; now use last 8bit of the random word w0, multiply with 24 to give max 6 sec delay


let Counter = 1 ; reset counter



; initialisation blinking loop

for Counter = 1 to 5 ; blink five times


gosub pulse

pause 700

next Counter



pause 500 ; wait a little bit


readadc10 1, Ambient ; then read out ambient light intensity and store value in "Ambient"

pause RndDelay ; pause for an "individual" (hopefully) amount of time before doing anything else


main: do ; main loop

let Power = Power + 1 ; slowly start incrementing the fireflie's desire to blink..
readadc10 1, Brightness ;...while watching the surrounding fireflies too!

if Brightness >= Daylight then ; unless its daytime (fireflies are sleeping during daytime!)...
sleep 3
goto main
endif

if Brightness > Ambient then ;......perceiving pulses from other fireflies will
Power = Power + 30 ;..strongly increase our fireflys desire to pulse with them!
endif

if Power > MaxPower then ; if the desire is strong enough...
gosub pulse ; ...the firefly bursts out a light pulse
let Power = 1 ; what a relief for the firefly! "desire" is reset to initial value
endif ; (equals satisfaction about just having pulsed)


loop ; starts building desire for another pulse again (while slowly approximating the other's frequencies)


;subroutine

pulse:

high 2 ; give a short flash of light
pause 300
low 2
return





Thats all for now, only code and no soldering yet. Thus the code is not functional since not tested, and it still has some flaws (like for example the needed initial randomness in blinking rate is not implemented yet), but rest assured that I will update on this blog as soon as physical results can be presented. I just need to order the needed chips and stuff. In the meantime you can read more about the project over at the picaxe forums where I started a topic about this self-organizing stuff too, and got many great replies concerning ideas for good "true" random number generation and other stuff.

Friday, May 8, 2009

"Viliv S5 Premium Air MID": premium UMPC with GPS?

Now Viliv is jumping on the UMPC train too: since several weeks the long-announced "VILIV S5 MID" is available in several configurations. The "Premium Air" version sports a 16GB SSD, 4.8" touchscreen LCD with a resolution of 1024x600 pixels, and full 3G/HSDPA functionality - whereas the "normal" versions come equipped with 30 or 60 GByte 1.8" HDD instead, 800x480 LCD only, and no wireless broadband at all.
Both models have the same 24Wh battery, allowing for 5-6 hours of continuous use, and are available with either WinXP, Vista or Linux (unspecified distro) preinstalled, both weigh around 380 grams and have 802.11 b/g wifi, bluetooth 2.0 and external video connectors (for VGA, S-Video and Composite-video cables!), the whole controlled by a "Silverthorne" Intel Atom clocked at 1.33GHz and supported by 1GB RAM. Graphics are rendered by the GMA500 chipset. Also common to both models is a built-in GPS for easy on-the-road navigation. Prices starting at 599$ for the basic version. Design looks mature. I think I'd want such a thing if it wasn't for the small display..

Sunday, May 3, 2009

howTo: Jaunty Jackalope with custom netbook kernel

Now it has been over a week since I installed Ubuntu 9.04 "Jaunty Jackalope" on my netbook, and in the meantime I've been working on customizing things to my needs. One main tweak consisted of replacing the default "2.6.28-8-generic" kernel with the more appropriate "2.6.28-12-netbook-eeepc" kernel compiled by Adam McDaniel over at array.org, main reason was merely the unpleasant sound of the word "generic" to me, since this "generic" kernel was working quite well - there was no obvious need to replace it.
But I still thought it would be nice to have the core of the operating system customized to my hardware. However the netbook-eeepc kernel is not officially available on the array.org website (yet), although there already exists a repository and .deb packages - I guess Adam hasn't found the time to update his website yet..
To install the latest "adams kernel" (from array.org) on your eee PC netbook you therefore need to enter the following in a terminal window:

sudo -s
echo "deb http://www.array.org/ubuntu jaunty main" > /etc/apt/sources.list.d/array-jaunty.list
wget http://www.array.org/ubuntu/array-apt-key.asc
apt-key add array-apt-key.asc
apt-get update
apt-get install linux-netbook-eeepc

Thats all about it. Now you can also add some scripts to gain full hotkey functionality if you wish (I did), for example the elmurato ACPI scripts I use. Simply go to your home directory and type in

wget http://www.informatik.uni-bremen.de/~elmurato/EeePC/Jaunty_Eeeasy-Scripts.tar.gz
tar xzvf ./Jaunty_Eeeasy-Scripts.tar.gz
cd Jaunty_Eeeasy-Scripts
sudo ./eeeasy-scripts.sh install

if you get an error message you may need to install the "asus-eee-dmks_3.0_all.deb" package located in the Jaunty_Eeeasy-Scripts folder (elmurato ACPI scripts depend on it) and then try to run the install script again. If everything has worked you now can use all eeePC hotkeys with Jaunty.

Wifi toggle works too if you add the following kernel parameters to your /boot/grub/menu.lst right behind the line "# defoptions=quiet splash" - it has to look like this:

# defoptions=quiet splash pciehp.pciehp_force=1 pciehp.pciehp_poll_mode=1

when you now run

sudo update-grub

the PCIeHotplug options will be added to your new kernel entry and after a restart, wifi can be switched on/off with alt+f2 to save on battery runtime.


Did I already mention I like Jaunty? 49 seconds from pressing enter in the GRUB menu to having the gnome desktop loaded and ready to go!
And pidgin integrates into the desktop panel very smoothly - nice.
Oh did I mention that my HSDPA modem worked right from the start?
Was able to dial in right after first boot. Huge improvements in that area. I'm lucky with my new jackalope.
picture of a real Jackalope! ->

Thursday, April 2, 2009

HowTo: "Qualcomm 3G ICON 210" and Ubuntu

Although generally speaking I'm all pro linux and use it whereever possible - and consider it the best OS for networking encountered by me so far - I was not able to make my internal 3G modem work properly with Ubuntu yet. Of course I managed to have it load the right device drivers and I'm able to establish connections and to surf the internet - but unlike windows, ubuntu refuses to crank up the speed to HSDPA, and despite my patching (and recompiling) of the "usbserial.ko" and "sierra.ko" driver modules I was only able to get a downlink speed of 800KBit/sec at most. The same modem with WindowsXP though achieved between 2.2 and 2.8 MBit/s at the same daytime, causing me quite some frustration (I had bought the modem card because it was claimed as being fully compatible with linux, even with linux drivers supplied by manufacturer, mind you) and I started using WinXP more frequently again due to this issue. Turned out that my SierraMC8775 was rebranded as a hewlett-packard hs2300 and I had to use "hs2300" drivers for windows - but they made the card work at full speed at least! With ubuntu there was no speed but slowliness.. but luckily I found a nice workaround.
The provider I am using is o2 germany, and I've got a "pre-paid" service plan (25 euro/month for a 10GB download limit at full HSDPA speeds). This has two advantages for me: I'm able to change my service plan and/or provider as soon as a cheaper or better one is available. But I also got a nice looking "Qualcomm 3G ICON 210" surf stick for 70 euro together with the sim card, and this device is what enabled me to use HSDPA broadband internet access also when running ubuntu on my netbook. The manufacturer (qualcomm 3G) and my provider (o2) both don't offer any support for linux at all, so you're pretty much on your own if you want to make things work with linux. Which is not that bad after all, once you do manage to make it work - which I finally did. Here's the how-to:

The "ICON210" is a "2-in-1" device - modem and usb thumbdrive at once. On the usb drive part, you can find the device drivers for MacOS and WinXP along with some moderate connection software, but for linux this stuff is without use whatsoever. The first problem ist that when plugged into a USB port, the device is recognized as a usb data storage device, and in this state it doesn't respond to modem commands very well to say the least. So the first thing needed to make the umts modem work is to make use of a little tool called usb_modeswitch, which does effectively switch operating modes of plugged-in dual-function usb devices (as its name probably implies already). To make usb_modeswitch find its target device, some changes need to be made to the file "/etc/usb_modeswitch.conf", more specifically the following lines need to be added to it:

#-----------------------
# Option iCON 210
#
#
# Contributor: wahlm
#
DefaultVendor= 0x1e0e
DefaultProduct= 0xf000

TargetVendor= 0x1e0e
TargetProduct= 0x9000
TargetClass= 0xff

MessageEndpoint=0x1
MessageContent="55534243689d528100000000000006bd000000020000000000000000000000"

ResponseEndpoint=0x1
#------------------------------


this causes a simple call of "usb_modeswitch" without additional parameters to turn the data storage device into the modem.. first problem solved. Now the second one is that there is no specific driver for the Icon210 included with ubuntu as of yet, so we need to use the generic "usbserial" instead. Everything of the above is accomplished by issueing two simple commands as follows:

sudo usb_modeswitch

sudo modprobe usbserial vendor=0x1e0e product=0x9000

Normally this should result in the creation of three device nodes named "/dev/ttyUSB0-2", but strangely this is not the case when the driver module is loaded the first time. To have the driver module create those device nodes, "usbserial" must be unloaded and then reloaded a second time (I have no explanation to this puzzling behaviour but have tested it and it is mandatory for some reason, and I've got absolutely now idea how to fix this). So if the command

sudo modprobe -r usbserial && sleep 1 && sudo modprobe usbserial vendor=0x1e0e product=0x9000

is issued to reload the module "usbserial.ko", the device nodes are created as it should be, and it it possible to dial up and establish connection to the ISP, for example with pppd and the following two scripts "gsm_chat" and "o2-umts" I use (both stored in /etc/ppp/peers):

"/etc/ppp/peers/o2-umts"
-detach
/dev/ttyUSB2
9600
defaultroute
usepeerdns
mtu 1492

noauth

crtscts
lock
# novj
# nobsdcomp
nodeflate
# nopcomp

connect '/usr/sbin/chat -v -t6 -f /etc/ppp/peers/gsm_chat'



"/etc/ppp/peers/gsm_chat"
ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT 'NO CARRIER' ABORT DELAYED

SAY 'Initializing modem:\n'
'' AT
OK ATZ
OK \c
SAY 'OK\n'

SAY "Checking PIN:\n"
'' AT+CPIN?
"+CPIN: READY" \c
SAY "OK\n"

SAY 'Setting APN:\n'
'' AT+CGDCONT=1,"IP","surfo2"
OK \c
SAY "OK\n"

SAY 'Dialing...\n'
OK ATD*99#
CONNECT \c
SAY "Connected.\n"

When those above scripts are called with the following command

sudo pon o2-umts


the connection is established and I have the joy of full downlink speed. Downside, now I have that external modem dangling from my USB port, although I have a built-in one. Maybe they'll fix the sierra driver module somehow in the upcoming ubuntu versions. I keep my fingers crossed for Ubuntu 9.04 "jaunty jackalope" and think I will re-evaluate the whole HSDPA and linux situation as soon as jaunty is relased in final. But at least I'm not stuck with having to use windows anymore, which for sure is great news for me!


UPDATE
As it turns out, the loading of the usbserial.ko driver module does not strictly need to be issued twice at all (contrary to what I stated above), and the underlying problem seems to be a timing one. Because with the following changes to my "etc/rc.local" I now am able to have it dial in all by itself by merely connecting the iCON210 stick to my netbook, then booting up Ubuntu. These are the lines that need to be added to "rc.local" to make ubuntu dial up automatically at system start
(note the "sleep 1" commands - they are mandatory at least on my system) :

sudo usb_modeswitch && sleep 1

sudo modprobe usbserial vendor=0x1e0e product=0x9000 && sleep 1

sudo pon o2-umts



(side note, all of the above doesn't help if you happen to relocate to a new apartment and suddenly are faced with no UMTS coverage at all at your new living place. Like I do currently. Now I'm considering external antennae, and maybe modding an appropriate connector to my eeePC... At least the new apartment is a nice one, missing UMTS coverage aside)

Tuesday, March 31, 2009

Solar cells from donuts and tea - energy crisis solved?

Yes I know - this has not got anything to do with mobile computing (sorry), and No, its not an april hoax at all - but I simply had to write about it..

as you can see on the youTube video below, this guy actually makes a small (and inefficient but still amazing) solar panel at home - from donuts, "starbucks passion" red hibiscus flower tea, water, vodka and some microscopy object slides...

Educational - and VERY funny to watch and listen!



You can also read about the whole story here:
http://blog.wired.com/wiredscience/2009/03/donutsolar.html

Sunday, March 29, 2009

Asus selling iMac clone with netbook core

I'm sure everyone knows those design-award-winning Apple iMac computers that look like just a flat panel LCD and keyboard standing on your desk, but contain a whole macintosh...

Now Asus has realized the advantages of such a design and is selling a computer-inside-an-LCD too. The "Asus eeeTop ET1602" has about the same specs as the average eeePC 1000H netbook (making guesses about the interior of this device very easy), namely intel Atom N270 clocked to 1.6GHz, 533MHz Frontside Bus, 1GB DDR2 RAM, the rather weak Intel 945G graphics chipset, 160GB SATA-II harddisk (spinning at only 5400rpm), connectivity is provided by 802.11 b/g/n wifi, bluetooth and 1000MBit LAN, the thing has a 1.3MP webcam and built-in stereo microphone - and so far, I could just as well have read the description from the package of my eee1000H instead, without any difference...

But this "eeeTop" you can see on the left has a big 15.6 inch "single-touch" touchscreen instead (with a 16:9 resolution of 1366x768 pixels), and four speakers - as well as dolby 5.1 support - and six USB ports. On the backside there is a nice foldable metal stand in case you don't want it hanging from your wall but standing on your desk instead (probably what most would do - who wants to stand in front of his computer all the time?). It comes with keyboard, mouse and a handle to carry it with you (at a weight of 4.4Kg probably no fun compared to the eeePC netbooks, but still better than carrying a big desktop tower PC) and can be had in either white or black, and for those interested in computer games, there is also an extended model with ATI "Radeon HD3450 Mobility" graphics card available, called "eeeTop ET1603" - which also has a battery built-in for easy LAN-party computer gaming sessions with your friends (if you're into gaming, that is).



All in all, at a price of 500 euro upwards, it is definately an inexpensive alternative to buying a much more expensive iMac. Of course the latter offers much more computing power compared to the Atom processor, but if you just use it for simple tasks like surfing the internet, VoIP telephony (skypephone), watching movies and writing texts/email, you most probably will not have problems when using an Atom-based computer.. and if you install MacOS X onto this eeeTop, the difference is not that big anymore! :^)

Note that Apple does not allow installing their MacOS on any hardware but Apple Macintosh computers, and only if you own the proper license (meaning a bought one!). So although it is entirely possible(!) to use MacOS X on a non-Apple PC, the above statement is of purely theoretical nature, and I don't want to encourage anyone to install MacOS X onto their non-Apple machines!

That being said, here's a link explaining how to do it anyway: eeemac.blogspot.com.
Also strictly of theoretical nature. :~D

Thursday, March 26, 2009

HowTo: formatting SD cards using linux

Its nice to see that during the past year, the number of linux distributions custom tailored to fit the needs of netbooks has increased dramatically. While this is a great advancement, it cannot be denied that this is mainly the merit of one linux distribution - ubuntu linux, on which most of nowadays "netbook linux" are based (ubuntu in turn is debian-based, btw).
While these custom netbook linux flavors usually come equipped with all the device drivers you'll need for your netbook, there's one thing that is missing (at least in Ubuntu 8.04 or "Ubuntu eee"): an easy possibility of formatting SD memory cards with the usual FAT16 (or the faster FAT32) file system with the card reader that is built into all eeePC models - but sometimes you just need an empty and freshly formatted SD card, for example to "burn" the newest ubuntu ISO image onto and install right from the SD card (which is quite handy if you don't have a DVD/CD drive).

So, what to do? The easiest way I found is to use the command line tool "mkdosfs" for this purpose.

In order to have "mkdosfs" format your SD card so you can use it in your camera or MP3 player, we first need to find out how the SD card reader drive is currently called on your system, this is done by simply inserting your SD card, waiting a few seconds until your PC has recognized it, opening up a terminal window and typing

sudo df

which gives an output similar to the following


So in my case "/dev/sdb1" is how the SD card reader is called: I know I have an empty 4GB SD card inserted, and "Available:3981704" and "1K-Blocks:3981708" tell me that the last entry (almost) matches this size and is almost empty too, so this is my device I'm looking for.

Next step needed is to unmount your sd card since you cannot format any storage devices while they are mounted:

sudo umount /dev/sdb1

and then format the SD card (of course this erases all previous data stored on it) with either FAT16 or FAT32 as you need:

sudo mkdosfs /dev/sdb1 -F16
(for formatting with FAT16)

or

sudo mkdosfs /dev/sdb1 -F32
(for FAT32)

Now you just need to re-mount the SD card (easiest way is to simply take it out and re-insert) and you're ready to store your data on it again.

In future ubuntu versions it will most probably be possible to format SD cards with graphical GUI and mouse clicks too (like it should be), but any ubuntu 8.04 user having tried to format SDs with FAT file system can still benefit from this howto I bet.

Wednesday, March 25, 2009

My ongoing eeePC "3G mod" adventure

Since last night, I had the doubtful joy of having to re-solder two pins of my extra miniPCIe socket (I accidentally dropped my eee from ~50cm heigth and afterwards the 3G card wouldn't work anymore, which was pretty annoying since I need internet access - so I had to re-open the whole apparatus and take apart everything, leading to the lucky discovery of only said two loose pins as a cause for the malfunction), I will take this as an opportunity to give you the gentle reader some more details about the inner workings of how I did this modification (there may exist better ways I must admit, specifically for securing the modem card in place). That being said, you will surely remember that there's an old and well known (and true!) proverb saying "A picture sometimes tells more than a thousand words"...

So here are some pictures.



Here's a picture showing my Sierra MC8775 3G modem card inserted and secured down with stiff wire (soldered to the motherboard and bent around the cards edges firmly) (the red stuff is just to hide my IMEI to avoid abuse of it)


this nice and very professional(!) drawing of mine served me well when I had to check for contact between SIM slot and miniPCIe socket (and it also served well as a drip mat for my coffee cup, as you can see by the brown circular stains it left). All SIM slot pins except "pin 2/GND" are wired to the smaller side of the connector, and contrary to this art piece of a wiring schematic, "pin 4/VPP" is not connected on the eeePC motherboard at all (soldering them is not needed). I hope you can still decipher it when you click on it to enlarge!


Now my 3G card is working again, and I'm happy again too.
I think I applied enough solder this time too to prevent further similar incidents.

Tuesday, March 24, 2009

Fujitsu U2010: tiny convertible netbook with GPS

This is another example for gadgets that will probably never make it to the european market, so considering that you'd need to buy it from asia anyway, I think I can just as well report about the korean version here - of course its sold in other asian countries too, but to my knowledge it is available with GPS only in korea, so this model indeed has its advantages. According to Fujitsu Korea, their model has a Sirf3-GPS-chipset and further it differs in other components too from the taiwanese and japanese models, namely being only available with a 120GB hard disk or 64GB solid state disk as the only storage options. Everything else is pretty similar to all other countrie's types of the U2010 for korean buyers: Intel Atom Z530 running at 1.6GHz, 1GB RAM, 5.6" touchscreen LCD with a resolution of 1280x800 pixels (convertible for tablet mode), 3.5G wireless broadband, 802.11a/b/g/n wifi and bluetooth, the package is rounded by a biometric fingerprint reader and 1.3MP webcam. Estimated price is 1300$US for the harddisk version and 2200$US (!) for the SSD version, making this an expensive gadget to own.


But a nice one (at a weight of a mere 600 grams, that is), and furthermore a true handheld device too. Most probably perfect for geocaching (especially with the also available extended battery pack for up to 11h run time - in this case giving "run time" a completely new meaning, lol) or just as a versatile navigation device for your car, if you can spend the money. And of course its a fully usable mobile personal computer too, with great web browsing capabilities. Only eBook reading might become difficult with longer texts, due to the screen size which is just a bit too small.

(donations made to my paypal account in a heigth of 1300$ are guaranteed by me to be transferred immediately into ownership of such a device)

Saturday, March 21, 2009

Foldable keyboard for your UMPC - an update


For all those users without free USB ports on their smartphones, PDAs, MIDs and other devices, or those with an aversion against cables in general, there are also bluetooth versions of those full-sized foldable keyboards I mentioned already on this blog few days ago - namely I'd like to make mention here of the "Freedom Universal Keyboard²" (from a company called Freedom Input Ltd) with its own two AAA sized batteries and - most important - bluetooth! The manufacturer claims that due to support for both HID mode (used and recognized by all PCs, most PDAs, UMPCs and smartphones) and SPP mode, a bluetooth serial port emulation protocol utilized by the blackberry family of smartphones for example, this gadget enjoys comaptibility to >200 different devices. Sure is that every device with bluetooth and either Blackberry OS 4.0 and upwards, symbian OS v9, or windows mobile 5 & 6 ( both PPC and smartphone edition), as well as Windows 2000 and WinXP is supported without need to install any drivers. No mention of linux though, and what about windows CE?? Anyway. It also comes with own PDA stand and nice genuine black leather case, (which surely added to the price enough to make it as high as 120$US), and weighs only 204 grams at 145 x 98.5 x 19.5 mm (folded together). The package is completed by user definable shortcut-style hotkeys, and to date it is available with english and german keyboard layout (french will be available too, someday). If you ever tried to write any decent piece of text with a blackberry for example, you would highly appreciate being gifted with such a thing for the next occasion I'd bet!

Friday, March 20, 2009

HowTo: Add 3G/HSDPA functionality to your eeePC 1000H

During the last few months, Asus has started selling the "eeePC 1000H GO" with internal 3G/HSDPA card for easy everywhere connectivity. So far so good, but what about all those thousands of customers that already bought an eeePC 1000H before? Are they doomed to use one of those ugly external USB 3G modems - a threat to your eeePCs health if you drop it accidentally and the USB stick destroys the USB port it was sticking in (if not even more)...
No, I didn't want that to happen to me. But I still wanted 3G for my eeePC!

Luckily there's a solution to this dilemma.

Clever guys (credit goes especially to forum member "packer"!) over at the eeeuser.com forums found out time ago that the motherboard of all eeePCs (from the 90x series on upwards) is basically of the same layout, which does feature free designated areas and soldering spots for a SIM card holder and a miniPCIe 3G modem card (obviously intended by asus for use in the later eeePC "GO" models), and some even more clever guys (JKK? tnkgrl?) discovered that all one has to do to enable said 3G functionality is solder the needed connectors to the motherboard and bridge a few pins. So far the theory.

Sounded nice, so I decided to add 3G to my eeePC too. And went on to gather the necessary parts (unlocked Sierra MC8775 miniPCIe modem card, the appropriate miniPCIe socket, UMTS antenna and a SIM slot) which took me some weeks. After everything finally had arrived (thanks go out to Christopher, Greg, Torsten - you know who is meant!), I dissected my eeePC, cut out a SIM card slot behind the battery, and heated up my soldering iron (I used a 14W one with fine tip). Turned out not everything was as easy as thought at that point, in that this soldering job was in fact REALLY difficult due to the pin distance being less than 1mm, causing unpleasant capillary forces make the solder flow upwards between the pins (shorting everything) and all other kinds of ugly stuff. You can get an idea about the problems I had if you take a look at all those scratch marks I made on my motherboard during my efforts to remove shorts between the pins..


Soldering this one wasn't as easy as I had thought originally!

Three days later(!) and only by extensive use of my trusty multimeter (set to "beep" continuity testing), I was at a point where everything had contact and nothing was shorted, and the 3G card worked. Only two downsides were: firstly that I had been required to modify the SIM slot until it was not of the push-type anymore, to be able to put the battery back on with SIM card inserted, and so had to use some smooth electrical tape to insert it and get it out again (as seen on picture). Other downside was that the reception was sub-optimal to say the least, although the antenna had been quite expensive (30 eur!). It turned out that in the location I had installed it - behind the LCD - it did not work properly. Once I had re-opened the screen lid and relocated the antenna to the back side of the screen lid (where it was attached to the plastic cover from outside with some electrical tape) reception was a bit better, but now the thing did not look nice and the screen lid was half-open.

This antenna, although expensive,
was only good as a pigtail cable source for this mod!








I left the screen lid in that condition until a better antenna had been bought and delivered (a replacement cellphone antenna for the "motorola RAZR V3X"), which took another two weeks. The new antenna (resembling a large paper clip and galvanized with golden coating) was then slightly modified and mounted into upper right screen area, where it still sits until today. It has a much better reception, fit very well and I've finally been able to screw the screen lid back together and complete this rather stressful mod. I must admit that I almost gave up in the middle of the soldering ...
But in the end it was totally worth it.

probably the best antenna you can use for this mod!

The antenna required that I removed it from the plastic socket it was sticking in (which was very easy), then breaking off the little golden pin protruding in a 90° angle from the main antenna body and re-soldering it to the same location in a different angle - flat with the antenna body at 180° angle. The pigtail cable was cut off from my first antenna, and the inner conductor was stripped off of its insulation by 2 mm or so, and soldered to the very end of the new antenna's modified pin. The shielding of the pigtail cable was connected to ground by tucking it below the LCD's metal bracket as seen on the picture, to make the LCD case shielding act like a "ground plane" for the antenna (search wikipedia for "groundplane" for a good explanation, it wouldn't fit here). Everything was protected from shorts with that red electrical tape you see on the picture, and fixed down with a drop of hot glue.
This antenna now gives me usually -86dB signal strength (everything above -90dB is considered "good"). I have between 1.1 and 2.8MBit/s connection speed depending on time of the day, which surely is ok for me....

Mission accomplished!









You can read everything about the whole story behind this mod here:
http://forum.eeeuser.com/viewtopic.php?id=39580
Or you can buy a 1000H GO - its cheaper than my normal 1000h plus the extra parts I built in....

But where's the fun in that I ask?

By the way, if you are in need for a step-by-step guide on how to open up an eeepc, I can really recommend the very detailed instructions found here on justblair's DIY pages, its the best guide I've seen so far - easy to follow. I guess I don't need it anymore, but its good to have that info included here as well right?

Broadband Connection Test:

Just click on "Speedtest starten" to evaluate your actual downlink in MBit/sec (takes 10 seconds approx.)


(c) dsl-speed-messung.de - DSL Speed Test