Skip to content

trichl/WildFiOpenSource

Repository files navigation

WildFi Tag

Open source modular biologger with 2.4 GHz connectivity (Bluetooth LE, WiFi, ESP NOW). This repository includes hardware design files of the WildFi tag and WildFi extension boards, embedded software, software architecture, software for the ESP32 CAM gateways, an Android app for remote data download, and decoding software.

WildFiTagREV6

Sensors and Communication Interfaces

  • The WildFi tag integrates an ESP32 Pico D4 microcontroller and following additional components:
    • 9-axis inertial measurement unit (Bosch BMX160)
    • 4-in-1 environment sensor (Bosch BME680)
    • Temperature-compensated real time clock (Micro Crystal RV-8803-C7)
    • NAND Flash memory (Micron MT29F2G01ABAGDWB-IT:G TR)
    • Solar energy harvester (STM SPV1050)
  • The WildFi tag has a 16-pin extension port for USB debugging and programming and a 20-pin extension port for attaching additional sensors
  • The 20-pin extension port gives access to following communication and control interfaces:
    • 1 x I2C (shared bus with Bosch BMX160, Bosch BME680 and Micro Crystal RV-8803-C7)
    • 1 x SPI (shared bus with Micron MT29F2G01ABAGDWB-IT:G TR)
    • 1 x I2S
    • 1 x UART
    • 3 x GPIOs
    • 2 x power control lines (allowing for independent powering of sensors and memory modules)

Pinout of the ESP32 Pico D4 and the Extension Ports

ESP32PinoutV2

WildFiTagREV6-Extension-Ports

Connecting a Battery

WildFiTagREV6Connectors

  • Onboard connector type: JST SM02B-SURS-TF(LF)(SN)
  • Compatible wire connector (AWG #32, max. 500 mA, 150 mm): JST 02SUR-02SUR-32W150
  • During radio calibration the ESP32 requires a very short (< 1 ms) current peak of up to 500 mA
    • It is recommended to use a lithium-polymer battery (LiPo) with at least 70 mAh capacity
    • Smaller batteries might be used when radio transmission is deactivated
    • Other battery types might be used as well (e.g., 18650)
      • Input voltage range of the WildFi tag: 3.3 - 5.0 V

Connecting a Solar Panel (Optional)

  • Onboard connector type: JST SM02B-SURS-TF(LF)(SN)
  • Compatible wire connector (AWG #32, max. 500 mA, 150 mm): JST 02SUR-02SUR-32W150
  • Supported solar cells: all types (polycrystalline, monocrystalline, triple-junction, photodiodes) with an open-circuit voltage between 0.55 and 4 V
  • The solar harvesting circuit is activated by closing the solder jumper on the backside of the WildFi tag:

WildFiTagREV6SolarJumper

Hardware Layouts

IDE for Software Development (Windows)

  • Visual Studio Code (>= 1.54.3) with PlatformIO (Core >= 5.1.1, Home >= 3.3.4)
  • After compilation three binary files are generated
    • bootloader.bin: the bootloader firmware
    • partitions.bin: includes the flash partition table for the ESP32
    • firmware.bin: includes the actual WildFi firmware
    • When using PlatformIO to compile: The files are automatically generated in Software/WildFiFirmware/.pio/build/pico32
  • Alternative IDE: Eclipse (eclipse-cpp-2020-09-R-win32-x86_64) and idf-eclipse plugin (tutorial: https://github.com/espressif/idf-eclipse-plugin/blob/master/README.md), project stub with complete software architecture integration for Eclipse is located in Software/WildFiSoftwareArchitecture

Flashing the Firmware

  • To flash software on the ESP32, the WildFi tag needs to be attached to the USB breakout board (red arrows indicate the programming board settings when no external battery is connected to the WildFi tag) und the USB connector to a computer (flashing is done via the UART bridge integrated on the USB breakout board):

WildFiTagProgramming

  • Software can be flashed via PlatformIO directly (PlatformIO automatically executes the following command: C:\Users\[username]\.platformio\packages\tool-esptoolpy\esptool.py --chip esp32 --port "COM99" --baud 460800 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0x10000 .pio\build\pico32\firmware.bin)
  • Or by using FlashDownloadTool/esptool/esptool.py directly (see above for flashing command)
    • Python needs to be installed (latest version)
  • Or by using FlashDownloadTool/flash_download_tool_3.9.6.exe with following settings: Choose ChipType: ESP32 unless otherwise defined WildFiTagSettings

ESP-IDF Software Framework

Efuse Settings (Optional)

  • First tag boot: flash voltage is set to 1.8V by MTDI pin (due to attached flash memory module), leading to a flash error while booting and let the ESP32 perform a RTCWDT_RTC_RESET (no side effects)
  • To fix: write flash voltage permanently to 3.3V (ignoring GPIO12 = MTDI pin): FlashDownloadTool/esptool/espefuse.py --port COM99 set_flash_voltage 3.3V (python espefuse.py -p COM99 set_flash_voltage 3.3V), sdkconfig settings: Serial flasher config: DIO and 40 MHz
  • Python scripts require Python to be installed
  • Get esptool via Windows command line: pip install esptool

Attitude Estimator

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •