Cruisers Forum
 


Reply
  This discussion is proudly sponsored by:
Please support our sponsors and let them know you heard about their products on Cruisers Forums. Advertise Here
 
Thread Tools Search this Thread Rate Thread Display Modes
Old 18-02-2014, 05:19   #121
bcn
Registered User

Join Date: May 2011
Location: underway whenever possible
Boat: Rangeboat 39
Posts: 4,740
Re: OpenCPN Runs on Embedded ARM

OpenCPN 3.3.1328 running on the A20.
Thanks Jelbert for compiling and sharing!
Fast panning will break the canvas, CPU at 50% but underway this shouldn't be a problem.
Attached Thumbnails
Click image for larger version

Name:	Olimex_A20_OCPN.jpg
Views:	281
Size:	432.3 KB
ID:	76376  
bcn is offline   Reply With Quote
Old 18-02-2014, 16:58   #122
Registered User

Join Date: Aug 2009
Location: oriental
Boat: crowther trimaran 33
Posts: 4,417
Re: OpenCPN Runs on Embedded ARM

Quote:
Originally Posted by bcn View Post
OpenCPN 3.3.1328 running on the A20.
Thanks Jelbert for compiling and sharing!
Fast panning will break the canvas, CPU at 50% but underway this shouldn't be a problem.
Breaks canvas how?


Did you try with my optimized opencpn fork? I think the cpu usage might be a lot lower.
seandepagnier is offline   Reply With Quote
Old 19-02-2014, 02:28   #123
bcn
Registered User

Join Date: May 2011
Location: underway whenever possible
Boat: Rangeboat 39
Posts: 4,740
Re: OpenCPN Runs on Embedded ARM

Sean,

Panning for instance a window (AIS for example) leaves a white track thats get filled then after.
Monitor is a 22" TV 1920x1080, HDMI - no touch.

Would like to test your version, but we are not (yet) able to cross-compile and will have to learn Git too.
If you can point me to a compiled version we will test it.

Hubert
bcn is offline   Reply With Quote
Old 19-02-2014, 05:36   #124
Registered User

Join Date: Aug 2009
Location: oriental
Boat: crowther trimaran 33
Posts: 4,417
Re: OpenCPN Runs on Embedded ARM

I never cross compiled opencpn. You can compile opencpn on the armel.
seandepagnier is offline   Reply With Quote
Old 19-02-2014, 12:18   #125
Registered User
 
sbfreddie's Avatar

Join Date: Mar 2012
Location: Southern Texas, Port Isabel
Boat: I Wish
Posts: 175
Images: 1
Send a message via Skype™ to sbfreddie
Re: OpenCPN Runs on Embedded ARM

Quote:
Originally Posted by bcn View Post
Sean,

Panning for instance a window (AIS for example) leaves a white track thats get filled then after.
Monitor is a 22" TV 1920x1080, HDMI - no touch.

Would like to test your version, but we are not (yet) able to cross-compile and will have to learn Git too.
If you can point me to a compiled version we will test it.

Hubert
Hubert:
Try this script I wrote for my armhf systems, it will download and build Sean's optimized version of OpenCPN.
You must have Internet access to use it. It was made for Debian, but will probably work with Ubuntu.
Instructions for use:
Copy this shell script wherever you like, your desktop is fine. Name it InstallO.sh
In the terminal/Shell, Change the script to make it executable with this command:

chmod 777 /wherever/you/put/it/InstallO.sh

In the terminal/Shell, execute this script with these commands:

cd /wherever/you/put/it
./InstallO.sh


It will ask you some questions and if you don't know the answers type:
y to the first question
n to the second question
n to the third question
y to the fourth question

It will ask for your administrators password when it installs the required support apps and when it installs the executables into the usr/local folders.
If you have any questions, just ask.

Thanks,
Freddie

Quote:
#!/bin/bash
################################################## ######
# Install opencpn on armhf
#
# 9/10/13 by Ed
################################################## ######################

################################################## ###################################
# Let's get started. Variables, functions, definitions, and other stuff.
################################################## ###################################

# Color Definitions for the terminal on ARM Debian
# Regular Colors
BLACK='\e[0;30m' # Black
RED='\e[0;31m' # Red
GREEN='\e[0;32m' # Green
YELLOW='\e[0;33m' # Yellow
BLUE='\e[0;34m' # Blue
PURPLE='\e[0;35m' # Purple
CYAN="\e[0;36m" # Cyan
WHITE='\e[0;37m' # White

