Commit graph

28 commits

Author SHA1 Message Date
rbaron
0d307d8ef5 Defaults to BLE protocol version 1
I'll keep it at v1 until at least the ESPHome and Home Assistant bridges
versions are released with support to v2.
2022-03-15 08:52:37 +01:00
rbaron
b4acd3fad7 Unsets debug flags 2022-03-14 18:25:09 +01:00
rbaron
8fd4d7222a Implements BLE protocol v2
The only change from v1 is how the temperature is encoded. In v2, two
bytes at offset 4 and 5  represent a 16-bit signed int (in big-endian).
It contains the temperature in degrees Celsius *  100.

Fixes #29
2022-03-14 18:23:49 +01:00
rbaron
1abff035cb Adds PRST_BLINK_LED config to save battery 2022-02-12 18:37:43 +01:00
rbaron
e16f61509c Add support for using the nRF52 preprogrammed random MAC address
Each nRF52 chip comes preprogrammed with a random static MAC address.
This is the default MAC address that is used if we don't specify one.

Fixes #25
2022-01-06 22:12:34 +01:00
rbaron
85643fe41e Cleans up debugging code 2021-10-09 09:33:50 +02:00
rbaron
bebf8c0a13 Adds code for reading the phototransistor values 2021-10-09 09:33:23 +02:00
rbaron
9b90d5a112 Disabled debug and set deep sleep time to 5 minutes 2021-09-24 19:08:10 +02:00
rbaron
d8aea1d4ef Introduces version-specific config & condition BLE lux encoding
In the BLE service data payload, one of the reserved bits is now used to
indicate whether or not the ambient lux value is encoded in the packet.
Bit 0 of the first byte is now the `has_lux` bit. If it is set, bytes
16-17 in the service data will contain the ambient lux. If `has_lux` is
not set, bytes 16-17 may not exist (for compatibility with older
firmwares) or may hold meaningless values.

This commit also introduces version-specific configuration in
prst_config.h. Photoresistor config, for example, is only meaninful for
version 1.1.x.
2021-09-22 22:39:11 +02:00
rbaron
a00559a98b Uses better LDR x lux model 2021-09-22 22:38:30 +02:00
rbaron
a3943bc298 Updates PHOTO_V pin to P0.29 in prst_config.h 2021-09-22 22:38:30 +02:00
rbaron
e32803d44d Improvements to photo resistor-based lux estimation
- Code now compiles
- Estimation of the photo resistor resistance works
- Lux estimation from the photo resistor resistance needs more work and calibration
- Lux is now encoded in the BLE advertisement payload
2021-09-22 22:38:30 +02:00
chentadot
c9b05859e4 First draft for Photoresistor
the code now should setup and use the photoresistor and read it's value by the adc.
the returned value is 0 just as a place holder until the correct values are measured.
2021-09-22 22:38:30 +02:00
Jan-Henrik Bruhn
60071b5fde Fix pinout for fast discharge pin 2021-09-03 12:01:24 +02:00
rbaron
837a30ba03 Adds the whole MAC address in the advertisement packet 2021-05-02 12:14:52 +02:00
rbaron
3b0e2043f2 Mass cleanup 2021-04-01 14:45:35 +02:00
rbaron
463fdb5ef4 Corrects the raw ADC soil mesasure given the current input voltage 2021-03-31 20:12:47 +02:00
rbaron
d215d5f4a7 Sets transmitting power to +8dB 2021-03-31 18:37:50 +02:00
rbaron
3c7180fefa Adds run_counter to ble advertising packet 2021-03-28 10:44:33 +02:00
rbaron
37fd1173ec Sets MAC address to a random static value 2021-03-26 17:18:38 +01:00
rbaron
6ec48b7188 Puts soil moisture reading into the BLE advertisement packet 2021-03-26 16:30:09 +01:00
rbaron
30162f4628 Cleans up logging 2021-03-26 13:45:28 +01:00
rbaron
c2e3723eb0 Adds temp and humidity values to the BLE advertisement packet 2021-03-26 10:49:28 +01:00
rbaron
81b33fbd8c Handles SHT3C sensor
...And this is the first time I'm flashing the firmware into a real
b-parasite board!
2021-03-26 10:29:54 +01:00
rbaron
fb07a1244c PWM start/stop in RTC callback.
I initially tried calling prst_pwm_init() in main(), and just using start/stop in
the callback, but that led to a weird behavior in the PWM output. It was set to
high after the end of the callback.

Callnig uninit/re-calling init() inside the RTC callback fixed, but more investigation
is required.
2021-03-14 15:03:33 +01:00
rbaron
05dcb9de84 Hard coded PWM with 500kHz frequency works 2021-03-14 14:30:32 +01:00
rbaron
20243a26a2 Extracted BLE to src/prst/ble.{c,h} 2021-03-14 11:06:45 +01:00
rbaron
a5c932def2 Extracts RTC stuff to src/rtc.{c,h} 2021-03-13 16:49:55 +01:00