Logo   Development History

Published Source License
Screen Shots
Project Status
Updating Firmware

Reference Information
Development Environment
Development History
I2C Addresses
Module Setup
Network Setup
Processor Module Pinning

PJRC hardware
ESP8266 Information

Development History


Firmware Source Control Images

LOGGER Firmware Source Control History

RevisionSizeZIP file
NextRelease Not logged in

Pending changes follow.

20200309 Not logged in

Same as 1x67 with different version number to test downloads.

20200309 Not logged in

Revet timeout on WiFiClient to 1000 after parsing header. The short timeout is requred to allow command lines to operate promptly. If the timeout is left short fragments of the web page are lost on slower clients or distant network connections.

20200307 Not logged in

Increase handleClient delay to 1500.

Break up some long lines is number INPUT on web pages.

Report code update errors in some cases.

Add additional yields to sensor reads. Do not do flush of web streams at each yield.

20200306a Not logged in

Add loggerFastYield and call it wherever loggerYield is done wvery N times.

20200306 Not logged in

Change loggerYield to not do a flush.

20200304 Not logged in

Better reporting of NOT_DATA_READY.

Improve sequencing of the OneWire sampling and other uses of the OneWire pin. (for WiFi on period trigger).

Add support for triggering a WiFi network on period. The network is still always on, just the trigger of the on period is implemented.

Shrink the size of some blocks of web page data to the network.

Add additional DEBUG reporting of pin state and pin on periods.

20200207 Not logged in

Install esp8266 version 2.6.3 replacing 2.6.2.

Rework buffering sending partial content to the server. The old method could have gotten errors when only a partial string remained depending on exactly how Stirng.substring worked.

Reformat command table.

Add Data Map page to display the map of the datastructure saved at each sample interval. Move some definitions to independent modules that can be shared with the CHANGER code.

Some space savings in static string allocations.

Make last temperature a signed number.

Better checking if humidity and pressure devices are both present at address 0x40. Add a warning to the user.

Add the concept of named periods.

Add the concept of boolean permanent variables. Use it to add display in degrees F vs degrees C.

20191226 Not logged in

Resolve a number of minor compiler warnings, removes some arguments and some routines. Enable more compiler warnings.

Provide for boolean permanent variables. This still needs to display the choices as a selection of YES or NO as values instead of numbers.

Allow Names for Periods to contain spaces.

Add background colors to Named Period columns.

Move parameter setting from page arguments to a central subroutine. Call page starting routines more uniformly providing for security and button handling. Fixes some non-working REBOOT buttons. Add the concept of parameters resolution that is only allowed when writing is allowed to permit these support routines to be more general.

Provide for content in the EMAIL_TEST command.

Add temperature units of F vs C. Remove a table of unit names in favor of code that emits the name. This allows the names to adjust for the units that change (C vs F).

20191222 Not logged in

Remove use of time.h in favor of timelib.h.

Add Named Periods services and web page. Allowing user to establish a name for a data set.

Add support for the MAX31826 temperature reading. The EEPROM is not supported.

20191220 Not logged in

Recognize the DS28EA000 and treat it as a simple temperature device. Recognize the DS28E07 and properly ignore it as an unrecognized device.

Fix bug in Firmware reload page that ignored the button.

Recognize and ignore several additonal onewire device types.

Convert to non-secure email sending. Now operational and turned on. No alerts configured yet to send messages.

SMTP configuration parameters for email reporting added. Service routine updated to simpler interface.

Rework storage of permanent variable names so they do not consume dynamic data storage.

Secure SMTP sending class removed. It did not work probably due to space conflicts.

Save space in RAM by better String and F() usage. Make command list into a macro. Make pararmeter list into a macro.

Move getField to general purpose services.

Normalize include file names. Fix capitalization.

Install Servo by Michael Margolois 1.1.6 replacing 1.1.5.

20191216 Not logged in

Install Arduino AVR version 1.8.2 replacing 1.8.1.

Install esp8266 version 2.6.2 replacing 2.6.1.