# Bold
BBLACK='\e[1;30m' # Black
BRED='\e[1;31m' # Red
BGREEN='\e[1;32m' # Green
BYELLOW='\e[1;33m' # Yellow
BBLUE='\e[1;34m' # Blue
BPURPLE='\e[1;35m' # Purple
BCYAN='\e[1;36m' # Cyan
BWHITE='\e[1;37m' # White

# Underline
UBLACK='\e[4;30m' # Black
URED='\e[4;31m' # Red
UGREEN='\e[4;32m' # Green
UYELLOW='\e[4;33m' # Yellow
UBLUE='\e[4;34m' # Blue
UPURPLE='\e[4;35m' # Purple
UCYAN='\e[4;36m' # Cyan
UWHITE='\e[4;37m' # White

# Background
On_Black='\e[40m' # Black
On_Red='\e[41m' # Red
On_Green='\e[42m' # Green
On_Yellow='\e[43m' # Yellow
On_Blue='\e[44m' # Blue
On_Purple='\e[45m' # Purple
On_Cyan='\e[46m' # Cyan
On_White='\e[47m' # White

# High Intensity
IBLACK='\e[0;90m' # Black
IRED='\e[0;91m' # Red
IGREEN='\e[0;92m' # Green
IYELLOW='\e[0;93m' # Yellow
IBLUE='\e[0;94m' # Blue
IPURPLE='\e[0;95m' # Purple
ICYAN='\e[0;96m' # Cyan
IWHITE='\e[0;97m' # White

# Bold High Intensity
BIBLACK='\e[1;90m' # Black
BIRED='\e[1;91m' # Red
BIGREEN='\e[1;92m' # Green
BIYELLOW='\e[1;93m' # Yellow
BIBLUE='\e[1;94m' # Blue
BIPURPLE='\e[1;95m' # Purple
BICYAN='\e[1;96m' # Cyan
BIWHITE='\e[1;97m' # White

# High Intensity backgrounds
On_IBlack='\e[0;100m' # Black
On_IRed='\e[0;101m' # Red
On_IGreen='\e[0;102m' # Green
On_IYellow='\e[0;103m' # Yellow
On_IBlue='\e[0;104m' # Blue
On_IPurple='\e[0;105m' # Purple
On_ICyan='\e[0;106m' # Cyan
On_IWhite='\e[0;107m' # White

NC='\e[0m' # No Color

######## General helper functions ###############################

function cecho
{
echo -e "$1$NC"
}

function cerror
{
if [ $? -ne 0 ];
then
cecho "$BIRED$1"
cecho "$BIREDFor more information on errors refer to the log file in the build directory."
exit
fi
}

function ask
{
cecho "$@ [y/n] "
read ans

case "$ans" in
y*|Y*) return 0 ;;
*) return 1 ;;
esac
}

function start_timer () {
begin_time=`date +%s`
}

function end_timer () {
end_time=`date +%s`
}

function report_time() {
elapsed=$[$end_time - $begin_time]
hours=$[$elapsed/3600]
mins=$[($elapsed%3600)/60]
secs=$[$elapsed%60]
echo "Finished at `date`"
echo "Task completed in $hours hours, $mins minutes and $secs seconds."
}

################################################## ###################################
# Where do you want to build the tools. This is where the log files
# will be written (which you can monitor with 'tail' during compilation).
# You can delete this directory after everything is done.
################################################## ###################################

cecho "${BIYELLOW}This script builds OpenCPN in the directory you choose, or the default"
cecho "${BIYELLOW}Which is located here: /home/yourusername/GitOpenCPN"
ask "${BICYAN}OK to proceed?";
if [ "$?" -eq 1 ]
then
exit
fi
SRCDIR="${HOME}/GitOpenCPN"

ask "${BICYAN}Would you like to change the default directory?";
if [ "$?" -eq 0 ]
then
cecho "${BICYAN}Please enter the directory to use:"
read ans
SRCDIR="${ans}"
fi

cecho "${BIGREEN}This is where the sources, build, and log files will be placed: ${BIPURPLE}${SRCDIR}"

cecho "${BIYELLOW}The built binaries will be put in the directory you choose, or the default"
cecho "${BIYELLOW}Which is located here: /usr/local"
DESTDIR="/usr/local"

