Logger Pro

Battery-powered industrial data logger: pulse counting, 4-20 mA loops, 0-5 V input and switched sensor supply rails, reporting over LTE.

Overview

  • ESP32 (MicroPython v1.25), deep-sleep duty cycle, ~116 uA sleeping

  • Quectel EG915 LTE modem (findylab.modem.eg915)

  • 2x digital pulse inputs counted by the ULP co-processor - counting continues through deep sleep (findylab.sensor.counter)

  • 2x 4-20 mA analog inputs + 1x 0-5 V input + external-power monitor on an external I2C ADC (findylab.core.fw.adcMeasure())

  • Switched 5 V and 12 V sensor rails (Relay)

  • Reed switch wakeup (magnet-triggered alarm reports)

  • Buzzer for on-site feedback

Pin map

Function

GPIO

Notes

Modem power rail

17

Held through deep sleep

Modem PWRKEY

23

Power-on pulse

Modem UART TX (ESP32 side)

21

Modem RX

Modem UART RX (ESP32 side)

36

Modem TX

Modem DTR

5

Slow-clock (sleep) control

I2C SCL / SDA

19 / 18

External ADC, address 104

Peripheral power

25

Sensor bus supply enable

Relay 5 V / 12 V

22 / 12

Switched sensor rails

Pulse input 1 / 2

4 / 14

Counted by the ULP (RTC GPIO 10 / 16)

Reed switch

15

EXT0 deep-sleep wakeup

Buzzer

27

5 kHz PWM

Note

This board revision has no dedicated modem RESET or PSM pins, so findylab.modem.eg915.reset() power-cycles the supply rail and sleep is a plain machine.deepsleep() (no network PSM negotiation).

Duty cycle

  1. Wake up (timer at a round boundary of parameter 421, reed switch, or watchdog).

  2. measure() - power the sensor rails, warm up (parameter 587), read the ADC channels, collect the ULP pulse counters, evaluate the min/max alarms, store everything in the database.

  3. Every N wakeups (ratio 422/421) or on an alarm: report() - turn the modem on, register, send the datalist parameters to the server, execute any queued server commands.

  4. Deep sleep until the next round boundary.