Install Time by Michael Margolois 1.5.0 replacing 1.4.0.

Add test code for sending email. There are issuse with space and security. This test currently disables normal processing it is currently turned off.

Improve use of F() and associated String calls to save space.

20191213 Not logged in

Add web page for reload of firmware.

Many space saving updates by eliminating conversions to String types before calls to subroutines. Some of these improve performance by eliminating the free storage allocation of creating strings. More such optimizations remain.

20191209 Not logged in

Add HANG commmand for testing watchdog reboots.

Formating updates for output.

Rework checking for delays to use more common code, use more static string arguments and to disable more cases unless debugging is turned on.

Add support for the DS2417 and DS2415 time chips. Accept time from a time chip when it is available on startup. Rework onewire code to allow for chips that do not supply a CRC with their data. (This code is now tested.)

Add user visible reports of too many onewire devices seen.

Report changes in stored parameters only when there is a differnce.

Detect reboot causes better. Note reboots due to system power up and count unexpected reboots independently from power on reboots our update reboots. Report more reboot type information.

Remove underline decorations from menu items. Rework some menu formatting.

Add UPDATE command to update from a Binary file on the Dragonnorth server. Web page support not yet available.

Install Adafruit Circuit Playground version 1.10.3. replacing 1.10.2.

20191121 Not logged in

Install Adafruit Circuit Playground version 1.10.2 replacing 1.10.1. Install esp8266 board version 2.6.1 replacing 2.5.2.

Update routines that check for delay to use constant ROM string arguments. Rename a number of these routines to use different names based on argument type. Find a bug with the inclusion of the SD.h library that caused conversion to dynamic strings at the call to the time routines.

Change web page output to include CR LF after each block of HTML. This makes automatic formatting work when the source HTML is captured from the browser and placed in an editor.

Improve comments associated with ISRs, sleeping and locking.

Add code to support onewire clock chips DS2417 and DS2415. Add detection and reporting of a number of other onewire sensors without support for those sensors. Set time from these chips at boot and store time in them as time is set by other means. One of the chips is selected to use for this purpose. The same chip will always be selected in a static hardware configuration. This code is untested.
Rename some routines and variables in anticipation of adding onewire sensors other than temperature.

20191114 Not logged in

Provide menu items for more sensor types.

Move all javascript to the head portion of the web page.

Improve timeservices debug reporting.

Fix bug reporting time since boot when time is not yet set.

GPM and LPM implementation completed.

Change the ESP command to be a CPU command.

Isolate time checks from loggerYield.

Testing and status code added to espserver.cpp.

Proper recovery of pin types at boot.

Convert time checks for delay to use constant string arguments.

Improve some time checks. Remove a few unnecessary checks. Isolate what the checks apply to so reporting will be better.

Resolve issues passing F() arguments to subroutines that were quietly converting arguments of ROM strings to String type.

20191104 Not logged in

Correct errors in production of web pages that resulted in non-matching blocks. This causes some devices to look like they had lost data.

20191030 Not logged in

Add loggerYield calls in web services support code to ensure data is logged while waiting for web services.

20191028 Not logged in

Also built as 1(47)-127.

When a line from a WiFi client and the line is not terminated with a LF wait a little while (10ms) to see if more characters show up. This resolves issues where clicking on a button seemed to lose the arguments that were used to display the current page.

Find and partially repair issues in client handling that resulted in poor performance when the LOGGER satisfied a request for a web page. The original code was stuck in handleClient() until the web client terminiated (or a related timeout occured). This failure improved by limiting the retry activity to 550 ms. The handleClient() routine was called frequently (this is now required). The new timeout limits how long waiting can be.

Handle parameters to a web page that use only LF to end a line. CR LF pairs are still what is normally expected. A lone CR is never expected. This prevented long hangs when the lone LF occured.

Initialize pins to be inputs by default. Improve pin status initialization related to recovering pin status at startup. Do not recover pin status for pins that control edge detection hardware.

Rework menu to improve clarity, seperate items derived from pulses from actual sensors. Expose Temperature, Humidity and voltage directly.