ask "${BICYAN}Would you like to change the default binary Destination directory?";
if [ "$?" -eq 0 ]
then
cecho "${BICYAN}Please enter the directory to use:"
read ans
DESTDIR="${ans}"
fi

cecho "${BIGREEN}This is where the binary files will be placed: ${BIPURPLE}${DESTDIR}"
ask "${BICYAN}OK to proceed? ";
if [ "$?" -eq 1 ]
then
exit
fi
echo ""

test -d ${SRCDIR}
if test $? -eq 1
then
cecho "${BIGREEN}Creating the build directory"
mkdir ${SRCDIR}
fi

cd ${SRCDIR}
GIT=0

cecho "${BIGREEN}Checking for Pre-Existing OpenCPN Folder....."
test -d OpenCPN
if test $? -eq 1
then
cecho "${BIGREEN}Downloading Latest Master from Git....."
# git clone -b master https://github.com/OpenCPN/OpenCPN.git
git clone -b master https://github.com/seandepagnier/OpenCPN.git
GIT=1
fi

cd ${SRCDIR}/OpenCPN

cecho "${BIGREEN}Checking to see if you have the latest updates....."
if test $GIT -eq 0
then
git pull
fi

cecho "${BIGREEN}Checking for build directory....."
test -d build
if test $? -eq 1
then
cecho "${BIGREEN}Creating build directory....."
mkdir ${SRCDIR}/OpenCPN/build
fi
cd ${SRCDIR}/OpenCPN/build

cecho "${BIGREEN}Removing CMakeCache.txt from build directory for a fresh build....."
rm -f CMakeCache.txt

cecho "${BIGREEN}Removing the make log from the build directory for a fresh log file....."
cd ${SRCDIR}/OpenCPN/build
if [[ ! -e make.log ]]; then
rm -rf make.log #remove the make log if its there.
cerror "Could not remove the make log in ${SRCDIR}/OpenCPN/build..."
fi
touch ${SRCDIR}/OpenCPN/build/make.log #Create a new make log

start_timer

cecho "${BIGREEN}Installing the system Prerequisits....."
sudo apt-get install -y libgtk2.0-dev gettext git-core cmake gpsd gpsd-clients libgps-dev build-essential wx-common libwxgtk2.8-dev libglu1-mesa-dev libgtk2.0-dev wx2.8-headers libbz2-dev libtinyxml-dev libportaudio2 portaudio19-dev

cecho "${BIGREEN}Configuring with Cmake....."
cmake DPREFIX=${DESTDIR} ../ >> ${SRCDIR}/OpenCPN/build/make.log 2>&1
cerror "OpenCPN cmake configure failed....."
echo "Configuring with cmake of opencpn was Successful..." >> ${SRCDIR}/OpenCPN/build/make.log
echo "************************************************* *******************************************" >> ${SRCDIR}/OpenCPN/build/make.log
cecho "${BIGREEN}Configuring with cmake of opencpn was Successful..."

cecho "${BIGREEN}Doing make... This may take a while....."
make -j4 >> ${SRCDIR}/OpenCPN/build/make.log
cerror "OpenCPN make failed"
echo "Making OpenCPN was Successful..." >> ${SRCDIR}/OpenCPN/build/make.log
echo "************************************************* *******************************************" >> ${SRCDIR}/OpenCPN/build/make.log
cecho "${BIGREEN}Making OpenCPN was Successful..."

cecho "${BIGREEN}Now lets install the binaries, you will be asked for your adminisrator's password....."
sudo make install >> ${SRCDIR}/OpenCPN/build/make.log
cerror " OpenCPN make install failed"
echo "Installing OpenCPN was Successful..." >> ${SRCDIR}/OpenCPN/build/make.log
echo "************************************************* *******************************************" >> ${SRCDIR}/OpenCPN/build/make.log
cecho "${BIGREEN}Installing OpenCPN was Successful..."
echo "************************************************* *******************************************" >> ${SRCDIR}/OpenCPN/build/make.log
echo "Build complete." >> ${SRCDIR}/OpenCPN/build/make.log
end_timer

cecho "${BIGREEN}Now lets make a Desktop Link....."
cp /usr/local/share/applications/opencpn.desktop ~/Desktop/

cecho "${BIGREEN}Building of the OpenCPN Complete."
report_time

