VegeHub - Firware Version Notes

Version Date Changes
1.0.1 6/9/2018 First Production Release.
1.3.0 9/5/2018
  • Redesign/Bug-fix of USB Interface.
  • Fixed issues with provisioning while USB is connected.
  • Overhauled the socket/server system, making the web interface significantly more stable.
  • Fixed bug where failure on first attempt at server connection resulted in no delay before next attempt.
  • Added milti-channel capability and added individual channel customization.
  • Added support for IP address entry in server address.
  • Added Api Key to user inputs for custom server.
  • Fixed bug where being in edge trigger mode made EepromValuesInit() try to modify the RTC before the RTC had been created, causing a complete failure in init.
  • Fixed bug where ThingSpeak setup wasn't saving the channel_id.
  • Fixed problem with ADC frequently reading battery voltage.
  • Added factory reset when holding WiFi and Setup buttons on startup.
  • Fixed Adafruit updates appending a number to the end of single channels.
  • Fixed send update button to work correctly when all channels are in trigger mode.
  • Fixed problem with power consumption. Floating pin for button left over from hardware change was causing extra power consumption. ~60uA.
  • Fixed EEPROM saving of channel setup.
1.4.0 9/12/2018
  • Fixed problem with web interface not changing between channels on 4 channel boards.
  • Fixed problem sending trigger updates to thingspeak where values would not be logged due to duplicate timestamp with battery voltage.
  • Fixed possible failure to send value of ADC on trigger channel in case of trigger update.
  • Fixed bug where server type not being saved to EEPROM when setting up vegecloud as server. Note: There is a workaround for units in the field: set up vegecloud, then save, then go to the settings page and push apply. This will save all values to EEPROM including the server type.
  • Fixed bug where button interrupts were accidentally getting disabled when initializing sensor interrupts.
  • Added in testing jig code.
1.5.0 9/24/2018
  • Fixed USB interface. Multiple problems with interactions and multiple bugs.
  • Fixed bug where update could not be set more than 16 hours from now. Now allowed to set any time up to 40 years from now.
  • Added readout on home page of the time until the next update.
  • Put more checks on settings page to make sure settings are within range.
1.6.0 10/10/2018
  • Modified test sequence to correct for false negatives on voltage readings.
  • Broadened the scope of acceptable battery reading voltages.
  • Changed code optimization level to compensate for apparent compiler bug in debug level code optimization.
1.6.1 12/6/2018
  • CRITICAL UPDATE to Versions 1.5 and 1.6.
  • Patched time conversions. Updates where getting set to 65000 years, resulting in no sampling.
1.7.0 1/28/2019
  • MAJOR UPDATE - IP address written to a file on a flash drive.
  • Save file to indicate IP address of device (ipaddress.txt)
  • Added support for relays, including the web interface, the scheduling, and checking conditionals.
  • Added web conditionals to the relay system.
  • Added support for improved power supply
  • Added USB mass storage functionality allowing saving of files to a flash drive.
  • Save file containing all data gathered while drive was connected (data.csv)
  • Save log file of errors or failures (log.txt)
  • Moved to new WINC firmware to stabilize web interface.
  • Fixed overlapping page requests causing web interface errors.
  • Changed circular buffer system to be more efficient.
  • Fixed connection issues when connection is active for long periods of time by resetting connection.
  • Fixed date conversion errors causing incorrect scheduling
2.1.0 2/25/2019
  • Added ability to specify port number on remote server.
  • Fixed bug where addresses were incorrectly saved when no request was present.
  • Fixed possible bug of spurious API calls consuming extra power.
  • Minor cosmetic fixes in web interface.
2.2.0 3/5/2019
  • Fixed web interface so that it does not try to serve Bootstrap link if there is no Internet connection available. This was causing the web interface to go extremely slow if there was no Internet connection.
  • Fixed bug where when the readings in the buffer would reach the maximum size, once a successful update was finally sent, the buffer was not being correctly reset and so kept sending all the old data along with each new update.
2.3.0 2/25/2019
  • Fixed bug that USB_ID line was being left floating on new power supply boards
2.4.0 3/12/2019
  • Fixed bugs in relay board code. Mostly fixed ranges and some small bugs in the web interface.
  • Added ability to poll custom server and port for relay web conditionals.
2.4.1 3/21/2019
  • Added test jig support for Relay/New Power boards
2.5.0 3/29/2019
  • Added settable hysteresis to user interface for relay.
  • Changed format of web conditional data keys from first[5].second to "first"[5]."second". This allows for all characters to be present in JSON data except for double quotes, which is prohibited by the JSON spec anyway.
  • Upgraded web conditional system for relay boards, adding a more robust API system and better feedback to users.
3.0.0 1/30/2020
  • Added page server resets to accompany connection resets to allow the page server to come back up after a connection reset.
  • Added capability to detect both rising and falling edges in trigger mode. Now options are: Falling, Rising, Both.
  • Fixed bug where port was not being printed to the form for relay web conditionals.
  • Fixed bug that was causing false failure in JSON parser when request was separate from the rest of the incoming data.
  • Added ability for user to add custom headers to custom server requests.
  • Added functionality for flashing WiFi Module firmware and certificates from a flash drive. That functionality was removed from the boot loader and moved here.
  • Added ability to send and receive configuration information with the server.
  • Redesigned JSON parsing system to be significantly more robust.
  • Changed user interface for UTC offset to allow setting the offset directly.
3.5.0 1/30/2020
  • Rewrote the whole request handling system to bring it up to date. All updates are now served with chunked encoding rather than the previous system that had to calculate the content-length for each one.
  • Tuned the web interface to look/work better overall, and to work equally well without internet access.
  • Rewrote the buffer system to better manage stored data and make it more accessible when retrieving it.
  • Rewrote much of the ADC system to allow multiple ADC reads to be queued and for priority reads to override.
  • Added our own NTP time retrieval and bypassed the built-in system.
  • Put in lockouts so that updates can't happen more frequently than every 30 seconds. Multiple triggers can happen in that time frame and will be logged and sent when the lockout expires.
  • Fixed static IP system to work better and report its correct IP address to VegeCloud and to the ipaddress.txt file on the thumb drive.
  • Changed how triggers report. Now, when triggered, they will initiate a priority ADC read on their channel to try to get the current state, then if they are supposed to read all channels on a trigger, they que ADC reads for the other channels. Then they connect to the server and send any data in the buffer.
  • Added Power Adapter mode which will keep the hub on at all times and make the web interface always available. It will constantly power the sensors. It will also continuously sample the channels watching to see if the relay should be altered (the samples it takes for this function are not saved to the buffer, and will not be reported to the server. Only the regularly scheduled samples will be stored/reported).
  • Changed function so that units immediately go into setup mode on power up without having to push the setup button.
3.8.0 1/1/2021
  • Added Auto-generated web conditionals for relay boards
  • Reverted constant power to sensors so that they have to be individually enabled.
  • Changed how constant power is communicated to/from the server.
  • Fixed a couple of small bugs in the web interface.
  • Updated to ASF V3.49. Also transitioned to Microchip Studio for development environment.
  • Fixed bug for Relay boards where web interface wasn't hiding a piece of the relay settings form correctly.
  • Fixed a bug where the relay web conditional was being checked, even if it was disabled, when set up as a web conditional. This was causing API timeouts if the web conditional was empty or invalid.
  • Fixed bug that was not allowing provisioning mode to be activated, so Hubs could not be connected to a new WiFi network.
3.8.1 1/1/2021
  • Fixed bug that was not allowing provisioning mode to be activated, so Hubs could not be connected to a new WiFi network.
3.9 2/8/2021
  • Changed the socket system so that it manages sockets better. It will no longer interrupt legitimate requests in progress for anything other than a full new request. This means transmissions no longer get interrupted by Chrome sending duplicate requests or speculative sockets, and makes the web interface much more reliable.
  • Added start of user activity after provisioning, so that the board enters an active state when provisioning is done, and you don't have to push the Setup button. Not a bug, just added for convenience.
  • Fixed request handler to work correctly with Adafruit. Adafruit would only send every other channel, and wouldn't allow updates to complete, which meant the board stayed awake, and was just waiting for the update to finish.
3.10 6/8/2021
  • Fixed submitting API tests so it no longer fails every other time.
  • Added checkbox to allow override retrieval of settings from VegeCloud regardless of timestamps.
  • Fixed several small bugs in serving web interface to make it more reliable
  • Fixed location of watchdog reset call
  • Fixed simple_ftoa to better handle rounding
  • Brought over improved time-to-string functionality
  • Changed process of flashing WINC firmware and certs so that it handles past failures better, boots into normal operation after flashing, and no longer flashes unless the board is started with the drive inserted.
  • Fixed possible bug with re-flashing the WINC firmware
3.10.1 6/28/2021
  • Fixed bugs that occur when wifi is spotty.
3.10.2 7/16/2021
  • Fixed reset during provisioning.
  • Fixed provisioning failing after sleep
  • Fixed USB not writing after sleep
3.10.3 8/6/2021
  • Custom Server was writing out data using incorrect API. It now writes out VegeHub API.
3.10.6 5/26/2022
  • Fixed bug in URL validation for custom servers.
  • Fixed bug in sending custom headers.
3.10.7 11/16/2022
  • Fixed bug where static IP could not be disabled after it had been set up.
  • Changed backup time server to faster alternative.
  • Dumped time server failures to log.
3.10.8 8/23/2023
  • Fixed ftoa bug - 0.001 were interpreted as 1