Improve delay checking. Adjust some allowed delay times to larger numbers.

Improve some comment formatting to support DOXYGEN.

Improve reporting of NTP time updated when no time difference is noticed.

Make I/O expander pin configurations and desired outputs part of the data saved across reboots.

20191023 Not logged in

Add table to get liters per minute from pulses. Gallons per minute are computed internally from liters per minute units.

Add humidity page. Rework menu to identify sensors and pin types.

Change default home page.

Add Voltages to the menu. Make selection of sensor types more generic.

In handleClient go back to looping until the client is available or disconnects.

20191021 Not logged in

Some changes prior to 20191009 are reported here.

Report timing and status in espserver.cpp. This helps find a bug in web page header parsing where lines formed without CR LF pairs wait for a timeout. The timeout is reduced but the bug is not really repaired.

Update comment format for improved DOXYGEN parsing.

Change the network up test timing so it uses 13 minutes instead of 10. This helps determing what the cause of a reboot is.

Add the ICACHE_RAM_ATTR attribute to ISR routines so the latest version of the locator will place them properly.

Add flow services for LPM based on a counter. The ratios are hard coded and need to be updated. A parallel set of pages for GPM should also be implemented using the same set of ratios and a known ratio between liters and gallons.

When running as an access point do not go to the WAN for time.

Improve messages printed when an NTP time update shows no delta.

Update copyright and version notices.

Add direct menu support for presenting temperature pages.

Add additional reporting of long delays with timeservicesCheckForDelay calls.

Remove license grants to Airborne Sensors.

20191009 Not logged in

Convert to Arduino 1.8.10 and update libraries to the latest versions.

Rework as needed for Windows 10 and winzip 24. Repair some zip operations to include more things in the release.

20171224 Not logged in

Allow "" for the value of a parameter to clear the value in the PARAMETER_SET command.

Add a page to report average RPM in an interval based on the pulse count inputs.

Do a better job of limiting to pulse counting pins. Used for new RPM page and on the Kilowatt hours page.

Repair some off by 1 issues in the number of columns in a graph and lines in a table of values. Also update the start and end times of the graph so the first and last bars are not partially obscured.

Initialze the map of pulse counting pins to sensorID. This fixes a latent bug if the map was ever used with some cells uninitialized. This also allows the RPM and Kwh pages to skip pins that are not pulse counting pins. The old code worked because the pulse counting pins were always in a group at the beginning of the list of pins.

Add a test to see if a sensor ID is a pulse counting pin.

Fix error reports for non-existant parameter name to include an EOL.

20171030 Not logged in

Report cause of reboots.

Report count of reboots.

Detect software reboots and report that as the cause of a reboot. A software reload followed by a reset button push will report a cause of UNKNOWN.

Add SLEEP command support for making the network sleep. This is only for power consumption testing during a controlled sleep.

20171008 Not logged in

Repaired reboot reason so it is reset after each boot. It should now say the reboot reason is unknown if a crash occured. Add a count of the number of reboots.

Report the array of bits that marks if a variable should be uploaded to the M2X cloud as a numeric value instead of a string.

Turn on reporting of database start and end times and indexes.

20170913 Not logged in

Added GPS fix parsing commands. They only look at the time and are largely untested. If a $GPZDA message is recieved on the serial port the time is set. Time services are updated to log that the time setting came from a GPS message.

Added the concept of a read transaction to flash processing. This eliminates the need to open and close the file for each sample that is read and dramatically improves the speed of displaying a large number of points.

20170903 Not logged in

Added Sleep command for testing low power processor sleep modes. The implementation is incomplete.

Report the last reboot cause in a number of places.

Fix format of MAC address reporting.

Fix reporting of numeric permament variables.

Provide a link to the security setting page in the main menu.

20170615 Not logged in

Rename all public i2cservices routines to start with the full prefix 'i2cservices'.

Update some ??? comments to improve the discussions. Make some into @@@ comments.