exit 0
sbfreddie is offline   Reply With Quote
Old 19-02-2014, 12:26   #126
bcn
Registered User

Join Date: May 2011
Location: underway whenever possible
Boat: Rangeboat 39
Posts: 4,740
Re: OpenCPN Runs on Embedded ARM

Freddie,

thanks - the OS on the A20 is Debian Stable.
Will give it a try in the next days...

And perhaps we can compile and test the S-63 stuff then as well.
As Dave has released the next beta today a lot of testing ahead....

Hubert
bcn is offline   Reply With Quote
Old 20-02-2014, 03:03   #127
bcn
Registered User

Join Date: May 2011
Location: underway whenever possible
Boat: Rangeboat 39
Posts: 4,740
Re: OpenCPN Runs on Embedded ARM

Sean's 3.3.13034 is up and running on the A20.
Imported all the settings from 3.3.1303 correctly.

Cmake took 22min 5sec.

Freddie, thanks for the script - has been (almost) painless:
Notepad++ on Windows had <CR><LF> set as default and bash doesn't like this..

Will have to play later a bit more.

Hubert
bcn is offline   Reply With Quote
Old 20-03-2014, 23:00   #128
Registered User

Join Date: Feb 2013
Posts: 47
Re: OpenCPN Runs on Embedded ARM

Right, got OpenCPN Version 3.3.1419 Build 2014-02-19 running with no problems on my Odroid U3. Compiled using the original instructions on the site, no ARM specific optimisations applied.

I've loaded the CM93 of 2011, and the Dutch ENC charts. It displays the center of Amsterdam on 'full' settings without any problems. It's a quad-core Exynos with 2 Gbytes of memory.

I've also run the "-unit_test_1" without any problems on the set of Dutch maps, converting them to SENC in the process.

It can be a little slow to pan across a full map, but I am using it on my 24" full-HD monitor. Another reason for the slow panning might be the use of a class-10 16Gbyte micro-SD card. Storage performance is reportedly much better using the eMMC cards from ODROID, althought I have not tried this myself. Another reason might be the following message: "libGL error: failed to load driver: Mali DRI2", but again, performance is acceptable, even for route-planning.

Is there any way of optimising OpenCPN to user several cores when doing OpenCPN stuff?
campr is offline   Reply With Quote
Old 21-03-2014, 07:24   #129
Registered User

Join Date: Aug 2009
Location: oriental
Boat: crowther trimaran 33
Posts: 4,417
Re: OpenCPN Runs on Embedded ARM

I finally fixed my netbook, so I'm back on optimizing opencpn. I also have a cubietruck and raspberry pi (although currently without a display) as well as a chromebook (intel not arm) so lots of platforms to test!

I finally got the compressed texture caching stuff to work. This means it caches raster charts to disk compressed in the format the video card uses. I can't wait to try this on opengles for the arm systems as there are additional palletted compression formats. For charts this is a huge win because most charts don't use that many colors, so compression ratios can be much higher. It also may be possible to write a specialized shader program specifically for charts which gives very good compression on all platforms.

With standard texture compression formats it already reduces disk access by a factor of 6:1, but really better because it also can access the disk less often now. It also eliminates the very slow cpu routines for decompressing, re-tiling, and sub sampling for mipmaps, and eliminates copy or even needing to store in ram. Eventually we can support loading charts from external disks, and caching locally so that the disk usage is also roughly the same. My timing routines are showing 20-30x speedup. I'm still working out some minor bugs, so it is not in git yet.

For the issues with slow panning, you can determine if it is indeed disk bound. A really easy way to tell is to pan around in a little circle, not moving very far in any direction compared to panning far and switching charts which needs to load them from disk.

Next, is opengl enabled or not? I'm assuming not unless you did the hack posted a few months ago which enables opengles layers to run opencpn on wayland and give it hardware acceleration without using xorg. This would greatly improve panning speed, and is also required for about 90% of the optimizations I have made so far.

As for using multiple cores, there is not much here yet. weather routing plugin can compute routes with different parameters (like different start times or...) in parallel thus utilizing any number of cores, but almost everything else uses a single thread. I plan to upload textures in a background thread (which benefits slightly multiple cores) but mainly reduces waiting as these are blocking routines so this helps a lot even for a single core. How do you suggest utilizing multiple cores anyway? Maybe make nmea parsing in a different thread? I want to put the quilting calculation in a separate thread. If we eventually support multiple chart canvases in the same program (so they share resources etc) then each canvas could use a thread. Another possibility is to parallelize some of the cpu-bound routines which load charts and build the database but I'm not sure it is worth the effort.
seandepagnier is offline   Reply With Quote
Old 04-04-2014, 14:38   #130
Registered User

