Kari's Symbian programming pages
Python programming pages
C++: Installing the SDK
YOU NEED ACTIVESTATE PERL, others may or may not work (such as the one that comes with cygwin).
Download and install Perl from here, take the 5.8.4 MSI (or newer).
Download and install Java (J2SE 1.4.2 or newer) from here.
Note: When installing the C++ SDK, don't install it into a location that has spaces in the path. Also your project directories must not have spaces in the path.
Which SDK to get depends on which IDE (compiling, debugging, etc.) you want to use. The SDKs are at Forum Nokia.
The C++ SDKs should be here. In case that link doesn't work any more, go to the Forum Nokia main page, look for Resources on the left pane, there from Tools and SDK's select Symbian/C++. In the central panel you can view tools by technology area, select C++ and search for Series 60 Developer Platform SDK's for Symbian OS, for C++.
If you are planning to use Visual Studio .NET, you should install also Nokia Developer's Suite.
It provides a number of wizards and automated functions that provide
Symbian OS support in Visual Studio .NET 2003 with the minimum of
A recent addition is Carbide.c++.
It provides a free IDE, based on Eclipse. The free version includes
debugging on emulator (that's all you get on Visual Studio as well),
commercial versions enable on-device debugging (on selected phone
For 7610, with the camera plug-in, and Visual Studio, get 2nd
Ed, FP 1, MS & Borland (FP = Feature Pack). That's really the SDK
2.1. Install the SDK. Then, under "Other C++ tools for specific
devices/platforms", get Nokia 7610 Camera Plug-in for Series 60 SDK 2.1
for Symbian OS and install that too. To repeat, you need to install basic SDK first and only then the 7610 / camera SDK on top
of that. This version of SDK works on both MS .NET (VC++7.0) and
MSVC++6.0 IDEs, as well as the Borland tools. There is also a separate
SDK that works with Metrowerks CodeWarrior.
For 6600 with Visual Studio, it seems the name is wrong (2nd Ed, FP 2 (101MB)). The name of the file to download is s60_sdk_v2_0.zip, though.
For 6630 (e.g., OpenGL ES) with Visual Studio you need the real 2nd Ed, FP2 (142MB). The name of the file to download is s60_2nd_fp2_sdk_msb.zip.
For 6680 get 2nd edition FP3. In general, get the latest
SDK (should have more bugs fixed). If you want the application to run
on older handsets, that should be no problem as long as you use only
APIs that exist also on those phones. For that purpose it may make
sense to get the SDK of the phone model you have, for checking which
features are there, and the latest SDK that should be in best shape.
For N93, get 3rd edition, Maintenance Release (not the first release of the 3rd ed SDK). Also it seems that most IDE development effort goes toward Carbide, so get the Carbide.c++ IDE. If you have trouble installing the SDK (I had), take a look at the discussion forum for C++ SDK. In general these fora are useful sources of information. Here you will find an example project and slides showing you how to get started on OpenGL ES on N93.
C++: Quick start
The SDK comes with a decent set of documentation. Different versions of
SDK seem to put them into different folders, look for Series 60 or
Symbian something in your Start -> Program menu, then open SDK Help. To get started quickly, read the Getting Started Guide at the main level of table of contents. Then look into Series 60 SDK Example Applications and read Building and Running the Example Applications.
Installing other tools (optional)
Note that using these tools is totally optional. If you couldn't care
less about cygwin and/or emacs, just follow the instructions on the SDK
about the installation and read the "Getting Started Guide" in the
beginning of the SDK help.
I prefer to make the Windows environment look more like Unix or Linux.
The two key tools to do it are cygwin (bash) and emacs. Note that you
don't need to have either, both Symbian SDK and the symwiz tool work
from DOS (actually even better). The cygwin instructions are here only
for the case that you prefer working from a real shell instead of DOS
(like I do).
Get cygwin and install it. You
need to set up a Windows environment variable HOME (Control Panel ->
System -> Advanced -> Environment Variables). Mine is set to
C:\Users\Kari. I have here
some instructions how to mount the cygwin root to C:\, which I find
very convenient but is totally optional (and somewhat dangerous).
You can get emacs from here.
Add these files if they don't already exist, or modify the existing files accordingly: $HOME/.bashrc, $HOME/.aliases, $HOME/bin/use_7610.
Do read the comments in the files! Notice that most likely you will have to modify the paths, etc.
I'm also assuming you are using Visual Studio .NET. If it's VC++6.0, edit $HOME/bin/use_7610 accordingly.
Now you are ready to try it out:
Type use 7610 (this will execute a command defined in your .bashrc, which executes $HOME/bin/use_7610
and do the rest as in this log file. You only need to type in what's on the lines that start with $.
Once the emulator fires up, you should have the helloworld application
at the bottom of the emulator (just scroll down, then click OK)
Symwiz, a wizard for generating Symbian projects
I've created a wizard that allows generating a complete Symbian
project, ready to compile, from a relatively small initiation file.
Take a look at symwiz.
Tool for using your own video clips in the Series 60 emulator
The camera SDK allows you to develop computer vision applications.
However, the application development and debugging would be much easier
if you could use your own video sequences instead of the standard one
provided by the SDK (I'm still not sure whether it's an underwater
scene of some amoeba shot from above or a rising balloon shot from
below). You can find the standard video sequence files at
epoc32/wins/c/handshake_*.yuv, where the * denotes the different
resolutions (sqcif = 128x96, qcif = 176x144, ..., vga = 640x480). If
you only had your own sequence in the right format at those
resolutions, simply replacing the files would replace the video clip
used by the emulator. The format is YUV 422, but in a non-standard
ordering, so there's no tool to create those files (that I'm aware of).
Make that "no tool until now". Here's a tool
that allows you to use your own clips instead. It uses Python and PIL
(Python Imaging Library). The input is a sequence of images (jpg, bmp,
etc.) that can be alphabetically sorted in the right order
(blah001.jpg, blah002.jpg, ...), the output is the files
handshake_*.yuv, converted to the correct resolutions. Simply replace
the default ones with those and start hacking (might want to move the
originals to a safe location to be able to recover). The usage
instructions are included in the file.