Proper humidity reporting from the MS8607 pressure/temperature/humidity device. More complete temperature compensation as well.

Add 10 minutes as an allowed interval for the time between samples. Add a quarter of the year as an allowed time period in the choices of web presentations.

20170522 Not logged in

DNS now works. The Time server is first tried via DNS lookup. If that fails there is a static IP coded that may work.

Fix a bug in the detection of the AC module. The module will now only operate if the jumper above left of R82 is shorted. the 1(32) version would never detect an AC module.

The calculation of the MS8607 pressure and temperature now do the second order adjustment specified in the data sheet. This is a complex change to the calculation with two inflection points one at 20C and the other at -15C.

I/O expander pins are renamed IOx_P00 - IOx_P17.

20170521 Not logged in

When a reboot occurs if time is not available use the latest time in the database.

Improve DNS code, but, using it hangs when it tries to translate the name of the time server. Update the static IP of the default time server.

Add more debugging printouts to the onewire code.

Add Atmospheric Pressure datatype and use it to report MS8607 pressure in millibars.

Add automatic detection of I/O module type. Report if an unexpected type is at any address. Allowing 4 I/O modules of arbitrary type is possible but the database would then need to handle configurations differently or pre-allocate all possible types.

Rename the DVLR table of I2C addresses.

20170515 Not logged in

Update MS8607 code to properly read an convert pressure and temperature values. Humidity still has no response, does not seem to be a hardware issue, several modules fail in the same way. Lots of issues and inefficient time to read remain to be resolved.

Report the hardware serial number in web pages and version printouts.

Update parameter reporting to have number, string and HEX types. This makes reports of Onewire devices better. There is no support for the HEX type to be a settable parameter.

20170430 Not logged in

Released as 1(30)-100

Prevent early error about how long onewire waits for the first result.

Report I2C errors more cleanly.

Add SerialNumber parameter to allow a Logger hardware serial number to be set and reported. The software only allows it to be set once.

Repair temperature sensor creation for placeholder temperature sensors.

Improved MS8607 support still does not properly detect and initialize the component. Add sensor types to support MS8607.

Initialize onewire sensors in a better place so temperature sensors will always be in the same place in the database structure.

Change AC detector bit order of the I/O chip to match the production layout as built by AMI.

Report Serial number on the web pages.

20170424 Not logged in

Updates to recognize different types of I/O cards that occur at the same I2C address.

Add MS8607 pressure device. Add I2C support for a read operation without reading data.

Add a hardware version that is stored as a permanent variable. Currently not needed to ID hardware.

Update onewire testing to give new parts found a unique new Temperature_xxx name. Realize that 8 temperature parts should always be created, but, not done yet.

Fix some outputting formating.

20170327 Not logged in

Emit uints as part of sensor information on sensors page.

Add controls to emit hours, minutes and seconds fields as part of an ammount of time output. Emit the hours and seconds in a few places where that makes the interface more understandable.

Add a new control to set number of columns as an amount of time which computes the count based on the current time span.

Make calculation of interval a part of the start and end times central function. This fixes bugs in setting the interval and presenting it properly.

Update the chart boilerplate. This may improve the emission of time labels at the bottom of the chart.

Improve some Doxygen comments.

Fix bug in calculation of average amps in an interval.

20170315 Not logged in

Set a more sensible DEFAULT_INTERVAL.

Report system status in menu panel.

Rework formatting of version numbers on version page and in footer.

Rework time capture for all interval reporting pages per suggestions from David.

Limit heap space reports at startup.

Turn off M2X debugging. Turn off network debugging.

Improve reporting of sensors in use, use report in menu status.

Improve and correct reporting of amount of time to show leading 0s. Same for emitting a number. Control leading 0s when emitting a number to supply them or not as appropriate.

Report time since logging started.

Fix area of graph to allow more digits in column units.

20170309 Not logged in

Record when logging started and present up time.

Print a list of networks at startup. This seems to clear up a number of hangs and bad presentations when the LAN network can not be found.

Isolate database declarations so they can be used in a PC application.

Enable M2X debugging reports.