Join Date: Aug 2009
Location: oriental
Boat: crowther trimaran 33
Posts: 4,417
Re: OpenCPN Runs on Embedded ARM

Finally I got opencpn running with hardware acceleration on the cubietruck. It was a lot of work and still is far from completed, but the initial outlook gives much faster frame rates. I am just looking at frame rate numbers which look pretty good. I have to vnc into the arm, so it isn't "fast" to me, but I know if I had a display it would be.

First I have to install the sunxi-mali drivers (proprietary unfortunately, but hopefully lima will be up to speed in a few months). I have to do this manually as the package in apt breaks my whole system (tries to remove lxde after removing mesa etc...) Then I can install fbturbo to get a much faster xorg (github.com/ssvb/xf86-video-fbturbo)

At this point es2_gears should run with at least 100 frames a second.

I had to fork glshim:
Code:
git clone https://github.com/seandepagnier/glshim.git
The original repository did not work, but with a few small changes I could fix it, and a few more to fix some rendering errors. There are still lots of bugs, so only the GLESv1 works, it almost can do GLESv2 but crashes. Once this is fixed, then fbo and hardware mipmaps become available to improve speed some more. Only build and copy libGL.so.1 to libGL.so I have to set LD_LIBRARY_PATH to this path, or it tries to use the lima drivers in mesa (which could also possibly work if installed) On raspberry pi maybe set other options, see the readme.

You should now be able to run glxgears with hardware acceleration. Unfortunately I am only getting 120 frames per second, not 300 like some people claim.

You need glues for libGLU:
Code:
git clone https://github.com/ssvb/glues.git
Once this is built, then you should use the optimum branch for opencpn:
Code:
git clone -b optimum https://github.com/OpenCPN/OpenCPN.git
You do not need to compile wxwidgets; the binary package version 2.8 is fine. This should work on raspberry pi and other systems, but I didn't try yet.

A number of things are not working correctly. Some text rendering (easy to fix) is disabled because it is implemented in a horrible way. The glu tesselation for the world background chart is disabled so it's actually faster and correct but looks the same as non-opengl mode. vector charts are broken, from what I can see. CM93 sort of renders when zoomed out with only a few glitches, but if I try to zoom in, it messes up really bad. The compressed cache is not working yet because it cannot be done using the driver and I need to implement a library or external program, and the format is different (either ETC1 or palette are supported by the mali 400) but this is likely to make it run very fast indeed.
seandepagnier is offline   Reply With Quote
Old 04-04-2014, 20:07   #131
Registered User

Join Date: Dec 2009
Location: Vic Aust.
Boat: Seawind1160
Posts: 72
Re: OpenCPN Runs on Embedded ARM

Sean,

Wow might have to get a cubie. On my old eeepc netbook I only get 59fps glxgears so these small arms are getting up there. At $53 they are nearly cheap as the venerable raspberrypi.

Off topic I sent you a PM a while ago. Is your inbox full? And r u still in Philippines?

I'm very appreciative of your input on this forum.

Otya
philocat is offline   Reply With Quote
Old 06-04-2014, 18:30   #132
Registered User

Join Date: Aug 2009
Location: oriental
Boat: crowther trimaran 33
Posts: 4,417
Re: OpenCPN Runs on Embedded ARM

I implemented etcpak to support etc1 compression. This is supported by most opengles devices. It allows the compressed cache to work on embedded arm with great results.
seandepagnier is offline   Reply With Quote
Old 13-04-2014, 11:18   #133
Registered User

Join Date: Aug 2009
Location: oriental
Boat: crowther trimaran 33
Posts: 4,417
Re: OpenCPN Runs on Embedded ARM

I got bored with the cubie truck since it's basically working perfectly and really fast.

