Close
0%
0%

EXPLOG : Exploration Logger

A modular & multi-purpose embedded sensor device that can log navigation, weather & kinematic parameters and share data over WiFi, BT & LoRa

Similar projects worth following
EXPLOG is a modular and portable logging device that packs many embedded sensors. It can monitor and log various navigation, weather and kinematic parameters such as accurate GPS location, direction, speed, acceleration, orientation, temperature, pressure, altitude, humidity, air quality, noise level, light intensity, and proximity simultaneously. The saved data can be exported to a computer or phone via USB, WiFi or Bluetooth and also an on-board LoRa transceiver allows data sharing between devices and remote data acquisition. It can be used for research, fitness and sports performance analysis, and can function as a portable weather station and a surveillance device.

The name is a wordplay on "exploration" and "logger".

This project is under prototyping stage. I'm using ESP32 as the main controller. All the sensors are in the form of breakout modules for now. Once I complete the prototyping, I plan to make a custom PCB and a 3D printed case.

[This is the description page of current state of EXPLOG project. This will be updated occasionally. So please keep an eye on the logs to know what happens when.]

EXPLOG stands for "Exploration Logger". It is an opensource device that can log a variety of navigation, weather and kinematic parameters very precisely. It is a modular, multi-purpose and multi-sensor device that is available in many form factors. It's nothing groundbreaking or cutting edge, but simply a device that integrates widely available embedded sensors in a single portable form factor. This is helpful when you're exploring new places and go hiking. You may already have GPS on your phone, or an altimeter on your watch. But why can't we have a single, device that can fulfill every data logging requirement we need ? You could be exploring a forest, some mountains or a tribal village for your thesis. Or you'd using a drone or a wheeled robot to explore a place that you normally can't access such as a disaster struck place. In any such situations, having a device that can show you everything from temperature, pressure, your current altitude to your GPS location could become really handy. EXPLOG tries to accomplish that. There are three form-factors EXLPOG will be available,

  1. EXPLOG Standard - A handheld version with high capacity 18650 Li-Ion cells and TFT/monochrome LCD.
  2. EXPLOG Mini -  Smaller version which is a self-powered, detachable module that can be attached to your robot or drone.
  3. EXPLOG Black Box - A compact module without a display but all the rest of the features.

Features

  • High sensitivity unassisted GPS.
  • Geo-location alarm.
  • Ambient temperature measurement.
  • Pressure and altitude measurements.
  • Humidity measurement.
  • Air quality measurement (particulates and other gases)
  • Ambient noise level measurement.
  • Light intensity measurement (Visible, IR and UV)
  • IR Proximity measurement.
  • Compass/Magnetometer for navigation.
  • Orientation and acceleration sensing with Gyro and Accelerometer.
  • microSD card support.
  • WiFi and Bluetooth connectivity with ESP32.
  • Remote data sharing and acquisition through LoRa transceiver module.
  • Li-Ion cells (3.3V operation and 6000 mAh capacity for standard version)
  • TFT/Monochrome LCD.
  • USB connectivity.
  • External I2C and SPI interfaces.

Application Areas

  1. Scientific Research - this all-in-one embedded sensor package lets you collect climate information with accurate time and geographical location.
  2. Sports and Fitness- lets you collect sports performance data for real-time and post analysis. EXPLOG will be a persistent companion throughout your expedition, recording everything on your path without troubling you.
  3. Robotics - being modular and power redundant makes EXPLOG a suitable addition for remotely operated robots and drones. It is easier and convenient to use a standalone sensor module than to integrate everything onto the robot itself. Data from EXPLOG can be shared to the robot controller in real-time.
  4. Security and Surveillance - when you open the door to your room, a sudden pressure change happens. Together with noise level and proximity measurement, you can detect intrusions at homes or offices. EXPLOG can notify you in such events over internet connected through WiFi.
  5. Weather Forecasting - sudden variations in pressure and humidity could be an indication of an imminent storm. EXPLOG can monitor these and warn you, which makes it your personal weather station.
  6. Agriculture - lets you monitor and log climate conditions of your greenhouse or farm. EXPLOG can be programmed to notify you in case of any abnormalities. 
... Read more »

ESP32-Devkit-Pinout-Rev_12-HiRes.png

High resolution PNG file of ESP32 DevKit pinout diagram.

Portable Network Graphics (PNG) - 1.69 MB - 04/23/2018 at 18:29

Preview
Download

ESP32-Devkit-Pinout_19.pdf

PDF file of ESP32 DevKit Pinout diagram. Shared under CC-BY-SA.

Adobe Portable Document Format - 161.87 kB - 04/23/2018 at 18:27

Preview
Download

Block Diagram_4.pdf

PDF file of EXPLOG System Block Diagram.

Adobe Portable Document Format - 12.78 kB - 04/23/2018 at 18:25