Increase columns in the graph.

20170216 Not logged in

Increase delay that triggers console reports of long usage.

Add buttons to move forward/back by Minute, Hour, Day, Week, Month and Year. Change misspelled names of selector subroutines.

Update size of numeric input fields to match real number sizes.

When pulse counting pins are not available report that KW and Pulse count pages are not available.

Improve time delay reporting at the start of web page display.

20170213 Not logged in

Improve the reporting in the STATUS command.

Add a CONNECT command to force a network reconnect. Add logic to the network module that allows users of the network to report sucess or failure on usage. If a bunch of failures happen in a row try to reconnect to the network.

Improve handling of the sensors that need to call a pre-read function a while before taking a sample. Make sure that a failure in wait for completion of the pre-read routines prior to taking a sample does not prevent the system from taking the next sample.

Rework pulse pin handling to do the counting in ISRs. When the I2C system is busy during the ISR then postpone the count for the main loop. This prevents missed counts due to long operation times in the main loop.

Improve yield reporting for excessive time taken in the main loop routines.

Add control of which sensors are supposed to uplink to M2X. (Cloud logging.)

Improve onewire reporting of errors. Add retries when a CRC error occurs on a read. Add improvements to make sure parasitic reads will work properly. Test parasitic reads (two sensors are OK).

Fix a number of places that should have used SensorID_t datatype.

Reconcile a number of ??? comments.

Once we know the time never decide that time is invalid. Invalid time can prevent logging in the database.

20170210 Not logged in

Convert pulse sensing to an ISR so pulses will not get missed when there are long intervals in the main loop. Add ISR read support to the I2C module. Postpone the pulse counting if the interrupt occurs during some other I2C read. Read all pins as a single word to reduce the I2C traffic. Handle cases where the pins are scatterd among many I2C modules.

Rename i2cXXX routines to be i2cservicesXXX.

Add a watchdog test command. Try to ensure that the watchdog is on and will fire if code does not run. There still appear to be system hangs that do not fire the watchdog.

Print the Sensor ID to the console when verbose printing the sensor info.

Eliminate loggerYield with no indication of what code wants to yield.

Make checking for unexpected delays the responsibility of the routines called out of the main loop. The main loop retains one check for 500ms. Any delay that makes a major contribution to that must be checked in the service code.

Report the reason for the last reboot.

20170207 Not logged in

Fix a bug where changing the start and end times did not update the graph until the next page load.

Add the ESP command to dump processor characteristics and space.

Add M2X reports of all sensors in an element as one HTTP message. Previous code did these one at a time. Change reporting of sensor names to report the C string version of the name.

Add reports of heap storage usage. Reboot if heap storage gets low. Add a report variable that logs in permanent memory the reason for the last reboot.

20170205 Not logged in

Report lists of sensors on lines of a table instead of as lines with line breaks.

Integrage M2X. Add a configuration page for M2X. Report periodically to M2X. Add the concept of fetching a floating point value for a SensorIR in an element.

Improve checking for maximum expected delays to allow for long delays that are expected. The previous code had a fixed maximum.

20170202 Not logged in

Prevent divide by 0 if the number of intervals is small.

Fix several bugs in the calculation of intervals and the presentation of intervals that msde the table and graph different from each other and had the endpoints different from the declared time span.

Fix a bug where the table at the end of a page was not closed properly.

20170131 Not logged in

Add loggerYield() and call it in many places to allow database sampling and logging to go on in the face of other task activity. Report long time delays.

Add checks for long task delays.

Fix a bug where a blank line intended for the web output was being printed to the console.

Fix a bug in the counting of disabled sensors.

Add a discussion of how pin counting should be moved to an ISR. This is not implemented yet.

Add fractional amount of time printing services. Use these services to print the length of intervals being graphed and the total time presented in the graph.

20170129 Not logged in

Fix I/O pin control page so a sensible pin of an I/O module that is present is always selected and displayed as the default pin. (Previously tried to display a pin of a missing module.)

Prevent a divide by 0 error in calculating temperature when bad data is returned from a onewire device (all 0s were probably observed).

Fix a bug in calculation of pulses over all time and in calculation of total pulses. Old code got too few counts and the all time calculation stopped at the end of the interval being inspected.

Add support for reporting Watt Hours, similar to reporting pulses but adjusting units and adjusting for the ratio of pulses to milliwatt hours. Add 8 permanent variables to manage the adjustment. As defaults Pulse_0 and Pulse_1 are set up for 15 amp CTs. Pulse_2-5 are set up for 100 amp CTs and Pulse6-7 are set up for 400 amp CTs.

Clean up naming of subroutines that read earliest sample time and newest sample time.

Improve handling and reporting of onewire devices that as a result of read errors get bad values for counts per degree C.

Fix selection of I/O pins to restrict selection to only pins of I/O modules that are present.

Try to put time markers on the graphs X axis. Not working correctly yet.

Save RAM at web page registration by using String(F("")) construct.

20170125a Not logged in

Additional improvement to database catchup.

XML control page implemented. Menu updated to go to that page which invokes the original XML download with user supplied arguments. Some documentation on the page for the XML download.

Onewire devices now convert temperature in parallel reducing the total time to less than 1 second. Sampling 1 per second should now work.

20170125 Not logged in

Much faster database catchup.

20170123a Not logged in

Fix a bug in XML output where the closing tags were lost.

20170123 Not logged in

Rename menu items. Create Sensors page with only the values. Create Sensor configuration page with all sensor details.

20170122 Not logged in

Fix a bug in graphing when illegal values are present in the database. Those values must get a placeholder in the array of elements being graphed or the graph will not display.

Truncate the DLVR_Temp sensor name so it fits in the available space in the internal table of names.

Rework the naming in the menu, changes the names of some pages. Use History and Sensors for the new names. Sensors now does a simple list of all sensors.

Use 'Columns in the Graph' and 'Lines in the table' instead of 'Samples'.

Change the name of the Sensors page to Current Sensor Values have it emit the non-verbose form. Add a Sensor Configurations page with the verbose sensor output.

Fix discussion of adding Temperature sensors to wait in the right places.

Add verbose printout to sensor printing, this changes how XML is emitted by not emitting the units field for sensor printout.

Add verbose/non-verbose dump to the SENSORS command.

20170121 Not logged in

Handle cases where there are no points to graph. Give a sensible user depiction.

Better reporting of database existence and creation. Report database issues on web pages. Sequence the database up so retries are handled nicely and the system is quiet if the database is missing from a missing card.

Improve handling and reporting of time between samples. Report times that are too long to read all temperatures.

Repair time triggers to work off the millis() counter rather than the Unix clock. This resolves issues if the clock jumps due to time setting.

Resolve issues where sensor reading might need more time to complete befor a sample is logged.

Improve debugging printout to use the DEBUG_LEVEL symbol pervasively. Better control what is printed in cases where the level is set to 1.

Improve the naming of sensors to hide the I2C address in most cases while still keeping sensor names unique.

Improve some internal subroutine calls to accept String arguments and use the F("") structure to reduce the RAM footprint.

Add a reboot button to the network configuration page.

Keep track of number of sensors displayed so web pages can produduce errors or sensible messages when there is no underlying data. Print a sensible message instead of a chart with an obscure message.

Improve reporting of Si7006 configuration and state. Improve knowlege of when the device is present because serial number read errors occur with high processor voltage.

Make date and time reporting for web pages part of the timeservices module

Report the I2C address used when reporting the sensor details.

20170117 Not logged in

Put hacks in core_esp8266_si2c.c library to better identify why writes fail. Include bug fix for 0 length reads.

Fix minor compilation problems in SMALL_CONSOLE build.

Fix problems in output conversion of DLVR sensor. Disable DEBUG_PRINT outputs.

Fix problems in determining if a humidity sensor is present. Fix problems reading the user register and the heater configuration, report these values. Attempt to fix reading the serial number but that does not seem to work. Code around the issue. Add commands to better debug I2C issues.