So.. I got it working, with hardware acceleration on the raspberry pi. Unfortunately the driver is a bit lacking, so can only render opengl in full screen. I then keep using x for input (keyboard and mouse) This works, but there is no toolbar or chart piano or any other dialog windows etc... Using top, I can see opencpn only gets about 25% of the cpu, and xorg and other stuff uses the rest, so this can't be a very ideal. Perhaps running in wayland would give better results, or playing around with it could help a lot. In any case, it's running about 3 times faster than before without any hardware acceleration. I think it could be around 10 times faster with more playing around which would make it quite usable.

Since I have no display, I don't _really_ know what is going on, but I have generally an idea. My setup is a bit contrived, and I am relying on I have two utilities, one that can grab screenshots, and also using x11vnc (which is not helping performance any) to control it for keyboard and mouse input.

It is not possible to see the toolbar or chart piano, or anything else for that matter that is not on the main canvas. I think the easiest way around this is with a simple hot-key which toggles opengl, so when you need to use the tool bar, or configure or use a plugin etc, you can, but switch back for viewing the charts. Then the chart piano (and eventually toolbar and context menus) should be implemented to render to the main canvas. I don't really have too much time to deal with raspberry pi, and without a display to plug into it, I doubt I will get too serious about this one, but I can say it is working.

For anyone who wants to try, first ensure you have libGLESv1_CM.so installed and working. Then you can install glxinfo and glxgears with
Code:
apt-get install mesa-utils
Then build glshim
Code:
git clone github.com/seandepagnier/glshim
cd glshim
mkdir build
cd build
cmake .. -DBCMHOST=1
make GL
sudo cp lib/libGL* /usr/lib
Now, in .bashrc add this line to the bottom:
Code:
export LIBGL_FB=1
restart the shell or manually type this line, and run glxgears. You should get 60fps (limited only by refresh rate I believe)

You may have to move libGL* files from /usr/lib/arm-linux-gnueabihf to somewhere else

Once glxgears is working (glxinfo should work too)

you can compile glues
Code:
git clone github.com/ssvb/glues.git
cd glues
mkdir build
cd build
cmake ..
make
cp libGLU.so.1 /usr/lib/libGLU.so
Now you can compile opencpn, use optimum branch
Code:
git clone -b optimum github.com/seandepagnier/OpenCPN
See instructions for building opencpn (and apt-get any packages needed)
It must detect opengles when running cmake. To get this, you must have /usr/include/GLES/gl.h, if you don't you can copy it from somewhere else.

Finally run opencpn, but you might have to switch between two ways of running.

To configure and verify it is works:
Code:
opengl -fullscreen
then you can switch on opengl mode if all is well. If there is some failure, then run with -no_opengl to compare.

To generate the compressed cache (etc1 compression is working great) it is a little tricky because you must navigate the setup without being able to see it. I think for this one, run x11vnc on the raspberry, connect from another computer, and then you can rebuild the chart database while opengl and texture compression caching are all enabled. At this point it should be able to run quite fast.
seandepagnier is offline   Reply With Quote
Old 13-04-2014, 15:06   #134
Registered User
 
sbfreddie's Avatar

Join Date: Mar 2012
Location: Southern Texas, Port Isabel
Boat: I Wish
Posts: 175
Images: 1
Send a message via Skype™ to sbfreddie
Re: OpenCPN Runs on Embedded ARM

Sean:
Is this the exact same process to use to install on the CubieTruck?
What if any differences are there in installing on the CubieTruck?

Thanks,
Freddie
sbfreddie is offline   Reply With Quote
Old 13-04-2014, 22:13   #135
Registered User

Join Date: Aug 2009
Location: oriental
Boat: crowther trimaran 33
Posts: 4,417
Re: OpenCPN Runs on Embedded ARM

For the cubie truck, nearly the same (it works much better) except:

you don't do this:
Code:
export LIBGL_FB=1
instead of:
Code:
cmake .. -DBCMHOST=1
use
Code:
cmake ..
seandepagnier is offline   Reply With Quote
Reply

Tags
opencpn


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Open CPN and Google Earth bgrimwade OpenCPN 19 09-12-2011 15:32
OpenCPN Version 2.5 Release bdbcat OpenCPN 86 02-09-2011 18:14
OpenCPN Stops Running BobLarkin OpenCPN 2 30-08-2011 23:38
Route Properties, Missing Functions James Baines OpenCPN 13 13-07-2011 04:31

Advertise Here


All times are GMT -7. The time now is 09:01.


Google+
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Social Knowledge Networks
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

ShowCase vBulletin Plugins by Drive Thru Online, Inc.