Preview
Download

Open Data Pool_2.pdf

PDF file of Open Data Pool concept design.

Adobe Portable Document Format - 11.33 kB - 04/23/2018 at 19:14

Preview
Download

  • 1 × Espressif ESP-WROOM-32 (Rev 1) The main controller module
  • 1 × SX127X LoRa Transceiver Module
  • 2 × 18650 Li-Ion Cells For Standard version
  • 1 × 1.8" 128x160 TFT LCD Display with 3 wire SPI interface
  • 1 × Mediatek MT3339 GPS Module Or any other similar ones.

View all 8 components

  • First 3D Printed Enclosure

    Vishnu M Aiea05/19/2018 at 11:28 0 comments

    Exciting moment! EAZYFAB, an on-demand 3D printing service provider from Kozhikode, Kerala, India came forward to sponsor a single print for the EXPLOG project and they did. Thanks to Sijah AK and Nabeel BA from EAZYFAB. I sent them the STL files exported from Fusion 360. It was printed with PLA and the print is very sturdy.

    Bottom section
    Bottom
    GPS window
    That's how GPS will be installed
    Middle section
    Top section
    Two 18650s fit perfectly
    Roughly the size of a 5" smartphone. Shown is Moto G2

    This is just a sample print to see if the sizes and placements are satisfying. I'll have to modify this further as I develop the PCB and add more modules. I still don't know how to make the buttons and haven't decide the placements of antennas. I'm thinking of 3D printing the buttons with either flexible rubber or PLA itself. If you have any suggestions on making good buttons, please let me know in the comments :)

  • The Grand Plan

    Vishnu M Aiea04/23/2018 at 16:29 0 comments

      So far we've been discussing about the system design, which sensors to use etc. I think now I'm able to see the big picture. So here's the grand plan for the development of EXPLOG.

      Hardware

      First I need to buy all the sensors and modules from different stores and test them for their performance and possible constraints. Most of the sensors are available as breakout modules from many Chinese online stores. The rest can be bought from DigiKey or Mouser. If you own any sensors I have listed on one of the previous logs, and is willing to test them and share the results, that would really save me some time. Doing so will make you a contributor to this project and will be added to the team.

      Once we finish testing the sensors and the prototyping, we then will have to design a custom SMT PCB as per our form factors.

      Firmware

      The main interfaces will be the 1.8" TFT LCD and 7 button keypad though which the user can interact with the device. Programming can be done on the ESP-IDF framework as it better implements the plethora of hardware features available on ESP32. FreeRTOS tasks will be used for simultaneous operations. The task distribution will look like this,

      1. Task 1 (core 0) - will repeatedly read values from all sensors on the I2C bus and update the global sensor readings variables. The keypad controller will be read when there there's an interrupt occurs at the event of user interaction. A dedicated input will be used for interrupt.
      2. Task 2 (core 0) - will update the display with information from the sensors depending on the current user interaction.
      3. Task 3 (core 0) - will save the data read from sensors to a CSV file on the micro SD card.
      4. Task 4 (core 0) - will read the NMEA data from the GPS module and update the variables.
      5. Task 5 (core 0) - will handle the LoRa protocol.
      6. Task 6 (core 1) - will handle WiFi and Bluetooth.

      Utility Software

      I plan to design a utility software for EXPLOG that can fetch data from the device, visualize them in real-time and save it if required. I'm considering Processing platform for this.

      Smartphone Application

      A smartphone application can be used to connect to the EXPLOG via WiFi or Bluetooth and visualize data. Applications written in Processing can be exported to run on Android phones easily. Will have to see how far we can go with it.

      Cloud Platform

      A cloud platform dedicated for sharing data from EXPLOG devices all around the world sounds a pretty bold idea. Users will be able to save the data from their device to the cloud by connecting to the internet and share the data to the Open Data Pool. Others can use these data for climate studies and a whole lot of other applications. Cool!

      Enclosure

      The enclosure can be 3D printed on PLA material. The 3D models are designed in Fusion 360 and the source files will be made available to the public.

      Marketing

      If this project gains enough attention from the open source community and other interested enthusiasts, I would be able to sell EXPLOG as product at marketplaces such as Tindie for a reasonable price.

  • Thoughts On Using A Coprocessor

    Vishnu M Aiea04/21/2018 at 16:01 0 comments

      ESP32 is a feature packed power house when it come to price-performance ratio which makes it ideal for all IoT applications. But there's one tiny drawback - limited number of GPIO pins. On the ESP-WROOM32 module, some pins are used by the flash chip and can't be used for other purposes. Some other set of pins can only be used as inputs, not outputs. As per the datasheet, ESP32 has 34 GPIOs of which I/O GPIO pads are 0-19, 21-23, 25-27, 32-39, while the output GPIOs are 0-19, 21-23, 25-27, 32-33. GPIO pads 34-39 are input-only. So in total we get 22 I/O pins and 4 input only pins.

      Even though it is not apparent in this initial phase of the project, sooner or later we're going to run out of pins if we're going to add more sensors and stuff in future. That's why I'm considering adding a less powerful but GPIO rich coprocessor to the design. The second processor or microcontroller could offload some tasks from the ESP32 chip giving us more room for some possible number crunching tasks. For that I'm considering the AVR Xmega series ATxmega128A3U which has 50 IO pins (64 pin package) which is plenty. It runs at 32MHz, has 128KB flash, 8KB SRAM, 7 UART, 10 SPI, 2 I2C and one USB modules.

      Let's estimate the pin requirements for each interfaces.

      1. SD card - 4 (hardware SPI)
      2. Display - 4 (3 wire SPI with MOSI only and CD)
      3. I2C for sensors - 2
      4. GPS - 2 (hardware or software UART interface)
      5. USB to Serial - 2 (software of hardware UART)
      6. LoRa module - 4 (hardware SPI)
      7. Keypad controller interrupt - 1

      So that's 19 of available 26 pins and we still have 7 pins left. If we ever use up all the pins left, we'll have to add a coprocessor.

  • Choosing the Right Sensors

    Vishnu M Aiea03/19/2018 at 11:21 3 comments

    EXPLOG needs a lot of sensors obviously and there's a large list to choose from. Some of the criteria for selection of sensors are,

    • Size - must be small with less than 5 mm height, and be surface mountable and reflow solderable  or through-hole solderable.
    • Interface - I2C compatible.
    • Operating voltage - 3.3V
    • Calibration - should be either factory calibrated or user calibratable.
    • Global availability
    • Cost

    We need to make the right choices by considering the global availability and cost of each sensor to make sure that others will be able to get them to replicate/modify the device. These are what I've been able to come up with. Datasheets of all these sensors will be available at the file section of this project.

    Barometric Pressure Sensor

    1. DPS310 from Infineon
    2. BMP280 from Bosch
    3. BMP380 from Bosch
    4. BMP388 from Bosch
    5. BME680 from Bosch
    6. MPL3115A2 from Maxim

    We need a sensor to accurately measure barometric air pressure becasue we need accurate pressure measurements for calculating the altitude accurately. DPS310 was my first choice becasue I had received an evaluation module from Infineon as part of a give away. But not everybody is going to get these as they are not available in the usual maker markets. BMP280 on the other hand is widely available and most are familiar with. But they're not the best ones out there. Let's have a comparison of features of sensors from leading manufacturers.

    DPS310BMP280BMP380BMP388BME680MPL3115A2
    Operation range300 - 1200 hPa300 - 1100 hPa300 - 1250 hPa300 - 1250 hPa300 - 1100 hPa200 - 1100 hPa
    Abs. Max. Pressure10000 hPa20000 hPa20000 hPa20000 hPa20000 hPa5000 hPa
    Max. Resolution (Pressure)24-bit20-bit24-bit24-bit20-bit20-bit
    Precision0.005 hPa0.0016 hPa0.003 hPa0.0016 hPa0.0018 hPa0.0025 hPa
    Absolute Accuracy ± 1 hPa± 1 hPa ± 0.5 hPa± 0.5 hPa± 0.6 hPa± 4 hPa
    Relative Accuracy± 0.06 hPa± 0.12 hPa± 0.06 hPa± 0.08 hPa± 0.12 hPa± 0.5 hPa
    Temperature Coefficient Offset0.5 Pa/K1.5 Pa/K1.2 Pa/K± 0.75 Pa/K± 1.3 Pa/KNA
    Sampling Rate128 Hz157 Hz200 Hz200 Hz182 Hz100 Hz
    FIFO Size32 samplesNA512 Bytes512 BytesNA32 samples
    Current Consumption @ 1Hz1.7 uA2.7 uA2.7 uA3.4 uA4.2 uA8.5 uA

    -

    From evaluating the specifications, BMP380 and BMP388 seem to be the best choices becasue they provide better absolute and relative accuracies, higher sampling rate, highest bit depth and higher absolute maximum pressure. The BME680 is special becasue it crams a pressure, temperature, humidity and air quality sensors in a single package. It might save some PCB real estate but can't compete with specs of other single purpose sensors, and it's going to cost higher than others. So we won't be using that. The DPS310 has its problems such as lower sampling rate, lower FIFO size etc, and it is priced similar to others. So these reasons also favor BMP380 and BMP388.

    Absolute accuracy is how close the output reading to the actual reading of absolute pressure (absolute pressure is the pressure reading taken with a zero pressure as reference). The more accurate the absolute pressure, more will be the accuracy of our calculated true altitude relative to seal level. So if we need more accurate altitude measurements we need more absolute accuracy. On the other hand, relative accuracy, as you guessed, is the degree of error between two relative pressure readings (absolute error on two relative readings will be same). This reading is crucial because it is what helps us to determine the relative elevation, for example how high a drone from the ground is etc.

    Temperature Sensor

    Most pressure and humidity sensors come...

    Read more »

