19 July 2010

List of Repeater Nationwide

Note: T = Linked , L = Local
CALLSIGN LOCATION FREQUENCY OWNER
9M4RDA KOTA BHARU, KELANTAN 147.650 -0.6 203.5 MARTS
9M4RAB BACHOK, KELANTAN 147.725 -0.6 233.6 AKRAB
9M4RGT TUMPAT, KELANTAN 146.6125 -0.6 67.0 AKRAB
9M4RPT JELI, KELANTAN 147.750 -0.6 67.0 AKRAB
9M4RNK KUALA KRAI, KELANTAN 147.9875 -0.6 67.0 AKRAB
9M4RTM TANAH MERAH, KELANTAN 146.850 -0.65 167.9 ARECTMJ
9M4RTJ JELI, KELANTAN 146.950 -0.6 167.9 ARECTMJ
9M4RTG B. LAKIT, GUA MUSANG, KELANTAN 147.6125 -0.6 100 ARECTMJ
9M4RPS PASIR PUTEH, KELANTAN 147.825 -0.6 97.4 PUTRA
9M4RDD PASIR MAS, KELANTAN 146.6375 -0.6 186.2 RES’K
GUA MUSANG, KELANTAN 147.800 -0.6 100 PRAGA
KOTA BHARU, KELANTAN 147.675 -0.6 97.4 COBRA
9M4RBP B. PANAU, TANAH MERAH, KELANTAN 146.750 -0.6 85.4 ASTRA (L)
9WV347 B. BAKAR, MACHANG, KELANTAN 145.675 -0.6 103.5 ASTRA (T)
9M4RDF B. GUA SERAI, GUA MUSANG, KEL 146.8125 -0.6 103.5 ASTRA (T)
9M4RBK B. BAKAR, MACHANG, KELANTAN 147.7875 -0.6 123 MARES
9M4RNT B. BINTANG, BESUT, TERENGGANU 147.975 -0.6 203.5 MARTS
9M4RTA B. KUANG, CHUKAI, TERENGGANU 146.750 -0.6 203.5 MARTS
9M4RSC SETIU, TERENGGANU 146.600 -0.95 233.6 SCORE
9M4RBA B. BINTANG, BESUT, TERENGGANU 147.625 -0.6 123 PEMANCAR
9M4RBJ B. JERUNG, MARANG, TERENGGANU 147.800 -0.6 123 PEMANCAR
9M4RBG KUALA BERANG, TERENGGANU 145.000 +0.6 123 PEMANCAR
9M4RBT B. BAUK, DUNGUN, TERENGGANU 147.000 -0.6 123 PEMANCAR
9M4RTK B. KESING, SETIU, TERENGGANU 146.750 -0.6 103.5 ASTRA (T)
9M4RAS B. GELIGA, CHUKAI, TERENGGANU 147.925 -0.6 103.5 ASTRA (T)
9M4RAC B. BUBUS, BESUT, TERENGGANU 146.6875 -0.6 103.5 ASTRA (T)
9M4RCD B. PELINDUNG, KUANTAN, PAHANG 146.100 +0.6 118.8 PERAMAH
9M4RBS B. FRASER, RAUB, PAHANG 147.700 -0.6 118.8 PERAMAH
9M4RBI B. IBAM, MUADZAM, PAHANG 147.800 -0.6 118.8 PERAMAH
9M4RCA CAMERON HIGHLAND, PAHANG 147.000 +0.6 118.8 PERAMAH
KUALA LIPIS, PAHANG 146.000 +0.6 118.8 PERAMAH
9M2RUK G. ULU KALI, PAHANG 147.900 -0.6 203.5 MARTS
9M4RLG G. ULU KALI, PAHANG 147.125 -0.6 203.5 MARTS (T)
9M4RCH CAMERON HIGHLAND, PAHANG 145.450 -0.6 203.5 MARTS (T)
9MV338 B. SULAI, KUANTAN, PAHANG 147.675 -0.6 103.5 ASTRA (T)
9M4RGB G. BERINCHANG, PAHANG 146.625 -0.6 103.5 ASTRA (T)
9M4RGH B. GENTING, PAHANG 145.675 -0.6 103.5 ASTRA (T)
9M4RCF B. FRASER, PAHANG 146.9375 -0.6 103.5 ASTRA (T)
9M4RAA B. TELEMONG, KARAK, PAHANG 147.6375 -0.6 103.5 ASTRA (L)
9M4RES G. ULU KALI, PAHANG 147.775 -0.6 123 MARES
9M4RMP B. SULAI, KUANTAN, PAHANG 147.875 -0.6 123 MARES
9M4RGA B. GENTING, PAHANG 147.2375 -0.6 233.6 AKRAB
9M2RGL G. LEDANG, MUAR, JOHOR 145.525 -0.6 203.5 MARTS
9M2RGP G. PULAI, PONTIAN, JOHOR 145.725 -0.6 203.5 MARTS
9M4RMR MUAR, JOHOR 146.925 -0.6 203.5 MARTS
9M2RBP BATU PAHAT, JOHOR 145.475 -0.6 203.5 MARTS
9M4RLM G. LEDANG, MUAR, JOHOR 145.425 -0.6 203.5 MARTS (T)
9M4RPM G. PULAI, PONTIAN, JOHOR 147.825 -0.6 203.5 MARTS (T)
9M4RAM G. BUSAN, MERSING, JOHOR 146.750 -0.6 103.5 ASTRA (T)
9M4RGL G. LEDANG, MUAR, JOHOR 147.9875 -0.6 103.5 ASTRA (T)
9MX485 G. PULAI, PONTIAN, JOHOR 145.7375 -0.6 85.4 ASTRA (T)
9M4RAL G. LEDANG, MUAR, JOHOR 146.9375 -0.6 103.5 ASTRA (L)
9M4RSG SEGAMAT, JOHOR 147.675 -0.6 85.4 ASTRA (L)
9M4RAP G. PULAI, PONTIAN, JOHOR 147.7375 -0.6 85.4 ASTRA (L)
9M4RAM MERSING, JOHOR 147.8625 -0.6 103.5 ASTRA (L)
9M4RAK KLUANG, JOHOR 147.800 -0.6 103.5 ASTRA (L)
9M4RBN G. BANANG, BATU PAHAT, JOHOR 146.625 -0.6 103.5 ASTRA (L)
9M4RAJ SEGAMAT, JOHOR 146.6875 -0.6 103.5 ASTRA (L)
9M4RJB JOHOR BHARU, JOHOR 145.600 -0.6 203.5 JASRA
9M4RJN BATU PAHAT, JOHOR 145.675 -0.6 203.5 JASRA
9M4RLD G. LEDANG, MUAR, JOHOR 147.700 -0.6 127.3 JASRA
9M2RTB G. TELAPA BURUK, NEGERI SEMBILAN 145.625 -0.6 203.5 MARTS
9M4RNS SEREMBAN, NEGERI SEMBILAN 145.375 -0.6 233.6 NESRAC
9M4RHE BANDAR MELAKA 146.825 -0.6 203.5 MARTS
9M4RKA B. KATIL, MELAKA 146.750 -0.6 88.5 ASTRA (L)
9M4RMA B. BERUANG, MELAKA 147.925 -0.6 85.4 ASTRA (L)
TANJUNG BIDARA, MELAKA 145.990 -1.0 123 MARES
9M2RKK B. LANJAN, KUALA LUMPUR 147.980 -0.6 203.5 MARTS
9M4RKL B. LANJAN, KUALA LUMPUR 439.600 -5.0 203.5 MARTS
9M4RBC SHAH ALAM, SELANGOR 147.8625 -0.6103.5 ASTRA (L)
9M2RBB B. PENARA, PENANG 147.950 -0.6 203.5 MARTS
9M4RPP B. BENDERA, PENANG 439.525 -5.0 203.5 MARTS
9M4RPH B. BENDERA, PENANG 147.825 -0.6 203.5 MARTS (T)
9M4RBB B. BENDERA, PENANG 145.7375 -0.6 103.5 ASTRA (T)
9M2RKV G. KELEDANG, IPOH, PERAK 145.775 -0.6 203.5 MARTS
9M4RPK IPOH, PERAK 147.7125 -0.6 233.6 PARTS
9M4RPI PANDANGAN INDAH, GRIK, PERAK 145.6125 -0.6 103.5 ASTRA (T)
9M4RBK B. KELEDANG, IPOH, PERAK 147.6125 -0.6 103.5 ASTRA (T)
9M4RBL B. LARUT, TAIPING, PERAK 147.7375 -0.6 103.5 ASTRA (T)
9M4RSP B. LENGGONG, PERAK 146.8125 -0.6 103.5 ASTRA (L)
9M2RMK KANGAR, PERLIS 147.980 -0.6 203.5 MARTS
9M4RHP B. NGULANG, PERLIS 147.800 -0.6 103.5 ASTRA (L)
9M2RGJ G. JERAI, KEDAH 146.2625 +0.6 203.5 MARTS
9M4RGJ G. JERAI, KEDAH 147.6125 -0.6 85.4 ASTRA (T)
9M4RBD B. DEDAP, SIK, KEDAH 146.625 -0.6 103.5 ASTRA (T)
9M4RGR G. RAYA, LANGKAWI, KEDAH 145.6125 -0.6 103.5 ASTRA (T)
9M4RKG G. KERIANG, ALOR STAR, KEDAH 146.6875 -0.5 103.5 ASTRA (L)
9M4LGJ G. JERAI, KEDAH 146.9375 -0.6 85.4 ASTRA (L)
9M4RPN SUNGAI PETANI, KEDAH 145.375 -0.6 123 SPARC
9M4RKG ALOR STAR, KEDAH 145.525 -0.6 103.5 KSARC
BALING, KEDAH 147.825 -0.6 85.4 KARIB
9M4RBK G. KINABALU, SABAH 147.750 -0.6 203.5 MARTS
9M4RDV LAHAD DATU, SABAH 144.775 +0.6 203.5 MARTS
9M6RGK G. KINABALU, SABAH 147.900 -0.6
SIMPLEX
KOTA BHARU – V18, BACHOK – V22, TANAH MERAH – V38, TUMPAT – V20, GUA MUSANG – V40, DABONG – V65,
KUALA KRAI – V32 & V48, RANTAU PANJANG – V39, PASIR PUTEH – V30, JELI – V38, PASIR MAS – V56
KUALA TRG – 145.145, V26, V38 & V60, JERTEH – V19 & V50, CHUKAI – V30, KUALA BERANG – V47.
ROMPIN – V20, TEMERLOH/MENTAKAB – V48, BENTONG – V24, KUANTAN/PEKAN – V20, KUALA LIPIS – V24.
MELAKA – V25 & V32.
ALOR STAR – 146.900, V26 & V30, KULIM – 144.125, BALING – V18, KUBANG PASU/KOTA SETAR – V24,
YAN – V26, SIK – V28, SUNGAI PETANI – V30 & V44, KUALA NERANG – V48, CHANGLUN – V24, LANGKAWI – V16.
BUTTERWORTH/KEPALA BATAS – V32, PULAU PINANG – V34.
PARIT BUNTAR/KERIAN – V38, SRI MANJUNG – V32, IPOH/ULU KINTA – V30, LENGGONG – 144.550,
TAIPING – V20, KUALA KANGSAR – V28, GRIK – V24, PARIT – V22.
SUNGAI BESAR – V24, SEMENYIH/BERANANG – V47 & V66, DAMANSARA – V56, GOMBAK – V33,Sarang Burung ( Global ) V69, BANGI – V19
KEPONG – V42, CHERAS/SEPANG – V47, BAGAN LALANG/PUTRAJAYA – V38, KUALA LUMPUR – V17.
SEREMBAN – V22, NILAI – V22 & V66.
KLUANG – V51 & V56, BATU PAHAT – V44, V46 & V56, SEGAMAT/LABIS – V18, V26, V32, KOTA TINGGI – V61
JOHOR BHARU – V16, V18, V33, V47, MUAR – V26. ARAU/KANGAR – V22, 145.215
SANDAKAN – V24, LAHAD DATU – V17, TAWAU – V40
ECHOLINK GATEWAY
9M4GIE-L SHAH ALAM, SELANGOR 144.865
9M4GDD-L SELANGOR 144.725
9M4GKY-L KOTA BHARU, KELANTAN 144.865
9M4GAL-R TUMPAT, KELANTAN 144.8875
9M4GGM-L GUA MUSANG, KELANTAN 144.725
9M4GKK-L KUALA KRAI, KELANTAN 144.755
9M4GSM-L SRI MANJUNG, PERAK 144.865
9M4GOZ-L SUNGAI PETANI, KEDAH 144.825
9M4GOL-L PERLIS 144.7375
9M4GRK-L KUCHING, SARAWAK 144.725
DIGIPEATER
9M4RDG-1 BUKIT GENTING, PAHANG 144.390
AMPANG, KUALA LUMPUR 144.390
SUNGAI BULOH, SELANGOR 144.390
TAMAN DESA, KL 144.390
KEPONG, SELANGOR 144.390
SATELLITES FREQUENCY
ISS VOICE (REGION 2 & 3) DOWNLINK 145.800, UPLINK 144.490
ISS UHF/VHF REPEATER DOWNLINK 145.800, UPLINK 437.800
ISS VHF/UHF REPEATER DOWNLINK 437.800, UPLINK 145.990 WITH PL @ CT TONE 67.0
ISS APRS DIGIPEATER DOWNLINK 145.825, UPLINK 145.825
ISS SSTV DOWNLINK 145.800
AO-51 VHF/UHF REPEATER DOWNLINK 435.300, UPLINK 145.920
VO-52 UHF/VHF REPEATER DOWNLINK 145.900, UPLINK 435.230
SO-50 VHF/UHF REPEATER DOWNLINK 436.795, UPLINK 145.850 WITH PL @ CT TONE 67.0
HO-68 VHF/UHF REPEATER DOWNLINK 435.675, UPLINK 145.825 WITH PL @ CT TONE 67.0
NOAA 15 WEATHER IMAGE DOWNLINK 137.500
NOAA 17 WEATHER IMAGE DOWNLINK 137.620
NOAA 18 WEATHER IMAGE DOWNLINK 137.9125
NOAA 19 WEATHER IMAGE DOWNLINK 137.100
SIMPLEX
V17 145.2125 V35 145.4375 V53 146.4625
V18 145.2250 V36 145.4500 V54 146.4750
V19 145.2375 V37 145.4625 V55 146.4875
V20 145.2500 V38 145.4750 V56 146.5000
V21 145.2625 V39 145.4875 V57 146.5125
V22 145.2750 V40 145.5000 V58 146.5250
V23 145.2875 V41 145.5125 V59 146.5375
V24 145.3000 V42 145.5250 V60 146.5500
V25 145.3125 V43 145.5375 V61 146.5625
V26 145.3250 V44 145.5500 V62 146.5750
V27 145.3375 V45 145.5625 V63 146.5875
V28 145.3500 V46 145.5750 V64 147.4350
V29 145.3625 V47 145.5875 V65 147.4650
V30 145.3750 V48 146.4000 V66 147.4950
V31 145.3875 V49 146.4125 V67 147.5250
V32 145.4000 V50 146.4250 V68 147.5550
V33 145.4125 V51 146.4375 V69 147.5850
V34 145.4250 V52 146.4500

