1 of 95

Building Custom GPS Trackers From Scratch 📍🗺️🧭🌍🛰️

TJ VanToll

2 of 95

2

3 of 95

4 of 95

5 of 95

6 of 95

7 of 95

8 of 95

9 of 95

“In the twentieth century the Wisconsin legislature rejected a petition asking the U.P. to secede from Michigan and join Wisconsin.”

10 of 95

“Rabble rousers in the U.P. then petitioned to break away and form a new state with the Wisconsin Northwoods called Superior.”

11 of 95

12 of 95

13 of 95

14 of 95

</end-fact>

14

15 of 95

📡 GPS 📡

16 of 95

Agenda

  • How do trackers work?
    • How GPS works.
    • How GPS receivers work.

  • Building your own tracker
    • Part 1: Configuration only
    • Part 2: Code!

16

17 of 95

Agenda

  • How do trackers work?
    • How GPS works.
    • How GPS receivers work.

  • Building your own tracker
    • Part 1: Configuration only
    • Part 2: Code!

17

18 of 95

19 of 95

20 of 95

21 of 95

22 of 95

23 of 95

24 of 95

25 of 95

1983

2000

26 of 95

27 of 95

28 of 95

29 of 95

GNSS (Global Navigation Satellite System)

  • GPS (US)

  • GLONASS (Russia)

  • BeiDou (China)

  • Galileo (EU)

29

30 of 95

Agenda

  • How do trackers work?
    • How GPS works.
    • How GPS receivers work.

  • Building your own tracker
    • Part 1: Configuration only
    • Part 2: Code!

30

31 of 95

<fun-aside>

31

32 of 95

33 of 95

34 of 95

The heat from the friction of the air burns up the satellite as it falls toward Earth at thousands of miles per hour. Ta-da! No more satellite.”

35 of 95

“Spacecraft operators can plan for the final destination of their old satellites to make sure that any debris falls into a remote area. This place even has a nickname—the Spacecraft Cemetery!”

36 of 95

What about those higher satellites we blast farther away? Those we send into a “graveyard orbit.”

37 of 95

</fun-aside>

37

38 of 95

Agenda

  • How do trackers work?
    • How GPS works.
    • How GPS receivers work.

  • Building your own tracker
    • Part 1: Configuration only
    • Part 2: Code!

38

39 of 95

40 of 95

41 of 95

42 of 95

A GPS signal contains…

  • An identifier—so you know which satellite you’re getting data from.

  • Ephemeris data—to determine a satellite’s position, as well the the current data / time.

  • Almanac data—tells the GPS receiver where each GPS satellite should be.

42

43 of 95

GPS Signals are affected by…

  • Ionosphere and troposphere delays.

  • Tall building and large rock structures.

  • Walls

43

44 of 95

45 of 95

46 of 95

Agenda

  • How do trackers work?
    • How GPS works.
    • How GPS receivers work.

  • Building your own tracker
    • Part 1: Configuration only
    • Part 2: Code!

46

47 of 95

Why build your own tracker?

47

48 of 95

49 of 95

50 of 95

51 of 95

52 of 95

Why build your own tracker?

  • Money

52

53 of 95

54 of 95

55 of 95

56 of 95

Why build your own tracker?

  • Money

  • Customizability

56

57 of 95

AirTag limitations

  • Only work on Apple devices

  • No ability to view data outside of Apple devices

  • No ability to set up custom notifications or alerts

  • No ability to geofence

57

58 of 95

Why build your own tracker?

  • Money

  • Customizability

  • Fun! 🥳

58

59 of 95

How to build your own tracker?

59

60 of 95

Two problems

  • How to get satellite / location data?

  • How to send that data somewhere?

60

61 of 95

62 of 95

Internet of Things

62

63 of 95

64 of 95

Ray Ozzie – CEO of Blues Wireless

Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build, and test.

65 of 95

🔒 Securing your data from device to cloud

🔋 Building zero-config low-power hardware

👩‍💻 Providing an unmatched developer experience

Easy for developers and affordable for all.

65

66 of 95

Notecard

  • Global cellular/GPS or Wi-Fi
  • 500MB cell data + 10 years service
  • JSON-based API
  • Python, Go, Arduino, C/C++

66

67 of 95

Notecarrier

  • Dev boards for easy prototyping
  • Notecarrier for every scenario

67

68 of 95

Notehub

  • Route data to any cloud app
  • Fleet & firmware management
  • Secure communications

68

69 of 95

70 of 95

Agenda

  • How do trackers work?
    • How GPS works.
    • How GPS receivers work.

  • Building your own tracker
    • Part 1: Configuration only
    • Part 2: Code!

70

71 of 95

{

"req": "hub.set",

"product": "com.company.name:project"

"mode": "periodic",

"outbound": 3

}

72 of 95

{

"req": "card.location.mode",

"mode": "periodic",

"seconds": 60

}

73 of 95

{

"req": "card.location.track",

"start": true,

"heartbeat": true,

"hours": 12

}

74 of 95

Agenda

  • How do trackers work?
    • How GPS works.
    • How GPS receivers work.

  • Building your own tracker
    • Part 1: Configuration only
    • Part 2: Code!

74

75 of 95

76 of 95

77 of 95

78 of 95

Swan

  • Feather-compatible dev board
  • Plenty of flash and RAM
  • Support for C/C++, Arduino, and CircuitPython

78

79 of 95

80 of 95

81 of 95

Demo! 🎸

81

82 of 95

83 of 95

84 of 95

85 of 95

86 of 95

😬

87 of 95

88 of 95

89 of 95

90 of 95

91 of 95

92 of 95

93 of 95

Agenda

  • How do trackers work?
    • How GPS works.
    • How GPS receivers work.

  • Building your own tracker
    • Part 1: Configuration only
    • Part 2: Code!

93

94 of 95

95 of 95

Thanks!

  • dev.blues.io for Blues Wireless resources
  • 20% off Starter Kits @ http://bit.ly/that-blues
  • discuss.blues.io to join the community

TJ VanToll

@TJVanToll

95