View all 4 project logs

Enjoy this project?

Share

Discussions

Midhun Mathew wrote 05/29/2018 at 16:17 point

Awesome brw

  Are you sure? yes | no

Vishnu M Aiea wrote 05/31/2018 at 13:19 point

Thanks bro :)

  Are you sure? yes | no

Jan wrote 04/23/2018 at 19:32 point

Very nice idea there mate. I just looked up the Espressif ESP-WROOM-32 datasheet. Amazing piece of hardware. Packs everything your project needs, especially regarding connectivity. Even SD support etc...

Wish you all the best with your project!

  Are you sure? yes | no

Vishnu M Aiea wrote 04/23/2018 at 19:38 point

Yeah, ESP32 is a real boon for makers. Thank you very much :)

  Are you sure? yes | no

David H Haffner Sr wrote 03/21/2018 at 07:39 point

Very nice 3D rendering!

  Are you sure? yes | no

Vishnu M Aiea wrote 03/21/2018 at 08:36 point

Thanks. Did on Fusion 360 and rendered on the cloud :)

  Are you sure? yes | no

David H Haffner Sr wrote 03/21/2018 at 09:06 point

Ha, I just re-designed my project using Fusion 360 and glad I did :)

  Are you sure? yes | no

Vishnu M Aiea wrote 03/21/2018 at 09:16 point