Add reset support to i2cservices. Add commands to pulse the SDA and SCL lines. Turn off DEBUG_OUTPUT in I2C reporting.

Fix compilation warnings for initialization order in espserver.cpp. Fix compilation warnings for unused arguments in several modules.

Rework I/O card power on sequence and reset the I2C support when power is turned on.

Clean up presentation of Access point and Network to join. Add setting sample reading frequency.

Clean up reporting of illegal temperatures and of temperatures that take on the initial value in flash.

20170113 Not logged in

Version 1(8)-52.

Improve ISCAN to do single address on request.

Allow disabling of EXPERT mode.

Change default bytes of address for IREAD command.

Resolve a number of compile time warnings related to comparing different data types.

Add DEBUG_OUTPUT to I2C reporting so it can be turned off.

Change some menu item names. Add Version to the menu. Print copyright notices for Lesser GPL libraries.

Fix a bug in reporting of missing I/O pins so it reports NO PINS when the board is missing.

Fix a bug in triggering time updates from the web pages. Report if time is not set.

Make use of GMT obvious.

20170110 Not logged in

Add a web page to manage the database. Add a mechanisim to erase the database. Add a reboot button.

Add a web page to manage the onewire history. Add a mechanism to erase the onewire history. Add a reboot button. Move the onewire history list to this page. Change the names of the sensors in the list to Temperature_xx from ONEWIRE_xx.

Complete the DLVR pressure sensor services.

Rework use of constant strings to store them in flash. Make more service subroutines accept strings instead of constant pointers because a quoted string is actually stored in RAM. Use the F("") structure to force strings to flash. Use println instead of \n. Review consoleio, security, sensorlibrary, services, tca9539, timeservices, webservices, webpages and xmlservices modules.

Use service routines to test argument presence so F("") can be used as arguments instead of simple quoted strings.

Repair elapsed time comparisons in i2cservices to avoid wraparound bugs. Fix handling in i2cReadFromSlave to not use write operations.

No longer use a delay in the search for networks. It is not needed.

Normalize the language that discusses permanent variables to call them parameters in user facing locations.

Update usage of "" to be F("") where possible.

Add services to support empty string detection and indentation printout.

Add indentation control in sensor printout. Fix indentation of the XML file output.

20170107 Not logged in

Fix a bug where a disabled sensor could be emitted.

Fix a bug in the code that prevents creation of duplicate uniqueIDs. Handle creation of a duplicate correctly, turn the sensor on when identified.

Find and repair a number of prints of single characters that put the character in a string instead of emitting it directly.

Report totals sensors and bits used in SENSOR summary.

Store onewire sensors found in permanent variables. For all of the sensors read from permanent variables create a sensor and disable the sensor. As the sensors are detected enable them. This ensures that the temperatures will have the same name and location in the database and thus that sensor data reported against a single unique ID will always come from the same sensor. Improve reporting of sensors found and the associated IDs.

Add the concept of reporting a string of HEX digits to permanent paramters, this is used for onwire IDs.

Tickle the watchdog more places in initialization.

Use symbolic program name for access point SSID creation.

Code around missing TimeLib.h in older Arduino versions.

Report element storage time in microseconds rather than milliseconds.

Update printout of Version and copyright at startup.

Rework a number of printout services to have dump styles which return a String and print styles to emit a string.

Improve clarity of database version reporting.

Update pressure sensor initialization and humidity sensor initialization to always create the sensors and to disable the sensors if not present.

Decommit non-blocking flash services support.

Rework I2C console messages to improve clarity of the printout showing what is an I2C address.

Rework use of setTime to report time differences and use proper units as arguments to prevent compile time errors.

20170105 Not logged in

Released as 1(4)-43

Add onewire historical sensor setup to keep sensor ID and order in the face of sensor removal and addition.

Rename consoleioLoop to avoid a conflict with a new library.

20170104 Not logged in

Improved startup reporting. Improved version reporting. Improved onewire dumping. Improve formatting of network status output.

Fix Onewire temperature error reporting to properly emit ILLEGAL_TEMPERATURE value and to properly hide any data reports with that value.

Handle onewire temperature reads in sequence by creating onewireservicesLoop(). Manage type S parts and non-type S parts better and with less special code.

Create a generic mechanism to preread sensors that require long setup times N seconds before a sample is logged.

Tickle the watchdog more places during startup. Add yield() calls in places to allow better networking behavior.

Improve EEPROM writing to avoid writes that do not change the value.

Increase allowed command lengths in console I/O.

Added DLVR support including PRESSURE command. (Device reading is not working.)

Rework I2C conversions to run in the background.

When saving a parameter to the EEPROM skip the write if the value is unchanged.

Update format of I2C address output to include leading 0s.

Pervasive change to string constants to use the F() mechanism and reduce the dynamic memory used for strings by 25K bytes.

20170101 Not logged in

Add time measurement to the STATUS command.

Perform better WiFi initialization to make power cycles more reliable.

Review all ??? comments. Trigger time update from the web on button press.

20161230 Not logged in

Limit output to a single sensor works. Sensors all will configure to the same place in the 128 byte block. Improve interval totals.

20161224 Not logged in

Major restructure of sensor creation and reporting. Trying to reinit sensors with the same uniqueIDs and failing.

20161220 Not logged in

Number of sensors increased. Number of pulse counters increased. Output order on web page changed to newest first.

20161219 Not logged in

Humidity sensor works.

20161205 Not logged in

ADC pin sensing works. Latches do not.

20161129 Not logged in

Update ADC input. Partly working.

20161116 Not logged in

Rework release and build mechanisms.

Update ONEWIRE command to read all devices present.

Fix reading method of PIN command to properly get the port address. Still crashes if used.

20161113 Not logged in

Addition of NETWORK command to display network status on the console.

20160328 Not logged in

Addition of security model. Addition of DOXYGEN documentation.

20160323 Not logged in

XML file creation.

20160322 Not logged in

Manual time setting on a web page.

20160320 Not logged in

Pulse counting removed from processor and moved to TCA9539 sensor module.

20160315 Not logged in

Major rework for common code with ESPcamera.

20160311 Not logged in

Chip select for SD card was on GPIO 15, when the small PJRC adapter is used this causes a problem when booting, the device boot to the boot loader all the time. This control has been moved to GPIO 16 to avoid this issue.

20160311 Not logged in

TCA9539 I/O Control from web page is complete.

Update formatting of Sensor output. Update naming of some controls.

20160309 Not logged in

Rework Sensor configuration to work a bit at a time. Configure individual processor pins and individual pins of the TCA9539. Interval counting is disabled.

Integration of TCA9539 works for input and output. Output controlled only from console commands. Input integrated with web pages.

20160307 Not logged in

Mode reporting updated. Format of samples repaired.

20160226 Not logged in

I2C reading and identify is working. Not yet doing anything with the I2C parts. Currently recognize an I/O expander and a Pressure sensor.

20160224 Not logged in

Accept manual time setting as OK for database use.

20160223 Not logged in

Better logic at startup for AP mode choices. Better error reporting for network issues. Stay in AP startup mode if we don't know what network to join.

20160222a Not logged in

Added a restriction of data types for display.

20160222 Not logged in

Issues with adding Frequency1 were an alignment fault trying to read a 4 byte value on a 2 byte boundary. These issues are now resolved.

20160221 Not logged in

Pulse counting back on. I2C off. Frequency1 off. Frequency2 on. Graphing improvements.

20160215a Not logged in

Rework to use new log format which supports dynamic variable creation. Lots of formatting changes. Rework I/O to use the virtual print class to enable better sharing.

20160215 Not logged in

Added OneWire support. Added automatic configuration. Added new element format, dumps and associated support but not yet using it for logging. Added sensors page that lists sensors detected. Added IP address to network page.

Logger by Dragonnorth Group (Michael Newman). Send comments and corrections to:
Webmaster: mnewman@dragonnorth.com