From 3e206715fd5b885b89d42ec2ec9b5d6bce654d3a Mon Sep 17 00:00:00 2001 From: Kai Lauterbach Date: Fri, 11 Nov 2022 11:11:25 +0100 Subject: [PATCH] Updated required libraries --- .../Adafruit_BMP280.cpp | 493 +++++++++++++++++ .../Adafruit_BMP280_Library/Adafruit_BMP280.h | 267 +++++++++ .../Adafruit_BMP280_Library/README.md | 47 ++ .../Adafruit_BMP280_Library/assets/board.jpg | Bin 0 -> 464067 bytes .../examples/bmp280_forced/bmp280_forced.ino | 72 +++ .../bmp280_sensortest/bmp280_sensortest.ino | 71 +++ .../examples/bmp280test/bmp280test.ino | 72 +++ .../Adafruit_BMP280_Library/keywords.txt | 57 ++ .../library.properties | 10 + .../Adafruit_BusIO_Register.cpp | 365 +++++++++++++ .../Adafruit_BusIO/Adafruit_BusIO_Register.h | 105 ++++ .../Adafruit_BusIO/Adafruit_I2CDevice.cpp | 313 +++++++++++ .../Adafruit_BusIO/Adafruit_I2CDevice.h | 36 ++ .../Adafruit_BusIO/Adafruit_I2CRegister.h | 10 + .../Adafruit_BusIO/Adafruit_SPIDevice.cpp | 508 ++++++++++++++++++ .../Adafruit_BusIO/Adafruit_SPIDevice.h | 138 +++++ .../libraries/Adafruit_BusIO/CMakeLists.txt | 11 + firmware/libraries/Adafruit_BusIO/LICENSE | 21 + firmware/libraries/Adafruit_BusIO/README.md | 8 + .../libraries/Adafruit_BusIO/component.mk | 1 + .../i2c_address_detect/i2c_address_detect.ino | 21 + .../examples/i2c_readwrite/i2c_readwrite.ino | 41 ++ .../examples/i2c_registers/i2c_registers.ino | 38 ++ .../i2corspi_register/i2corspi_register.ino | 38 ++ .../examples/spi_modetest/spi_modetest.ino | 29 + .../examples/spi_readwrite/spi_readwrite.ino | 39 ++ .../spi_register_bits/spi_register_bits.ino | 192 +++++++ .../examples/spi_registers/spi_registers.ino | 34 ++ .../Adafruit_BusIO/library.properties | 9 + .../Adafruit_Sensor.cpp | 81 +++ .../Adafruit_Unified_Sensor/Adafruit_Sensor.h | 264 +++++---- .../Adafruit_Unified_Sensor/LICENSE.txt | 202 +++++++ .../Adafruit_Unified_Sensor/README.md | 24 +- .../examples/sensortest/sensortest.ino | 153 ++++++ .../library.properties | 3 +- firmware/libraries/UrlEncode/LICENSE | 21 + firmware/libraries/UrlEncode/README.md | 11 + .../UrlEncode/examples/Encode/Encode.ino | 11 + firmware/libraries/UrlEncode/keywords.txt | 1 + .../libraries/UrlEncode/library.properties | 10 + firmware/libraries/UrlEncode/src/UrlEncode.h | 37 ++ firmware/libraries/WiFiManager/README.md | 2 +- .../libraries/WiFiManager/WiFiManager.cpp | 134 +++-- firmware/libraries/WiFiManager/WiFiManager.h | 92 ++-- .../WiFiManager/examples/Basic/Basic.ino | 4 +- .../OnDemandConfigPortal.ino | 15 +- .../Tests/wifi_softap/wifi_softap.ino | 51 ++ firmware/libraries/WiFiManager/library.json | 2 +- .../libraries/WiFiManager/library.properties | 2 +- firmware/libraries/WiFiManager/strings_en.h | 2 +- 50 files changed, 3960 insertions(+), 208 deletions(-) create mode 100644 firmware/libraries/Adafruit_BMP280_Library/Adafruit_BMP280.cpp create mode 100644 firmware/libraries/Adafruit_BMP280_Library/Adafruit_BMP280.h create mode 100644 firmware/libraries/Adafruit_BMP280_Library/README.md create mode 100644 firmware/libraries/Adafruit_BMP280_Library/assets/board.jpg create mode 100644 firmware/libraries/Adafruit_BMP280_Library/examples/bmp280_forced/bmp280_forced.ino create mode 100644 firmware/libraries/Adafruit_BMP280_Library/examples/bmp280_sensortest/bmp280_sensortest.ino create mode 100644 firmware/libraries/Adafruit_BMP280_Library/examples/bmp280test/bmp280test.ino create mode 100644 firmware/libraries/Adafruit_BMP280_Library/keywords.txt create mode 100644 firmware/libraries/Adafruit_BMP280_Library/library.properties create mode 100644 firmware/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp create mode 100644 firmware/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.h create mode 100644 firmware/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp create mode 100644 firmware/libraries/Adafruit_BusIO/Adafruit_I2CDevice.h create mode 100644 firmware/libraries/Adafruit_BusIO/Adafruit_I2CRegister.h create mode 100644 firmware/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp create mode 100644 firmware/libraries/Adafruit_BusIO/Adafruit_SPIDevice.h create mode 100644 firmware/libraries/Adafruit_BusIO/CMakeLists.txt create mode 100644 firmware/libraries/Adafruit_BusIO/LICENSE create mode 100644 firmware/libraries/Adafruit_BusIO/README.md create mode 100644 firmware/libraries/Adafruit_BusIO/component.mk create mode 100644 firmware/libraries/Adafruit_BusIO/examples/i2c_address_detect/i2c_address_detect.ino create mode 100644 firmware/libraries/Adafruit_BusIO/examples/i2c_readwrite/i2c_readwrite.ino create mode 100644 firmware/libraries/Adafruit_BusIO/examples/i2c_registers/i2c_registers.ino create mode 100644 firmware/libraries/Adafruit_BusIO/examples/i2corspi_register/i2corspi_register.ino create mode 100644 firmware/libraries/Adafruit_BusIO/examples/spi_modetest/spi_modetest.ino create mode 100644 firmware/libraries/Adafruit_BusIO/examples/spi_readwrite/spi_readwrite.ino create mode 100644 firmware/libraries/Adafruit_BusIO/examples/spi_register_bits/spi_register_bits.ino create mode 100644 firmware/libraries/Adafruit_BusIO/examples/spi_registers/spi_registers.ino create mode 100644 firmware/libraries/Adafruit_BusIO/library.properties create mode 100644 firmware/libraries/Adafruit_Unified_Sensor/Adafruit_Sensor.cpp create mode 100644 firmware/libraries/Adafruit_Unified_Sensor/LICENSE.txt mode change 100755 => 100644 firmware/libraries/Adafruit_Unified_Sensor/README.md create mode 100644 firmware/libraries/Adafruit_Unified_Sensor/examples/sensortest/sensortest.ino mode change 100755 => 100644 firmware/libraries/Adafruit_Unified_Sensor/library.properties create mode 100644 firmware/libraries/UrlEncode/LICENSE create mode 100644 firmware/libraries/UrlEncode/README.md create mode 100644 firmware/libraries/UrlEncode/examples/Encode/Encode.ino create mode 100644 firmware/libraries/UrlEncode/keywords.txt create mode 100644 firmware/libraries/UrlEncode/library.properties create mode 100644 firmware/libraries/UrlEncode/src/UrlEncode.h create mode 100644 firmware/libraries/WiFiManager/examples/Tests/wifi_softap/wifi_softap.ino diff --git a/firmware/libraries/Adafruit_BMP280_Library/Adafruit_BMP280.cpp b/firmware/libraries/Adafruit_BMP280_Library/Adafruit_BMP280.cpp new file mode 100644 index 0000000..ac113a6 --- /dev/null +++ b/firmware/libraries/Adafruit_BMP280_Library/Adafruit_BMP280.cpp @@ -0,0 +1,493 @@ +/*! + * @file Adafruit_BMP280.cpp + * + * This is a library for the BMP280 orientation sensor + * + * Designed specifically to work with the Adafruit BMP280 Sensor. + * + * Pick one up today in the adafruit shop! + * ------> https://www.adafruit.com/product/2651 + * + * These sensors use I2C to communicate, 2 pins are required to interface. + * + * Adafruit invests time and resources providing this open source code, + * please support Adafruit andopen-source hardware by purchasing products + * from Adafruit! + * + * K.Townsend (Adafruit Industries) + * + * BSD license, all text above must be included in any redistribution + */ + +#include + +/*! + * @brief BMP280 constructor using i2c + * @param *theWire + * optional wire + */ +Adafruit_BMP280::Adafruit_BMP280(TwoWire *theWire) { + _wire = theWire; + temp_sensor = new Adafruit_BMP280_Temp(this); + pressure_sensor = new Adafruit_BMP280_Pressure(this); +} + +/*! + * @brief BMP280 constructor using hardware SPI + * @param cspin + * cs pin number + * @param theSPI + * optional SPI object + */ +Adafruit_BMP280::Adafruit_BMP280(int8_t cspin, SPIClass *theSPI) { + spi_dev = new Adafruit_SPIDevice(cspin, 1000000, SPI_BITORDER_MSBFIRST, + SPI_MODE0, theSPI); + temp_sensor = new Adafruit_BMP280_Temp(this); + pressure_sensor = new Adafruit_BMP280_Pressure(this); +} + +/*! + * @brief BMP280 constructor using bitbang SPI + * @param cspin + * The pin to use for CS/SSEL. + * @param mosipin + * The pin to use for MOSI. + * @param misopin + * The pin to use for MISO. + * @param sckpin + * The pin to use for SCK. + */ +Adafruit_BMP280::Adafruit_BMP280(int8_t cspin, int8_t mosipin, int8_t misopin, + int8_t sckpin) { + spi_dev = new Adafruit_SPIDevice(cspin, sckpin, misopin, mosipin); + temp_sensor = new Adafruit_BMP280_Temp(this); + pressure_sensor = new Adafruit_BMP280_Pressure(this); +} + +Adafruit_BMP280::~Adafruit_BMP280(void) { + if (spi_dev) + delete spi_dev; + if (i2c_dev) + delete i2c_dev; + if (temp_sensor) + delete temp_sensor; + if (pressure_sensor) + delete pressure_sensor; +} + +/*! + * Initialises the sensor. + * @param addr + * The I2C address to use (default = 0x77) + * @param chipid + * The expected chip ID (used to validate connection). + * @return True if the init was successful, otherwise false. + */ +bool Adafruit_BMP280::begin(uint8_t addr, uint8_t chipid) { + if (spi_dev == NULL) { + // I2C mode + if (i2c_dev) + delete i2c_dev; + i2c_dev = new Adafruit_I2CDevice(addr, _wire); + if (!i2c_dev->begin()) + return false; + } else { + // SPI mode + if (!spi_dev->begin()) + return false; + } + + // check if sensor, i.e. the chip ID is correct + _sensorID = read8(BMP280_REGISTER_CHIPID); + if (_sensorID != chipid) + return false; + + readCoefficients(); + // write8(BMP280_REGISTER_CONTROL, 0x3F); /* needed? */ + setSampling(); + delay(100); + return true; +} + +/*! + * Sets the sampling config for the device. + * @param mode + * The operating mode of the sensor. + * @param tempSampling + * The sampling scheme for temp readings. + * @param pressSampling + * The sampling scheme for pressure readings. + * @param filter + * The filtering mode to apply (if any). + * @param duration + * The sampling duration. + */ +void Adafruit_BMP280::setSampling(sensor_mode mode, + sensor_sampling tempSampling, + sensor_sampling pressSampling, + sensor_filter filter, + standby_duration duration) { + if (!_sensorID) + return; // begin() not called yet + _measReg.mode = mode; + _measReg.osrs_t = tempSampling; + _measReg.osrs_p = pressSampling; + + _configReg.filter = filter; + _configReg.t_sb = duration; + + write8(BMP280_REGISTER_CONFIG, _configReg.get()); + write8(BMP280_REGISTER_CONTROL, _measReg.get()); +} + +/**************************************************************************/ +/*! + @brief Writes an 8 bit value over I2C/SPI +*/ +/**************************************************************************/ +void Adafruit_BMP280::write8(byte reg, byte value) { + byte buffer[2]; + buffer[1] = value; + if (i2c_dev) { + buffer[0] = reg; + i2c_dev->write(buffer, 2); + } else { + buffer[0] = reg & ~0x80; + spi_dev->write(buffer, 2); + } +} + +/*! + * @brief Reads an 8 bit value over I2C/SPI + * @param reg + * selected register + * @return value from selected register + */ +uint8_t Adafruit_BMP280::read8(byte reg) { + uint8_t buffer[1]; + if (i2c_dev) { + buffer[0] = uint8_t(reg); + i2c_dev->write_then_read(buffer, 1, buffer, 1); + } else { + buffer[0] = uint8_t(reg | 0x80); + spi_dev->write_then_read(buffer, 1, buffer, 1); + } + return buffer[0]; +} + +/*! + * @brief Reads a 16 bit value over I2C/SPI + */ +uint16_t Adafruit_BMP280::read16(byte reg) { + uint8_t buffer[2]; + + if (i2c_dev) { + buffer[0] = uint8_t(reg); + i2c_dev->write_then_read(buffer, 1, buffer, 2); + } else { + buffer[0] = uint8_t(reg | 0x80); + spi_dev->write_then_read(buffer, 1, buffer, 2); + } + return uint16_t(buffer[0]) << 8 | uint16_t(buffer[1]); +} + +uint16_t Adafruit_BMP280::read16_LE(byte reg) { + uint16_t temp = read16(reg); + return (temp >> 8) | (temp << 8); +} + +/*! + * @brief Reads a signed 16 bit value over I2C/SPI + */ +int16_t Adafruit_BMP280::readS16(byte reg) { return (int16_t)read16(reg); } + +int16_t Adafruit_BMP280::readS16_LE(byte reg) { + return (int16_t)read16_LE(reg); +} + +/*! + * @brief Reads a 24 bit value over I2C/SPI + */ +uint32_t Adafruit_BMP280::read24(byte reg) { + uint8_t buffer[3]; + + if (i2c_dev) { + buffer[0] = uint8_t(reg); + i2c_dev->write_then_read(buffer, 1, buffer, 3); + } else { + buffer[0] = uint8_t(reg | 0x80); + spi_dev->write_then_read(buffer, 1, buffer, 3); + } + return uint32_t(buffer[0]) << 16 | uint32_t(buffer[1]) << 8 | + uint32_t(buffer[2]); +} + +/*! + * @brief Reads the factory-set coefficients + */ +void Adafruit_BMP280::readCoefficients() { + _bmp280_calib.dig_T1 = read16_LE(BMP280_REGISTER_DIG_T1); + _bmp280_calib.dig_T2 = readS16_LE(BMP280_REGISTER_DIG_T2); + _bmp280_calib.dig_T3 = readS16_LE(BMP280_REGISTER_DIG_T3); + + _bmp280_calib.dig_P1 = read16_LE(BMP280_REGISTER_DIG_P1); + _bmp280_calib.dig_P2 = readS16_LE(BMP280_REGISTER_DIG_P2); + _bmp280_calib.dig_P3 = readS16_LE(BMP280_REGISTER_DIG_P3); + _bmp280_calib.dig_P4 = readS16_LE(BMP280_REGISTER_DIG_P4); + _bmp280_calib.dig_P5 = readS16_LE(BMP280_REGISTER_DIG_P5); + _bmp280_calib.dig_P6 = readS16_LE(BMP280_REGISTER_DIG_P6); + _bmp280_calib.dig_P7 = readS16_LE(BMP280_REGISTER_DIG_P7); + _bmp280_calib.dig_P8 = readS16_LE(BMP280_REGISTER_DIG_P8); + _bmp280_calib.dig_P9 = readS16_LE(BMP280_REGISTER_DIG_P9); +} + +/*! + * Reads the temperature from the device. + * @return The temperature in degrees celsius. + */ +float Adafruit_BMP280::readTemperature() { + int32_t var1, var2; + if (!_sensorID) + return NAN; // begin() not called yet + + int32_t adc_T = read24(BMP280_REGISTER_TEMPDATA); + adc_T >>= 4; + + var1 = ((((adc_T >> 3) - ((int32_t)_bmp280_calib.dig_T1 << 1))) * + ((int32_t)_bmp280_calib.dig_T2)) >> + 11; + + var2 = (((((adc_T >> 4) - ((int32_t)_bmp280_calib.dig_T1)) * + ((adc_T >> 4) - ((int32_t)_bmp280_calib.dig_T1))) >> + 12) * + ((int32_t)_bmp280_calib.dig_T3)) >> + 14; + + t_fine = var1 + var2; + + float T = (t_fine * 5 + 128) >> 8; + return T / 100; +} + +/*! + * Reads the barometric pressure from the device. + * @return Barometric pressure in Pa. + */ +float Adafruit_BMP280::readPressure() { + int64_t var1, var2, p; + if (!_sensorID) + return NAN; // begin() not called yet + + // Must be done first to get the t_fine variable set up + readTemperature(); + + int32_t adc_P = read24(BMP280_REGISTER_PRESSUREDATA); + adc_P >>= 4; + + var1 = ((int64_t)t_fine) - 128000; + var2 = var1 * var1 * (int64_t)_bmp280_calib.dig_P6; + var2 = var2 + ((var1 * (int64_t)_bmp280_calib.dig_P5) << 17); + var2 = var2 + (((int64_t)_bmp280_calib.dig_P4) << 35); + var1 = ((var1 * var1 * (int64_t)_bmp280_calib.dig_P3) >> 8) + + ((var1 * (int64_t)_bmp280_calib.dig_P2) << 12); + var1 = + (((((int64_t)1) << 47) + var1)) * ((int64_t)_bmp280_calib.dig_P1) >> 33; + + if (var1 == 0) { + return 0; // avoid exception caused by division by zero + } + p = 1048576 - adc_P; + p = (((p << 31) - var2) * 3125) / var1; + var1 = (((int64_t)_bmp280_calib.dig_P9) * (p >> 13) * (p >> 13)) >> 25; + var2 = (((int64_t)_bmp280_calib.dig_P8) * p) >> 19; + + p = ((p + var1 + var2) >> 8) + (((int64_t)_bmp280_calib.dig_P7) << 4); + return (float)p / 256; +} + +/*! + * @brief Calculates the approximate altitude using barometric pressure and the + * supplied sea level hPa as a reference. + * @param seaLevelhPa + * The current hPa at sea level. + * @return The approximate altitude above sea level in meters. + */ +float Adafruit_BMP280::readAltitude(float seaLevelhPa) { + float altitude; + + float pressure = readPressure(); // in Si units for Pascal + pressure /= 100; + + altitude = 44330 * (1.0 - pow(pressure / seaLevelhPa, 0.1903)); + + return altitude; +} + +/*! + * Calculates the pressure at sea level (QNH) from the specified altitude, + * and atmospheric pressure (QFE). + * @param altitude Altitude in m + * @param atmospheric Atmospheric pressure in hPa + * @return The approximate pressure in hPa + */ +float Adafruit_BMP280::seaLevelForAltitude(float altitude, float atmospheric) { + // Equation taken from BMP180 datasheet (page 17): + // http://www.adafruit.com/datasheets/BST-BMP180-DS000-09.pdf + + // Note that using the equation from wikipedia can give bad results + // at high altitude. See this thread for more information: + // http://forums.adafruit.com/viewtopic.php?f=22&t=58064 + return atmospheric / pow(1.0 - (altitude / 44330.0), 5.255); +} + +/*! + @brief calculates the boiling point of water by a given pressure + @param pressure pressure in hPa + @return temperature in °C +*/ + +float Adafruit_BMP280::waterBoilingPoint(float pressure) { + // Magnusformular for calculation of the boiling point of water at a given + // pressure + return (234.175 * log(pressure / 6.1078)) / + (17.08085 - log(pressure / 6.1078)); +} + +/*! + @brief Take a new measurement (only possible in forced mode) + @return true if successful, otherwise false + */ +bool Adafruit_BMP280::takeForcedMeasurement() { + // If we are in forced mode, the BME sensor goes back to sleep after each + // measurement and we need to set it to forced mode once at this point, so + // it will take the next measurement and then return to sleep again. + // In normal mode simply does new measurements periodically. + if (_measReg.mode == MODE_FORCED) { + // set to forced mode, i.e. "take next measurement" + write8(BMP280_REGISTER_CONTROL, _measReg.get()); + // wait until measurement has been completed, otherwise we would read + // the values from the last measurement + while (read8(BMP280_REGISTER_STATUS) & 0x08) + delay(1); + return true; + } + return false; +} + +/*! + * @brief Resets the chip via soft reset + */ +void Adafruit_BMP280::reset(void) { + write8(BMP280_REGISTER_SOFTRESET, MODE_SOFT_RESET_CODE); +} + +/*! + * Returns Sensor ID for diagnostics + * @returns 0x61 for BME680, 0x60 for BME280, 0x56, 0x57, 0x58 for BMP280 + */ +uint8_t Adafruit_BMP280::sensorID(void) { return _sensorID; }; + +/*! + @brief Gets the most recent sensor event from the hardware status register. + @return Sensor status as a byte. + */ +uint8_t Adafruit_BMP280::getStatus(void) { + return read8(BMP280_REGISTER_STATUS); +} + +/*! + @brief Gets an Adafruit Unified Sensor object for the temp sensor component + @return Adafruit_Sensor pointer to temperature sensor + */ +Adafruit_Sensor *Adafruit_BMP280::getTemperatureSensor(void) { + return temp_sensor; +} + +/*! + @brief Gets an Adafruit Unified Sensor object for the pressure sensor + component + @return Adafruit_Sensor pointer to pressure sensor + */ +Adafruit_Sensor *Adafruit_BMP280::getPressureSensor(void) { + return pressure_sensor; +} + +/**************************************************************************/ +/*! + @brief Gets the sensor_t data for the BMP280's temperature sensor +*/ +/**************************************************************************/ +void Adafruit_BMP280_Temp::getSensor(sensor_t *sensor) { + /* Clear the sensor_t object */ + memset(sensor, 0, sizeof(sensor_t)); + + /* Insert the sensor name in the fixed length char array */ + strncpy(sensor->name, "BMP280", sizeof(sensor->name) - 1); + sensor->name[sizeof(sensor->name) - 1] = 0; + sensor->version = 1; + sensor->sensor_id = _sensorID; + sensor->type = SENSOR_TYPE_AMBIENT_TEMPERATURE; + sensor->min_delay = 0; + sensor->min_value = -40.0; /* Temperature range -40 ~ +85 C */ + sensor->max_value = +85.0; + sensor->resolution = 0.01; /* 0.01 C */ +} + +/**************************************************************************/ +/*! + @brief Gets the temperature as a standard sensor event + @param event Sensor event object that will be populated + @returns True +*/ +/**************************************************************************/ +bool Adafruit_BMP280_Temp::getEvent(sensors_event_t *event) { + /* Clear the event */ + memset(event, 0, sizeof(sensors_event_t)); + + event->version = sizeof(sensors_event_t); + event->sensor_id = _sensorID; + event->type = SENSOR_TYPE_AMBIENT_TEMPERATURE; + event->timestamp = millis(); + event->temperature = _theBMP280->readTemperature(); + return true; +} + +/**************************************************************************/ +/*! + @brief Gets the sensor_t data for the BMP280's pressure sensor +*/ +/**************************************************************************/ +void Adafruit_BMP280_Pressure::getSensor(sensor_t *sensor) { + /* Clear the sensor_t object */ + memset(sensor, 0, sizeof(sensor_t)); + + /* Insert the sensor name in the fixed length char array */ + strncpy(sensor->name, "BMP280", sizeof(sensor->name) - 1); + sensor->name[sizeof(sensor->name) - 1] = 0; + sensor->version = 1; + sensor->sensor_id = _sensorID; + sensor->type = SENSOR_TYPE_PRESSURE; + sensor->min_delay = 0; + sensor->min_value = 300.0; /* 300 ~ 1100 hPa */ + sensor->max_value = 1100.0; + sensor->resolution = 0.012; /* 0.12 hPa relative */ +} + +/**************************************************************************/ +/*! + @brief Gets the pressure as a standard sensor event + @param event Sensor event object that will be populated + @returns True +*/ +/**************************************************************************/ +bool Adafruit_BMP280_Pressure::getEvent(sensors_event_t *event) { + /* Clear the event */ + memset(event, 0, sizeof(sensors_event_t)); + + event->version = sizeof(sensors_event_t); + event->sensor_id = _sensorID; + event->type = SENSOR_TYPE_PRESSURE; + event->timestamp = millis(); + event->pressure = _theBMP280->readPressure() / 100; // convert Pa to hPa + return true; +} diff --git a/firmware/libraries/Adafruit_BMP280_Library/Adafruit_BMP280.h b/firmware/libraries/Adafruit_BMP280_Library/Adafruit_BMP280.h new file mode 100644 index 0000000..9b34306 --- /dev/null +++ b/firmware/libraries/Adafruit_BMP280_Library/Adafruit_BMP280.h @@ -0,0 +1,267 @@ +/*! + * @file Adafruit_BMP280.h + * + * This is a library for the Adafruit BMP280 Breakout. + * + * Designed specifically to work with the Adafruit BMP280 Breakout. + * + * Pick one up today in the adafruit shop! + * ------> https://www.adafruit.com/product/2651 + * + * These sensors use I2C to communicate, 2 pins are required to interface. + * + * Adafruit invests time and resources providing this open source code, + * please support Adafruit andopen-source hardware by purchasing products + * from Adafruit! + * + * K.Townsend (Adafruit Industries) + * + * BSD license, all text above must be included in any redistribution + */ +#ifndef __BMP280_H__ +#define __BMP280_H__ + +// clang-format off +#include +#include +#include +#include +// clang-format on + +/*! + * I2C ADDRESS/BITS/SETTINGS + */ +#define BMP280_ADDRESS (0x77) /**< The default I2C address for the sensor. */ +#define BMP280_ADDRESS_ALT \ + (0x76) /**< Alternative I2C address for the sensor. */ +#define BMP280_CHIPID (0x58) /**< Default chip ID. */ + +/*! + * Registers available on the sensor. + */ +enum { + BMP280_REGISTER_DIG_T1 = 0x88, + BMP280_REGISTER_DIG_T2 = 0x8A, + BMP280_REGISTER_DIG_T3 = 0x8C, + BMP280_REGISTER_DIG_P1 = 0x8E, + BMP280_REGISTER_DIG_P2 = 0x90, + BMP280_REGISTER_DIG_P3 = 0x92, + BMP280_REGISTER_DIG_P4 = 0x94, + BMP280_REGISTER_DIG_P5 = 0x96, + BMP280_REGISTER_DIG_P6 = 0x98, + BMP280_REGISTER_DIG_P7 = 0x9A, + BMP280_REGISTER_DIG_P8 = 0x9C, + BMP280_REGISTER_DIG_P9 = 0x9E, + BMP280_REGISTER_CHIPID = 0xD0, + BMP280_REGISTER_VERSION = 0xD1, + BMP280_REGISTER_SOFTRESET = 0xE0, + BMP280_REGISTER_CAL26 = 0xE1, /**< R calibration = 0xE1-0xF0 */ + BMP280_REGISTER_STATUS = 0xF3, + BMP280_REGISTER_CONTROL = 0xF4, + BMP280_REGISTER_CONFIG = 0xF5, + BMP280_REGISTER_PRESSUREDATA = 0xF7, + BMP280_REGISTER_TEMPDATA = 0xFA, +}; + +/*! + * Struct to hold calibration data. + */ +typedef struct { + uint16_t dig_T1; /**< dig_T1 cal register. */ + int16_t dig_T2; /**< dig_T2 cal register. */ + int16_t dig_T3; /**< dig_T3 cal register. */ + + uint16_t dig_P1; /**< dig_P1 cal register. */ + int16_t dig_P2; /**< dig_P2 cal register. */ + int16_t dig_P3; /**< dig_P3 cal register. */ + int16_t dig_P4; /**< dig_P4 cal register. */ + int16_t dig_P5; /**< dig_P5 cal register. */ + int16_t dig_P6; /**< dig_P6 cal register. */ + int16_t dig_P7; /**< dig_P7 cal register. */ + int16_t dig_P8; /**< dig_P8 cal register. */ + int16_t dig_P9; /**< dig_P9 cal register. */ +} bmp280_calib_data; + +class Adafruit_BMP280; + +/** Adafruit Unified Sensor interface for temperature component of BMP280 */ +class Adafruit_BMP280_Temp : public Adafruit_Sensor { +public: + /** @brief Create an Adafruit_Sensor compatible object for the temp sensor + @param parent A pointer to the BMP280 class */ + Adafruit_BMP280_Temp(Adafruit_BMP280 *parent) { _theBMP280 = parent; } + bool getEvent(sensors_event_t *); + void getSensor(sensor_t *); + +private: + int _sensorID = 280; + Adafruit_BMP280 *_theBMP280 = NULL; +}; + +/** Adafruit Unified Sensor interface for pressure component of BMP280 */ +class Adafruit_BMP280_Pressure : public Adafruit_Sensor { +public: + /** @brief Create an Adafruit_Sensor compatible object for the pressure sensor + @param parent A pointer to the BMP280 class */ + Adafruit_BMP280_Pressure(Adafruit_BMP280 *parent) { _theBMP280 = parent; } + bool getEvent(sensors_event_t *); + void getSensor(sensor_t *); + +private: + int _sensorID = 0; + Adafruit_BMP280 *_theBMP280 = NULL; +}; + +/** + * Driver for the Adafruit BMP280 barometric pressure sensor. + */ +class Adafruit_BMP280 { +public: + /** Oversampling rate for the sensor. */ + enum sensor_sampling { + /** No over-sampling. */ + SAMPLING_NONE = 0x00, + /** 1x over-sampling. */ + SAMPLING_X1 = 0x01, + /** 2x over-sampling. */ + SAMPLING_X2 = 0x02, + /** 4x over-sampling. */ + SAMPLING_X4 = 0x03, + /** 8x over-sampling. */ + SAMPLING_X8 = 0x04, + /** 16x over-sampling. */ + SAMPLING_X16 = 0x05 + }; + + /** Operating mode for the sensor. */ + enum sensor_mode { + /** Sleep mode. */ + MODE_SLEEP = 0x00, + /** Forced mode. */ + MODE_FORCED = 0x01, + /** Normal mode. */ + MODE_NORMAL = 0x03, + /** Software reset. */ + MODE_SOFT_RESET_CODE = 0xB6 + }; + + /** Filtering level for sensor data. */ + enum sensor_filter { + /** No filtering. */ + FILTER_OFF = 0x00, + /** 2x filtering. */ + FILTER_X2 = 0x01, + /** 4x filtering. */ + FILTER_X4 = 0x02, + /** 8x filtering. */ + FILTER_X8 = 0x03, + /** 16x filtering. */ + FILTER_X16 = 0x04 + }; + + /** Standby duration in ms */ + enum standby_duration { + /** 1 ms standby. */ + STANDBY_MS_1 = 0x00, + /** 62.5 ms standby. */ + STANDBY_MS_63 = 0x01, + /** 125 ms standby. */ + STANDBY_MS_125 = 0x02, + /** 250 ms standby. */ + STANDBY_MS_250 = 0x03, + /** 500 ms standby. */ + STANDBY_MS_500 = 0x04, + /** 1000 ms standby. */ + STANDBY_MS_1000 = 0x05, + /** 2000 ms standby. */ + STANDBY_MS_2000 = 0x06, + /** 4000 ms standby. */ + STANDBY_MS_4000 = 0x07 + }; + + Adafruit_BMP280(TwoWire *theWire = &Wire); + Adafruit_BMP280(int8_t cspin, SPIClass *theSPI = &SPI); + Adafruit_BMP280(int8_t cspin, int8_t mosipin, int8_t misopin, int8_t sckpin); + ~Adafruit_BMP280(void); + + bool begin(uint8_t addr = BMP280_ADDRESS, uint8_t chipid = BMP280_CHIPID); + void reset(void); + uint8_t getStatus(void); + uint8_t sensorID(void); + + float readTemperature(); + float readPressure(void); + float readAltitude(float seaLevelhPa = 1013.25); + float seaLevelForAltitude(float altitude, float atmospheric); + float waterBoilingPoint(float pressure); + bool takeForcedMeasurement(); + + Adafruit_Sensor *getTemperatureSensor(void); + Adafruit_Sensor *getPressureSensor(void); + + void setSampling(sensor_mode mode = MODE_NORMAL, + sensor_sampling tempSampling = SAMPLING_X16, + sensor_sampling pressSampling = SAMPLING_X16, + sensor_filter filter = FILTER_OFF, + standby_duration duration = STANDBY_MS_1); + +private: + TwoWire *_wire; /**< Wire object */ + Adafruit_I2CDevice *i2c_dev = NULL; ///< Pointer to I2C bus interface + Adafruit_SPIDevice *spi_dev = NULL; ///< Pointer to SPI bus interface + + Adafruit_BMP280_Temp *temp_sensor = NULL; + Adafruit_BMP280_Pressure *pressure_sensor = NULL; + + /** Encapsulates the config register */ + struct config { + /** Initialize to power-on-reset state */ + config() : t_sb(STANDBY_MS_1), filter(FILTER_OFF), none(0), spi3w_en(0) {} + /** Inactive duration (standby time) in normal mode */ + unsigned int t_sb : 3; + /** Filter settings */ + unsigned int filter : 3; + /** Unused - don't set */ + unsigned int none : 1; + /** Enables 3-wire SPI */ + unsigned int spi3w_en : 1; + /** Used to retrieve the assembled config register's byte value. */ + unsigned int get() { return (t_sb << 5) | (filter << 2) | spi3w_en; } + }; + + /** Encapsulates trhe ctrl_meas register */ + struct ctrl_meas { + /** Initialize to power-on-reset state */ + ctrl_meas() + : osrs_t(SAMPLING_NONE), osrs_p(SAMPLING_NONE), mode(MODE_SLEEP) {} + /** Temperature oversampling. */ + unsigned int osrs_t : 3; + /** Pressure oversampling. */ + unsigned int osrs_p : 3; + /** Device mode */ + unsigned int mode : 2; + /** Used to retrieve the assembled ctrl_meas register's byte value. */ + unsigned int get() { return (osrs_t << 5) | (osrs_p << 2) | mode; } + }; + + void readCoefficients(void); + uint8_t spixfer(uint8_t x); + void write8(byte reg, byte value); + uint8_t read8(byte reg); + uint16_t read16(byte reg); + uint32_t read24(byte reg); + int16_t readS16(byte reg); + uint16_t read16_LE(byte reg); + int16_t readS16_LE(byte reg); + + uint8_t _i2caddr; + + int32_t _sensorID = 0; + int32_t t_fine; + // int8_t _cs, _mosi, _miso, _sck; + bmp280_calib_data _bmp280_calib; + config _configReg; + ctrl_meas _measReg; +}; + +#endif diff --git a/firmware/libraries/Adafruit_BMP280_Library/README.md b/firmware/libraries/Adafruit_BMP280_Library/README.md new file mode 100644 index 0000000..dbca8f9 --- /dev/null +++ b/firmware/libraries/Adafruit_BMP280_Library/README.md @@ -0,0 +1,47 @@ +# Adafruit BMP280 Driver (Barometric Pressure Sensor) [![Build Status](https://travis-ci.com/adafruit/Adafruit_BMP280_Library.svg?branch=master)](https://travis-ci.com/adafruit/Adafruit_BMP280_Library) + +This driver is for the [Adafruit BMP280 Breakout](http://www.adafruit.com/products/2651) + + + +## About the BMP280 ## + +This precision sensor from Bosch is the best low-cost sensing solution for measuring barometric pressure and temperature. Because pressure changes with altitude you can also use it as an altimeter! + +## About this Driver ## + +Adafruit invests time and resources providing this open source code. Please support Adafruit and open-source hardware by purchasing products from Adafruit! + +Written by Kevin (KTOWN) Townsend for Adafruit Industries. + + + +## Compatibility + +MCU | Tested Works | Doesn't Work | Not Tested | Notes +------------------ | :----------: | :----------: | :---------: | ----- +Atmega328 @ 16MHz | X | | | +Atmega328 @ 12MHz | X | | | +Atmega32u4 @ 16MHz | X | | | Use SDA/SCL on pins D2 & D3 +Atmega32u4 @ 8MHz | X | | | Use SDA/SCL on pins D2 & D3 +ESP8266 | X | | | SDA/SCL default to pins 4 & 5 but any two pins can be assigned as SDA/SCL using Wire.begin(SDA,SCL) +Atmega2560 @ 16MHz | X | | | Use SDA/SCL on pins 20 & 21 +ATSAM3X8E | X | | | Use SDA/SCL on pins 20 & 21 +ATSAM21D | X | | | +ATtiny85 @ 16MHz | | X | | +ATtiny85 @ 8MHz | | X | | +Intel Curie @ 32MHz | | | X | +STM32F2 | | | X | + + * ATmega328 @ 16MHz : Arduino UNO, Adafruit Pro Trinket 5V, Adafruit Metro 328, Adafruit Metro Mini + * ATmega328 @ 12MHz : Adafruit Pro Trinket 3V + * ATmega32u4 @ 16MHz : Arduino Leonardo, Arduino Micro, Arduino Yun, Teensy 2.0 + * ATmega32u4 @ 8MHz : Adafruit Flora, Bluefruit Micro + * ESP8266 : Adafruit Huzzah + * ATmega2560 @ 16MHz : Arduino Mega + * ATSAM3X8E : Arduino Due + * ATSAM21D : Arduino Zero, M0 Pro + * ATtiny85 @ 16MHz : Adafruit Trinket 5V + * ATtiny85 @ 8MHz : Adafruit Gemma, Arduino Gemma, Adafruit Trinket 3V + + diff --git a/firmware/libraries/Adafruit_BMP280_Library/assets/board.jpg b/firmware/libraries/Adafruit_BMP280_Library/assets/board.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cd0d947c54bf5c03c52ed6f94206ee7b2dbbfa37 GIT binary patch literal 464067 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

