New: the AI firewall watches the whole platform and explains each incident in plain words. See how it works

Aoife Lynch

lynchlab

@aoife_l22 · Joined April 2025

Newcomer

Engineering student · university

Topics
15
Replies
79
Points
0
Newcomer10 points to Member

Forum Replies Created

Viewing 15 posts – 31 through 45 (of 79 total)

The GPIO4 trick uses the Pi’s clock generator: it can put out a square wave at tens of MHz, and the software wiggles the frequency to make FM. A square wave is full of harmonics, so you’re also transmitting on frequencies you have no right to use. Fine for a lab demo, I wouldn’t put it on a hotel terrace.

Timestamps in UTC or it didn't happen.
♥ 0

“Upload Using Programmer” is for AVR boards with an ISP programmer. ESP32 boards don’t have any, so the menu is empty. The FTDI is a plain serial port here, use the normal Upload button.

What works for me every time with these boards:

  1. Board: AI Thinker ESP32-CAM (it’s in the esp32 package).
  2. FTDI at 5 V to the 5V pin, GND to GND, TX to U0R, RX to U0T.
  3. Bridge IO0 to GND, press the reset button, then Upload.
  4. When it says Hard resetting, remove the IO0 bridge and press reset again.

@Michael no. Live view in Hermetry needs an H.264 stream, and the ESP32-CAM serves MJPEG, which is never played. For a jam flag that’s fine anyway, you only send a number.

Timestamps in UTC or it didn't happen.
Accepted solution♥ 9

It’s the pin. GPIO 4 is on ADC2, and on the ESP32 the WiFi driver uses ADC2, so analogRead() on any ADC2 pin fails while WiFi is on. Depending on the core version you get 0, 4095 or an error in the log. Same sensor on GPIO 34 works fine. ADC1 is GPIO 32-39, and 34-39 are input-only, which is all you need for a sensor.

So: move the wire to GPIO 34 (or 32/33/35/36/39), change the pin number, done. No code changes for WiFi.

Two smaller things while you’re in there. Take 16 readings and average them, the ESP32 ADC is noisy and a bit non-linear at the ends. And send both soil_raw and soil_pct, so you can recalibrate later from the raw history without reflashing.

const int SOIL = 34;     // ADC1_CH6
uint32_t sum = 0;
for (int i = 0; i < 16; i++) { sum += analogRead(SOIL); delay(2); }
int raw = sum / 16;
int pct = constrain(map(raw, 3300, 1500, 0, 100), 0, 100);
Timestamps in UTC or it didn't happen.
Accepted solution♥ 1

4 USD × 500 is cheap next to radio certification. Take an nRF52832 module that carries its own FCC ID and CE paperwork (Raytac MDBT42Q is the one our lab uses), follow its layout rules for the antenna keep-out, and you only need the cheaper unintentional emissions testing for the whole product. Keep your firmware as is, the chip is the same.

For Hermetry: the tags themselves never log in. You put a BLE gateway on each floor (a Pi or any box with BLE and network) that listens to the adverts and reports each tag as a child device over the gateway API:

v1/gw/telemetry
{"tag-C4A1F0": {"values": {"temp_c": 4.2, "batt_mv": 2950}},
 "tag-C4A1F7": {"values": {"temp_c": 6.8, "batt_mv": 2910}}}

Hermetry creates each child the first time it sees the name, puts it in the gateway profile’s “Profile of new children”, and children never have credentials of their own. That answers Emily: one token per gateway, three or so per building, nothing per tag. A gateway takes up to 500 children by default, and each child counts toward the plan’s device limit.

If two gateways on neighbouring floors hear the same tag, decide in the gateways which one reports it, otherwise you get it twice under two names. Details: Devices behind a gateway.

Timestamps in UTC or it didn't happen.
Accepted solution♥ 6

Rachel’s guess is the likely one. Same module, different carrier board. Both have an ESP-12E with the ESP8266 on it, so your sketch and pins are the same.

The narrow one is the “v2” style (Amica design): CP2102 USB-serial chip, fits a standard breadboard with a row free on each side.

The wide one is the “v3” style (LoLin): CH340G chip, wider so it covers all the holes of a normal breadboard, and the VU pin, which is the 5 V from USB. Handy if your photo-eye’s interface needs 5 V.

Windows 10/11 usually has the CP2102 driver, not always the CH340 one. Install the CH340 driver from the chip maker (WCH), unplug and replug, and it’ll appear as a COM port. If it still shows nothing, try a cable you know carries data, a lot of short USB cables are charge-only.

For the six counters: pick one and stick with it so wiring and enclosures are the same. I’d take the narrow v2 if you prototype on breadboards and the v3 if you want the VU pin. And count the pulses with an interrupt, then send one number per minute, not one message per pulse.

Timestamps in UTC or it didn't happen.
Accepted solution♥ 1
Viewing 15 posts – 31 through 45 (of 79 total)