The cloud rendering is a life saving feature. Gets 4000px final renders within 20 minutes of queue time.

  Are you sure? yes | no

Andrej Mosat wrote 03/17/2018 at 22:34 point

I am interested in the mechanical and electrical construction of the keyboard. Any hints?

  Are you sure? yes | no

Vishnu M Aiea wrote 03/18/2018 at 09:48 point

It's just a 3D model for now and that's how I want the keypad/keyboard to be. For prototyping we'll be 3D printing the enclosure and 3D printing the buttons not going to work I suppose. We'll need to make just the buttons with silicon or some similar material with which I have no experience. But for proto we'll do a makeshift keypad.

Do you have experience with making and integrating keypads ? I'm sorry, but I couldn't understand what you meant by "hints".

Thanks for showing interest and for the comment :)

  Are you sure? yes | no

bobricius wrote 03/16/2018 at 13:07 point

Everything is nice nice, except display. Nokia 5110 display have very bad connection to board.

  Are you sure? yes | no

Vishnu M Aiea wrote 03/16/2018 at 13:31 point

Yeah, I initially planned to use it becasue monochrome LCDs will offer better outdoor visibility under sunlight and also consumes only a little power. I plan to use 1.8" TFT LCD instead. 

  Are you sure? yes | no

bobricius wrote 03/16/2018 at 13:38 point

look at eadogs displays, they are litle expensive but they have future, more sizes, muti color backlit and arduino compatible https://www.lcd-module.com/produkte/dog.html

  Are you sure? yes | no

Vishnu M Aiea wrote 03/16/2018 at 13:34 point

I'll soon upload a current and better (revision 2) exploded view.

  Are you sure? yes | no

Vishnu M Aiea wrote 03/16/2018 at 13:43 point

Thanks. Will check it out.

  Are you sure? yes | no

Bayu Abi Pamungkas wrote 03/15/2018 at 08:02 point

great project bro, can't wait for it!

  Are you sure? yes | no

Vishnu M Aiea wrote 03/15/2018 at 12:22 point

Thanks for the support :)

  Are you sure? yes | no

SHIJITH A C wrote 03/14/2018 at 16:19 point

Great Work Bro,All the best.

  Are you sure? yes | no

Aravind AJ wrote 03/14/2018 at 15:45 point

Cant Wait!

  Are you sure? yes | no

althafa4786 wrote 03/14/2018 at 08:47 point

Day by day you your skill going up best wishes

  Are you sure? yes | no

SYED JUNAID AHMED wrote 03/14/2018 at 06:42 point

All the best bro ,want to collaborate if possible

  Are you sure? yes | no

Prasanth KS wrote 03/14/2018 at 04:00 point

Well done bro! 

  Are you sure? yes | no

Vishnu M Aiea wrote 03/14/2018 at 06:42 point

Thanks :)

  Are you sure? yes | no

SOORAJLALS wrote 03/14/2018 at 00:55 point

GOOD. ALL THE BEST 

  Are you sure? yes | no

Vishnu M Aiea wrote 03/14/2018 at 06:42 point

Thanks :)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates