Thursday, April 14, 2011

New camera-ui in CSSU

There is a new, open, camera-ui in the latest CSSU. It looks like to the but has some impressive new feature also. Distance to focus point, configurable startup/shutdown of camera app, more geotagging options (gps/location), image effcets, triggering from touch screen, timer and quick access to White balance and ISO sensitivty settings.

Screenshots below:
New camera-ui main interface, notice the new focus distance information, timer, trigger, image effects and the two 'A's

New startup/shutdown options
Look just like the original



Now you can select how to geotag your images, with GPS position and/or textual location

Capture timer

And last, image effects.

Great work! And thanks to the whole CSSU team for their awesome work.

Thursday, April 07, 2011

gdspeak, a D-Bus espeak service

I've been planning on doing this for a while now (a year or so, sigh), a simple and easy to use D-Bus service for speech output, using espeak.

What it does is queue text with a simple priority system, with just a few simple D-Bus calls. There are two interfaces, on fire-and-forget and one that can be used for tracking the output so calling applications know when it's speech has been output. It will also send signals for spoken words and such. Language and voice settings can be changed.
Currently LC_MESSAGES is used to set the default voice, but a proper control panel applet is planned.

It is still work-in-progress but works mostly. My current problem is that when using pulseaudio output espeak won't report any events. Testing version is available in extras-devel, but not recommended yet for any serious use.

TODO:
  •  Fix the event reporting
  •  Make control panel applet

Sunday, March 20, 2011

Arduino and GPS

I found a a cheap GPS module from a finnish electronics dealer, Partco, for only 10€. It's a bit old, from 2004 but whatever, it's cheap :) It's a Fastrax uPatch100 with a Sony chipset (CXA3355 and CXD2956). There are four different models, but the only one available is the -C9 with CMOS level serial output. Acctually that is perfect as the Arduino as you can plug it directly into the arduino (well, almost, TX can, RX needs a level conversion as the Arduino I/O pins are 5v).

I did it :)
The module outputs plain NMEA so it's easy to parse. You can also talk to it and set different parameters. Datasheets are available on the net, just google for uPatch100 and you should find them.

Anyway, I'm not very experienced with electronics but I've done my fair share of soldering, but mainly easy stuff like making my own RCA or RS-232 cables. Or easy "high" pitch breadboard.

The pitch of the device was a bit scary at first, but I was able to solder a ribbon cable just fine after some careful soldering.

I used a long flat cable and a IDC for easy attaching for any GPS project. I didn't have a female IDC connector so it cut one from an old motherboard serial port adapter and soldered that to a breadboard. And on the breadboard a pin strip for easy plugging to a solderless breadboard.
I made a very simple arduino sketch to read the serial TXD0 port from the module and output it to the serial port. I used the softserial library and first thought it was the reason for the problem I had. Only the first couple of NMEA messages came trough succesfully and then output stopped. The datasheet mentions for the RS-232 level module that "RXD0 line must be electrically connected in the uPatch100-Rx versions even if it is not used!"
My module was not the -Rx version but I connected RXD0 to ground and that fixed my problems. Clear NMEA messages startet coming!


Next is to make something fun with all this :)

Sunday, March 13, 2011

Deciding on vacation destination and mapping the destination

Me and my gf finally decided where to go this summer, first the country and the final destination. We where to Parga, a nice little village in Greece, last summer and fell in love with greece. Friendly people, very good and cheap food, especially the sea food.

So, it was easy to decide on Greece for the country this year too. Then to pick the destination. After looking around in various (finnish) travel agencies we found Limnos (or Lemnos) (Λήμνος). Aurinkomatkat had a cheap 2 week package, but when we finally had decided, it had gone. But who cares about packages... so we just booked the flights EFHK-LGAV-LGLM-LGAV-EFHK from blue1 and now we are looking for somekind of hotel.

Anyway, I beeing an openstreetmapper (and semi-active geocacher) checked out the map of Limnos.. google maps sucks, bing sucks and openstreetmap sucked, but not anymore ! Thanks to the Bing satellite images available I've been tracing roads couple of hours per day now for almost month and it's starting to look like something now.

My target is to have every single road that I can see from the satellite images drawn before going, so I have about 3.5 months time to do it :)

Unfortunately there are only on geocache on the whole island.

Arduino and a 16x1 LCD (Displaytech 161A)

Got myself an Arduino last year, unfortunately I didn't have time to get into it that much yet, but I started playing with my LCD display today. You would imagine that the LiquidCrystal library would take care of the 16x1 display but no, it needs a bit on tweaking as you have to address it like a 8x2 display.
Below is my very simple serial monitor testing code. It will just take whatever comes in from the serial line and write it to the display and wrap to the beginning every 16 character.

/* Testing code for using a 16x1 LCD display with Arduino LiquidCrystal library.

   LCD used is a Displaytech 161A 16x1 display.

  See this page for an explanation how it works (161A is a "Type-1"):
  http://web.alfredstate.edu/weimandn/lcd/lcd_addressing/lcd_addressing_index.html
*/

#include 

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

int c=0;
int r=0;

void setup(){
  lcd.begin(8, 2);
  Serial.begin(9600);
  lcd.clear();
  lcd.cursor();
}

void loop()
{
  int i=0;
  if (Serial.available()) {
    while (Serial.available() > 0) {
      i=Serial.read();
      if (i==-1)
        break; 
      lcd.write(i);
      c++;
      if (c==8) {
       r=(r==1 ? 0 : 1);
       c=0;
       lcd.setCursor(c,r);
      }
      Serial.print(c);
      Serial.print("\t");
      Serial.print(r);
      Serial.println("
      ");
    }
  }
}

Monday, February 28, 2011

N900 RSS reader hacking, part 2

Making some progress, now with pannable feed list, pannable folder management (that broke the folder management, sigh) and more finger friendly text entries. First try at stopping the annoying connection dialog spamming didn't work, I must have missed something somewhere. No surprise there, the code is a mess.

Testing packages available at http://ftp.tal.org/pub/maemo/testing/fremantle/ you need both osso-rss-feed-reader-lib and osso-rss-feed-reader debs.

Finger friendly text entries

Pannable feed list

Friday, February 25, 2011

N900 RSS reader hacking, part 1

I'm pretty happy with the RSS reader in the N900 (and 770+N8x0), it works pretty much ok and does what it's supposed to do. But Nokia didn't do a very good work in porting it over from the old tablets. A lot of non-fingerfriendlyness, no portrait mode, and does not really follow the windowing method used by for example the e-mail app.
I've been thinking about doing something about it for a while now and the CSSU work inspired me to take a look at it.

First was to get rotation and portrait mode working, that was pretty easy, pretty much a copy&paste job from my rotation code in Mapper.When rotated it hides useless functionality from the toolbar.



Next up is fixing the layout in portrait mode, as currently it sucks, as you can see below: