Skip to the content
2 layers36 × 100 mmEleph, the printed circuit board in 3D

GPS-based local relative navigation system for group of up to 6 members

Size
36 × 100 mm
Copper layers
2
Thickness
1.6 mm
Parts
56
Nets
69
Pads
202
Tracks, vias
466, 164
Pours
7
Routed
Yes
KiCad
KiCad 5 (file 20171130)
Created
13 Feb 2021
Updated
2 May 2023

Overview

Eleph is an open-source printed circuit board by FeruzTopalov, from the FeruzTopalov/eleph repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 36 × 100 mm with 56 parts on 69 nets, routed with 466 tracks and 164 vias.

It is built around the STM32F103C8T6, RFM9X and M24C64-WMN6P, with the TP4056, TPS73633DBV and AO3400 among its other parts. Its parts include 14 resistors, 13 capacitors, 9 crystals, 7 ICs and 6 switches. It belongs with the radio and wireless boards and the STM32 boards of this library.

Main components

7

README

README.md

ELEPH - Never Get Lost!

Note Development of this device has been finished, only bug-fixes in the FW are possible There is an improved version of this device being under development, please see https://github.com/FeruzTopalov/spoke

Dedicated to my friend Alexander Sadaev, rock climber.

Eleph is a GPS-based Local Relative Navigation System (LRNS) for group of up to 6 members. It allows you to share your positional data in real-time among other Eleph-devices and navigate to each of them in a relative manner by providing Distance and Azimuth information - like RADAR does.

Demonstration

Before diving into the details, watch the demo on YouTube: https://youtu.be/EMacKdg9Z_0

YouTube Video!

Problem & Solution

As long as you stay under cell-coverage a navigation, either absolute or relative, is not a problem at all. You just use your phone with maps and messengers to find or share locations. Things change when you go off-grid. Hiking, skiing, sailing or whatever outdoor activity are a potential place to lose sight of your teammates. How to navigate in the group? Hopefully, there are couple of solutions available on the market:

unfortunately all of them are commercial. But not the Eleph!

Eleph is open-source/open-hardware device which contains all major features needed for group navigation, such as:

  • Detailed absolute positional information about each device in group
  • RADAR-like interface with relative positional information about each device in group
  • Memory slots to hold the position of any device and navigate it later
  • GeoFence feature
  • Timeout feature
  • Alarm button

Due to open-source and simple and cheap hardware, Eleph is highly flexible solution that could be adapted to any use case you want:

  • Hiking
  • Climbing
  • Sailing
  • Hunting with the dogs
  • Assets tracking
  • and more...

Technology

Eleph is written in pure C and runs on STM32 microcontroller. It has GPS module to receive positional data and synchronization signal, radio transceiver to exchange with radio packets between other devices, graphical display to show information on it, EEPROM memory IC to store coordinates, tactile buttons to control the device, buzzer to notify about events and couple of LEDs.

Packet structure

GPS module provides NMEA-0183 stream at 9600 baud. Microcontroller process the stream using DMA and parse it. Fields being extracted are RMC, GGA, GSA, GSV. Those give us information about time, date, latitude, longitude, speed, course, altitude, satellites in view and in use, navigation mode and validness of data.

GPS module also provides time synchronization signal - PPS. It is used as a time reference for the transmitting and receiving radio packets inside a current group of devices. Each group operates at the specific frequency channel, the way like regular radios. Each device in a group has unique predefined number from 1 to 6, so there are 6 members in a group maximum. Eleph uses TDMA technique to give channel access for each group member, so the device number corresponds to the time-slot occupied by device. There are 125 ms timer which starts counting from the rise of the PPS pulse. First 125 ms time-slot is used to parse and prepare positional data of the device. Next six time-slots are used to exchange with the positional data between devices via radio. A device is in TX state when time-slot number is equal to the device number, and in RX state otherwise. Remaining time before next PPS is reserved for relative positions calculation and displaying the results.

Eleph uses FSK transceiver and operates in LPD 433 MHz band (please make sure you are allowed to use those frequencies in your region, change otherwise). Data rate is 2400 bps, deviation is 2400 Hz (mod index = 2), channel spacing is 25 kHz. Packet structure is shown below. It consist of 29 bytes total and takes ~97 ms to be transmitted over-the-air.

Packet structure

In order to calculate relative positions of other devices, Eleph uses two formulas. First one is Haversine formula which determines the distance between two points on a sphere. The second one is Loxodrome formula which determines bearing to a point on a sphere relative to true north. All calculations are performed with a highest possible, double precision, so the results are in a great agreement with my simulations on PC. Precision of the formulas is another matter. It is known that haversine formula is numerically better-conditioned for small distances, but on the other side it doesn't take into account ellipsoidness of the Earth and uses it's mean radius. Also it is known that loxodrome (or rhumb line) shows not-the-shortest way to reach point of interest (the shortest way is provided by orthodrome, or great circle route), but the constant bearing, which is more useful in practice. Anyway, my simulations using Google Earth Pro ruler leave me no concerns about accuracy of used formulas. According to them the error for both is less than 1% as long as the distance is smaller than 300 km (!).

Mercator

(courtesy of ESRI)


FAQ

  • Why is it called Eleph? -Eleph stands for elephant. Elephants are a social animals, they form close bonds and stay in-touch - that is the main aim of the Eleph device.
  • Why no LoRa yet? -Believe or not, but i see no reason to use LoRa in the Eleph right now. Mainly due to low data rate. Probably next time, when i shorten payload, i will switch to LoRa mode.
  • Why there is no compass? -When i started the project i thought that COG (Course over Ground) information from the GPS would be enough, and that the COG relates to the true north, while compass gives magnetic north. Obviously information about true north is more valuable. The drawback for now is that COG requires you to move, there is no way to find the direction standing still.
  • Any plans to resume the project? -Next milestone is to rework user interface, make it simpler; refuse from excessive payload information, leaving just Lat/Lon data; update schematic/hardware.
  • How can i support the project? -Eleph really needs your support. Main functionality is tested, but full and comprehensive outdoor tests are nor performed well yet. You could build it, test it on your side and report an issue if so - that is the best way to support.

Parts

56
QtyValueFootprintReferences
8100neleph:C0805C1, C6, C7, C8, C9, C10, C11, C12
6100keleph:R0805R3, R4, R5, R6, R13, R14
5Pad_roundeleph:Pad_roundX3, X4, X6, X7, X8
31keleph:R0805R7, R8, R9
3DNPeleph:R0805R10, R11, R12
210ueleph:C_tantAC5, C13
220peleph:C0805C2, C3
24.7keleph:R0805R1, R2
2Pad_ovaleleph:Pad_ovalX1, X2
10.96_OLED_SSD1306eleph:0.96_OLED_SSD1306_7pinU7
110neleph:C0805C4
1AO3400eleph:SOT-23Q2
1AO3407Aeleph:SOT-23Q1
1Buzzereleph:Buzzer_pitch7.6mmLS1
1Crystal_8MHzeleph:HC49SMXTAL1
1DNeleph:6x6switch_smdSW6
1ESCeleph:6x6switch_smdSW3
1GN-801eleph:GN-801U6
1LCKeleph:6x6switch_smdSW2
1LOGOeleph:LogoG***
1Led_greeneleph:D1206D1
1Led_redeleph:D1206D2
1M24C64WMNeleph:SOIC-8U2
1OKeleph:6x6switch_smdSW4
1PLS-1x6eleph:1x6headerX5
1Pad_ovaleleph:Antenna_terminalX9
1Power Oneleph:52x52switch_smd_lowprofileSW1
1RFM9Xeleph:RFM9XU5
1STM32F103C8T6eleph:LQFP-48U4
1TP4056eleph:TP4056U1
1TPS73633DBVeleph:SOT-23-5U3
1UPeleph:6x6switch_smdSW5

Similar boards

  • 2 layers50 × 100 mmSpoke, the printed circuit board in 3D

    Spoke

    FeruzTopalov/spoke

    Standalone LoRa-based real-time off-grid relative GPS navigation for group of up to 5 people. Improved version of LRNS Eleph

    143 parts16GPL-3.0
  • 2 layers50 × 57 mmLED driver3, the printed circuit board in 3D

    LED driver3

    xtompok/LED_driver

    3x5A PWM driver for LED strips

    131 partsMIT
  • 2 layers100.1 × 100.1 mmAMP PCBv2, the printed circuit board in 3D

    AMP PCBv2

    Autonomous-Motorsports-Purdue/AMP_PCBv2

    Files relating to version 2 of the PCB for AMP kart

    116 parts1
  • 2 layers27.9 × 33 mmRfm9xw, the printed circuit board in 3D

    Rfm9xw

    kaibader/rfm9x-sx127x-lora-breakout-board

    LoRa Breakout Board for RFM95/RFM96 or SX1276/SX1278 Modules

    9 parts1
  • 2 layers76.2 × 55.3 mmHighAltitudeBalloon, the printed circuit board in 3D

    HighAltitudeBalloon

    OxfordAerospaceAndRocketrySociety/HighAltitudeBalloon

    Please read Setup.md for instructions on installing the dependencies.

    7 parts1
  • 2 layers99.1 × 83.8 mmRC PCB, the printed circuit board in 3D

    RC PCB

    Autonomous-Motorsports-Purdue/RC_PCB

    Printed circuit board for RC control and E-Stop

    29 parts
  • 2 layers99 × 93.5 mmEsp32-rfm gateway, the printed circuit board in 3D

    Esp32-rfm gateway

    CalinRadoni/pax-Gateway

    The purpose of this gateway is to either:

    91 partsGPL-3.0
  • 2 layers63.3 × 73 mmNodes, the printed circuit board in 3D

    Nodes

    Simonhajd/Sticktility

    Stick-Tility is a handheld device that powers and reads data from snap-on sensor modules. Once a sensor is connected, it can record data at set time intervals and graph the data on its screen.

    12 parts

Questions

How big is the Eleph PCB?

It measures 36 × 100 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Eleph use?

56 parts, built around the STM32F103C8T6, RFM9X, M24C64-WMN6P and TP4056. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.

Where can I download the Eleph KiCad files?

From the FeruzTopalov/eleph repository on GitHub, at the commit this page was made from: the board is Hardware/KiCad/eleph.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Eleph design in my own project?

Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).