J#9A6D{@_tmn+k6EM5(dC|_i_$VfM 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%0A4qoZenG+ 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 z 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%0DbCP@kg0Bzdz$Zwd6uP>7 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 z zWs73b6?N&e##-&8h84Js|Aku=DTbXr(J+cJ4BN6h6=$96oVLO#c_z7)fd%p{1Yskw zC5uyCQEk;z$C*-aUj=#R{G7F1g0ATjaqIj(lbFG3q6kgqP1h){8~7Y7u!kjV_Ehkt z8a!+uepE1<;&hzKS>_>ffHpXD`}$^V86Isa8OF^@e9ata~-aBrPhb z7f!!&6(^HqVg?IVd}cQhN%+-h{%PaOp+_rT8H2>GZTaaL&qZxE-w#LwYRV>vF77qjv`@2&TkT zcNE2(Q|C&p7|*+wi&JwhO?{6*Zi(9W^3ub@6c)=?{Z4pxvjvr%0Af%2TzNvm8W|_< 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 literal 0 HcmV?d00001 diff --git a/firmware/libraries/Adafruit_BMP280_Library/examples/bmp280_forced/bmp280_forced.ino b/firmware/libraries/Adafruit_BMP280_Library/examples/bmp280_forced/bmp280_forced.ino new file mode 100644 index 0000000..9f48144 --- /dev/null +++ b/firmware/libraries/Adafruit_BMP280_Library/examples/bmp280_forced/bmp280_forced.ino @@ -0,0 +1,72 @@ +/*************************************************************************** + This is a library for the BMP280 humidity, temperature & pressure sensor + + Designed specifically to work with the Adafruit BMP280 Breakout + ----> http://www.adafruit.com/products/2651 + + These sensors use I2C or SPI to communicate, 2 or 4 pins are required + to interface. + + Adafruit invests time and resources providing this open source code, + please support Adafruit andopen-source hardware by purchasing products + from Adafruit! + + Written by Limor Fried & Kevin Townsend for Adafruit Industries. + BSD license, all text above must be included in any redistribution + ***************************************************************************/ + +#include + +#define BMP_SCK (13) +#define BMP_MISO (12) +#define BMP_MOSI (11) +#define BMP_CS (10) + +Adafruit_BMP280 bmp; // I2C +//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI +//Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK); + +void setup() { + Serial.begin(9600); + Serial.println(F("BMP280 Forced Mode Test.")); + + //if (!bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID)) { + if (!bmp.begin()) { + Serial.println(F("Could not find a valid BMP280 sensor, check wiring or " + "try a different address!")); + while (1) delay(10); + } + + /* Default settings from datasheet. */ + bmp.setSampling(Adafruit_BMP280::MODE_FORCED, /* Operating Mode. */ + Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */ + Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */ + Adafruit_BMP280::FILTER_X16, /* Filtering. */ + Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */ +} + +void loop() { + // must call this to wake sensor up and get new measurement data + // it blocks until measurement is complete + if (bmp.takeForcedMeasurement()) { + // can now print out the new measurements + Serial.print(F("Temperature = ")); + Serial.print(bmp.readTemperature()); + Serial.println(" *C"); + + Serial.print(F("Pressure = ")); + Serial.print(bmp.readPressure()); + Serial.println(" Pa"); + + Serial.print(F("Approx altitude = ")); + Serial.print(bmp.readAltitude(1013.25)); /* Adjusted to local forecast! */ + Serial.println(" m"); + + Serial.println(); + delay(2000); + } else { + Serial.println("Forced measurement failed!"); + } + + +} diff --git a/firmware/libraries/Adafruit_BMP280_Library/examples/bmp280_sensortest/bmp280_sensortest.ino b/firmware/libraries/Adafruit_BMP280_Library/examples/bmp280_sensortest/bmp280_sensortest.ino new file mode 100644 index 0000000..01adb05 --- /dev/null +++ b/firmware/libraries/Adafruit_BMP280_Library/examples/bmp280_sensortest/bmp280_sensortest.ino @@ -0,0 +1,71 @@ +/*************************************************************************** + This is a library for the BMP280 humidity, temperature & pressure sensor + This example shows how to take Sensor Events instead of direct readings + + Designed specifically to work with the Adafruit BMP280 Breakout + ----> http://www.adafruit.com/products/2651 + + These sensors use I2C or SPI to communicate, 2 or 4 pins are required + to interface. + + Adafruit invests time and resources providing this open source code, + please support Adafruit and open-source hardware by purchasing products + from Adafruit! + + Written by Limor Fried & Kevin Townsend for Adafruit Industries. + BSD license, all text above must be included in any redistribution + ***************************************************************************/ + +#include +#include +#include + +Adafruit_BMP280 bmp; // use I2C interface +Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor(); +Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor(); + +void setup() { + Serial.begin(9600); + while ( !Serial ) delay(100); // wait for native usb + Serial.println(F("BMP280 Sensor event test")); + + unsigned status; + //status = bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID); + status = bmp.begin(); + if (!status) { + Serial.println(F("Could not find a valid BMP280 sensor, check wiring or " + "try a different address!")); + Serial.print("SensorID was: 0x"); Serial.println(bmp.sensorID(),16); + Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n"); + Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n"); + Serial.print(" ID of 0x60 represents a BME 280.\n"); + Serial.print(" ID of 0x61 represents a BME 680.\n"); + while (1) delay(10); + } + + /* Default settings from datasheet. */ + bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */ + Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */ + Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */ + Adafruit_BMP280::FILTER_X16, /* Filtering. */ + Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */ + + bmp_temp->printSensorDetails(); +} + +void loop() { + sensors_event_t temp_event, pressure_event; + bmp_temp->getEvent(&temp_event); + bmp_pressure->getEvent(&pressure_event); + + Serial.print(F("Temperature = ")); + Serial.print(temp_event.temperature); + Serial.println(" *C"); + + Serial.print(F("Pressure = ")); + Serial.print(pressure_event.pressure); + Serial.println(" hPa"); + + Serial.println(); + delay(2000); +} diff --git a/firmware/libraries/Adafruit_BMP280_Library/examples/bmp280test/bmp280test.ino b/firmware/libraries/Adafruit_BMP280_Library/examples/bmp280test/bmp280test.ino new file mode 100644 index 0000000..57838c4 --- /dev/null +++ b/firmware/libraries/Adafruit_BMP280_Library/examples/bmp280test/bmp280test.ino @@ -0,0 +1,72 @@ +/*************************************************************************** + This is a library for the BMP280 humidity, temperature & pressure sensor + + Designed specifically to work with the Adafruit BMP280 Breakout + ----> http://www.adafruit.com/products/2651 + + These sensors use I2C or SPI to communicate, 2 or 4 pins are required + to interface. + + Adafruit invests time and resources providing this open source code, + please support Adafruit andopen-source hardware by purchasing products + from Adafruit! + + Written by Limor Fried & Kevin Townsend for Adafruit Industries. + BSD license, all text above must be included in any redistribution + ***************************************************************************/ + +#include +#include +#include + +#define BMP_SCK (13) +#define BMP_MISO (12) +#define BMP_MOSI (11) +#define BMP_CS (10) + +Adafruit_BMP280 bmp; // I2C +//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI +//Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK); + +void setup() { + Serial.begin(9600); + while ( !Serial ) delay(100); // wait for native usb + Serial.println(F("BMP280 test")); + unsigned status; + //status = bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID); + status = bmp.begin(); + if (!status) { + Serial.println(F("Could not find a valid BMP280 sensor, check wiring or " + "try a different address!")); + Serial.print("SensorID was: 0x"); Serial.println(bmp.sensorID(),16); + Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n"); + Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n"); + Serial.print(" ID of 0x60 represents a BME 280.\n"); + Serial.print(" ID of 0x61 represents a BME 680.\n"); + while (1) delay(10); + } + + /* Default settings from datasheet. */ + bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */ + Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */ + Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */ + Adafruit_BMP280::FILTER_X16, /* Filtering. */ + Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */ +} + +void loop() { + Serial.print(F("Temperature = ")); + Serial.print(bmp.readTemperature()); + Serial.println(" *C"); + + Serial.print(F("Pressure = ")); + Serial.print(bmp.readPressure()); + Serial.println(" Pa"); + + Serial.print(F("Approx altitude = ")); + Serial.print(bmp.readAltitude(1013.25)); /* Adjusted to local forecast! */ + Serial.println(" m"); + + Serial.println(); + delay(2000); +} diff --git a/firmware/libraries/Adafruit_BMP280_Library/keywords.txt b/firmware/libraries/Adafruit_BMP280_Library/keywords.txt new file mode 100644 index 0000000..f0bec42 --- /dev/null +++ b/firmware/libraries/Adafruit_BMP280_Library/keywords.txt @@ -0,0 +1,57 @@ +####################################### +# Syntax Coloring Map for BMP280 library +####################################### + +####################################### +# Datatypes (KEYWORD1) +####################################### +Adafruit_BMP280 KEYWORD1 +Adafruit_BMP280_Temp KEYWORD1 +Adafruit_BMP280_Pressure KEYWORD1 +bmp280_calib_data KEYWORD1 + +####################################### +# Methods and Functions (KEYWORD2) +####################################### +begin KEYWORD2 +reset KEYWORD2 +getStatus KEYWORD2 +sensorID KEYWORD2 +getEvent KEYWORD2 +getSensor KEYWORD2 +readTemperature KEYWORD2 +readPressure KEYWORD2 +readAltitude KEYWORD2 +seaLevelForAltitude KEYWORD2 +waterBoilingPoint KEYWORD2 +takeForcedMeasurement KEYWORD2 +getTemperatureSensor KEYWORD2 +getPressureSensor KEYWORD2 +setSampling KEYWORD2 + +####################################### +# Constants (LITERAL1) +####################################### +SAMPLING_NONE LITERAL1 +SAMPLING_X1 LITERAL1 +SAMPLING_X2 LITERAL1 +SAMPLING_X4 LITERAL1 +SAMPLING_X8 LITERAL1 +SAMPLING_X16 LITERAL1 +MODE_SLEEP LITERAL1 +MODE_FORCED LITERAL1 +MODE_NORMAL LITERAL1 +MODE_SOFT_RESET_CODE LITERAL1 +FILTER_OFF LITERAL1 +FILTER_X2 LITERAL1 +FILTER_X4 LITERAL1 +FILTER_X8 LITERAL1 +FILTER_X16 LITERAL1 +STANDBY_MS_1 LITERAL1 +STANDBY_MS_63 LITERAL1 +STANDBY_MS_125 LITERAL1 +STANDBY_MS_250 LITERAL1 +STANDBY_MS_500 LITERAL1 +STANDBY_MS_1000 LITERAL1 +STANDBY_MS_2000 LITERAL1 +STANDBY_MS_4000 LITERAL1 diff --git a/firmware/libraries/Adafruit_BMP280_Library/library.properties b/firmware/libraries/Adafruit_BMP280_Library/library.properties new file mode 100644 index 0000000..957e4b3 --- /dev/null +++ b/firmware/libraries/Adafruit_BMP280_Library/library.properties @@ -0,0 +1,10 @@ +name=Adafruit BMP280 Library +version=2.6.6 +author=Adafruit +maintainer=Adafruit +sentence=Arduino library for BMP280 sensors. +paragraph=Arduino library for BMP280 pressure and altitude sensors. +category=Sensors +url=https://github.com/adafruit/Adafruit_BMP280_Library +architectures=* +depends=Adafruit Unified Sensor, Adafruit BusIO diff --git a/firmware/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp b/firmware/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp new file mode 100644 index 0000000..a28193f --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.cpp @@ -0,0 +1,365 @@ +#include + +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) + +/*! + * @brief Create a register we access over an I2C Device (which defines the + * bus and address) + * @param i2cdevice The I2CDevice to use for underlying I2C access + * @param reg_addr The address pointer value for the I2C/SMBus register, can + * be 8 or 16 bits + * @param width The width of the register data itself, defaults to 1 byte + * @param byteorder The byte order of the register (used when width is > 1), + * defaults to LSBFIRST + * @param address_width The width of the register address itself, defaults + * to 1 byte + */ +Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice, + uint16_t reg_addr, + uint8_t width, + uint8_t byteorder, + uint8_t address_width) { + _i2cdevice = i2cdevice; + _spidevice = nullptr; + _addrwidth = address_width; + _address = reg_addr; + _byteorder = byteorder; + _width = width; +} + +/*! + * @brief Create a register we access over an SPI Device (which defines the + * bus and CS pin) + * @param spidevice The SPIDevice to use for underlying SPI access + * @param reg_addr The address pointer value for the SPI register, can + * be 8 or 16 bits + * @param type The method we use to read/write data to SPI (which is not + * as well defined as I2C) + * @param width The width of the register data itself, defaults to 1 byte + * @param byteorder The byte order of the register (used when width is > 1), + * defaults to LSBFIRST + * @param address_width The width of the register address itself, defaults + * to 1 byte + */ +Adafruit_BusIO_Register::Adafruit_BusIO_Register(Adafruit_SPIDevice *spidevice, + uint16_t reg_addr, + Adafruit_BusIO_SPIRegType type, + uint8_t width, + uint8_t byteorder, + uint8_t address_width) { + _spidevice = spidevice; + _spiregtype = type; + _i2cdevice = nullptr; + _addrwidth = address_width; + _address = reg_addr; + _byteorder = byteorder; + _width = width; +} + +/*! + * @brief Create a register we access over an I2C or SPI Device. This is a + * handy function because we can pass in nullptr for the unused interface, + * allowing libraries to mass-define all the registers + * @param i2cdevice The I2CDevice to use for underlying I2C access, if + * nullptr we use SPI + * @param spidevice The SPIDevice to use for underlying SPI access, if + * nullptr we use I2C + * @param reg_addr The address pointer value for the I2C/SMBus/SPI register, + * can be 8 or 16 bits + * @param type The method we use to read/write data to SPI (which is not + * as well defined as I2C) + * @param width The width of the register data itself, defaults to 1 byte + * @param byteorder The byte order of the register (used when width is > 1), + * defaults to LSBFIRST + * @param address_width The width of the register address itself, defaults + * to 1 byte + */ +Adafruit_BusIO_Register::Adafruit_BusIO_Register( + Adafruit_I2CDevice *i2cdevice, Adafruit_SPIDevice *spidevice, + Adafruit_BusIO_SPIRegType type, uint16_t reg_addr, uint8_t width, + uint8_t byteorder, uint8_t address_width) { + _spidevice = spidevice; + _i2cdevice = i2cdevice; + _spiregtype = type; + _addrwidth = address_width; + _address = reg_addr; + _byteorder = byteorder; + _width = width; +} + +/*! + * @brief Write a buffer of data to the register location + * @param buffer Pointer to data to write + * @param len Number of bytes to write + * @return True on successful write (only really useful for I2C as SPI is + * uncheckable) + */ +bool Adafruit_BusIO_Register::write(uint8_t *buffer, uint8_t len) { + + uint8_t addrbuffer[2] = {(uint8_t)(_address & 0xFF), + (uint8_t)(_address >> 8)}; + + if (_i2cdevice) { + return _i2cdevice->write(buffer, len, true, addrbuffer, _addrwidth); + } + if (_spidevice) { + if (_spiregtype == ADDRESSED_OPCODE_BIT0_LOW_TO_WRITE) { + // very special case! + + // pass the special opcode address which we set as the high byte of the + // regaddr + addrbuffer[0] = + (uint8_t)(_address >> 8) & ~0x01; // set bottom bit low to write + // the 'actual' reg addr is the second byte then + addrbuffer[1] = (uint8_t)(_address & 0xFF); + // the address appears to be a byte longer + return _spidevice->write(buffer, len, addrbuffer, _addrwidth + 1); + } + + if (_spiregtype == ADDRBIT8_HIGH_TOREAD) { + addrbuffer[0] &= ~0x80; + } + if (_spiregtype == ADDRBIT8_HIGH_TOWRITE) { + addrbuffer[0] |= 0x80; + } + if (_spiregtype == AD8_HIGH_TOREAD_AD7_HIGH_TOINC) { + addrbuffer[0] &= ~0x80; + addrbuffer[0] |= 0x40; + } + return _spidevice->write(buffer, len, addrbuffer, _addrwidth); + } + return false; +} + +/*! + * @brief Write up to 4 bytes of data to the register location + * @param value Data to write + * @param numbytes How many bytes from 'value' to write + * @return True on successful write (only really useful for I2C as SPI is + * uncheckable) + */ +bool Adafruit_BusIO_Register::write(uint32_t value, uint8_t numbytes) { + if (numbytes == 0) { + numbytes = _width; + } + if (numbytes > 4) { + return false; + } + + // store a copy + _cached = value; + + for (int i = 0; i < numbytes; i++) { + if (_byteorder == LSBFIRST) { + _buffer[i] = value & 0xFF; + } else { + _buffer[numbytes - i - 1] = value & 0xFF; + } + value >>= 8; + } + return write(_buffer, numbytes); +} + +/*! + * @brief Read data from the register location. This does not do any error + * checking! + * @return Returns 0xFFFFFFFF on failure, value otherwise + */ +uint32_t Adafruit_BusIO_Register::read(void) { + if (!read(_buffer, _width)) { + return -1; + } + + uint32_t value = 0; + + for (int i = 0; i < _width; i++) { + value <<= 8; + if (_byteorder == LSBFIRST) { + value |= _buffer[_width - i - 1]; + } else { + value |= _buffer[i]; + } + } + + return value; +} + +/*! + * @brief Read cached data from last time we wrote to this register + * @return Returns 0xFFFFFFFF on failure, value otherwise + */ +uint32_t Adafruit_BusIO_Register::readCached(void) { return _cached; } + +/*! + * @brief Read a buffer of data from the register location + * @param buffer Pointer to data to read into + * @param len Number of bytes to read + * @return True on successful write (only really useful for I2C as SPI is + * uncheckable) + */ +bool Adafruit_BusIO_Register::read(uint8_t *buffer, uint8_t len) { + uint8_t addrbuffer[2] = {(uint8_t)(_address & 0xFF), + (uint8_t)(_address >> 8)}; + + if (_i2cdevice) { + return _i2cdevice->write_then_read(addrbuffer, _addrwidth, buffer, len); + } + if (_spidevice) { + if (_spiregtype == ADDRESSED_OPCODE_BIT0_LOW_TO_WRITE) { + // very special case! + + // pass the special opcode address which we set as the high byte of the + // regaddr + addrbuffer[0] = + (uint8_t)(_address >> 8) | 0x01; // set bottom bit high to read + // the 'actual' reg addr is the second byte then + addrbuffer[1] = (uint8_t)(_address & 0xFF); + // the address appears to be a byte longer + return _spidevice->write_then_read(addrbuffer, _addrwidth + 1, buffer, + len); + } + if (_spiregtype == ADDRBIT8_HIGH_TOREAD) { + addrbuffer[0] |= 0x80; + } + if (_spiregtype == ADDRBIT8_HIGH_TOWRITE) { + addrbuffer[0] &= ~0x80; + } + if (_spiregtype == AD8_HIGH_TOREAD_AD7_HIGH_TOINC) { + addrbuffer[0] |= 0x80 | 0x40; + } + return _spidevice->write_then_read(addrbuffer, _addrwidth, buffer, len); + } + return false; +} + +/*! + * @brief Read 2 bytes of data from the register location + * @param value Pointer to uint16_t variable to read into + * @return True on successful write (only really useful for I2C as SPI is + * uncheckable) + */ +bool Adafruit_BusIO_Register::read(uint16_t *value) { + if (!read(_buffer, 2)) { + return false; + } + + if (_byteorder == LSBFIRST) { + *value = _buffer[1]; + *value <<= 8; + *value |= _buffer[0]; + } else { + *value = _buffer[0]; + *value <<= 8; + *value |= _buffer[1]; + } + return true; +} + +/*! + * @brief Read 1 byte of data from the register location + * @param value Pointer to uint8_t variable to read into + * @return True on successful write (only really useful for I2C as SPI is + * uncheckable) + */ +bool Adafruit_BusIO_Register::read(uint8_t *value) { + if (!read(_buffer, 1)) { + return false; + } + + *value = _buffer[0]; + return true; +} + +/*! + * @brief Pretty printer for this register + * @param s The Stream to print to, defaults to &Serial + */ +void Adafruit_BusIO_Register::print(Stream *s) { + uint32_t val = read(); + s->print("0x"); + s->print(val, HEX); +} + +/*! + * @brief Pretty printer for this register + * @param s The Stream to print to, defaults to &Serial + */ +void Adafruit_BusIO_Register::println(Stream *s) { + print(s); + s->println(); +} + +/*! + * @brief Create a slice of the register that we can address without + * touching other bits + * @param reg The Adafruit_BusIO_Register which defines the bus/register + * @param bits The number of bits wide we are slicing + * @param shift The number of bits that our bit-slice is shifted from LSB + */ +Adafruit_BusIO_RegisterBits::Adafruit_BusIO_RegisterBits( + Adafruit_BusIO_Register *reg, uint8_t bits, uint8_t shift) { + _register = reg; + _bits = bits; + _shift = shift; +} + +/*! + * @brief Read 4 bytes of data from the register + * @return data The 4 bytes to read + */ +uint32_t Adafruit_BusIO_RegisterBits::read(void) { + uint32_t val = _register->read(); + val >>= _shift; + return val & ((1 << (_bits)) - 1); +} + +/*! + * @brief Write 4 bytes of data to the register + * @param data The 4 bytes to write + * @return True on successful write (only really useful for I2C as SPI is + * uncheckable) + */ +bool Adafruit_BusIO_RegisterBits::write(uint32_t data) { + uint32_t val = _register->read(); + + // mask off the data before writing + uint32_t mask = (1 << (_bits)) - 1; + data &= mask; + + mask <<= _shift; + val &= ~mask; // remove the current data at that spot + val |= data << _shift; // and add in the new data + + return _register->write(val, _register->width()); +} + +/*! + * @brief The width of the register data, helpful for doing calculations + * @returns The data width used when initializing the register + */ +uint8_t Adafruit_BusIO_Register::width(void) { return _width; } + +/*! + * @brief Set the default width of data + * @param width the default width of data read from register + */ +void Adafruit_BusIO_Register::setWidth(uint8_t width) { _width = width; } + +/*! + * @brief Set register address + * @param address the address from register + */ +void Adafruit_BusIO_Register::setAddress(uint16_t address) { + _address = address; +} + +/*! + * @brief Set the width of register address + * @param address_width the width for register address + */ +void Adafruit_BusIO_Register::setAddressWidth(uint16_t address_width) { + _addrwidth = address_width; +} + +#endif // SPI exists diff --git a/firmware/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.h b/firmware/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.h new file mode 100644 index 0000000..c6d58de --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/Adafruit_BusIO_Register.h @@ -0,0 +1,105 @@ +#ifndef Adafruit_BusIO_Register_h +#define Adafruit_BusIO_Register_h + +#include + +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) + +#include +#include + +typedef enum _Adafruit_BusIO_SPIRegType { + ADDRBIT8_HIGH_TOREAD = 0, + /*!< + * ADDRBIT8_HIGH_TOREAD + * When reading a register you must actually send the value 0x80 + register + * address to the device. e.g. To read the register 0x0B the register value + * 0x8B is sent and to write 0x0B is sent. + */ + AD8_HIGH_TOREAD_AD7_HIGH_TOINC = 1, + + /*!< + * ADDRBIT8_HIGH_TOWRITE + * When writing to a register you must actually send the value 0x80 + + * the register address to the device. e.g. To write to the register 0x19 the + * register value 0x99 is sent and to read 0x19 is sent. + */ + ADDRBIT8_HIGH_TOWRITE = 2, + + /*!< + * ADDRESSED_OPCODE_LOWBIT_TO_WRITE + * Used by the MCP23S series, we send 0x40 |'rd with the opcode + * Then set the lowest bit to write + */ + ADDRESSED_OPCODE_BIT0_LOW_TO_WRITE = 3, + +} Adafruit_BusIO_SPIRegType; + +/*! + * @brief The class which defines a device register (a location to read/write + * data from) + */ +class Adafruit_BusIO_Register { +public: + Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice, uint16_t reg_addr, + uint8_t width = 1, uint8_t byteorder = LSBFIRST, + uint8_t address_width = 1); + + Adafruit_BusIO_Register(Adafruit_SPIDevice *spidevice, uint16_t reg_addr, + Adafruit_BusIO_SPIRegType type, uint8_t width = 1, + uint8_t byteorder = LSBFIRST, + uint8_t address_width = 1); + + Adafruit_BusIO_Register(Adafruit_I2CDevice *i2cdevice, + Adafruit_SPIDevice *spidevice, + Adafruit_BusIO_SPIRegType type, uint16_t reg_addr, + uint8_t width = 1, uint8_t byteorder = LSBFIRST, + uint8_t address_width = 1); + + bool read(uint8_t *buffer, uint8_t len); + bool read(uint8_t *value); + bool read(uint16_t *value); + uint32_t read(void); + uint32_t readCached(void); + bool write(uint8_t *buffer, uint8_t len); + bool write(uint32_t value, uint8_t numbytes = 0); + + uint8_t width(void); + + void setWidth(uint8_t width); + void setAddress(uint16_t address); + void setAddressWidth(uint16_t address_width); + + void print(Stream *s = &Serial); + void println(Stream *s = &Serial); + +private: + Adafruit_I2CDevice *_i2cdevice; + Adafruit_SPIDevice *_spidevice; + Adafruit_BusIO_SPIRegType _spiregtype; + uint16_t _address; + uint8_t _width, _addrwidth, _byteorder; + uint8_t _buffer[4]; // we won't support anything larger than uint32 for + // non-buffered read + uint32_t _cached = 0; +}; + +/*! + * @brief The class which defines a slice of bits from within a device register + * (a location to read/write data from) + */ +class Adafruit_BusIO_RegisterBits { +public: + Adafruit_BusIO_RegisterBits(Adafruit_BusIO_Register *reg, uint8_t bits, + uint8_t shift); + bool write(uint32_t value); + uint32_t read(void); + +private: + Adafruit_BusIO_Register *_register; + uint8_t _bits, _shift; +}; + +#endif // SPI exists +#endif // BusIO_Register_h diff --git a/firmware/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp b/firmware/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp new file mode 100644 index 0000000..9b518b4 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/Adafruit_I2CDevice.cpp @@ -0,0 +1,313 @@ +#include "Adafruit_I2CDevice.h" + +//#define DEBUG_SERIAL Serial + +/*! + * @brief Create an I2C device at a given address + * @param addr The 7-bit I2C address for the device + * @param theWire The I2C bus to use, defaults to &Wire + */ +Adafruit_I2CDevice::Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire) { + _addr = addr; + _wire = theWire; + _begun = false; +#ifdef ARDUINO_ARCH_SAMD + _maxBufferSize = 250; // as defined in Wire.h's RingBuffer +#elif defined(ESP32) + _maxBufferSize = I2C_BUFFER_LENGTH; +#else + _maxBufferSize = 32; +#endif +} + +/*! + * @brief Initializes and does basic address detection + * @param addr_detect Whether we should attempt to detect the I2C address + * with a scan. 99% of sensors/devices don't mind but once in a while, they spaz + * on a scan! + * @return True if I2C initialized and a device with the addr found + */ +bool Adafruit_I2CDevice::begin(bool addr_detect) { + _wire->begin(); + _begun = true; + + if (addr_detect) { + return detected(); + } + return true; +} + +/*! + * @brief De-initialize device, turn off the Wire interface + */ +void Adafruit_I2CDevice::end(void) { + // Not all port implement Wire::end(), such as + // - ESP8266 + // - AVR core without WIRE_HAS_END + // - ESP32: end() is implemented since 2.0.1 which is latest at the moment. + // Temporarily disable for now to give time for user to update. +#if !(defined(ESP8266) || \ + (defined(ARDUINO_ARCH_AVR) && !defined(WIRE_HAS_END)) || \ + defined(ARDUINO_ARCH_ESP32)) + _wire->end(); + _begun = false; +#endif +} + +/*! + * @brief Scans I2C for the address - note will give a false-positive + * if there's no pullups on I2C + * @return True if I2C initialized and a device with the addr found + */ +bool Adafruit_I2CDevice::detected(void) { + // Init I2C if not done yet + if (!_begun && !begin()) { + return false; + } + + // A basic scanner, see if it ACK's + _wire->beginTransmission(_addr); + if (_wire->endTransmission() == 0) { +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.println(F("Detected")); +#endif + return true; + } +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.println(F("Not detected")); +#endif + return false; +} + +/*! + * @brief Write a buffer or two to the I2C device. Cannot be more than + * maxBufferSize() bytes. + * @param buffer Pointer to buffer of data to write. This is const to + * ensure the content of this buffer doesn't change. + * @param len Number of bytes from buffer to write + * @param prefix_buffer Pointer to optional array of data to write before + * buffer. Cannot be more than maxBufferSize() bytes. This is const to + * ensure the content of this buffer doesn't change. + * @param prefix_len Number of bytes from prefix buffer to write + * @param stop Whether to send an I2C STOP signal on write + * @return True if write was successful, otherwise false. + */ +bool Adafruit_I2CDevice::write(const uint8_t *buffer, size_t len, bool stop, + const uint8_t *prefix_buffer, + size_t prefix_len) { + if ((len + prefix_len) > maxBufferSize()) { + // currently not guaranteed to work if more than 32 bytes! + // we will need to find out if some platforms have larger + // I2C buffer sizes :/ +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.println(F("\tI2CDevice could not write such a large buffer")); +#endif + return false; + } + + _wire->beginTransmission(_addr); + + // Write the prefix data (usually an address) + if ((prefix_len != 0) && (prefix_buffer != nullptr)) { + if (_wire->write(prefix_buffer, prefix_len) != prefix_len) { +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.println(F("\tI2CDevice failed to write")); +#endif + return false; + } + } + + // Write the data itself + if (_wire->write(buffer, len) != len) { +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.println(F("\tI2CDevice failed to write")); +#endif + return false; + } + +#ifdef DEBUG_SERIAL + + DEBUG_SERIAL.print(F("\tI2CWRITE @ 0x")); + DEBUG_SERIAL.print(_addr, HEX); + DEBUG_SERIAL.print(F(" :: ")); + if ((prefix_len != 0) && (prefix_buffer != nullptr)) { + for (uint16_t i = 0; i < prefix_len; i++) { + DEBUG_SERIAL.print(F("0x")); + DEBUG_SERIAL.print(prefix_buffer[i], HEX); + DEBUG_SERIAL.print(F(", ")); + } + } + for (uint16_t i = 0; i < len; i++) { + DEBUG_SERIAL.print(F("0x")); + DEBUG_SERIAL.print(buffer[i], HEX); + DEBUG_SERIAL.print(F(", ")); + if (i % 32 == 31) { + DEBUG_SERIAL.println(); + } + } + + if (stop) { + DEBUG_SERIAL.print("\tSTOP"); + } +#endif + + if (_wire->endTransmission(stop) == 0) { +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.println(); + // DEBUG_SERIAL.println("Sent!"); +#endif + return true; + } else { +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.println("\tFailed to send!"); +#endif + return false; + } +} + +/*! + * @brief Read from I2C into a buffer from the I2C device. + * Cannot be more than maxBufferSize() bytes. + * @param buffer Pointer to buffer of data to read into + * @param len Number of bytes from buffer to read. + * @param stop Whether to send an I2C STOP signal on read + * @return True if read was successful, otherwise false. + */ +bool Adafruit_I2CDevice::read(uint8_t *buffer, size_t len, bool stop) { + size_t pos = 0; + while (pos < len) { + size_t read_len = + ((len - pos) > maxBufferSize()) ? maxBufferSize() : (len - pos); + bool read_stop = (pos < (len - read_len)) ? false : stop; + if (!_read(buffer + pos, read_len, read_stop)) + return false; + pos += read_len; + } + return true; +} + +bool Adafruit_I2CDevice::_read(uint8_t *buffer, size_t len, bool stop) { +#if defined(TinyWireM_h) + size_t recv = _wire->requestFrom((uint8_t)_addr, (uint8_t)len); +#elif defined(ARDUINO_ARCH_MEGAAVR) + size_t recv = _wire->requestFrom(_addr, len, stop); +#else + size_t recv = _wire->requestFrom((uint8_t)_addr, (uint8_t)len, (uint8_t)stop); +#endif + + if (recv != len) { + // Not enough data available to fulfill our obligation! +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.print(F("\tI2CDevice did not receive enough data: ")); + DEBUG_SERIAL.println(recv); +#endif + return false; + } + + for (uint16_t i = 0; i < len; i++) { + buffer[i] = _wire->read(); + } + +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.print(F("\tI2CREAD @ 0x")); + DEBUG_SERIAL.print(_addr, HEX); + DEBUG_SERIAL.print(F(" :: ")); + for (uint16_t i = 0; i < len; i++) { + DEBUG_SERIAL.print(F("0x")); + DEBUG_SERIAL.print(buffer[i], HEX); + DEBUG_SERIAL.print(F(", ")); + if (len % 32 == 31) { + DEBUG_SERIAL.println(); + } + } + DEBUG_SERIAL.println(); +#endif + + return true; +} + +/*! + * @brief Write some data, then read some data from I2C into another buffer. + * Cannot be more than maxBufferSize() bytes. The buffers can point to + * same/overlapping locations. + * @param write_buffer Pointer to buffer of data to write from + * @param write_len Number of bytes from buffer to write. + * @param read_buffer Pointer to buffer of data to read into. + * @param read_len Number of bytes from buffer to read. + * @param stop Whether to send an I2C STOP signal between the write and read + * @return True if write & read was successful, otherwise false. + */ +bool Adafruit_I2CDevice::write_then_read(const uint8_t *write_buffer, + size_t write_len, uint8_t *read_buffer, + size_t read_len, bool stop) { + if (!write(write_buffer, write_len, stop)) { + return false; + } + + return read(read_buffer, read_len); +} + +/*! + * @brief Returns the 7-bit address of this device + * @return The 7-bit address of this device + */ +uint8_t Adafruit_I2CDevice::address(void) { return _addr; } + +/*! + * @brief Change the I2C clock speed to desired (relies on + * underlying Wire support! + * @param desiredclk The desired I2C SCL frequency + * @return True if this platform supports changing I2C speed. + * Not necessarily that the speed was achieved! + */ +bool Adafruit_I2CDevice::setSpeed(uint32_t desiredclk) { +#if defined(__AVR_ATmega328__) || \ + defined(__AVR_ATmega328P__) // fix arduino core set clock + // calculate TWBR correctly + + if ((F_CPU / 18) < desiredclk) { +#ifdef DEBUG_SERIAL + Serial.println(F("I2C.setSpeed too high.")); +#endif + return false; + } + uint32_t atwbr = ((F_CPU / desiredclk) - 16) / 2; + if (atwbr > 16320) { +#ifdef DEBUG_SERIAL + Serial.println(F("I2C.setSpeed too low.")); +#endif + return false; + } + + if (atwbr <= 255) { + atwbr /= 1; + TWSR = 0x0; + } else if (atwbr <= 1020) { + atwbr /= 4; + TWSR = 0x1; + } else if (atwbr <= 4080) { + atwbr /= 16; + TWSR = 0x2; + } else { // if (atwbr <= 16320) + atwbr /= 64; + TWSR = 0x3; + } + TWBR = atwbr; + +#ifdef DEBUG_SERIAL + Serial.print(F("TWSR prescaler = ")); + Serial.println(pow(4, TWSR)); + Serial.print(F("TWBR = ")); + Serial.println(atwbr); +#endif + return true; +#elif (ARDUINO >= 157) && !defined(ARDUINO_STM32_FEATHER) && \ + !defined(TinyWireM_h) + _wire->setClock(desiredclk); + return true; + +#else + (void)desiredclk; + return false; +#endif +} diff --git a/firmware/libraries/Adafruit_BusIO/Adafruit_I2CDevice.h b/firmware/libraries/Adafruit_BusIO/Adafruit_I2CDevice.h new file mode 100644 index 0000000..6bda7ba --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/Adafruit_I2CDevice.h @@ -0,0 +1,36 @@ +#ifndef Adafruit_I2CDevice_h +#define Adafruit_I2CDevice_h + +#include +#include + +///< The class which defines how we will talk to this device over I2C +class Adafruit_I2CDevice { +public: + Adafruit_I2CDevice(uint8_t addr, TwoWire *theWire = &Wire); + uint8_t address(void); + bool begin(bool addr_detect = true); + void end(void); + bool detected(void); + + bool read(uint8_t *buffer, size_t len, bool stop = true); + bool write(const uint8_t *buffer, size_t len, bool stop = true, + const uint8_t *prefix_buffer = nullptr, size_t prefix_len = 0); + bool write_then_read(const uint8_t *write_buffer, size_t write_len, + uint8_t *read_buffer, size_t read_len, + bool stop = false); + bool setSpeed(uint32_t desiredclk); + + /*! @brief How many bytes we can read in a transaction + * @return The size of the Wire receive/transmit buffer */ + size_t maxBufferSize() { return _maxBufferSize; } + +private: + uint8_t _addr; + TwoWire *_wire; + bool _begun; + size_t _maxBufferSize; + bool _read(uint8_t *buffer, size_t len, bool stop); +}; + +#endif // Adafruit_I2CDevice_h diff --git a/firmware/libraries/Adafruit_BusIO/Adafruit_I2CRegister.h b/firmware/libraries/Adafruit_BusIO/Adafruit_I2CRegister.h new file mode 100644 index 0000000..186850f --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/Adafruit_I2CRegister.h @@ -0,0 +1,10 @@ +#ifndef _ADAFRUIT_I2C_REGISTER_H_ +#define _ADAFRUIT_I2C_REGISTER_H_ + +#include +#include + +typedef Adafruit_BusIO_Register Adafruit_I2CRegister; +typedef Adafruit_BusIO_RegisterBits Adafruit_I2CRegisterBits; + +#endif diff --git a/firmware/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp b/firmware/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp new file mode 100644 index 0000000..6f0069b --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/Adafruit_SPIDevice.cpp @@ -0,0 +1,508 @@ +#include "Adafruit_SPIDevice.h" + +//#define DEBUG_SERIAL Serial + +/*! + * @brief Create an SPI device with the given CS pin and settings + * @param cspin The arduino pin number to use for chip select + * @param freq The SPI clock frequency to use, defaults to 1MHz + * @param dataOrder The SPI data order to use for bits within each byte, + * defaults to SPI_BITORDER_MSBFIRST + * @param dataMode The SPI mode to use, defaults to SPI_MODE0 + * @param theSPI The SPI bus to use, defaults to &theSPI + */ +Adafruit_SPIDevice::Adafruit_SPIDevice(int8_t cspin, uint32_t freq, + BusIOBitOrder dataOrder, + uint8_t dataMode, SPIClass *theSPI) { +#ifdef BUSIO_HAS_HW_SPI + _cs = cspin; + _sck = _mosi = _miso = -1; + _spi = theSPI; + _begun = false; + _spiSetting = new SPISettings(freq, dataOrder, dataMode); + _freq = freq; + _dataOrder = dataOrder; + _dataMode = dataMode; +#else + // unused, but needed to suppress compiler warns + (void)cspin; + (void)freq; + (void)dataOrder; + (void)dataMode; + (void)theSPI; +#endif +} + +/*! + * @brief Create an SPI device with the given CS pin and settings + * @param cspin The arduino pin number to use for chip select + * @param sckpin The arduino pin number to use for SCK + * @param misopin The arduino pin number to use for MISO, set to -1 if not + * used + * @param mosipin The arduino pin number to use for MOSI, set to -1 if not + * used + * @param freq The SPI clock frequency to use, defaults to 1MHz + * @param dataOrder The SPI data order to use for bits within each byte, + * defaults to SPI_BITORDER_MSBFIRST + * @param dataMode The SPI mode to use, defaults to SPI_MODE0 + */ +Adafruit_SPIDevice::Adafruit_SPIDevice(int8_t cspin, int8_t sckpin, + int8_t misopin, int8_t mosipin, + uint32_t freq, BusIOBitOrder dataOrder, + uint8_t dataMode) { + _cs = cspin; + _sck = sckpin; + _miso = misopin; + _mosi = mosipin; + +#ifdef BUSIO_USE_FAST_PINIO + csPort = (BusIO_PortReg *)portOutputRegister(digitalPinToPort(cspin)); + csPinMask = digitalPinToBitMask(cspin); + if (mosipin != -1) { + mosiPort = (BusIO_PortReg *)portOutputRegister(digitalPinToPort(mosipin)); + mosiPinMask = digitalPinToBitMask(mosipin); + } + if (misopin != -1) { + misoPort = (BusIO_PortReg *)portInputRegister(digitalPinToPort(misopin)); + misoPinMask = digitalPinToBitMask(misopin); + } + clkPort = (BusIO_PortReg *)portOutputRegister(digitalPinToPort(sckpin)); + clkPinMask = digitalPinToBitMask(sckpin); +#endif + + _freq = freq; + _dataOrder = dataOrder; + _dataMode = dataMode; + _begun = false; +} + +/*! + * @brief Release memory allocated in constructors + */ +Adafruit_SPIDevice::~Adafruit_SPIDevice() { + if (_spiSetting) + delete _spiSetting; +} + +/*! + * @brief Initializes SPI bus and sets CS pin high + * @return Always returns true because there's no way to test success of SPI + * init + */ +bool Adafruit_SPIDevice::begin(void) { + if (_cs != -1) { + pinMode(_cs, OUTPUT); + digitalWrite(_cs, HIGH); + } + + if (_spi) { // hardware SPI +#ifdef BUSIO_HAS_HW_SPI + _spi->begin(); +#endif + } else { + pinMode(_sck, OUTPUT); + + if ((_dataMode == SPI_MODE0) || (_dataMode == SPI_MODE1)) { + // idle low on mode 0 and 1 + digitalWrite(_sck, LOW); + } else { + // idle high on mode 2 or 3 + digitalWrite(_sck, HIGH); + } + if (_mosi != -1) { + pinMode(_mosi, OUTPUT); + digitalWrite(_mosi, HIGH); + } + if (_miso != -1) { + pinMode(_miso, INPUT); + } + } + + _begun = true; + return true; +} + +/*! + * @brief Transfer (send/receive) a buffer over hard/soft SPI, without + * transaction management + * @param buffer The buffer to send and receive at the same time + * @param len The number of bytes to transfer + */ +void Adafruit_SPIDevice::transfer(uint8_t *buffer, size_t len) { + // + // HARDWARE SPI + // + if (_spi) { +#ifdef BUSIO_HAS_HW_SPI +#if defined(SPARK) + _spi->transfer(buffer, buffer, len, nullptr); +#elif defined(STM32) + for (size_t i = 0; i < len; i++) { + _spi->transfer(buffer[i]); + } +#else + _spi->transfer(buffer, len); +#endif + return; +#endif + } + + // + // SOFTWARE SPI + // + uint8_t startbit; + if (_dataOrder == SPI_BITORDER_LSBFIRST) { + startbit = 0x1; + } else { + startbit = 0x80; + } + + bool towrite, lastmosi = !(buffer[0] & startbit); + uint8_t bitdelay_us = (1000000 / _freq) / 2; + + for (size_t i = 0; i < len; i++) { + uint8_t reply = 0; + uint8_t send = buffer[i]; + + /* + Serial.print("\tSending software SPI byte 0x"); + Serial.print(send, HEX); + Serial.print(" -> 0x"); + */ + + // Serial.print(send, HEX); + for (uint8_t b = startbit; b != 0; + b = (_dataOrder == SPI_BITORDER_LSBFIRST) ? b << 1 : b >> 1) { + + if (bitdelay_us) { + delayMicroseconds(bitdelay_us); + } + + if (_dataMode == SPI_MODE0 || _dataMode == SPI_MODE2) { + towrite = send & b; + if ((_mosi != -1) && (lastmosi != towrite)) { +#ifdef BUSIO_USE_FAST_PINIO + if (towrite) + *mosiPort |= mosiPinMask; + else + *mosiPort &= ~mosiPinMask; +#else + digitalWrite(_mosi, towrite); +#endif + lastmosi = towrite; + } + +#ifdef BUSIO_USE_FAST_PINIO + *clkPort |= clkPinMask; // Clock high +#else + digitalWrite(_sck, HIGH); +#endif + + if (bitdelay_us) { + delayMicroseconds(bitdelay_us); + } + + if (_miso != -1) { +#ifdef BUSIO_USE_FAST_PINIO + if (*misoPort & misoPinMask) { +#else + if (digitalRead(_miso)) { +#endif + reply |= b; + } + } + +#ifdef BUSIO_USE_FAST_PINIO + *clkPort &= ~clkPinMask; // Clock low +#else + digitalWrite(_sck, LOW); +#endif + } else { // if (_dataMode == SPI_MODE1 || _dataMode == SPI_MODE3) + +#ifdef BUSIO_USE_FAST_PINIO + *clkPort |= clkPinMask; // Clock high +#else + digitalWrite(_sck, HIGH); +#endif + + if (bitdelay_us) { + delayMicroseconds(bitdelay_us); + } + + if (_mosi != -1) { +#ifdef BUSIO_USE_FAST_PINIO + if (send & b) + *mosiPort |= mosiPinMask; + else + *mosiPort &= ~mosiPinMask; +#else + digitalWrite(_mosi, send & b); +#endif + } + +#ifdef BUSIO_USE_FAST_PINIO + *clkPort &= ~clkPinMask; // Clock low +#else + digitalWrite(_sck, LOW); +#endif + + if (_miso != -1) { +#ifdef BUSIO_USE_FAST_PINIO + if (*misoPort & misoPinMask) { +#else + if (digitalRead(_miso)) { +#endif + reply |= b; + } + } + } + if (_miso != -1) { + buffer[i] = reply; + } + } + } + return; +} + +/*! + * @brief Transfer (send/receive) one byte over hard/soft SPI, without + * transaction management + * @param send The byte to send + * @return The byte received while transmitting + */ +uint8_t Adafruit_SPIDevice::transfer(uint8_t send) { + uint8_t data = send; + transfer(&data, 1); + return data; +} + +/*! + * @brief Manually begin a transaction (calls beginTransaction if hardware + * SPI) + */ +void Adafruit_SPIDevice::beginTransaction(void) { + if (_spi) { +#ifdef BUSIO_HAS_HW_SPI + _spi->beginTransaction(*_spiSetting); +#endif + } +} + +/*! + * @brief Manually end a transaction (calls endTransaction if hardware SPI) + */ +void Adafruit_SPIDevice::endTransaction(void) { + if (_spi) { +#ifdef BUSIO_HAS_HW_SPI + _spi->endTransaction(); +#endif + } +} + +/*! + * @brief Assert/Deassert the CS pin if it is defined + * @param value The state the CS is set to + */ +void Adafruit_SPIDevice::setChipSelect(int value) { + if (_cs != -1) { + digitalWrite(_cs, value); + } +} + +/*! + * @brief Write a buffer or two to the SPI device, with transaction + * management. + * @brief Manually begin a transaction (calls beginTransaction if hardware + * SPI) with asserting the CS pin + */ +void Adafruit_SPIDevice::beginTransactionWithAssertingCS() { + beginTransaction(); + setChipSelect(LOW); +} + +/*! + * @brief Manually end a transaction (calls endTransaction if hardware SPI) + * with deasserting the CS pin + */ +void Adafruit_SPIDevice::endTransactionWithDeassertingCS() { + setChipSelect(HIGH); + endTransaction(); +} + +/*! + * @brief Write a buffer or two to the SPI device, with transaction + * management. + * @param buffer Pointer to buffer of data to write + * @param len Number of bytes from buffer to write + * @param prefix_buffer Pointer to optional array of data to write before + * buffer. + * @param prefix_len Number of bytes from prefix buffer to write + * @return Always returns true because there's no way to test success of SPI + * writes + */ +bool Adafruit_SPIDevice::write(const uint8_t *buffer, size_t len, + const uint8_t *prefix_buffer, + size_t prefix_len) { + beginTransactionWithAssertingCS(); + + // do the writing +#if defined(ARDUINO_ARCH_ESP32) + if (_spi) { + if (prefix_len > 0) { + _spi->transferBytes(prefix_buffer, nullptr, prefix_len); + } + if (len > 0) { + _spi->transferBytes(buffer, nullptr, len); + } + } else +#endif + { + for (size_t i = 0; i < prefix_len; i++) { + transfer(prefix_buffer[i]); + } + for (size_t i = 0; i < len; i++) { + transfer(buffer[i]); + } + } + endTransactionWithDeassertingCS(); + +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.print(F("\tSPIDevice Wrote: ")); + if ((prefix_len != 0) && (prefix_buffer != nullptr)) { + for (uint16_t i = 0; i < prefix_len; i++) { + DEBUG_SERIAL.print(F("0x")); + DEBUG_SERIAL.print(prefix_buffer[i], HEX); + DEBUG_SERIAL.print(F(", ")); + } + } + for (uint16_t i = 0; i < len; i++) { + DEBUG_SERIAL.print(F("0x")); + DEBUG_SERIAL.print(buffer[i], HEX); + DEBUG_SERIAL.print(F(", ")); + if (i % 32 == 31) { + DEBUG_SERIAL.println(); + } + } + DEBUG_SERIAL.println(); +#endif + + return true; +} + +/*! + * @brief Read from SPI into a buffer from the SPI device, with transaction + * management. + * @param buffer Pointer to buffer of data to read into + * @param len Number of bytes from buffer to read. + * @param sendvalue The 8-bits of data to write when doing the data read, + * defaults to 0xFF + * @return Always returns true because there's no way to test success of SPI + * writes + */ +bool Adafruit_SPIDevice::read(uint8_t *buffer, size_t len, uint8_t sendvalue) { + memset(buffer, sendvalue, len); // clear out existing buffer + + beginTransactionWithAssertingCS(); + transfer(buffer, len); + endTransactionWithDeassertingCS(); + +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.print(F("\tSPIDevice Read: ")); + for (uint16_t i = 0; i < len; i++) { + DEBUG_SERIAL.print(F("0x")); + DEBUG_SERIAL.print(buffer[i], HEX); + DEBUG_SERIAL.print(F(", ")); + if (len % 32 == 31) { + DEBUG_SERIAL.println(); + } + } + DEBUG_SERIAL.println(); +#endif + + return true; +} + +/*! + * @brief Write some data, then read some data from SPI into another buffer, + * with transaction management. The buffers can point to same/overlapping + * locations. This does not transmit-receive at the same time! + * @param write_buffer Pointer to buffer of data to write from + * @param write_len Number of bytes from buffer to write. + * @param read_buffer Pointer to buffer of data to read into. + * @param read_len Number of bytes from buffer to read. + * @param sendvalue The 8-bits of data to write when doing the data read, + * defaults to 0xFF + * @return Always returns true because there's no way to test success of SPI + * writes + */ +bool Adafruit_SPIDevice::write_then_read(const uint8_t *write_buffer, + size_t write_len, uint8_t *read_buffer, + size_t read_len, uint8_t sendvalue) { + beginTransactionWithAssertingCS(); + // do the writing +#if defined(ARDUINO_ARCH_ESP32) + if (_spi) { + if (write_len > 0) { + _spi->transferBytes(write_buffer, nullptr, write_len); + } + } else +#endif + { + for (size_t i = 0; i < write_len; i++) { + transfer(write_buffer[i]); + } + } + +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.print(F("\tSPIDevice Wrote: ")); + for (uint16_t i = 0; i < write_len; i++) { + DEBUG_SERIAL.print(F("0x")); + DEBUG_SERIAL.print(write_buffer[i], HEX); + DEBUG_SERIAL.print(F(", ")); + if (write_len % 32 == 31) { + DEBUG_SERIAL.println(); + } + } + DEBUG_SERIAL.println(); +#endif + + // do the reading + for (size_t i = 0; i < read_len; i++) { + read_buffer[i] = transfer(sendvalue); + } + +#ifdef DEBUG_SERIAL + DEBUG_SERIAL.print(F("\tSPIDevice Read: ")); + for (uint16_t i = 0; i < read_len; i++) { + DEBUG_SERIAL.print(F("0x")); + DEBUG_SERIAL.print(read_buffer[i], HEX); + DEBUG_SERIAL.print(F(", ")); + if (read_len % 32 == 31) { + DEBUG_SERIAL.println(); + } + } + DEBUG_SERIAL.println(); +#endif + + endTransactionWithDeassertingCS(); + + return true; +} + +/*! + * @brief Write some data and read some data at the same time from SPI + * into the same buffer, with transaction management. This is basicaly a wrapper + * for transfer() with CS-pin and transaction management. This /does/ + * transmit-receive at the same time! + * @param buffer Pointer to buffer of data to write/read to/from + * @param len Number of bytes from buffer to write/read. + * @return Always returns true because there's no way to test success of SPI + * writes + */ +bool Adafruit_SPIDevice::write_and_read(uint8_t *buffer, size_t len) { + beginTransactionWithAssertingCS(); + transfer(buffer, len); + endTransactionWithDeassertingCS(); + + return true; +} diff --git a/firmware/libraries/Adafruit_BusIO/Adafruit_SPIDevice.h b/firmware/libraries/Adafruit_BusIO/Adafruit_SPIDevice.h new file mode 100644 index 0000000..7a6c0f5 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/Adafruit_SPIDevice.h @@ -0,0 +1,138 @@ +#ifndef Adafruit_SPIDevice_h +#define Adafruit_SPIDevice_h + +#include + +#if !defined(SPI_INTERFACES_COUNT) || \ + (defined(SPI_INTERFACES_COUNT) && (SPI_INTERFACES_COUNT > 0)) +// HW SPI available +#include +#define BUSIO_HAS_HW_SPI +#else +// SW SPI ONLY +enum { SPI_MODE0, SPI_MODE1, SPI_MODE2, _SPI_MODE4 }; +typedef uint8_t SPIClass; +#endif + +// some modern SPI definitions don't have BitOrder enum +#if (defined(__AVR__) && !defined(ARDUINO_ARCH_MEGAAVR)) || \ + defined(ESP8266) || defined(TEENSYDUINO) || defined(SPARK) || \ + defined(ARDUINO_ARCH_SPRESENSE) || defined(MEGATINYCORE) || \ + defined(DXCORE) || defined(ARDUINO_AVR_ATmega4809) || \ + defined(ARDUINO_AVR_ATmega4808) || defined(ARDUINO_AVR_ATmega3209) || \ + defined(ARDUINO_AVR_ATmega3208) || defined(ARDUINO_AVR_ATmega1609) || \ + defined(ARDUINO_AVR_ATmega1608) || defined(ARDUINO_AVR_ATmega809) || \ + defined(ARDUINO_AVR_ATmega808) || defined(ARDUINO_ARCH_ARC32) + +typedef enum _BitOrder { + SPI_BITORDER_MSBFIRST = MSBFIRST, + SPI_BITORDER_LSBFIRST = LSBFIRST, +} BusIOBitOrder; + +#elif defined(ESP32) || defined(__ASR6501__) || defined(__ASR6502__) + +// some modern SPI definitions don't have BitOrder enum and have different SPI +// mode defines +typedef enum _BitOrder { + SPI_BITORDER_MSBFIRST = SPI_MSBFIRST, + SPI_BITORDER_LSBFIRST = SPI_LSBFIRST, +} BusIOBitOrder; + +#else +// Some platforms have a BitOrder enum but its named MSBFIRST/LSBFIRST +#define SPI_BITORDER_MSBFIRST MSBFIRST +#define SPI_BITORDER_LSBFIRST LSBFIRST +typedef BitOrder BusIOBitOrder; +#endif + +#if defined(__IMXRT1062__) // Teensy 4.x +// *Warning* I disabled the usage of FAST_PINIO as the set/clear operations +// used in the cpp file are not atomic and can effect multiple IO pins +// and if an interrupt happens in between the time the code reads the register +// and writes out the updated value, that changes one or more other IO pins +// on that same IO port, those change will be clobbered when the updated +// values are written back. A fast version can be implemented that uses the +// ports set and clear registers which are atomic. +// typedef volatile uint32_t BusIO_PortReg; +// typedef uint32_t BusIO_PortMask; +//#define BUSIO_USE_FAST_PINIO + +#elif defined(__AVR__) || defined(TEENSYDUINO) +typedef volatile uint8_t BusIO_PortReg; +typedef uint8_t BusIO_PortMask; +#define BUSIO_USE_FAST_PINIO + +#elif defined(ESP8266) || defined(ESP32) || defined(__SAM3X8E__) || \ + defined(ARDUINO_ARCH_SAMD) +typedef volatile uint32_t BusIO_PortReg; +typedef uint32_t BusIO_PortMask; +#define BUSIO_USE_FAST_PINIO + +#elif (defined(__arm__) || defined(ARDUINO_FEATHER52)) && \ + !defined(ARDUINO_ARCH_MBED) && !defined(ARDUINO_ARCH_RP2040) +typedef volatile uint32_t BusIO_PortReg; +typedef uint32_t BusIO_PortMask; +#if !defined(__ASR6501__) && !defined(__ASR6502__) +#define BUSIO_USE_FAST_PINIO +#endif + +#else +#undef BUSIO_USE_FAST_PINIO +#endif + +/**! The class which defines how we will talk to this device over SPI **/ +class Adafruit_SPIDevice { +public: +#ifdef BUSIO_HAS_HW_SPI + Adafruit_SPIDevice(int8_t cspin, uint32_t freq = 1000000, + BusIOBitOrder dataOrder = SPI_BITORDER_MSBFIRST, + uint8_t dataMode = SPI_MODE0, SPIClass *theSPI = &SPI); +#else + Adafruit_SPIDevice(int8_t cspin, uint32_t freq = 1000000, + BusIOBitOrder dataOrder = SPI_BITORDER_MSBFIRST, + uint8_t dataMode = SPI_MODE0, SPIClass *theSPI = nullptr); +#endif + Adafruit_SPIDevice(int8_t cspin, int8_t sck, int8_t miso, int8_t mosi, + uint32_t freq = 1000000, + BusIOBitOrder dataOrder = SPI_BITORDER_MSBFIRST, + uint8_t dataMode = SPI_MODE0); + ~Adafruit_SPIDevice(); + + bool begin(void); + bool read(uint8_t *buffer, size_t len, uint8_t sendvalue = 0xFF); + bool write(const uint8_t *buffer, size_t len, + const uint8_t *prefix_buffer = nullptr, size_t prefix_len = 0); + bool write_then_read(const uint8_t *write_buffer, size_t write_len, + uint8_t *read_buffer, size_t read_len, + uint8_t sendvalue = 0xFF); + bool write_and_read(uint8_t *buffer, size_t len); + + uint8_t transfer(uint8_t send); + void transfer(uint8_t *buffer, size_t len); + void beginTransaction(void); + void endTransaction(void); + void beginTransactionWithAssertingCS(); + void endTransactionWithDeassertingCS(); + +private: +#ifdef BUSIO_HAS_HW_SPI + SPIClass *_spi = nullptr; + SPISettings *_spiSetting = nullptr; +#else + uint8_t *_spi = nullptr; + uint8_t *_spiSetting = nullptr; +#endif + uint32_t _freq; + BusIOBitOrder _dataOrder; + uint8_t _dataMode; + void setChipSelect(int value); + + int8_t _cs, _sck, _mosi, _miso; +#ifdef BUSIO_USE_FAST_PINIO + BusIO_PortReg *mosiPort, *clkPort, *misoPort, *csPort; + BusIO_PortMask mosiPinMask, misoPinMask, clkPinMask, csPinMask; +#endif + bool _begun; +}; + +#endif // Adafruit_SPIDevice_h diff --git a/firmware/libraries/Adafruit_BusIO/CMakeLists.txt b/firmware/libraries/Adafruit_BusIO/CMakeLists.txt new file mode 100644 index 0000000..a7ea6e9 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/CMakeLists.txt @@ -0,0 +1,11 @@ +# Adafruit Bus IO Library +# https://github.com/adafruit/Adafruit_BusIO +# MIT License + +cmake_minimum_required(VERSION 3.5) + +idf_component_register(SRCS "Adafruit_I2CDevice.cpp" "Adafruit_BusIO_Register.cpp" "Adafruit_SPIDevice.cpp" + INCLUDE_DIRS "." + REQUIRES arduino) + +project(Adafruit_BusIO) diff --git a/firmware/libraries/Adafruit_BusIO/LICENSE b/firmware/libraries/Adafruit_BusIO/LICENSE new file mode 100644 index 0000000..860e3e2 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2017 Adafruit Industries + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/firmware/libraries/Adafruit_BusIO/README.md b/firmware/libraries/Adafruit_BusIO/README.md new file mode 100644 index 0000000..1cc06a1 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/README.md @@ -0,0 +1,8 @@ +# Adafruit Bus IO Library [![Build Status](https://github.com/adafruit/Adafruit_BusIO/workflows/Arduino%20Library%20CI/badge.svg)](https://github.com/adafruit/Adafruit_BusIO/actions) + + +This is a helper library to abstract away I2C & SPI transactions and registers + +Adafruit invests time and resources providing this open source code, please support Adafruit and open-source hardware by purchasing products from Adafruit! + +MIT license, all text above must be included in any redistribution diff --git a/firmware/libraries/Adafruit_BusIO/component.mk b/firmware/libraries/Adafruit_BusIO/component.mk new file mode 100644 index 0000000..004b18e --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/component.mk @@ -0,0 +1 @@ +COMPONENT_ADD_INCLUDEDIRS = . diff --git a/firmware/libraries/Adafruit_BusIO/examples/i2c_address_detect/i2c_address_detect.ino b/firmware/libraries/Adafruit_BusIO/examples/i2c_address_detect/i2c_address_detect.ino new file mode 100644 index 0000000..b150525 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/examples/i2c_address_detect/i2c_address_detect.ino @@ -0,0 +1,21 @@ +#include + +Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(0x10); + +void setup() { + while (!Serial) { delay(10); } + Serial.begin(115200); + Serial.println("I2C address detection test"); + + if (!i2c_dev.begin()) { + Serial.print("Did not find device at 0x"); + Serial.println(i2c_dev.address(), HEX); + while (1); + } + Serial.print("Device found on address 0x"); + Serial.println(i2c_dev.address(), HEX); +} + +void loop() { + +} diff --git a/firmware/libraries/Adafruit_BusIO/examples/i2c_readwrite/i2c_readwrite.ino b/firmware/libraries/Adafruit_BusIO/examples/i2c_readwrite/i2c_readwrite.ino new file mode 100644 index 0000000..909cf31 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/examples/i2c_readwrite/i2c_readwrite.ino @@ -0,0 +1,41 @@ +#include + +#define I2C_ADDRESS 0x60 +Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(I2C_ADDRESS); + + +void setup() { + while (!Serial) { delay(10); } + Serial.begin(115200); + Serial.println("I2C device read and write test"); + + if (!i2c_dev.begin()) { + Serial.print("Did not find device at 0x"); + Serial.println(i2c_dev.address(), HEX); + while (1); + } + Serial.print("Device found on address 0x"); + Serial.println(i2c_dev.address(), HEX); + + uint8_t buffer[32]; + // Try to read 32 bytes + i2c_dev.read(buffer, 32); + Serial.print("Read: "); + for (uint8_t i=0; i<32; i++) { + Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(", "); + } + Serial.println(); + + // read a register by writing first, then reading + buffer[0] = 0x0C; // we'll reuse the same buffer + i2c_dev.write_then_read(buffer, 1, buffer, 2, false); + Serial.print("Write then Read: "); + for (uint8_t i=0; i<2; i++) { + Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(", "); + } + Serial.println(); +} + +void loop() { + +} diff --git a/firmware/libraries/Adafruit_BusIO/examples/i2c_registers/i2c_registers.ino b/firmware/libraries/Adafruit_BusIO/examples/i2c_registers/i2c_registers.ino new file mode 100644 index 0000000..41a3043 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/examples/i2c_registers/i2c_registers.ino @@ -0,0 +1,38 @@ +#include +#include + +#define I2C_ADDRESS 0x60 +Adafruit_I2CDevice i2c_dev = Adafruit_I2CDevice(I2C_ADDRESS); + + +void setup() { + while (!Serial) { delay(10); } + Serial.begin(115200); + Serial.println("I2C device register test"); + + if (!i2c_dev.begin()) { + Serial.print("Did not find device at 0x"); + Serial.println(i2c_dev.address(), HEX); + while (1); + } + Serial.print("Device found on address 0x"); + Serial.println(i2c_dev.address(), HEX); + + Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(&i2c_dev, 0x0C, 2, LSBFIRST); + uint16_t id; + id_reg.read(&id); + Serial.print("ID register = 0x"); Serial.println(id, HEX); + + Adafruit_BusIO_Register thresh_reg = Adafruit_BusIO_Register(&i2c_dev, 0x01, 2, LSBFIRST); + uint16_t thresh; + thresh_reg.read(&thresh); + Serial.print("Initial threshold register = 0x"); Serial.println(thresh, HEX); + + thresh_reg.write(~thresh); + + Serial.print("Post threshold register = 0x"); Serial.println(thresh_reg.read(), HEX); +} + +void loop() { + +} \ No newline at end of file diff --git a/firmware/libraries/Adafruit_BusIO/examples/i2corspi_register/i2corspi_register.ino b/firmware/libraries/Adafruit_BusIO/examples/i2corspi_register/i2corspi_register.ino new file mode 100644 index 0000000..992a2e0 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/examples/i2corspi_register/i2corspi_register.ino @@ -0,0 +1,38 @@ +#include + +// Define which interface to use by setting the unused interface to NULL! + +#define SPIDEVICE_CS 10 +Adafruit_SPIDevice *spi_dev = NULL; // new Adafruit_SPIDevice(SPIDEVICE_CS); + +#define I2C_ADDRESS 0x5D +Adafruit_I2CDevice *i2c_dev = new Adafruit_I2CDevice(I2C_ADDRESS); + +void setup() { + while (!Serial) { delay(10); } + Serial.begin(115200); + Serial.println("I2C or SPI device register test"); + + if (spi_dev && !spi_dev->begin()) { + Serial.println("Could not initialize SPI device"); + } + + if (i2c_dev) { + if (i2c_dev->begin()) { + Serial.print("Device found on I2C address 0x"); + Serial.println(i2c_dev->address(), HEX); + } else { + Serial.print("Did not find I2C device at 0x"); + Serial.println(i2c_dev->address(), HEX); + } + } + + Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(i2c_dev, spi_dev, ADDRBIT8_HIGH_TOREAD, 0x0F); + uint8_t id=0; + id_reg.read(&id); + Serial.print("ID register = 0x"); Serial.println(id, HEX); +} + +void loop() { + +} diff --git a/firmware/libraries/Adafruit_BusIO/examples/spi_modetest/spi_modetest.ino b/firmware/libraries/Adafruit_BusIO/examples/spi_modetest/spi_modetest.ino new file mode 100644 index 0000000..10168c5 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/examples/spi_modetest/spi_modetest.ino @@ -0,0 +1,29 @@ +#include + +#define SPIDEVICE_CS 10 +Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS, 100000, SPI_BITORDER_MSBFIRST, SPI_MODE1); +//Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS, 13, 12, 11, 100000, SPI_BITORDER_MSBFIRST, SPI_MODE1); + + +void setup() { + while (!Serial) { delay(10); } + Serial.begin(115200); + Serial.println("SPI device mode test"); + + if (!spi_dev.begin()) { + Serial.println("Could not initialize SPI device"); + while (1); + } +} + +void loop() { + Serial.println("\n\nTransfer test"); + for (uint16_t x=0; x<=0xFF; x++) { + uint8_t i = x; + Serial.print("0x"); Serial.print(i, HEX); + spi_dev.read(&i, 1, i); + Serial.print("/"); Serial.print(i, HEX); + Serial.print(", "); + delay(25); + } +} \ No newline at end of file diff --git a/firmware/libraries/Adafruit_BusIO/examples/spi_readwrite/spi_readwrite.ino b/firmware/libraries/Adafruit_BusIO/examples/spi_readwrite/spi_readwrite.ino new file mode 100644 index 0000000..6f2c063 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/examples/spi_readwrite/spi_readwrite.ino @@ -0,0 +1,39 @@ +#include + +#define SPIDEVICE_CS 10 +Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS); + + +void setup() { + while (!Serial) { delay(10); } + Serial.begin(115200); + Serial.println("SPI device read and write test"); + + if (!spi_dev.begin()) { + Serial.println("Could not initialize SPI device"); + while (1); + } + + uint8_t buffer[32]; + + // Try to read 32 bytes + spi_dev.read(buffer, 32); + Serial.print("Read: "); + for (uint8_t i=0; i<32; i++) { + Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(", "); + } + Serial.println(); + + // read a register by writing first, then reading + buffer[0] = 0x8F; // we'll reuse the same buffer + spi_dev.write_then_read(buffer, 1, buffer, 2, false); + Serial.print("Write then Read: "); + for (uint8_t i=0; i<2; i++) { + Serial.print("0x"); Serial.print(buffer[i], HEX); Serial.print(", "); + } + Serial.println(); +} + +void loop() { + +} diff --git a/firmware/libraries/Adafruit_BusIO/examples/spi_register_bits/spi_register_bits.ino b/firmware/libraries/Adafruit_BusIO/examples/spi_register_bits/spi_register_bits.ino new file mode 100644 index 0000000..e70a17b --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/examples/spi_register_bits/spi_register_bits.ino @@ -0,0 +1,192 @@ +/*************************************************** + + This is an example for how to use Adafruit_BusIO_RegisterBits from Adafruit_BusIO library. + + Designed specifically to work with the Adafruit RTD Sensor + ----> https://www.adafruit.com/products/3328 + uisng a MAX31865 RTD-to-Digital Converter + ----> https://datasheets.maximintegrated.com/en/ds/MAX31865.pdf + + This sensor uses SPI to communicate, 4 pins are required to + interface. + A fifth pin helps to detect when a new conversion is ready. + + Adafruit invests time and resources providing this open source code, + please support Adafruit and open-source hardware by purchasing + products from Adafruit! + + Example written (2020/3) by Andreas Hardtung/AnHard. + BSD license, all text above must be included in any redistribution + ****************************************************/ + +#include +#include + +#define MAX31865_SPI_SPEED (5000000) +#define MAX31865_SPI_BITORDER (SPI_BITORDER_MSBFIRST) +#define MAX31865_SPI_MODE (SPI_MODE1) + +#define MAX31865_SPI_CS (10) +#define MAX31865_READY_PIN (2) + + +Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice( MAX31865_SPI_CS, MAX31865_SPI_SPEED, MAX31865_SPI_BITORDER, MAX31865_SPI_MODE, &SPI); // Hardware SPI +// Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice( MAX31865_SPI_CS, 13, 12, 11, MAX31865_SPI_SPEED, MAX31865_SPI_BITORDER, MAX31865_SPI_MODE); // Software SPI + +// MAX31865 chip related ********************************************************************************************* +Adafruit_BusIO_Register config_reg = Adafruit_BusIO_Register(&spi_dev, 0x00, ADDRBIT8_HIGH_TOWRITE, 1, MSBFIRST); +Adafruit_BusIO_RegisterBits bias_bit = Adafruit_BusIO_RegisterBits(&config_reg, 1, 7); +Adafruit_BusIO_RegisterBits auto_bit = Adafruit_BusIO_RegisterBits(&config_reg, 1, 6); +Adafruit_BusIO_RegisterBits oneS_bit = Adafruit_BusIO_RegisterBits(&config_reg, 1, 5); +Adafruit_BusIO_RegisterBits wire_bit = Adafruit_BusIO_RegisterBits(&config_reg, 1, 4); +Adafruit_BusIO_RegisterBits faultT_bits = Adafruit_BusIO_RegisterBits(&config_reg, 2, 2); +Adafruit_BusIO_RegisterBits faultR_bit = Adafruit_BusIO_RegisterBits(&config_reg, 1, 1); +Adafruit_BusIO_RegisterBits fi50hz_bit = Adafruit_BusIO_RegisterBits(&config_reg, 1, 0); + +Adafruit_BusIO_Register rRatio_reg = Adafruit_BusIO_Register(&spi_dev, 0x01, ADDRBIT8_HIGH_TOWRITE, 2, MSBFIRST); +Adafruit_BusIO_RegisterBits rRatio_bits = Adafruit_BusIO_RegisterBits(&rRatio_reg, 15, 1); +Adafruit_BusIO_RegisterBits fault_bit = Adafruit_BusIO_RegisterBits(&rRatio_reg, 1, 0); + +Adafruit_BusIO_Register maxRratio_reg = Adafruit_BusIO_Register(&spi_dev, 0x03, ADDRBIT8_HIGH_TOWRITE, 2, MSBFIRST); +Adafruit_BusIO_RegisterBits maxRratio_bits = Adafruit_BusIO_RegisterBits(&maxRratio_reg, 15, 1); + +Adafruit_BusIO_Register minRratio_reg = Adafruit_BusIO_Register(&spi_dev, 0x05, ADDRBIT8_HIGH_TOWRITE, 2, MSBFIRST); +Adafruit_BusIO_RegisterBits minRratio_bits = Adafruit_BusIO_RegisterBits(&minRratio_reg, 15, 1); + +Adafruit_BusIO_Register fault_reg = Adafruit_BusIO_Register(&spi_dev, 0x07, ADDRBIT8_HIGH_TOWRITE, 1, MSBFIRST); +Adafruit_BusIO_RegisterBits range_high_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 7); +Adafruit_BusIO_RegisterBits range_low_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 6); +Adafruit_BusIO_RegisterBits refin_high_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 5); +Adafruit_BusIO_RegisterBits refin_low_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 4); +Adafruit_BusIO_RegisterBits rtdin_low_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 3); +Adafruit_BusIO_RegisterBits voltage_fault_bit = Adafruit_BusIO_RegisterBits(&fault_reg, 1, 2); + +// Print the details of the configuration register. +void printConfig( void ) { + Serial.print("BIAS: "); if (bias_bit.read() ) Serial.print("ON"); else Serial.print("OFF"); + Serial.print(", AUTO: "); if (auto_bit.read() ) Serial.print("ON"); else Serial.print("OFF"); + Serial.print(", ONES: "); if (oneS_bit.read() ) Serial.print("ON"); else Serial.print("OFF"); + Serial.print(", WIRE: "); if (wire_bit.read() ) Serial.print("3"); else Serial.print("2/4"); + Serial.print(", FAULTCLEAR: "); if (faultR_bit.read() ) Serial.print("ON"); else Serial.print("OFF"); + Serial.print(", "); if (fi50hz_bit.read() ) Serial.print("50HZ"); else Serial.print("60HZ"); + Serial.println(); +} + +// Check and print faults. Then clear them. +void checkFaults( void ) { + if (fault_bit.read()) { + Serial.print("MAX: "); Serial.println(maxRratio_bits.read()); + Serial.print("VAL: "); Serial.println( rRatio_bits.read()); + Serial.print("MIN: "); Serial.println(minRratio_bits.read()); + + if (range_high_fault_bit.read() ) Serial.println("Range high fault"); + if ( range_low_fault_bit.read() ) Serial.println("Range low fault"); + if (refin_high_fault_bit.read() ) Serial.println("REFIN high fault"); + if ( refin_low_fault_bit.read() ) Serial.println("REFIN low fault"); + if ( rtdin_low_fault_bit.read() ) Serial.println("RTDIN low fault"); + if ( voltage_fault_bit.read() ) Serial.println("Voltage fault"); + + faultR_bit.write(1); // clear fault + } +} + +void setup() { + #if (MAX31865_1_READY_PIN != -1) + pinMode(MAX31865_READY_PIN ,INPUT_PULLUP); + #endif + + while (!Serial) { delay(10); } + Serial.begin(115200); + Serial.println("SPI Adafruit_BusIO_RegisterBits test on MAX31865"); + + if (!spi_dev.begin()) { + Serial.println("Could not initialize SPI device"); + while (1); + } + + // Set up for automode 50Hz. We don't care about selfheating. We want the highest possible sampling rate. + auto_bit.write(0); // Don't switch filtermode while auto_mode is on. + fi50hz_bit.write(1); // Set filter to 50Hz mode. + faultR_bit.write(1); // Clear faults. + bias_bit.write(1); // In automode we want to have the bias current always on. + delay(5); // Wait until bias current settles down. + // 10.5 time constants of the input RC network is required. + // 10ms worst case for 10kω reference resistor and a 0.1µF capacitor across the RTD inputs. + // Adafruit Module has 0.1µF and only 430/4300ω So here 0.43/4.3ms + auto_bit.write(1); // Now we can set automode. Automatically starting first conversion. + + // Test the READY_PIN + #if (defined( MAX31865_READY_PIN ) && (MAX31865_READY_PIN != -1)) + int i = 0; + while (digitalRead(MAX31865_READY_PIN) && i++ <= 100) { delay(1); } + if (i >= 100) { + Serial.print("ERROR: Max31865 Pin detection does not work. PIN:"); + Serial.println(MAX31865_READY_PIN); + } + #else + delay(100); + #endif + + // Set ratio range. + // Setting the temperatures would need some more calculation - not related to Adafruit_BusIO_RegisterBits. + uint16_t ratio = rRatio_bits.read(); + maxRratio_bits.write( (ratio < 0x8fffu-1000u) ? ratio + 1000u : 0x8fffu ); + minRratio_bits.write( (ratio > 1000u) ? ratio - 1000u : 0u ); + + printConfig(); + checkFaults(); +} + +void loop() { + #if (defined( MAX31865_READY_PIN ) && (MAX31865_1_READY_PIN != -1)) + // Is conversion ready? + if (!digitalRead(MAX31865_READY_PIN)) + #else + // Warant conversion is ready. + delay(21); // 21ms for 50Hz-mode. 19ms in 60Hz-mode. + #endif + { + // Read ratio, calculate temperature, scale, filter and print. + Serial.println( rRatio2C( rRatio_bits.read() ) * 100.0f, 0); // Temperature scaled by 100 + // Check, print, clear faults. + checkFaults(); + } + + // Do something else. + //delay(15000); +} + + +// Module/Sensor related. Here Adafruit PT100 module with a 2_Wire PT100 Class C ***************************** +float rRatio2C(uint16_t ratio) { + // A simple linear conversion. + const float R0 = 100.0f; + const float Rref = 430.0f; + const float alphaPT = 0.003850f; + const float ADCmax = (1u << 15) - 1.0f; + const float rscale = Rref / ADCmax; + // Measured temperature in boiling water 101.08°C with factor a = 1 and b = 0. Rref and MAX at about 22±2°C. + // Measured temperature in ice/water bath 0.76°C with factor a = 1 and b = 0. Rref and MAX at about 22±2°C. + //const float a = 1.0f / (alphaPT * R0); + const float a = (100.0f/101.08f) / (alphaPT * R0); + //const float b = 0.0f; // 101.08 + const float b = -0.76f; // 100.32 > 101.08 + + return filterRing( ((ratio * rscale) - R0) * a + b ); +} + +// General purpose ********************************************************************************************* +#define RINGLENGTH 250 +float filterRing( float newVal ) { + static float ring[RINGLENGTH] = { 0.0 }; + static uint8_t ringIndex = 0; + static bool ringFull = false; + + if ( ringIndex == RINGLENGTH ) { ringFull = true; ringIndex = 0; } + ring[ringIndex] = newVal; + uint8_t loopEnd = (ringFull) ? RINGLENGTH : ringIndex + 1; + float ringSum = 0.0f; + for (uint8_t i = 0; i < loopEnd; i++) ringSum += ring[i]; + ringIndex++; + return ringSum / loopEnd; +} diff --git a/firmware/libraries/Adafruit_BusIO/examples/spi_registers/spi_registers.ino b/firmware/libraries/Adafruit_BusIO/examples/spi_registers/spi_registers.ino new file mode 100644 index 0000000..091a353 --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/examples/spi_registers/spi_registers.ino @@ -0,0 +1,34 @@ +#include +#include + +#define SPIDEVICE_CS 10 +Adafruit_SPIDevice spi_dev = Adafruit_SPIDevice(SPIDEVICE_CS); + +void setup() { + while (!Serial) { delay(10); } + Serial.begin(115200); + Serial.println("SPI device register test"); + + if (!spi_dev.begin()) { + Serial.println("Could not initialize SPI device"); + while (1); + } + + Adafruit_BusIO_Register id_reg = Adafruit_BusIO_Register(&spi_dev, 0x0F, ADDRBIT8_HIGH_TOREAD); + uint8_t id = 0; + id_reg.read(&id); + Serial.print("ID register = 0x"); Serial.println(id, HEX); + + Adafruit_BusIO_Register thresh_reg = Adafruit_BusIO_Register(&spi_dev, 0x0C, ADDRBIT8_HIGH_TOREAD, 2, LSBFIRST); + uint16_t thresh = 0; + thresh_reg.read(&thresh); + Serial.print("Initial threshold register = 0x"); Serial.println(thresh, HEX); + + thresh_reg.write(~thresh); + + Serial.print("Post threshold register = 0x"); Serial.println(thresh_reg.read(), HEX); +} + +void loop() { + +} diff --git a/firmware/libraries/Adafruit_BusIO/library.properties b/firmware/libraries/Adafruit_BusIO/library.properties new file mode 100644 index 0000000..f0ef63f --- /dev/null +++ b/firmware/libraries/Adafruit_BusIO/library.properties @@ -0,0 +1,9 @@ +name=Adafruit BusIO +version=1.14.1 +author=Adafruit +maintainer=Adafruit +sentence=This is a library for abstracting away UART, I2C and SPI interfacing +paragraph=This is a library for abstracting away UART, I2C and SPI interfacing +category=Signal Input/Output +url=https://github.com/adafruit/Adafruit_BusIO +architectures=* diff --git a/firmware/libraries/Adafruit_Unified_Sensor/Adafruit_Sensor.cpp b/firmware/libraries/Adafruit_Unified_Sensor/Adafruit_Sensor.cpp new file mode 100644 index 0000000..e97aa46 --- /dev/null +++ b/firmware/libraries/Adafruit_Unified_Sensor/Adafruit_Sensor.cpp @@ -0,0 +1,81 @@ +#include "Adafruit_Sensor.h" + +/**************************************************************************/ +/*! + @brief Prints sensor information to serial console +*/ +/**************************************************************************/ +void Adafruit_Sensor::printSensorDetails(void) { + sensor_t sensor; + getSensor(&sensor); + Serial.println(F("------------------------------------")); + Serial.print(F("Sensor: ")); + Serial.println(sensor.name); + Serial.print(F("Type: ")); + switch ((sensors_type_t)sensor.type) { + case SENSOR_TYPE_ACCELEROMETER: + Serial.print(F("Acceleration (m/s2)")); + break; + case SENSOR_TYPE_MAGNETIC_FIELD: + Serial.print(F("Magnetic (uT)")); + break; + case SENSOR_TYPE_ORIENTATION: + Serial.print(F("Orientation (degrees)")); + break; + case SENSOR_TYPE_GYROSCOPE: + Serial.print(F("Gyroscopic (rad/s)")); + break; + case SENSOR_TYPE_LIGHT: + Serial.print(F("Light (lux)")); + break; + case SENSOR_TYPE_PRESSURE: + Serial.print(F("Pressure (hPa)")); + break; + case SENSOR_TYPE_PROXIMITY: + Serial.print(F("Distance (cm)")); + break; + case SENSOR_TYPE_GRAVITY: + Serial.print(F("Gravity (m/s2)")); + break; + case SENSOR_TYPE_LINEAR_ACCELERATION: + Serial.print(F("Linear Acceleration (m/s2)")); + break; + case SENSOR_TYPE_ROTATION_VECTOR: + Serial.print(F("Rotation vector")); + break; + case SENSOR_TYPE_RELATIVE_HUMIDITY: + Serial.print(F("Relative Humidity (%)")); + break; + case SENSOR_TYPE_AMBIENT_TEMPERATURE: + Serial.print(F("Ambient Temp (C)")); + break; + case SENSOR_TYPE_OBJECT_TEMPERATURE: + Serial.print(F("Object Temp (C)")); + break; + case SENSOR_TYPE_VOLTAGE: + Serial.print(F("Voltage (V)")); + break; + case SENSOR_TYPE_CURRENT: + Serial.print(F("Current (mA)")); + break; + case SENSOR_TYPE_COLOR: + Serial.print(F("Color (RGBA)")); + break; + case SENSOR_TYPE_TVOC: + Serial.print(F("Total Volatile Organic Compounds (ppb)")); + break; + } + + Serial.println(); + Serial.print(F("Driver Ver: ")); + Serial.println(sensor.version); + Serial.print(F("Unique ID: ")); + Serial.println(sensor.sensor_id); + Serial.print(F("Min Value: ")); + Serial.println(sensor.min_value); + Serial.print(F("Max Value: ")); + Serial.println(sensor.max_value); + Serial.print(F("Resolution: ")); + Serial.println(sensor.resolution); + Serial.println(F("------------------------------------\n")); +} diff --git a/firmware/libraries/Adafruit_Unified_Sensor/Adafruit_Sensor.h b/firmware/libraries/Adafruit_Unified_Sensor/Adafruit_Sensor.h index 8ac638f..432cfa6 100755 --- a/firmware/libraries/Adafruit_Unified_Sensor/Adafruit_Sensor.h +++ b/firmware/libraries/Adafruit_Unified_Sensor/Adafruit_Sensor.h @@ -1,155 +1,189 @@ /* -* Copyright (C) 2008 The Android Open Source Project -* -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software< /span> -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software< /span> + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ /* Update by K. Townsend (Adafruit Industries) for lighter typedefs, and * extended sensor support to include color, voltage and current */ - + #ifndef _ADAFRUIT_SENSOR_H #define _ADAFRUIT_SENSOR_H #ifndef ARDUINO - #include +#include #elif ARDUINO >= 100 - #include "Arduino.h" - #include "Print.h" +#include "Arduino.h" +#include "Print.h" #else - #include "WProgram.h" +#include "WProgram.h" #endif -/* Intentionally modeled after sensors.h in the Android API: - * https://github.com/android/platform_hardware_libhardware/blob/master/include/hardware/sensors.h */ - /* Constants */ -#define SENSORS_GRAVITY_EARTH (9.80665F) /**< Earth's gravity in m/s^2 */ -#define SENSORS_GRAVITY_MOON (1.6F) /**< The moon's gravity in m/s^2 */ -#define SENSORS_GRAVITY_SUN (275.0F) /**< The sun's gravity in m/s^2 */ -#define SENSORS_GRAVITY_STANDARD (SENSORS_GRAVITY_EARTH) -#define SENSORS_MAGFIELD_EARTH_MAX (60.0F) /**< Maximum magnetic field on Earth's surface */ -#define SENSORS_MAGFIELD_EARTH_MIN (30.0F) /**< Minimum magnetic field on Earth's surface */ -#define SENSORS_PRESSURE_SEALEVELHPA (1013.25F) /**< Average sea level pressure is 1013.25 hPa */ -#define SENSORS_DPS_TO_RADS (0.017453293F) /**< Degrees/s to rad/s multiplier */ -#define SENSORS_GAUSS_TO_MICROTESLA (100) /**< Gauss to micro-Tesla multiplier */ +#define SENSORS_GRAVITY_EARTH (9.80665F) /**< Earth's gravity in m/s^2 */ +#define SENSORS_GRAVITY_MOON (1.6F) /**< The moon's gravity in m/s^2 */ +#define SENSORS_GRAVITY_SUN (275.0F) /**< The sun's gravity in m/s^2 */ +#define SENSORS_GRAVITY_STANDARD (SENSORS_GRAVITY_EARTH) +#define SENSORS_MAGFIELD_EARTH_MAX \ + (60.0F) /**< Maximum magnetic field on Earth's surface */ +#define SENSORS_MAGFIELD_EARTH_MIN \ + (30.0F) /**< Minimum magnetic field on Earth's surface */ +#define SENSORS_PRESSURE_SEALEVELHPA \ + (1013.25F) /**< Average sea level pressure is 1013.25 hPa */ +#define SENSORS_DPS_TO_RADS \ + (0.017453293F) /**< Degrees/s to rad/s multiplier \ + */ +#define SENSORS_RADS_TO_DPS \ + (57.29577793F) /**< Rad/s to degrees/s multiplier */ +#define SENSORS_GAUSS_TO_MICROTESLA \ + (100) /**< Gauss to micro-Tesla multiplier */ /** Sensor types */ -typedef enum -{ - SENSOR_TYPE_ACCELEROMETER = (1), /**< Gravity + linear acceleration */ - SENSOR_TYPE_MAGNETIC_FIELD = (2), - SENSOR_TYPE_ORIENTATION = (3), - SENSOR_TYPE_GYROSCOPE = (4), - SENSOR_TYPE_LIGHT = (5), - SENSOR_TYPE_PRESSURE = (6), - SENSOR_TYPE_PROXIMITY = (8), - SENSOR_TYPE_GRAVITY = (9), - SENSOR_TYPE_LINEAR_ACCELERATION = (10), /**< Acceleration not including gravity */ - SENSOR_TYPE_ROTATION_VECTOR = (11), - SENSOR_TYPE_RELATIVE_HUMIDITY = (12), - SENSOR_TYPE_AMBIENT_TEMPERATURE = (13), - SENSOR_TYPE_VOLTAGE = (15), - SENSOR_TYPE_CURRENT = (16), - SENSOR_TYPE_COLOR = (17) +typedef enum { + SENSOR_TYPE_ACCELEROMETER = (1), /**< Gravity + linear acceleration */ + SENSOR_TYPE_MAGNETIC_FIELD = (2), + SENSOR_TYPE_ORIENTATION = (3), + SENSOR_TYPE_GYROSCOPE = (4), + SENSOR_TYPE_LIGHT = (5), + SENSOR_TYPE_PRESSURE = (6), + SENSOR_TYPE_PROXIMITY = (8), + SENSOR_TYPE_GRAVITY = (9), + SENSOR_TYPE_LINEAR_ACCELERATION = + (10), /**< Acceleration not including gravity */ + SENSOR_TYPE_ROTATION_VECTOR = (11), + SENSOR_TYPE_RELATIVE_HUMIDITY = (12), + SENSOR_TYPE_AMBIENT_TEMPERATURE = (13), + SENSOR_TYPE_OBJECT_TEMPERATURE = (14), + SENSOR_TYPE_VOLTAGE = (15), + SENSOR_TYPE_CURRENT = (16), + SENSOR_TYPE_COLOR = (17), + SENSOR_TYPE_TVOC = (18) } sensors_type_t; /** struct sensors_vec_s is used to return a vector in a common format. */ typedef struct { - union { - float v[3]; - struct { - float x; - float y; - float z; - }; - /* Orientation sensors */ - struct { - float roll; /**< Rotation around the longitudinal axis (the plane body, 'X axis'). Roll is positive and increasing when moving downward. -90°<=roll<=90° */ - float pitch; /**< Rotation around the lateral axis (the wing span, 'Y axis'). Pitch is positive and increasing when moving upwards. -180°<=pitch<=180°) */ - float heading; /**< Angle between the longitudinal axis (the plane body) and magnetic north, measured clockwise when viewing from the top of the device. 0-359° */ - }; - }; - int8_t status; - uint8_t reserved[3]; + union { + float v[3]; ///< 3D vector elements + struct { + float x; ///< X component of vector + float y; ///< Y component of vector + float z; ///< Z component of vector + }; ///< Struct for holding XYZ component + /* Orientation sensors */ + struct { + float roll; /**< Rotation around the longitudinal axis (the plane body, 'X + axis'). Roll is positive and increasing when moving + downward. -90 degrees <= roll <= 90 degrees */ + float pitch; /**< Rotation around the lateral axis (the wing span, 'Y + axis'). Pitch is positive and increasing when moving + upwards. -180 degrees <= pitch <= 180 degrees) */ + float heading; /**< Angle between the longitudinal axis (the plane body) + and magnetic north, measured clockwise when viewing from + the top of the device. 0-359 degrees */ + }; ///< Struct for holding roll/pitch/heading + }; ///< Union that can hold 3D vector array, XYZ components or + ///< roll/pitch/heading + int8_t status; ///< Status byte + uint8_t reserved[3]; ///< Reserved } sensors_vec_t; /** struct sensors_color_s is used to return color data in a common format. */ typedef struct { - union { - float c[3]; - /* RGB color space */ - struct { - float r; /**< Red component */ - float g; /**< Green component */ - float b; /**< Blue component */ - }; - }; - uint32_t rgba; /**< 24-bit RGBA value */ + union { + float c[3]; ///< Raw 3-element data + /* RGB color space */ + struct { + float r; /**< Red component */ + float g; /**< Green component */ + float b; /**< Blue component */ + }; ///< RGB data in floating point notation + }; ///< Union of various ways to describe RGB colorspace + uint32_t rgba; /**< 24-bit RGBA value */ } sensors_color_t; /* Sensor event (36 bytes) */ -/** struct sensor_event_s is used to provide a single sensor event in a common format. */ -typedef struct -{ - int32_t version; /**< must be sizeof(struct sensors_event_t) */ - int32_t sensor_id; /**< unique sensor identifier */ - int32_t type; /**< sensor type */ - int32_t reserved0; /**< reserved */ - int32_t timestamp; /**< time is in milliseconds */ - union - { - float data[4]; - sensors_vec_t acceleration; /**< acceleration values are in meter per second per second (m/s^2) */ - sensors_vec_t magnetic; /**< magnetic vector values are in micro-Tesla (uT) */ - sensors_vec_t orientation; /**< orientation values are in degrees */ - sensors_vec_t gyro; /**< gyroscope values are in rad/s */ - float temperature; /**< temperature is in degrees centigrade (Celsius) */ - float distance; /**< distance in centimeters */ - float light; /**< light in SI lux units */ - float pressure; /**< pressure in hectopascal (hPa) */ - float relative_humidity; /**< relative humidity in percent */ - float current; /**< current in milliamps (mA) */ - float voltage; /**< voltage in volts (V) */ - sensors_color_t color; /**< color in RGB component values */ - }; +/** struct sensor_event_s is used to provide a single sensor event in a common + * format. */ +typedef struct { + int32_t version; /**< must be sizeof(struct sensors_event_t) */ + int32_t sensor_id; /**< unique sensor identifier */ + int32_t type; /**< sensor type */ + int32_t reserved0; /**< reserved */ + int32_t timestamp; /**< time is in milliseconds */ + union { + float data[4]; ///< Raw data + sensors_vec_t acceleration; /**< acceleration values are in meter per second + per second (m/s^2) */ + sensors_vec_t + magnetic; /**< magnetic vector values are in micro-Tesla (uT) */ + sensors_vec_t orientation; /**< orientation values are in degrees */ + sensors_vec_t gyro; /**< gyroscope values are in rad/s */ + float temperature; /**< temperature is in degrees centigrade (Celsius) */ + float distance; /**< distance in centimeters */ + float light; /**< light in SI lux units */ + float pressure; /**< pressure in hectopascal (hPa) */ + float relative_humidity; /**< relative humidity in percent */ + float current; /**< current in milliamps (mA) */ + float voltage; /**< voltage in volts (V) */ + float tvoc; /**< Total Volatile Organic Compounds, in ppb */ + sensors_color_t color; /**< color in RGB component values */ + }; ///< Union for the wide ranges of data we can carry } sensors_event_t; /* Sensor details (40 bytes) */ -/** struct sensor_s is used to describe basic information about a specific sensor. */ -typedef struct -{ - char name[12]; /**< sensor name */ - int32_t version; /**< version of the hardware + driver */ - int32_t sensor_id; /**< unique sensor identifier */ - int32_t type; /**< this sensor's type (ex. SENSOR_TYPE_LIGHT) */ - float max_value; /**< maximum value of this sensor's value in SI units */ - float min_value; /**< minimum value of this sensor's value in SI units */ - float resolution; /**< smallest difference between two values reported by this sensor */ - int32_t min_delay; /**< min delay in microseconds between events. zero = not a constant rate */ +/** struct sensor_s is used to describe basic information about a specific + * sensor. */ +typedef struct { + char name[12]; /**< sensor name */ + int32_t version; /**< version of the hardware + driver */ + int32_t sensor_id; /**< unique sensor identifier */ + int32_t type; /**< this sensor's type (ex. SENSOR_TYPE_LIGHT) */ + float max_value; /**< maximum value of this sensor's value in SI units */ + float min_value; /**< minimum value of this sensor's value in SI units */ + float resolution; /**< smallest difference between two values reported by this + sensor */ + int32_t min_delay; /**< min delay in microseconds between events. zero = not a + constant rate */ } sensor_t; +/** @brief Common sensor interface to unify various sensors. + * Intentionally modeled after sensors.h in the Android API: + * https://github.com/android/platform_hardware_libhardware/blob/master/include/hardware/sensors.h + */ class Adafruit_Sensor { - public: +public: // Constructor(s) Adafruit_Sensor() {} virtual ~Adafruit_Sensor() {} // These must be defined by the subclass - virtual void enableAutoRange(bool enabled) { (void)enabled; /* suppress unused warning */ }; - virtual bool getEvent(sensors_event_t*) = 0; - virtual void getSensor(sensor_t*) = 0; - - private: + + /*! @brief Whether we should automatically change the range (if possible) for + higher precision + @param enabled True if we will try to autorange */ + virtual void enableAutoRange(bool enabled) { + (void)enabled; /* suppress unused warning */ + }; + + /*! @brief Get the latest sensor event + @returns True if able to fetch an event */ + virtual bool getEvent(sensors_event_t *) = 0; + /*! @brief Get info about the sensor itself */ + virtual void getSensor(sensor_t *) = 0; + + void printSensorDetails(void); + +private: bool _autoRange; }; diff --git a/firmware/libraries/Adafruit_Unified_Sensor/LICENSE.txt b/firmware/libraries/Adafruit_Unified_Sensor/LICENSE.txt new file mode 100644 index 0000000..d645695 --- /dev/null +++ b/firmware/libraries/Adafruit_Unified_Sensor/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/firmware/libraries/Adafruit_Unified_Sensor/README.md b/firmware/libraries/Adafruit_Unified_Sensor/README.md old mode 100755 new mode 100644 index fd99597..18839d6 --- a/firmware/libraries/Adafruit_Unified_Sensor/README.md +++ b/firmware/libraries/Adafruit_Unified_Sensor/README.md @@ -52,11 +52,11 @@ The following drivers are based on the Adafruit Unified Sensor Driver: Any driver that supports the Adafruit unified sensor abstraction layer will implement the Adafruit\_Sensor base class. There are two main typedefs and one enum defined in Adafruit_Sensor.h that are used to 'abstract' away the sensor details and values: -**Sensor Types (sensors\_type\_t)** +## Sensor Types (`sensors_type_t`) These pre-defined sensor types are used to properly handle the two related typedefs below, and allows us determine what types of units the sensor uses, etc. -``` +```c++ /** Sensor types */ typedef enum { @@ -78,11 +78,11 @@ typedef enum } sensors_type_t; ``` -**Sensor Details (sensor\_t)** +## Sensor Details (`sensor_t`) This typedef describes the specific capabilities of this sensor, and allows us to know what sensor we are using beneath the abstraction layer. -``` +```c++ /* Sensor details (40 bytes) */ /** struct sensor_s is used to describe basic information about a specific sensor. */ typedef struct @@ -109,11 +109,11 @@ The individual fields are intended to be used as follows: - **resolution**: The smallest difference between two values that this sensor can report (in the appropriate SI unit) - **min\_delay**: The minimum delay in microseconds between two sensor events, or '0' if there is no constant sensor rate -**Sensor Data/Events (sensors\_event\_t)** +## Sensor Data/Events (`sensors_event_t`) This typedef is used to return sensor data from any sensor supported by the abstraction layer, using standard SI units and scales. -``` +```c++ /* Sensor event (36 bytes) */ /** struct sensor_event_s is used to provide a single sensor event in a common format. */ typedef struct @@ -149,21 +149,21 @@ It includes the following fields: - **timestamp**: time in milliseconds when the sensor value was read - **data[4]**: An array of four 32-bit values that allows us to encapsulate any type of sensor data via a simple union (further described below) -**Required Functions** +## Required Functions In addition to the two standard types and the sensor type enum, all drivers based on Adafruit_Sensor must also implement the following two functions: -``` +```c++ bool getEvent(sensors_event_t*); ``` Calling this function will populate the supplied sensors\_event\_t reference with the latest available sensor data. You should call this function as often as you want to update your data. -``` +```c++ void getSensor(sensor_t*); ``` Calling this function will provide some basic information about the sensor (the sensor name, driver version, min and max values, etc. -**Standardised SI values for sensors\_event\_t** +## Standardised SI values for `sensors_event_t` A key part of the abstraction layer is the standardisation of values on SI units of a particular scale, which is accomplished via the data[4] union in sensors\_event\_t above. This 16 byte union includes fields for each main sensor type, and uses the following SI units and scales: @@ -188,7 +188,7 @@ Every compliant sensor can now be read using a single, well-known 'type' (sensor An example of reading the [TSL2561](https://github.com/adafruit/Adafruit_TSL2561) light sensor can be seen below: -``` +```c++ Adafruit_TSL2561 tsl = Adafruit_TSL2561(TSL2561_ADDR_FLOAT, 12345); ... /* Get a new sensor event */ @@ -210,7 +210,7 @@ An example of reading the [TSL2561](https://github.com/adafruit/Adafruit_TSL2561 Similarly, we can get the basic technical capabilities of this sensor with the following code: -``` +```c++ sensor_t sensor; sensor_t sensor; diff --git a/firmware/libraries/Adafruit_Unified_Sensor/examples/sensortest/sensortest.ino b/firmware/libraries/Adafruit_Unified_Sensor/examples/sensortest/sensortest.ino new file mode 100644 index 0000000..d87f60d --- /dev/null +++ b/firmware/libraries/Adafruit_Unified_Sensor/examples/sensortest/sensortest.ino @@ -0,0 +1,153 @@ +#include +#include +#include + +/* Assign a unique ID to this sensor at the same time */ +/* Uncomment following line for default Wire bus */ +Adafruit_ADXL343 accel = Adafruit_ADXL343(12345); + +/* NeoTrellis M4, etc. */ +/* Uncomment following line for Wire1 bus */ +//Adafruit_ADXL343 accel = Adafruit_ADXL343(12345, &Wire1); + +void displaySensorDetails(void) +{ + sensor_t sensor; + accel.getSensor(&sensor); + Serial.println("------------------------------------"); + Serial.print ("Sensor: "); Serial.println(sensor.name); + Serial.print ("Driver Ver: "); Serial.println(sensor.version); + Serial.print ("Unique ID: "); Serial.println(sensor.sensor_id); + Serial.print ("Max Value: "); Serial.print(sensor.max_value); Serial.println(" m/s^2"); + Serial.print ("Min Value: "); Serial.print(sensor.min_value); Serial.println(" m/s^2"); + Serial.print ("Resolution: "); Serial.print(sensor.resolution); Serial.println(" m/s^2"); + Serial.println("------------------------------------"); + Serial.println(""); + delay(500); +} + +void displayDataRate(void) +{ + Serial.print ("Data Rate: "); + + switch(accel.getDataRate()) + { + case ADXL343_DATARATE_3200_HZ: + Serial.print ("3200 "); + break; + case ADXL343_DATARATE_1600_HZ: + Serial.print ("1600 "); + break; + case ADXL343_DATARATE_800_HZ: + Serial.print ("800 "); + break; + case ADXL343_DATARATE_400_HZ: + Serial.print ("400 "); + break; + case ADXL343_DATARATE_200_HZ: + Serial.print ("200 "); + break; + case ADXL343_DATARATE_100_HZ: + Serial.print ("100 "); + break; + case ADXL343_DATARATE_50_HZ: + Serial.print ("50 "); + break; + case ADXL343_DATARATE_25_HZ: + Serial.print ("25 "); + break; + case ADXL343_DATARATE_12_5_HZ: + Serial.print ("12.5 "); + break; + case ADXL343_DATARATE_6_25HZ: + Serial.print ("6.25 "); + break; + case ADXL343_DATARATE_3_13_HZ: + Serial.print ("3.13 "); + break; + case ADXL343_DATARATE_1_56_HZ: + Serial.print ("1.56 "); + break; + case ADXL343_DATARATE_0_78_HZ: + Serial.print ("0.78 "); + break; + case ADXL343_DATARATE_0_39_HZ: + Serial.print ("0.39 "); + break; + case ADXL343_DATARATE_0_20_HZ: + Serial.print ("0.20 "); + break; + case ADXL343_DATARATE_0_10_HZ: + Serial.print ("0.10 "); + break; + default: + Serial.print ("???? "); + break; + } + Serial.println(" Hz"); +} + +void displayRange(void) +{ + Serial.print ("Range: +/- "); + + switch(accel.getRange()) + { + case ADXL343_RANGE_16_G: + Serial.print ("16 "); + break; + case ADXL343_RANGE_8_G: + Serial.print ("8 "); + break; + case ADXL343_RANGE_4_G: + Serial.print ("4 "); + break; + case ADXL343_RANGE_2_G: + Serial.print ("2 "); + break; + default: + Serial.print ("?? "); + break; + } + Serial.println(" g"); +} + +void setup(void) +{ + Serial.begin(9600); + while (!Serial); + Serial.println("Accelerometer Test"); Serial.println(""); + + /* Initialise the sensor */ + if(!accel.begin()) + { + /* There was a problem detecting the ADXL343 ... check your connections */ + Serial.println("Ooops, no ADXL343 detected ... Check your wiring!"); + while(1); + } + + /* Set the range to whatever is appropriate for your project */ + accel.setRange(ADXL343_RANGE_16_G); + // accel.setRange(ADXL343_RANGE_8_G); + // accel.setRange(ADXL343_RANGE_4_G); + // accel.setRange(ADXL343_RANGE_2_G); + + /* Display some basic information on this sensor */ + displaySensorDetails(); + displayDataRate(); + displayRange(); + Serial.println(""); +} + +void loop(void) +{ + /* Get a new sensor event */ + sensors_event_t event; + accel.getEvent(&event); + + /* Display the results (acceleration is measured in m/s^2) */ + Serial.print("X: "); Serial.print(event.acceleration.x); Serial.print(" "); + Serial.print("Y: "); Serial.print(event.acceleration.y); Serial.print(" "); + Serial.print("Z: "); Serial.print(event.acceleration.z); Serial.print(" ");Serial.println("m/s^2 "); + delay(500); +} diff --git a/firmware/libraries/Adafruit_Unified_Sensor/library.properties b/firmware/libraries/Adafruit_Unified_Sensor/library.properties old mode 100755 new mode 100644 index e0bcd3e..d2d3af1 --- a/firmware/libraries/Adafruit_Unified_Sensor/library.properties +++ b/firmware/libraries/Adafruit_Unified_Sensor/library.properties @@ -1,5 +1,5 @@ name=Adafruit Unified Sensor -version=1.0.3 +version=1.1.6 author=Adafruit maintainer=Adafruit sentence=Required for all Adafruit Unified Sensor based libraries. @@ -8,3 +8,4 @@ category=Sensors url=https://github.com/adafruit/Adafruit_Sensor architectures=* includes=Adafruit_Sensor.h + diff --git a/firmware/libraries/UrlEncode/LICENSE b/firmware/libraries/UrlEncode/LICENSE new file mode 100644 index 0000000..5fad2e4 --- /dev/null +++ b/firmware/libraries/UrlEncode/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Masayuki Sugahara + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/firmware/libraries/UrlEncode/README.md b/firmware/libraries/UrlEncode/README.md new file mode 100644 index 0000000..273f396 --- /dev/null +++ b/firmware/libraries/UrlEncode/README.md @@ -0,0 +1,11 @@ +# UrlEncode + +A simple library for URL encoding on Arduino framework. + +## Usage + +```cpp +#include + +String encoded = urlEncode("http://example.com/path/to/file.html?param=value¶m2=value2"); +``` diff --git a/firmware/libraries/UrlEncode/examples/Encode/Encode.ino b/firmware/libraries/UrlEncode/examples/Encode/Encode.ino new file mode 100644 index 0000000..351a4c0 --- /dev/null +++ b/firmware/libraries/UrlEncode/examples/Encode/Encode.ino @@ -0,0 +1,11 @@ +#include + +void setup() +{ + Serial.begin(115200); + + Serial.println(urlEncode("Hello, this string should be \% encoded.")); + // -> Hello%2C%20this%20string%20should%20be%20%25%20encoded. +} + +void loop() {} \ No newline at end of file diff --git a/firmware/libraries/UrlEncode/keywords.txt b/firmware/libraries/UrlEncode/keywords.txt new file mode 100644 index 0000000..3a96b5e --- /dev/null +++ b/firmware/libraries/UrlEncode/keywords.txt @@ -0,0 +1 @@ +urlEncode KEYWORD2 diff --git a/firmware/libraries/UrlEncode/library.properties b/firmware/libraries/UrlEncode/library.properties new file mode 100644 index 0000000..9313c76 --- /dev/null +++ b/firmware/libraries/UrlEncode/library.properties @@ -0,0 +1,10 @@ +name=UrlEncode +version=1.0.0 +author=Masayuki Sugahara,equaaqua@hotmail.com +maintainer=Masayuki Sugahara,equaaqua@hotmail.com +sentence=Simple URL encoder (also known as percent encoding) +paragraph=working with UTF-8 strings. +category=Data Processing +url=https://github.com/plageoj/urlencode +architectures=* +includes=UrlEncode.h diff --git a/firmware/libraries/UrlEncode/src/UrlEncode.h b/firmware/libraries/UrlEncode/src/UrlEncode.h new file mode 100644 index 0000000..7bab279 --- /dev/null +++ b/firmware/libraries/UrlEncode/src/UrlEncode.h @@ -0,0 +1,37 @@ +#ifndef _PLAGEOJ_URLENCODE_H +#define _PLAGEOJ_URLENCODE_H + +#include + +/** + * Percent-encodes a string. + * @param msg UTF-8 string to encode. + * @returns Percent-encoded string. + */ +inline String urlEncode(const char *msg) +{ + const char *hex = "0123456789ABCDEF"; + String encodedMsg = ""; + + while (*msg != '\0') + { + if (('a' <= *msg && *msg <= 'z') || ('A' <= *msg && *msg <= 'Z') || ('0' <= *msg && *msg <= '9') || *msg == '-' || *msg == '_' || *msg == '.' || *msg == '~') + { + encodedMsg += *msg; + } + else + { + encodedMsg += '%'; + encodedMsg += hex[*msg >> 4]; + encodedMsg += hex[*msg & 0xf]; + } + msg++; + } + return encodedMsg; +} +inline String urlEncode(String msg) +{ + return urlEncode(msg.c_str()); +} + +#endif \ No newline at end of file diff --git a/firmware/libraries/WiFiManager/README.md b/firmware/libraries/WiFiManager/README.md index 01cdfc3..a6209dd 100644 --- a/firmware/libraries/WiFiManager/README.md +++ b/firmware/libraries/WiFiManager/README.md @@ -26,7 +26,7 @@ Member to Member Support / Chat [![Join the chat at https://gitter.im/tablatronix/WiFiManager](https://badges.gitter.im/tablatronix/WiFiManager.svg)](https://gitter.im/tablatronix/WiFiManager?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![Discord](https://img.shields.io/badge/Discord-WiFiManager-%237289da.svg?logo=discord)](https://discord.gg/dkjJbHwC) +[![Discord](https://img.shields.io/badge/Discord-WiFiManager-%237289da.svg?logo=discord)](https://discord.gg/WgjVprfN) The configuration portal is of the captive variety, so on various devices it will present the configuration dialogue as soon as you connect to the created access point. diff --git a/firmware/libraries/WiFiManager/WiFiManager.cpp b/firmware/libraries/WiFiManager/WiFiManager.cpp index 4a41b98..ded4e25 100644 --- a/firmware/libraries/WiFiManager/WiFiManager.cpp +++ b/firmware/libraries/WiFiManager/WiFiManager.cpp @@ -32,7 +32,7 @@ WiFiManagerParameter::WiFiManagerParameter(const char *custom) { _id = NULL; _label = NULL; _length = 1; - _value = NULL; + _value = nullptr; _labelPlacement = WFM_LABEL_DEFAULT; _customHTML = custom; } @@ -58,6 +58,7 @@ void WiFiManagerParameter::init(const char *id, const char *label, const char *d _label = label; _labelPlacement = labelPlacement; _customHTML = custom; + _value = nullptr; setValue(defaultValue,length); } @@ -86,8 +87,14 @@ void WiFiManagerParameter::setValue(const char *defaultValue, int length) { // // return false; //@todo bail // } - _length = length; - _value = new char[_length + 1]; + if(_length != length){ + _length = length; + if( _value != nullptr){ + delete[] _value; + } + _value = new char[_length + 1]; + } + memset(_value, 0, _length + 1); // explicit null if (defaultValue != NULL) { @@ -272,25 +279,30 @@ boolean WiFiManager::autoConnect(char const *apName, char const *apPassword) { DEBUG_WM(F("AutoConnect")); #endif + bool wifiIsSaved = getWiFiIsSaved(); + #ifdef ESP32 - if(WiFi.getMode() != WIFI_STA){ - WiFi.mode(WIFI_STA); + setupHostname(true); + + if(_hostname != ""){ + // disable wifi if already on + if(WiFi.getMode() & WIFI_STA){ + WiFi.mode(WIFI_OFF); + int timeout = millis()+1200; + // async loop for mode change + while(WiFi.getMode()!= WIFI_OFF && millis()0 && (millis()-_lastscan > 60000))){ + + // if scan is empty or stale (last scantime > _scancachetime), this avoids fast reloading wifi page and constant scan delayed page loads appearing to freeze. + if(!_lastscan || (_lastscan>0 && (millis()-_lastscan > _scancachetime))){ + force = true; + } + + if(force){ int8_t res; _startscan = millis(); if(async && _asyncScan){ @@ -2329,7 +2379,7 @@ void WiFiManager::handleNotFound() { */ boolean WiFiManager::captivePortal() { #ifdef WM_DEBUG_LEVEL - DEBUG_WM(DEBUG_DEV,"-> " + server->hostHeader()); + DEBUG_WM(DEBUG_MAX,"-> " + server->hostHeader()); #endif if(!_enableCaptivePortal) return false; // skip redirections, @todo maybe allow redirection even when no cp ? might be useful @@ -2758,6 +2808,15 @@ void WiFiManager::setPreOtaUpdateCallback( std::function func ) { _preotaupdatecallback = func; } +/** + * setConfigPortalTimeoutCallback, set a callback to config portal is timeout + * @access public + * @param {[type]} void (*func)(void) + */ +void WiFiManager::setConfigPortalTimeoutCallback( std::function func ) { + _configportaltimeoutcallback = func; +} + /** * set custom head html * custom element will be added to head, eg. new meta,style,script tag etc. @@ -3307,8 +3366,10 @@ void WiFiManager::debugPlatformInfo(){ #endif #elif defined(ESP32) #ifdef WM_DEBUG_LEVEL - DEBUG_WM(F("Free heap: "), ESP.getFreeHeap()); + DEBUG_WM(F("WM version: "), WM_VERSION_STR); + DEBUG_WM(F("Arduino version: "), VER_ARDUINO_STR); DEBUG_WM(F("ESP SDK version: "), ESP.getSdkVersion()); + DEBUG_WM(F("Free heap: "), ESP.getFreeHeap()); #endif // esp_chip_info_t chipInfo; // esp_chip_info(&chipInfo); @@ -3600,7 +3661,7 @@ bool WiFiManager::WiFi_eraseConfig() { bool ret; WiFi.mode(WIFI_AP_STA); // cannot erase if not in STA mode ! WiFi.persistent(true); - ret = WiFi.disconnect(true,true); + ret = WiFi.disconnect(true,true); // disconnect(bool wifioff, bool eraseap) delay(500); WiFi.persistent(false); return ret; @@ -3715,7 +3776,7 @@ String WiFiManager::WiFi_psk(bool persistent) const { WiFi.reconnect(); #endif } - else if(event == ARDUINO_EVENT_WIFI_SCAN_DONE){ + else if(event == ARDUINO_EVENT_WIFI_SCAN_DONE && _asyncScan){ uint16_t scans = WiFi.scanComplete(); WiFi_scanComplete(scans); } @@ -3768,7 +3829,8 @@ void WiFiManager::handleUpdating(){ // combine route handlers into one callback and use argument or post checking instead of mutiple functions maybe, if POST process else server upload page? // [x] add upload checking, do we need too check file? // convert output to debugger if not moving to example - if (captivePortal()) return; // If captive portal redirect instead of displaying the page + + // if (captivePortal()) return; // If captive portal redirect instead of displaying the page bool error = false; unsigned long _configPortalTimeoutSAV = _configPortalTimeout; // store cp timeout _configPortalTimeout = 0; // disable timeout @@ -3779,7 +3841,7 @@ void WiFiManager::handleUpdating(){ // UPLOAD START if (upload.status == UPLOAD_FILE_START) { - if(_debug) Serial.setDebugOutput(true); + // if(_debug) Serial.setDebugOutput(true); uint32_t maxSketchSpace; // Use new callback for before OTA update @@ -3797,7 +3859,7 @@ void WiFiManager::handleUpdating(){ #endif #ifdef WM_DEBUG_LEVEL - DEBUG_WM(DEBUG_VERBOSE,"Update file: ", upload.filename.c_str()); + DEBUG_WM(DEBUG_VERBOSE,"[OTA] Update file: ", upload.filename.c_str()); #endif // Update.onProgress(THandlerFunction_Progress fn); @@ -3833,7 +3895,7 @@ void WiFiManager::handleUpdating(){ #endif } else { - Update.printError(Serial); + // Update.printError(Serial); error = true; } } @@ -3850,7 +3912,7 @@ void WiFiManager::handleUpdating(){ // upload and ota done, show status void WiFiManager::handleUpdateDone() { DEBUG_WM(DEBUG_VERBOSE, F("<- Handle update done")); - if (captivePortal()) return; // If captive portal redirect instead of displaying the page + // if (captivePortal()) return; // If captive portal redirect instead of displaying the page String page = getHTTPHead(FPSTR(S_options)); // @token options String str = FPSTR(HTTP_ROOT_MAIN); diff --git a/firmware/libraries/WiFiManager/WiFiManager.h b/firmware/libraries/WiFiManager/WiFiManager.h index 4c057ee..08643a6 100644 --- a/firmware/libraries/WiFiManager/WiFiManager.h +++ b/firmware/libraries/WiFiManager/WiFiManager.h @@ -39,8 +39,9 @@ #define WM_NOSOFTAPSSID // no softapssid() @todo shim #endif -#ifdef ARDUINO_ESP32S3_DEV -#define WM_NOTEMP +// #ifdef ARDUINO_ESP32S3_DEV +#ifdef ESP32 +#define WM_NOTEMP // disabled temp sensor, have to determine which chip we are on #endif // #include "soc/efuse_reg.h" // include to add efuse chip rev to info, getChipRevision() is almost always the same though, so not sure why it matters. @@ -52,31 +53,6 @@ #define WM_G(string_literal) (String(FPSTR(string_literal)).c_str()) -#define WM_STRING2(x) #x -#define WM_STRING(x) STRING2(x) - -// #include -#ifdef ESP_IDF_VERSION - // #pragma message "ESP_IDF_VERSION_MAJOR = " WM_STRING(ESP_IDF_VERSION_MAJOR) - // #pragma message "ESP_IDF_VERSION_MINOR = " WM_STRING(ESP_IDF_VERSION_MINOR) - // #pragma message "ESP_IDF_VERSION_PATCH = " WM_STRING(ESP_IDF_VERSION_PATCH) - #define VER_IDF_STR WM_STRING(ESP_IDF_VERSION_MAJOR) "." WM_STRING(ESP_IDF_VERSION_MINOR) "." WM_STRING(ESP_IDF_VERSION_PATCH) -#endif - -// #include "esp_arduino_version.h" -#ifdef ESP_ARDUINO_VERSION - // #pragma message "ESP_ARDUINO_VERSION_MAJOR = " WM_STRING(ESP_ARDUINO_VERSION_MAJOR) - // #pragma message "ESP_ARDUINO_VERSION_MINOR = " WM_STRING(ESP_ARDUINO_VERSION_MINOR) - // #pragma message "ESP_ARDUINO_VERSION_PATCH = " WM_STRING(ESP_ARDUINO_VERSION_PATCH) - #define VER_ARDUINO_STR WM_STRING(ESP_ARDUINO_VERSION_MAJOR) "." WM_STRING(ESP_ARDUINO_VERSION_MINOR) "." WM_STRING(ESP_ARDUINO_VERSION_PATCH) -#else - // #include - // #pragma message "ESP_ARDUINO_VERSION_GIT = " WM_STRING(ARDUINO_ESP32_GIT_VER)// 0x46d5afb1 - // #pragma message "ESP_ARDUINO_VERSION_DESC = " WM_STRING(ARDUINO_ESP32_GIT_DESC) // 1.0.6 - #define VER_ARDUINO_STR "Unknown" - // #pragma message "ESP_ARDUINO_VERSION_REL = " WM_STRING(ARDUINO_ESP32_RELEASE) //"1_0_6" -#endif - #ifdef ESP8266 extern "C" { @@ -131,6 +107,46 @@ #include #include "strings_en.h" +// prep string concat vars +#define WM_STRING2(x) #x +#define WM_STRING(x) WM_STRING2(x) + + +// #include +#ifdef ESP_IDF_VERSION + // #pragma message "ESP_IDF_VERSION_MAJOR = " WM_STRING(ESP_IDF_VERSION_MAJOR) + // #pragma message "ESP_IDF_VERSION_MINOR = " WM_STRING(ESP_IDF_VERSION_MINOR) + // #pragma message "ESP_IDF_VERSION_PATCH = " WM_STRING(ESP_IDF_VERSION_PATCH) + #define VER_IDF_STR WM_STRING(ESP_IDF_VERSION_MAJOR) "." WM_STRING(ESP_IDF_VERSION_MINOR) "." WM_STRING(ESP_IDF_VERSION_PATCH) +#else + #define VER_IDF_STR "Unknown" +#endif + +#ifdef Arduino_h + #ifdef ESP32 + #include "esp_arduino_version.h" + #endif + // esp_get_idf_version + #ifdef ESP_ARDUINO_VERSION + // #pragma message "ESP_ARDUINO_VERSION_MAJOR = " WM_STRING(ESP_ARDUINO_VERSION_MAJOR) + // #pragma message "ESP_ARDUINO_VERSION_MINOR = " WM_STRING(ESP_ARDUINO_VERSION_MINOR) + // #pragma message "ESP_ARDUINO_VERSION_PATCH = " WM_STRING(ESP_ARDUINO_VERSION_PATCH) + #define VER_ARDUINO_STR WM_STRING(ESP_ARDUINO_VERSION_MAJOR) "." WM_STRING(ESP_ARDUINO_VERSION_MINOR) "." WM_STRING(ESP_ARDUINO_VERSION_PATCH) + #else + #include + // #pragma message "ESP_ARDUINO_VERSION_GIT = " WM_STRING(ARDUINO_ESP32_GIT_VER)// 0x46d5afb1 + // #pragma message "ESP_ARDUINO_VERSION_DESC = " WM_STRING(ARDUINO_ESP32_GIT_DESC) // 1.0.6 + // #pragma message "ESP_ARDUINO_VERSION_REL = " WM_STRING(ARDUINO_ESP32_RELEASE) //"1_0_6" + #define VER_ARDUINO_STR WM_STRING(ESP_ARDUINO_VERSION_MAJOR) "." WM_STRING(ESP_ARDUINO_VERSION_MINOR) "." WM_STRING(ESP_ARDUINO_VERSION_PATCH) + #endif +#else +#define VER_ARDUINO_STR "Unknown" +#endif + + +// #pragma message "VER_IDF_STR = " WM_STRING(VER_IDF_STR) +// #pragma message "VER_ARDUINO_STR = " WM_STRING(VER_ARDUINO_STR) + #ifndef WIFI_MANAGER_MAX_PARAMS #define WIFI_MANAGER_MAX_PARAMS 5 // params will autoincrement and realloc by this amount when max is reached #endif @@ -260,6 +276,9 @@ class WiFiManager //called just before doing OTA update void setPreOtaUpdateCallback( std::function func ); + //called when config portal is timeout + void setConfigPortalTimeoutCallback( std::function func ); + //sets timeout before AP,webserver loop ends and exits even if there has been no setup. //useful for devices that failed to connect at some point and got stuck in a webserver loop //in seconds setConfigPortalTimeout is a new name for setTimeout, ! not used if setConfigPortalBlocking @@ -544,10 +563,17 @@ class WiFiManager // async enables asyncronous scans, so they do not block anything // the refresh button bypasses cache // no aps found is problematic as scans are always going to want to run, leading to page load delays - boolean _preloadwifiscan = false; // preload wifiscan if true - boolean _asyncScan = false; // perform wifi network scan async - unsigned int _scancachetime = 30000; // ms cache time for background scans + // + // These settings really only make sense with _preloadwifiscan true + // but not limited to, we could run continuous background scans on various page hits, or xhr hits + // which would be better coupled with asyncscan + // atm preload is only done on root hit and startcp + boolean _preloadwifiscan = true; // preload wifiscan if true + unsigned int _scancachetime = 30000; // ms cache time for preload scans + boolean _asyncScan = true; // perform wifi network scan async + boolean _autoforcerescan = false; // automatically force rescan if scan networks is 0, ignoring cache + boolean _disableIpFields = false; // modify function of setShow_X_Fields(false), forces ip fields off instead of default show if set, eg. _staShowStaticFields=-1 String _wificountry = ""; // country code, @todo define in strings lang @@ -633,6 +659,7 @@ class WiFiManager #if defined(ESP_ARDUINO_VERSION) && defined(ESP_ARDUINO_VERSION_VAL) #define WM_ARDUINOVERCHECK ESP_ARDUINO_VERSION >= ESP_ARDUINO_VERSION_VAL(2, 0, 0) + #define WM_ARDUINOVERCHECK_204 ESP_ARDUINO_VERSION <= ESP_ARDUINO_VERSION_VAL(2, 0, 5) #ifdef WM_ARDUINOVERCHECK #define WM_ARDUINOEVENTS @@ -641,6 +668,10 @@ class WiFiManager #define WM_NOCOUNTRY #endif + #ifdef WM_ARDUINOVERCHECK_204 + #define WM_DISCONWORKAROUND + #endif + #else #define WM_NOCOUNTRY #endif @@ -748,6 +779,7 @@ class WiFiManager std::function _saveparamscallback; std::function _resetcallback; std::function _preotaupdatecallback; + std::function _configportaltimeoutcallback; template auto optionalIPFromString(T *obj, const char *s) -> decltype( obj->fromString(s) ) { diff --git a/firmware/libraries/WiFiManager/examples/Basic/Basic.ino b/firmware/libraries/WiFiManager/examples/Basic/Basic.ino index 59c95d9..bf1e263 100644 --- a/firmware/libraries/WiFiManager/examples/Basic/Basic.ino +++ b/firmware/libraries/WiFiManager/examples/Basic/Basic.ino @@ -2,7 +2,7 @@ void setup() { - WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP + // WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP // it is a good practice to make sure your code sets wifi mode how you want it. // put your setup code here, to run once: @@ -13,7 +13,7 @@ void setup() { // reset settings - wipe stored credentials for testing // these are stored by the esp library - wm.resetSettings(); + // wm.resetSettings(); // Automatically connect using saved credentials, // if connection fails, it starts an access point with the specified name ( "AutoConnectAP"), diff --git a/firmware/libraries/WiFiManager/examples/Super/OnDemandConfigPortal/OnDemandConfigPortal.ino b/firmware/libraries/WiFiManager/examples/Super/OnDemandConfigPortal/OnDemandConfigPortal.ino index e627b06..a648366 100644 --- a/firmware/libraries/WiFiManager/examples/Super/OnDemandConfigPortal/OnDemandConfigPortal.ino +++ b/firmware/libraries/WiFiManager/examples/Super/OnDemandConfigPortal/OnDemandConfigPortal.ino @@ -88,13 +88,12 @@ void handlePreOtaUpdateCallback(){ } void setup() { - // WiFi.mode(WIFI_STA); // explicitly set mode, esp defaults to STA+AP + // WiFi.mode(WIFI_STA); // explicitly set mode, esp can default to STA+AP // put your setup code here, to run once: Serial.begin(115200); - // Serial1.begin(115200); - // Serial.setDebugOutput(true); + // Serial.setDebugOutput(true); Serial.println("\n Starting"); // WiFi.setSleepMode(WIFI_NONE_SLEEP); // disable sleep, can improve ap stability @@ -111,10 +110,10 @@ void setup() { //reset settings - for testing // wm.resetSettings(); - // wm.erase(); + // wm.erase(); // setup some parameters - + WiFiManagerParameter custom_html("