03 July 2010



Antenna model UC-4364-328
The UC-4364-328 is a compact Quadrifilar Helix antenna (8 cm/3" OD x 16 cm/6" H)
designed to operate through Amateur Radio satellites, without requiring an antenna
rotator. The goal of this product is to offer Amateurs with severe space or community
restrictions the ability to receive 70 cm HamSat signals, and communicate through
orbiting repeaters (transponders). Ham satellites operate cross-band: you will
generally need a VHF uplink transmit antenna for 2-way communications. A
companion VHF unit is envisioned in the near future.
This antenna is passive and designed mostly as a receive structure. An active version
of this product is upcoming, with a built-in Low Noise Amplifier (UC-4364-328xxA).
Frequency range: 436-438 MHz
Coverage: Omni-directional, Hemispherical
Polarization: LHCP (-Lx) or RHCP (-Rx) , AR 3 dB
Gain: +3 dBic
Nominal Impedance: 50 ohm (RF)
Input Power: 1 Watt CW
VSWR: 2.0
Connector: -xU: UHF, Male (PL-259)
-xN: Type-N, Male, on 3 m (10 ft) Coaxial Cable
Dimensions: Housing 8 cm (3") OD x 16 cm (6") h
Bottom flange 10 cm (4") OD x 10 mm (0.38") h
Mounting: 4 screws, M4 (#10-32)
Operating Temperatures: -40° to +85°
C C
Weight: 550 g / 1.15 lbs
Finish: PVC housing, standard color is Black

30 May 2010

GP300 Repeater

PORTABLE REPEATER BASE ON PIC 16F84 MICROCONTROLLER AND GP 300 RADIOS

Abstract

The usage of transceiver / two-way radio is very essential especially for security and also emergency handling. It is not unusual that radiomen operate portable radio to support them doing their duties. Although the radio is very assisting, communication between portable radios has limitation since it can only be used for relatively short range. Therefore, the writer described about portable repeater using PIC 16F84 microcontroller and GP 300 radio transceiver in this research. The research covers about hardware and software to construct a portable repeater. It is inferred that, using certain algorithm and assembly programming, the PIC 16F84 microcontroller is able to control two units GP 300 which are connected electronically as a 5-watt portable repeater and enhance the communication range up to 8 km.

Keywords

Radio System, Microcontroller, Portable Repeater

I. INTRODUCTION

Experience is the best teacher. Taking experience from true crisis handling and know-how from some crisis simulations such as Tsunami Handling Simulation located at Sanur Beach and Crisis Handling Simulation located at Tanah Lot Beach, the writers obtained that radio communication problem was occurred during crisis incident as well as simulation event. Radio communication problem between crisis team may reduce their performance to handle the crisis and securing the spot. Limited by 5 Watt transmit power and short antenna are the weak points of portable radio. It can handle communication for less than 2.7 miles (4.34 km) away [1]. Repeater is a communication device that amplifies signal in order to extend the transmission range [2]. It is necessary to equip the crisis team with portable repeater in any emergency circumstance. Using portable repeater is an alternative way to expand radio communication range. The longer communication range, the better performance can the crisis team do. The solved problems in this research are how to construct a portable repeater hardware using PIC 16F84 microcontroller and GP 300 transceiver radios and also to design algorithm and assembly programming for PIC 16F84 to control portable repeater.

II. RESEARCH METHODOLOGY

2.1. Literature Study

2.1.1. Radio System

The primary components in a VHF or UHF radio system fall into three groups: transmitters, receivers, and antennas. In most modern radio tactical sets, the transmitter and receiver are contained in a single unit called a transceiver. The simplest transceiver must generate a modulated signal to the antenna and to receive a signal from an antenna, demodulate it, and feed the information to a headset, computer, or some other human or machine interface [3]. The transceiver provides both transmitting and receiving functions. The transmit function consists of modulation, carrier generation frequency translation, and power amplification, meanwhile the receive function consists of RF signal filtering, amplification, frequency down conversion, and demodulation [3]. Two-way radio police made by Motorola started operation in 1940 and in that same year Motorola delivered the portable radio AM transceiver to the U.S. Army [4]. In 1997, Motorola produced GP 300 radio and now still available due to its rugged construction and excellent performance. There are two types of GP 300 radio, i.e., GP 300 VHF type and GP 300 UHF type. Both types are physically similar but have different electronic circuits. GP 300 radio provided with antenna, 16 channel frequency knob, volume knob, battery pack and option jack for remote speaker microphone (RSM) [5].

gp300

Figure 1. GP 300 UHF and VHF Portable Radio

The RSM allows operator to talk and listen without removing the radio from the belt, case or charger. Ideal for high noise level environments. This water resistant compact unit has a coiled cord, PTT switch and back cover clip [5]. When the RSM is attached to the radio, the speaker in the radio is disabled, and receiver audio is connected to the accessory speaker. Similarly, the accessory microphone is connected to the transmitter, and the accessory PTT switch can now control the PTT function in the radio. The schematic diagram of RSM is shown in figure below [5].

RSM

Figure 2. RSM Model HMN9030A Circuit

2.1.2. Microcontroller

A microcontroller is an inexpensive single-chip computer. Single-chip computer means that the entire computer system lies within the confines of the integrated circuit chip. The microcontroller on the encapsulated sliver of silicon has features similar to those of our standard personal computer. Primarily, the microcontroller is capable of storing and running a program [6]. The PIC 16F84 microcontroller device has 13 input / output ports. The ports are grouped into PORT A and PORT B. PORT A consists of 8 ports, while PORT B consists of 5 ports. In addition to 13 port pins, the rest of 18 pins of the device are made up of the 5 Volt Power and Ground, the Reset input, and two pins for system clock [7].

PIC 16F84 pinout

Figure 3. The PIC 16F84 Pinouts

2.1.3. Repeater

Repeater is a communication device that amplifies signal in order to extend the transmission distance. Available for both electronic and optical signals, repeaters are used extensively in long distance transmission [2]. Repeater can listen on one frequency and transmit on another at the same time. It can receive and transmit on different frequencies at the same time. Portable and mobile radios use repeaters by transmitting on the repeater input channel and listening to the repeater output channels [2].

repeater concept

Figure 4. Repeater Basic Concept

The visible horizon observed at approximately five feet above a flat surface of earth is less than 2.7 miles (4.34 km) away. This is approximately the maximum radio range from a radio of a standing man to another radio of standing man [1]. It is clear that the elevation of both the transmitting and receiving antennas is crucially important. For example if the receiving antenna were mounted on a 26-foot (7.8 m) tower, the total line-of-sight distance would be increased to 9 miles (14.4 km). VHF and UHF waves are also attenuated with every mile of distance. However, for tactical applications, it is most often the shadowing effects of irregular terrain, buildings, and other objects that limit the effective range and not transmit power [3].

2.2 Hardware and Software Design

According to the literature, the portable repeater is built using 2 unit of GP 300 radio and each radio equipped by Remote Speaker Microphone (RSM). These radios and RSM are connected to an electronic circuit and controlled by PIC 16F84 microcontroller. Next step, the research continued by designing the algorithm and programming the PIC 16F84 microcontroller.

2.3. Data Collection and Assessment Method

The assessment is prepared to identify the ability of portable repeater to receive and retransmit signal from specified distance. The process of signal transmitting and receiving in this assessment are conducted using two units of ICOM V8 portable radio transceiver operated by two radio operators separated at certain distance. The ICOM V8 is selected as a tester due to its signal strength meter feature. The assessment takes place in Denpasar City in order to recognize the transmitting and receiving range by measuring it on map. Besides communication range, it is also test the repeated signal quality, including signal strength and signal readability. Therefore, communication range, signal strength and signal readability data are collected and analyzed to ensure the maximum radio range.

III. RESULT AND DISCUSSION

3.1. Hardware

As mentioned above, a portable repeater must able to retransmit signal from receiver unit to transmitter unit. For that purposes, 2 units of GP 300 equipped with RSM and a repeater electronic circuit are needed.

repeater block diagram

Figure 5. Portable Repeater Block Diagram

The circuit is controlled by PIC 16F84 microcontroller and provided with additional devices, such as Schmitt Trigger and Driver. The Schmitt Trigger applied here is IC 74LS14. It has six inverter gates and utilized to accept input from two units of RSM Model HMN9030A (RX RD1 and RX RD2) and output the appropriate logic to PA0 and PA1 (Pin 17 and Pin 18 of PIC 16F84 microcontroller). The IC 74LS14 pins connection is shown below.

LS14 conn

Figure 6. IC 74LS14 Pins Connection

The UDN 2981 driver is used to activate transmitter unit. Pin 1 and pin 2 of the driver accept input from pin 6 (PB 0) and pin 7 (PB1) of PIC 16F84. Meanwhile output pin 18 and pin 19 are connected to two units of SPST (Single Pole Single Throw) relay. Each relay is provided with switch and connected to PTT switch (PTT A RD and PTT B RD) of RSM model HMN9030A. Ground signal must be also connected to RSM. The connection is exposed below.

UDN conn

Figure 7. IC UDN2981 Driver Connection

Besides electronics circuit, the portable repeater required two units of GP 300 radio (as a transmitter unit and a receiver unit) and two units of RSM model HMN9030A. Each RSM is connected to the GP 300 Option Jack and also to the electronics circuit. Both RSM are modified as picture following. The modified RSM will parallel PTT switch with SPST relay (PTT A RD and PTT B RD). While the SPST relay is on, this condition will force the radio entering transmit mode; otherwise, while the SPST relay is off, the radio keeps on waiting in receive mode. It also sends the audio signal (RX RD) to the Schmitt Trigger. The presence of audio signal will output Schmitt Trigger to high logic; otherwise, the absence of audio signal will output Schmitt Trigger to low logic. The GND RD is a ground signal and must be connected to electronics circuit ground.

RSM mod

Figure 8. RSM Modification

To define the function of both radios, whether as a transmitter or a receiver unit, two switches (SW RD1 and SW RD2) are used. Two debounce circuits are required by both switches and connected to pin PB0 and PB1 of PIC 16F84 microcontroller. The complete connection of portable repeater is shown below.

portable repeater schematic

Figure 9. Portable Repeater Schematic

When SW RD1 switch is on, the circuit enables radio 1 to transmit; otherwise, when SW RD1 is off, the circuit disables radio 1 to transmit. Similar to this matter, when SW RD2 switch is on, the circuit enables radio 2 to transmit; otherwise, when SW RD2 is off, the circuit disables radio 2 to transmit. There are two indicator LEDs available in the circuit; TX RD1 and TX RD2. The led will blink at the same time as the appropriate radio is working in transmit mode.

3.2. Software

The algorithm needed by PIC16F84 microcontroller to control the portable repeater is described as follows:

1.
Set Port A as input.
2.
Set Port B as output.
3.
Blink the indicator LEDs twice
4.
Disable radio 1 and radio 2 to transmit.
5.
Check the audio signal from radio 1 and radio 2. If the audio signal occurs from one of the radio, then check the appropriate switch (SW RD1 or SW RD2). If the switch is on then disable this radio to transmit and enable the other radio to transmit. Activate the appropriate relay (PTT RD1 or PTT RD2) to force the radio entering transmit mode and blink the related indicator LED (TX RD1 or TX RD2). Repeat this step until the end of audio signal.
6.
If the audio signal is not detected anymore then disable the radio to transmit.

Figure 10 below shows detail information about the portable repeater algorithm.

algorithm

Figure 10. Portable Repeater Algorithm

The appropriate assembly programming is listed as follows:

LISTP=PIC16F84
INCLUDE"P16F84A.INC"
; SET PORT A AS INPUT
; SET PORT B AS OUTPUT

BSFSTATUS,RP0

MOVLW0X0F

MOVWFTRISA

MOVLW0X00

MOVWFTRISB

;BLINK INDICATOR LEDS TWICE

BCFSTATUS, RP0

MOVLW0X0C

MOVWFPORTB

CALLDELAY
CLRFPORTB
CALLDELAY
MOVLW0X0C
MOVWFPORTB
CALLDELAY
; PTT RD1 DISABLED
; PTT RD2 DISABLED
CLRFPORTB
; PORTA0 - INPUT RX RD1
; PORTA1 - INPUT RX RD2
; PORTA2 - INPUT SWITCH RD1
; PORTA3 - INPUT SWITCH RD2
; PORTB0 - OUTPUT PTT RD1

; PORTB1 - OUTPUT PTT RD2

; PORTB2 - OUTPUT LED TX RD1
; PORTB3 - OUTPUT LED TX RD2
START
BTFSCPORTA,0; IS RX RD1 HIGH?
GOTOIS_SW_RD1_ON
PTT_RD2_DISABLED
BCFPORTB,1; PTT RD2 DISABLED
BTFSCPORTA,1; IS RX RD2 HIGH?
GOTOIS_SW_RD2_ON
PTT_RD1_DISABLED
BCFPORTB,0; PTT RD1 DISABLED
GOTOSTART
IS_SW_RD1_ON
BTFSSPORTA,2; IS SW RD1 ON?
GOTOIS_RX_RD2_HIGH
GOTOPTT_RD2_DISABLED
IS_RX_RD2_HIGH
BTFSCPORTA,1; IS RX RD2 HIGH?
GOTOPTT_RD2_DISABLED
BCFPORTB,0; PTT RD1 DISABLED
BSFPORTB,1; PTT RD2 ENABLED
BSFPORTB,3; BLINK TX RD2 LED
CALLDELAY
BCFPORTB,3
CALLDELAY
GOTOSTART
IS_SW_RD2_ON
BTFSSPORTA,3; IS SW RD2 ON?
GOTOIS_RX_RD1_HIGH
GOTOPTT_RD1_DISABLED
IS_RX_RD1_HIGH
BTFSCPORTA,0; IS RX RD1 HIGH?
GOTOPTT_RD1_DISABLED
BCFPORTB,1; PTT RD2 DISABLED
BSFPORTB,0; PTT RD1 ENABLED
BSFPORTB,2; BLINK TX RD1
CALLDELAY
BCFPORTB,3
CALLDELAY
GOTOSTART
DELAY
MOVLWD'100'; THIS IS DELAY SUBPROGRAM
MOVWF2F; TO BLINK INDICATOR LEDs
LOOP1
MOVLWD'255'
MOVWF2E
LOOP2
DECFSZ2E,F
GOTOLOOP2
DECFSZ2F,F
GOTOLOOP1
RETURN
END

3.3. Portable Repeater Test

The performance of portable repeater is tested by collecting signal strength and signal readability data from definite range. Two units of ICOM V8 portable radios (Radio A and Radio B) are used to acquire data. Signal strength is measured by signal indicator. It appears when the channel is busy and shows receiving signal strength as below.

signal indicator

Figure 11. ICOM V8 Signal Indicator

Meanwhile signal readability is measured using scale as follows.

1
=
not at all read
2
=
sometime read some words
3
=
can be read slightly
4
=
can be read without trouble
5
=
really can be read easily

The results are listed as Table 1 below.

Table 1. Portable Repeater Performance

Distance (km)
A to B
B to A
A to R
B to R
SS
SR
SS
SR
1
1
strong
5
strong
5
2
2
strong
5
strong
5
3
3
strong
5
strong
5
4
4
fine
4
fine
4
5
5
fine
3
fine
3
6
6
adequate
3
adequate
3
7
7
adequate
2
adequate
2
8
8
adequate
2
adequate
2
9
9
weak
1
weak
1

Table 1 description:

A to R:distance (km) from Radio A to Portable Repeater
B to R:distance (km) from Radio B to Portable Repeater
A to B:Radio A transmitting, Radio B receiving
B to A:Radio B transmitting, Radio B receiving
SS:Signal Strength
SR:Signal Readability

IV. CONCLUSION

As a result of portable repeater test, the research obtains some conclusions:

1.PIC 16F84 microcontroller and GP 300 radios equipped with RSM are able to operate as a portable repeater.
2.
Using two units of 12-meter-height external antennas, radio communication between portable radio users can extend up to 8 km using this 5-watt portable repeater.

Install OpenWRT on x86 PC


In order to get more familiar with the lightest and awesome distro that OWRT is, I had to install it on my PC or in VMWare.
And there are not much information for almost beginners like me... So I will write here what I do with 8.09 version.

Note : This HowTo is based on the Slitaz 2.0 distro, the next lightest distro after OWRT : http://www.slitaz.org
"SliTaz is an open source and free operating system providing a fully featured desktop or server in less than 30 Mb."
Great for old PC with 192 MB Ram min and small HDD. Thanks Slitaz (and Erjo how help me) !
Slitaz is also available as a core distro (without Xorg) : only 6 MB and only 128 MB Ram !
See the slitaz-2.0-base.iso version here : http://mirror.slitaz.org/iso/2.0/flavors/

[HowTo] Install OpenWRT on x86 PC

1 - Get the image here : http://downloads.openwrt.org/kamikaze/8.09/x86/

Some informations first : The openwrt-x86-XXX.fs files contain only the rootfs partition whereas the openwrt-x86-XXX.image.kernel files contain the kernel partition.

I download the openwrt-x86-ext2.image file. It produces a standard installation, like any Linux distro. Try this first !
(If you want to see how jffs with mini_fo works like in a router, you can use the openwrt-x86-squashfs.image. I didn't try yet the jffs2 files...)

Copy the image on a USB key.

2 - Copy the image on HDD :

For this, download the LiveCD Linux distro Slitaz : you don't need to install it.

Boot your PC with the Slitaz CD and login as tux (No PWD). The disk where to install OWRT (I'll say it is /dev/hda) will be detected automatically by Slitaz (Note : I don't have tested this with SATA HDD).
Insert USB key, it'll appear in the file manager (in the dir /media/USB2 or something like that, depends on your key)
Open a console and get root via "su -" and the root pwd which is : root.
Copy the image on HDD : "dd if=/media/USB2/openwrt-x86-ext2.image of=/dev/hda bs=1M count=100"
That's all folks !

3 - Boot on HDD and enjoy OWRT
:)


Now, for those who want to make a "LiveUSB Key" installation of OWRT, you need the ramdisk image of OpenWRT. It's not available in the download repository so you will first need to compile it. Here's my method :
[HowTo] Compile OpenWRT

1 - Install Slitaz 2.0 on a dedicated 4 GB min HDD (in a VM, for example) :

Boot your PC on the Slitaz CD and login as tux (no PWD).
Open a console and get root via "su -" and the root pwd which is : root.
Partition your HDD with "fdisk /dev/hda", type "n" to add a new partition hda1 and "w" to write the partition table.
Launch "slitaz-installer" as root and follow instructions. You can get help with Slitaz on forum (http://forum.slitaz.org).
Slitaz is now installed on /dev/hda1.

Now, you will need to install some more packages. Run this as root : "tazpkg recharge; tazpkg get-install slitaz-toolchain".
Do the same "tazpkg get-install XXX" for : bash, ncurses-dev, zlib-dev, gawk, flex, bzip2, python, tar, findutils, wget, patch, diffutils, perl, coreutils. Though it's not checked by prereq.mk, the m4 package is necessary to compile 8.09.1 sources (for the trunk compilation, no m4 package but you'll need the subversion package).

Note : you can also install sakura package (another xterm) to help copy and paste in console.

2 - Get sources of OpenWRT 8.09 and compile it :

Now you can get, configure and compile OWRT as normal user Tux :
Download and go into the extracted tar.bz2 sources directory (from http://downloads.openwrt.org/kamikaze/8.09.1/).
("svn co svn://svn.openwrt.org/openwrt/trunk owrt; cd owrt" for the trunk)
"make menuconfig"
Select in the target system menu, the X86 generic PC. Then in the target image menu, select generating a ramdisk file.
Save configuration before exit then run "make".

After a quite long time, the result of compilation is in /owrt/trunk/bin. The ramdisk file is a very little file called openwrt-x86-vmlinuz, containing the kernel and ramdisk rootfs.

Here is my own build :
stock 8.09.1 Ramdisk
(R15955 of the trunk)

Nota : You can find another HowTo here with Ubuntu/VMWare for WhiteRussian : http://forum.openwrt.org/viewtopic.php?id=8410.
You can also find generic help for building OWRT there, as usual : http://downloads.openwrt.org/kamikaze/docs/openwrt.html

3 - Install OpenWRT image on a USB key :
We're going to install Slitaz on an existing FAT USB key and add the OWRT image to it.
So in Slitaz, launch "tazusbbox" as root. Select the source to install (CDRom) and the USB key for destination (certainly /dev/sda1). Then generate.
That's it : Slitaz is installed on the key. Try it, that's great !

Next, copy the ramdisk file as vmlinuz in a OWRT directory on the USB key. Then modify the file boot/syslinux/syslinux.cfg as this :

Code:

display syslinux.msg label slitaz     kernel /boot/bzImage     append initrd=/boot/rootfs.gz rw root=/dev/null vga=normal autologin home=2C3F-6155  include common.cfg  label owrt     kernel /OWRT/vmlinuz     append console=tty0 reboot=bios  default owrt timeout 20

With this, Openwrt will boot as default after 3 seconds (Slitaz is still available). You can enjoy OpenWRT on any PC, boot in 2 seconds. But your modification will not remain after a reboot...


Next one, my method to :
[HowTo] Make "LiveUSB Key" OpenWRT

Needed : The steps above are supposed to be done.

1 - Create a rootfs addon to modify the stock ramdisk :

The modifications will be made via another initrd append to the first one (see here : http://www.mjmwired.net/kernel/Document … fs.txt#210). I called it modUSB.gz.

I create a modUSB directory in my home where will be the rootfs modifications.
Add an opkg directory where you can place all the packages you want to add to the stock ramdisk.
So I download (from http://downloads.openwrt.org/kamikaze/8 … /packages/) and place :
* In opkg/std, the packages needed to have the ext3 and loop support :
kmod-fs-ext3_2.6.25.20-x86-1_i386.ipk
kmod-loop_2.6.25.20-x86-1_i386.ipk
* In opkg/fat, all the packages needed to see VFAT partition on the key :
kmod-fs-vfat_2.6.25.20-x86-1_i386.ipk
kmod-nls-base_2.6.25.20-x86-1_i386.ipk
kmod-nls-cp437_2.6.25.20-x86-1_i386.ipk
kmod-nls-iso8859-1_2.6.25.20-x86-1_i386.ipk
* In opkg/usb2, all the packages needed to have USB2 support for the key :
kmod-scsi-core_2.6.25.20-x86-1_i386.ipk
kmod-usb-core_2.6.25.20-x86-1_i386.ipk
kmod-usb-storage_2.6.25.20-x86-1_i386.ipk
kmod-usb2_2.6.25.20-x86-1_i386.ipk

* And everything else you need...

Then I use this little script to create the modUSB.gz :

Code:

#!/bin/sh (cd modUSB; find . | cpio -o -H newc | gzip -9) > modUSB.gz

2 - Modify the init script to add the loop function :

The stock one is in the OWRT directory, there : target/linux/generic-2.6/base-files/init.
I made it a little more simpler, faster and add loop function and ability to use opkg added to the directory called "modUSB".

Code:

#!/bin/sh # Copyright (C) 2006 OpenWrt.org  ## ModUSB # Copie du rootfs initial mkdir /modUSB/tmp cp -a /* /modUSB/tmp 2>/dev/null rm -r /modUSB/tmp/modUSB/tmp  # Changement du clavier si besoin [ -n "$lang" ] && loadkmap < /modUSB/$lang.kmap  INITRAMFS=1  . /etc/preinit  # if we have no root parameter, just go to running from ramfs [ -z $rootfs ] && {   export NOMOUNT="No Root"   exec /sbin/init }  #if we have a failsafe boot selected, dont bother #trying to find or wait for a root mount point [ -z "$FAILSAFE" ] || {   exec /bin/busybox init }  # Chargement des packages presents dans /modUSB opkg install /modUSB/opkg/*.ipk >/dev/null opkg install /modUSB/opkg/*/*.ipk >/dev/null  # Load the modules we have in initramfs, this should # make the media accessible, but, it may take some time . /etc/functions.sh load_modules /etc/modules /etc/modules.d/*  #wait 10 seconds for the disc to show up #usb stick typically takes 4 to 6 seconds #till it's readable #it's quite possible the disc never shows up #if we netbooted this kernel COUNTER=0 while [ ! -e ${rootfs%-loop} ]; do   sleep 1; echo -e "\nWaiting for device ${rootfs%-loop}"   let COUNTER=COUNTER+1   [ $COUNTER -eq 9 ] && {     export FAILSAFE="NoDisc"     exec /bin/busybox init   } done  # Test si mode loop : rootfs=XXX-loop [ "$rootfs" != "${rootfs%-loop}" ] && loop=/tmp/mnt/FsOWRT  # now we'll try mount it, again with a timeout # This will fail if the inserted stick is formatted # in a manner we dont understand e2fsck -p ${rootfs%-loop} COUNTER=0 [ -z $loop ] || mkdir -p /tmp/mnt while ! mount ${rootfs%-loop} ${loop:+/tmp}/mnt; do   sleep 1   let COUNTER=COUNTER+1   [ $COUNTER -eq 9 ] && {     export FAILSAFE="MountFail"     exec /bin/busybox init   } done  [ -z $loop ] || { # Montage du filesystem en loop (apres initialisation si besoin) [ ! -f $loop ] && mke2fs -V >/dev/null && {   dd if=/dev/zero of=$loop bs=1024 count=49152   mke2fs -q -j -F $loop }  cp /modUSB/FsOWRT.bz2 $loop.bz2 [ ! -f $loop -a -f $loop.bz2  ] && {   cp $loop.bz2 $loop.1.bz2   bunzip2 $loop.bz2   mv $loop.1.bz2 $loop.bz2 }  COUNTER=0 while ! mount -t ext3 -o noatime,sync $loop /mnt; do   sleep 1   let COUNTER=COUNTER+1   [ $COUNTER -eq 9 ] && {     export FAILSAFE="LoopMountFail"     exec /bin/busybox init   } done  [ ! -e /mnt/etc/banner ] && rm -r /mnt/* && mv /modUSB/tmp/* /mnt  # Nettoyage for i in `ls /modUSB/opkg/e2fs | sed 's/_.*//'`; do opkg remove $i; done rm -r /modUSB/opkg }  rm -r /modUSB/tmp  #It mounted, lets look for a postinit file, again, give it time #I've seen this take 6 seconds to actually complete COUNTER=0 while [ ! -e /mnt/etc/banner ]; do   sleep 1   let COUNTER=COUNTER+1   [ $COUNTER -eq 9 ] && {     export FAILSAFE="No Openwrt FS"     exec /bin/busybox init   } done  unset rootfs loop  for i in proc dev "dev/pts" tmp sys; do   mount -o move /$i /mnt/$i done killall -q hotplug2 exec switch_root -c /dev/console /mnt /sbin/init

3 - Modify your OpenWRT installation on your USB key :

Modify the file boot/syslinux/syslinux.cfg to add the rootfs directive with loop : for example /dev/sda1-loop for a key that the system see in sda1. Add also the initrd directive to take the modUSB.gz into account. I also add a "lang" parameter (see below for the keyboard layout).

In bold, are the modifications :
label owrt
kernel /OWRT/vmlinuz
append initrd=/OWRT/modUSB.gz lang=fr-latin1 rootfs=/dev/sda1-loop console=tty0 reboot=bios

With this, Openwrt boot in 12 seconds from the USB key on my not so new notebook.
I can now enjoy OpenWRT on any PC, and all my modifications remain after a reboot...

You can find my modUSB.gz here.


[HowTo] Change keyboard layout in OpenWRT

When you have no network and have to use OWRT console, it's a pain to use the default US keyboard with a french one...

So you'll have to add the loadkmap utility to busybox via the .config located in the root of the OpenWRT sources. Search for the loadkmap word and change the line "# CONFIG_BUSYBOX_CONFIG_LOADKMAP is not set" to "CONFIG_BUSYBOX_CONFIG_LOADKMAP=y". Then launch the compilation of your ramdisk image as usual.
If you have already compile it, you can re-compile only busybox and get the new ramdisk image with :
"make package/busybox/clean; make package/busybox/install; make target/install"

The busybox package is only 0.1 Kbytes larger with this. Now add, for example, the fr-latin1.kmap to your rootfs (you can find it in the /usr/share/kmap dir of the slitaz distro). To use it, just try "loadkmap < fr-latin1.kmap". Et voila, no more headake ;)

If needed, I can provide the 8.09.1 ramdisk with loadkmap inside.


[HowTo] Add cpio archive creation in OpenWRT

Will be interesting for next step...
Like above, via the .config located in the root of the OpenWRT sources.

Search for the CONFIG_CPIO word and change the line "# CONFIG_BUSYBOX_CONFIG_CPIO is not set" to "CONFIG_BUSYBOX_CONFIG_CPIO=y". After this, add the line "CONFIG_BUSYBOX_CONFIG_FEATURE_CPIO_O=y".
Re-compile only busybox and get the new ramdisk image with :
"make package/busybox/clean; make package/busybox/install; make target/install"

The busybox package is only 0.75 Kbytes larger with this.

If needed, I can provide the 8.09.1 ramdisk with cpio and loadkmap inside.




Next HowTo to come, if I succeed it, I'll try next to had informations how to modify the ramdisk image in order to have a /jffs file on the USB key and save all your modifications there (based on this : http://oldwiki.openwrt.org/ReplaceJFFS2 … Media.html).

11 April 2010

Google Maps on Linux

Open Source GPS HOW TO

Using a Garmin Edge to Plot Cycle Routes with Google Maps on Linux, Macs and Windows

By Martyn C Davis, 14-MAY-2006


On a recent organised cycling ride in the Test Valley down in Hampshire (I'm in the UK), a friend showed me his new toy; a
Garmin Edge 305GPS-enabled bike computer. Being a bit of a gadget head I'd played around with GPS on bike rides before, but the old Garmin GPS 12 I'd had seemed almost the weight and size of a brick, it had a serial interface, and the best use I ever really got out of it was to tell me what my coordinates were, which I could then check back onto an OS map. It also had a hard time finding a signal when surrounded by tall buildings or tree cover.

I often find it quite boring riding around the same old familiar routes on my bike, but the alternative, which is figuring out a new route, then stopping every few miles to consult the sweaty OS map in my back pocket spoils the tempo of the ride. My ideal scenario would be to figure out a route beforehand, program it into a GPS, and let it lead me through the new ride. Seeing this new Garmin model rekindled my desire to get this working.

The Edge from Garmin is about the size of a SMALL mobile phone, it's light, and it's sensitive: it picks up a signal almost anywhere you are going to ride. Ideal, I thought. My friend's model was the 305, which does either heart rate or cadence, and has a barometric altimeter built in. The cheaper model, the 205, lacks the HR / cadence, and relies on GPS to calculate altitude, which is less accurate. I have a Polar watch which does all this, so I was happy to go for the 205.

First Impressions

My first impressions were pretty negative. After I'd ordered it from Wiggle I started looking around for information on the unit (OK, I know I should have done the research before ordering the thing, but I ordered it in a moment of gadget lust :). All the information I was getting back from my internet searches were people griping about how Garmin are using proprietary formats and weren't being very helpful (see, for example, this O'Reilly article on the subject).

So I received the unit and had a pretty fruitless few days trying to bend it to my will. The software that comes with the device is crap. For one, it's a Windows application. I use Linux, and Mac OS, and run Windows approximately never, but I do keep one machine (referred to in this household as
the toy machine which dual boots to allow me to test stuff and run games). Installing the Garmin software on this machine allowed me to have a brief look, and I didn't like it. It's not intuitive and it looks horrible. There's no way THAT's going to tempt me to use it. Also it's designed more for training than routing.

What do I want?

So, what do I actually want? I had a half-conceived idea that firstly I wanted to be able to use Google Maps to define a route. This would be fantastic, because not only can you zoom right in and out, but you can also see satellite imagery, which is becoming more and more detailed. This allows you to check a spot, say, to see whether it's a junction or just a bend in the road. I then would like to perhaps save that route to a GPX file (GPX is becoming an XML-based standard for GPS data transfer), which I could somehow then upload to the GPS unit. The supplied software and its help files make absolutely no mention of GPX, so (thankfully, as it's Windows) I shan't be using that.

NB: There is a site which is quite popular with cyclists called "GMaps Pedometer" which offers the ability to define routes. It's good, but it has a somewhat different aim. You CAN get GPX out of it, but only through another site and the use of a bookmarklet - hence, for GPS, it's kludgy. Also you have no control over waypoint names etc.

The Linux Approach

Plugging the Garmin unit into my Linux laptop (running Ubuntu "Breezy") via USB, and checking the system logs by typing "dmesg", I see a heartening series of messages:
    [4309364.676000] drivers/usb/serial/usb-serial.c: USB Serial support registered for Garmin GPS usb/tty     [4309364.682000] garmin_gps 5-1:1.0: Garmin GPS usb/tty converter detected     [4309364.726000] usb 5-1: Garmin GPS usb/tty converter now attached to ttyUSB0     [4309364.726000] usbcore: registered new driver garmin_gps     [4309364.726000] drivers/usb/serial/garmin_gps.c: garmin gps driver v0.23 

Garmin USB support just works. Support is built into the kernel, so the device now sits on a pseudo-serial port called
/dev/ttyUSB0. Hopefully I can find an application that will support it.

I tried a few applications without much success, and the one I kept coming back to was
GPSBabel. The UNIX command-line-based version has about a million options and took a while to figure it out, but eventually I got it working. The command line required to transfer a GPX file to the unit is, assuming that your GPX file is called "foo.gpx":
    gpsbabel -r -i gpx -f foo.gpx -o garmin -F usb: 

I've written a small script to wrap this call to make it a bit easier to remember.
You can grab a copy here.

Generating the GPX File

Next problem: generating my own GPX files! The Google Maps API is fantastic - it's great that Google have allowed third parties to make their own applications around their mapping service. This is definitely the way forward, and it didn't take much hacking before I developed a small javascript prototype application which allows me to click on the map, define a set of waypoints, naming them as I went along, and then generate a GPX file from them, which uploads OK to the Garmin device. Here's an example, which, if you copy and paste into a file, you could use to test with GPSBabel and my script.
                               RICHMNDPK                                  1-START                                           2-RIGHT                                           3-RIGHT                                           4-END                            


The latest version of this application is now out. You can find it at www.marengo-ltd.com/map2

I welcome any feedback. Join the discussion at my blog:
http://www.marengo-ltd.com/blog/. I'd love to hear from you even if it's only to tell me that you find the software useful.

Plans

My plans for the software are as follows:
  • Define routes (done)
  • Export as GPX (done)
  • Save to database (done)
  • Load from database (done)
  • Share routes with other users (done)

Conclusion

Well, reservations regarding the proprietary nature of Garmin aside, I have to say that now I've figured out how to plan routes and upload them to the device, I love it. It's got a quite loud beeper on it, to warn you of upcoming waypoints, and the battery life seems quite good. It charges via USB. If you are going on a long, multi-day trip, don't forget the charger, or your laptop and ITS charger. If you are going to be away from any electricity, there's always the USB Battery.

You can find the latest release of the GPX generation software at
www.marengo-ltd.com/map

Like I say, if you want to feed back any comments, please join the discussion at my blog:
http://www.marengo-ltd.com/blog/.

I'll be interested to see how it works with other GPS units too - drop me a note to tell me what you've got it working with.

Finally, you may also contact me at my gmail address. Use my full name (including middle initial) as quoted at the top of this article, separated by dots (like, for example, "hector.h.monro", except with my name :), and append
"@gmail.com" to it. Queries will be given much more attention if you accompany them with a small donation (see the PayPal link at the end of this page).



UPDATE: I've been asked by many people whether this is going to work under Windows. Good news... I've tested GPSBabel under XP and it does appear to. You can test this yourself by installing GPSBabel for Windows, and then, from wherever you installed the software, you can issue a command from the command line the following (assuming you've got the sample GPX file saved as "foo.gpx"):
    gpsbabel.exe -r -i gpx -f foo.gpx -o garmin -F usb: 

There's a windowed version of GPSBabel available from their site too if you are not comfortable with using the command line. There is a version for Mac OS X as well. All these work in the same way.

The only downside I see so far is that the current version of the Windows version of GPSBabel (1.2.7) doesn't seem to support the NAME of the route... all routes get imported with a name of "EMPTY", which is a bit confusing when you look at the route list, as you think "EMPTY" means "I have no routes", but that's the name of the route... I know that this has been fixed in the Linux 1.2.8 Beta release, so hopefully the Windows version will also be fixed.

So this means that the application should allow BOTH Linux users
and their unfortunate Windows brethren to both easily plot routes via Google Maps for the Garmin Edge devices. Cool.