lm3s1968: merge the DevelGPS example application.
[bertos.git] / examples / develgps / README
1 = DevelGPS v0.1 =
2
3 == Overview ==
4
5 The purpose of this project is to implement a portable GPS locator / geocaching
6 finder tool using the Cortex-M3 based Luminary Micro LM3S1968 evaluation board.
7
8 The device proposes a user interface to configure the GPS coordinates of a
9 target location and shows on the OLED display the direction and distance to
10 reach the target.
11
12 == Hardware requirements ==
13
14  - Luminary Micro LM3S1968 Evaluation Kit
15  - a GPS module
16  - a mobile phone battery
17
18 == Software requirements ==
19
20  - BeRTOS kernel
21
22 BeRTOS components used for this project:
23  - Kernel with preemptive scheduler and task priorities
24  - Device drivers: UART, OLED display, navigation/select pushbuttons
25  - NMEA parser
26  - GFX library (+ menu management module)
27
28 == Implementation ==
29
30 The GPS module is connected to UART1 RX pin (UART0 is kept for debugging
31 purposes). The mobile phone batter is used as a power source both for the GPS
32 module and the LM3S1968 board.
33
34 From the software's point of view, BeRTOS already provides the drivers to
35 manage all the required devices and a NMEA parser to retrieve the right
36 informations from the raw GPS strings: position, date & time, link quality.
37
38 The multi-process environment and preemptive scheduler provided by BeRTOS is
39 exploited to create independent threads operating in producer/consumer way:
40  - a thread takes care of retrieving and processing NMEA string from the UART,
41  - a thread manages the GUI, updating the OLED display on new GPS informations
42    or user's input,
43  - a thread reports the status of the GPS receiver blinking a LED when GPS data
44    are correctly received.
45
46 The GUI is organized using a main menu that allows to select:
47  - a form to insert the target GPS coordinates,
48  - a form showing a compass with target direction, distance and GPS positions
49    to reach the target,
50  - a form to show the status of the GPS receiver.
51
52 NOTE: the distance is evaluated using the Haversine formula between the current
53 and target GPS position. The Haversine formula remains particularly
54 well-conditioned for numerical computation even at small distances, making the
55 device particularly useful when walking, hiking or moving at a close distance
56 to the target.