This Is Custom HTML

"); // only custom html WiFiManagerParameter custom_mqtt_server("server", "mqtt server", "", 40); WiFiManagerParameter custom_mqtt_port("port", "mqtt port", "", 6); @@ -219,11 +218,11 @@ void setup() { // setting wifi country seems to improve OSX soft ap connectivity, // may help others as well, default is CN which has different channels - wm.setCountry("US"); // crashing on esp32 2.0 + // wm.setCountry("US"); // crashing on esp32 2.0 // set Hostname - // wm.setHostname(("WM_"+wm.getDefaultAPName()).c_str()); + wm.setHostname(("WM_"+wm.getDefaultAPName()).c_str()); // wm.setHostname("WM_RANDO_1234"); // set custom channel @@ -388,7 +387,7 @@ void getTime() { } Serial.println(""); struct tm timeinfo; - gmtime_r(&now, &timeinfo); // @NOTE doesnt work in esp2.3.0 + gmtime_r(&now, &timeinfo); Serial.print("Current time: "); Serial.print(asctime(&timeinfo)); } diff --git a/firmware/libraries/WiFiManager/examples/Tests/wifi_softap/wifi_softap.ino b/firmware/libraries/WiFiManager/examples/Tests/wifi_softap/wifi_softap.ino new file mode 100644 index 0000000..aa3e45c --- /dev/null +++ b/firmware/libraries/WiFiManager/examples/Tests/wifi_softap/wifi_softap.ino @@ -0,0 +1,51 @@ +// wifi_basic.ino + +#include +#include + +// #define NVSERASE +#ifdef NVSERASE +#include +#include +#endif + +void setup(){ + Serial.begin(115200); + delay(2000); + Serial.println("Startup...."); + + #ifdef NVSERASE + esp_err_t err; + err = nvs_flash_init(); + err = nvs_flash_erase(); + #endif + + Serial.setDebugOutput(true); + + WiFi.begin("hellowifi","noonehere"); + + while (WiFi.status() != WL_CONNECTED && millis()<15000) { + delay(500); + Serial.print("."); + } + + if(WiFi.status() == WL_CONNECTED){ + Serial.println(""); + Serial.println("WiFi connected."); + Serial.println("IP address: "); + // Serial.println(WiFi.localIP()); + } + else { + Serial.println("WiFi NOT CONNECTED, starting ap"); + /////////////// + /// BUG + // WiFi.enableSTA(false); // BREAKS softap start, says ok BUT no ap found + + delay(2000); + WiFi.softAP("espsoftap","12345678"); + } +} + +void loop(){ + +} \ No newline at end of file diff --git a/firmware/libraries/WiFiManager/library.json b/firmware/libraries/WiFiManager/library.json index e77262e..d8bbf98 100644 --- a/firmware/libraries/WiFiManager/library.json +++ b/firmware/libraries/WiFiManager/library.json @@ -1,6 +1,6 @@ { "name": "WiFiManager", - "version": "2.0.12-beta", + "version": "2.0.13-beta", "keywords": "wifi,wi-fi,esp,esp8266,esp32,espressif8266,espressif32,nodemcu,wemos,arduino", "description": "WiFi Configuration manager with web configuration portal for ESP boards", "authors": diff --git a/firmware/libraries/WiFiManager/library.properties b/firmware/libraries/WiFiManager/library.properties index db9faad..791cd61 100644 --- a/firmware/libraries/WiFiManager/library.properties +++ b/firmware/libraries/WiFiManager/library.properties @@ -1,5 +1,5 @@ name=WiFiManager -version=2.0.12-beta +version=2.0.13-beta author=tzapu maintainer=tablatronix sentence=WiFi Configuration manager with web configuration portal for Espressif ESPx boards, by tzapu diff --git a/firmware/libraries/WiFiManager/strings_en.h b/firmware/libraries/WiFiManager/strings_en.h index 386571d..382ab01 100644 --- a/firmware/libraries/WiFiManager/strings_en.h +++ b/firmware/libraries/WiFiManager/strings_en.h @@ -17,7 +17,7 @@ #ifndef WIFI_MANAGER_OVERRIDE_STRINGS // !!! ABOVE WILL NOT WORK if you define in your sketch, must be build flag, if anyone one knows how to order includes to be able to do this it would be neat.. I have seen it done.. -const char WM_VERSION_STR[] PROGMEM = "v2.0.12-beta"; +const char WM_VERSION_STR[] PROGMEM = "v2.0.13-beta"; const char HTTP_HEAD_START[] PROGMEM = "" ""