16-May-2020 Updated PDF v051. This PDF outlines the upcoming support for remote sensors. We have decided that to support additional sensors one might want to add in the future, we will not release updated PCB's, but rather support remote ESP32 devices that have sensors attached. These remote ESP32 devices are considered SLAVE devices.
To support thes SLAVE devices, and have them communicate their sensor values, we now support ESPNOW, and MQTT publishing of SLAVE topic/values to an MQTT broker. Code support has been provided into the mySQMPROESP main firmware to support this.
To read about this in the PDF, download the latest PDF and read pages 146-
We expect firmware 061 with this support to be released soon. In the meantime it is expected to release firmware 060 for general release within a few days.
regards
Robert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I will take a look and get back to you. I do not remember changing these components on the PCB, it was only the addition of extra headers for I2C, 3V3 and GND
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Yes, the c1 and C2 were correct on the silkscreen but the values were swapped.
I have fixed this and uploaded corrected versions. I have also updated pdf.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
18-May-2020. Firmware 060 is released. Please read the PDF for further details. This is now very complex software and configuration is very important. Ensure that your Arduino environment and libraries and add-ons reflect what is required in the PDF, firmware files and Readme.cmd files.
Using a different environment may well result in errors and erratic behaviour.
Regards
Robert
All previous firmware releases are now unsupported.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
13-June-2020. New firmware, new PDF, details re myESP32 Daughter Board and ESP8266 Relay Board with gerbers and code examples on interfacing remote sensors and relays to mySQPROESP controllers. Support for Weather Underground and Over The Air updating, new GUI, improved response, etc, etc
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
20th July 2020
New Firmware 097 released. Also new PDF to match, new protocol pdf, new windows tcpip app
// 96
// Fix for OLED page option not being applied
// Fix for Beaufort Scale not being updated in XHTML
// Fix for OLED page 3, LOC date for GPS not showing
// Fix for Webserver / page not showing GPS date correctly
// Fix for crash if OLEDTEXT defined and no OLED display found
// Remove Beaufort scale from Windspeed line on / web-page as it has its own line now
// 95
// Fix bug in OLED page option not being saved
// Add error check on /admin3 for OLED Page Group Option
// Fix RTC values not showing on /admin7 page
// 94
// Fix for xhtml pages to correctly show values according to temperature and distance modes
// Remove webpagerefreshrate [redundant]
// Revise admin pages [now 1-8]
// Group all oled options and group on new /admin3
// Add oled page options, remembered in SPIFFS, option on /admin3
// Add oled page display time option to /admin3 [2000-10000], Default = 4500 milliseconds
// Add case 78 and 79 for get/set oled page option
// Move initialisation of webserver pages to machine state idle
// Use common function for checking server reboot from /adminx pages
// 93
// Fix for Windspeed Unit and Scale disappearing from web page when using xhtml
// Fix for 'gpa_loc' was not declared when GPS is defined
// Change RTC to use struct tm
// Change RTC set_date_time_rtc1307 to use struct tm type
// Change to WEBSERVER_handleadmin6() to use struct tm type for updating RTC date/time
// Change get_ntpserver_message() to use struct tm type in syncing RTC date/time to NTP
// Use common function to initialize struct tm types for NTP/GPS/RTC
// 92
// Fix sync of RTC to NTP
// Fix windchill factor not reporting as JSON string on root page [when JSON enabled]
// Add Beaufort Scale to home page
// Add XHTML support for Beaufort Scale
// Fix wind direction and wind chill factor disappearing from root page when XHTML enabled
// 91
// Combine RTC/NTP/GPS code into common routines to handle local date
// Update MQTT and webserver code in relation to local time
// Add case 77: Get NTP servername
// Rewrite web server code related to sending pages
// Fix for XTML not working
// 90
// Implement NTP
// Add sysnc RTC with NTP data
// Rename mqttserver to mqttclient
// Add code to restart mqttclient correctly if client exits
// Add extra controller data to MQTT publish [MAC, RTC, WindChillFactor]
// Fix compile errors in usermqtt file
// Update usermqtt file to add MAC, RTC, WindChillFactor
// Add JSON request /mac to get Controller MAC address
// Add JSON request /ntp to get Controller ntp date/time [utc, tz and loc time/dates]
// Add case 71: to protocol to return MAC address
// Add case 72: to protocol to return RTC date time as string
// Add case 73: to protocol to return Wind Chill Factor
// Add case 74: to protocol to return NTP UTC date time as string
// Add case 75: to protocol to return NTP LOC [UTC adj by TZ] date time as string
// Add case 76: to protocol to return TZ [hh:mm] as string
// Add tests for timing code
// Rearrange /admin pages to improve page load times, now up to /admin7
// Appy fix for WiFi connection, faster connection now possible
// Extract add a cross origin header into function call
// Add NTP time to oled page 9 [also displays RTC and TimeZone]
// Minor Bug Fixes
// 89
// Internal use only, not released
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
I have found a small error on the myESP32 Daughter Board rev01 which I have corrected and will upload rev02 soon.
The error concerns the 2N7000 Mosfet connection which drives the 5V relays.
Somewhere between breadboard and pcb design I inadvertently swapped Source and Drain in the PCB Rev01, so it does not work relay does not turn on]. If one unsolders the 2N7000 mosfet, rotates it 180 degrees and then resolders it all is fine.
Rev02 fixes it on the PCB.Apologies for that.
CheersRobert
Last edit: brownrb 2020-07-24
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
29 Jul 2020 We are preparing the next public firmware for release very shortly. Thanks to Tommy, Andrew, Carlos, Paul and Peter for their input, suggestions and feedback.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
// 100
// Fix for oled display pg2 [GPS] and pg5 [HUMIDITY/AMBIENT/DEWPOINT/PRESSURE/SKY-A/SKY-O/WINDC/F]
// Optimize web server code
// Change order of oled page 2 to display lat/lon/alt/sat/fix
// 99
// Fix for /admin3 to display oled pagetime and pageoption even if oledtext not defined
// Fix for formatting /admin3 and /admin5
// Add /about as JSON request to return version etc
// Add /reboottcp as JSON request to restart TCP/IP interface
// Updates for DAUGHTER BOARD myESP32DB folder examples and pdf
// Fix for handling CFP, TC and TOC on /admin4
// Fix for BrokerIP, TCP/IP port, NTPServerName on /admin
// Fix JSON /g1 request to return 01/01/1900 if no GPS defined
// Fix for /admin7 showing invalid chars after YEAR value
// Change text /admin of NTP SYNC TIME to NTP QUERY TIME [it is not really a sync]
// Optimize case 8, 9, 72, 74, 75
// 98
// Fix for ANEMOMETER3DPRINT and ANEMOMETER4403 not showing windspeed
// Add /rebootws to enable restarting of web server
// Add /reboot to enable rebooting of controller
// Remove GPZDA - this is not supported by NEO-6M GPS sensors
// Comment out Serial.print statements in rainfall.h
// Fix array bounds issue in convert_utc_to_local_time()
// Reduce scope of local vars in getlux()
// Fix %BFS% on root web page
// Fix date showing as 00/00/1900 in TCP/IP and USB apps - changed to 01/01/1900
// 97
// Add GPZDA NMEA message parsing
// Fix for GPS init() code, incorrect PMK314 initialisation string
// Replace string constants in code with defines [CHARCOMMA, CHARDOT, CHARSPACE etc]
// Replace webpage not found string with common string constant when assembling webpages
// Changes to webpages to ensure smaller size and add reboot button on admin5 [was missing]
// Changes to webserver handling of webpages to match changes to webpages
// Rename colorpicker.html to cp.html
// Change admin button SPIFFS FILES to LIST FILES
// Add NTP hour during which the sync of RTC will occur
// Add rainfall code into rainfall.h
// Remove DOW from RTC page /admin7 and add code to calculate this automatically
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
31 Aug 2020. Updates to Windows TCP/IP app and Windows USB app to go with upcoming release of firmware 102. Do not use these apps with firmware 101 or less.
Firmware 102 will add support for the Sparkfun Weather Kit and the Misol Weather Station and Rain Bucket Gauges. Firmware 102 is currently in beta test.
// 102
// Add support for Anemometer Weather Meters Kit by Sparkfun Electronics SEN-08942
// [Pulse sensor Output Anemometer] Weather Sensor Assembly 80422 by Argent Data Systems
// [Rain Bucket Gauge] Weather Sensor Assembly 80422 by Argent Data Systems
// [Wind Direction Sensor] Weather Sensor Assembly 80422 by Argent Data Systems
// Add support for Misol weather station components [spare parts MS-WH-SP-RG, WH-SP-WS01 and WH-SP-WD]
// Fix for wind speed calculation using ANEMOMETER3DPRINT/ANEMOMETER4403/ANEMOMETER80422
// Fix for Liyuan wind direction sensor
// Fix for return rain voltage
// Add call for Get Rain Bucket Gauge [also to webserver and serial/tcp/ip calls)
// - Get cumulative rainfall for this current day
// - Get cumulative rainfall for this current hour
// - Get rain total in mm over previous hour
// Add rainfall (cummulative hour and cummulative day) to web server pages and json requests
// Add rainfall to MQTT, Weather underground and OLED display
// Add sync ability via webserver or serial/tcp/ip call for Rain Bucket Gauge min/hr to Real Time Clock
// Rewrite Rainfall.h for consistency usage with Rain Bucket Gauge
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
27-Dec-2020 New PDF, New Firmware 110 with updated examples on Daughter Board, Branch Remote Slave, add Petes PCB for Raspberry PI to run mySQM server with ESP32 to run mySQM+ controller on the same PCB.
Regards
Robert
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
16-May-2020 Updated PDF v051. This PDF outlines the upcoming support for remote sensors. We have decided that to support additional sensors one might want to add in the future, we will not release updated PCB's, but rather support remote ESP32 devices that have sensors attached. These remote ESP32 devices are considered SLAVE devices.
To support thes SLAVE devices, and have them communicate their sensor values, we now support ESPNOW, and MQTT publishing of SLAVE topic/values to an MQTT broker. Code support has been provided into the mySQMPROESP main firmware to support this.
To read about this in the PDF, download the latest PDF and read pages 146-
We expect firmware 061 with this support to be released soon. In the meantime it is expected to release firmware 060 for general release within a few days.
regards
Robert
16-May-2020. Updated PCB Version 09. Gerber files uploaded.
Hey Robert,
I think C1 - 0.33 in and C2 - 0.1 out are inverted on PCB stencil 8 and 9.
Frank
I will take a look and get back to you. I do not remember changing these components on the PCB, it was only the addition of extra headers for I2C, 3V3 and GND
Last edit: François Decarie 2020-05-18
Yes, the c1 and C2 were correct on the silkscreen but the values were swapped.
I have fixed this and uploaded corrected versions. I have also updated pdf.
18-May-2020. Firmware 060 is released. Please read the PDF for further details. This is now very complex software and configuration is very important. Ensure that your Arduino environment and libraries and add-ons reflect what is required in the PDF, firmware files and Readme.cmd files.
Using a different environment may well result in errors and erratic behaviour.
Regards
Robert
All previous firmware releases are now unsupported.
4th June 2020. New firmware 066 released.
13-June-2020. New firmware, new PDF, details re myESP32 Daughter Board and ESP8266 Relay Board with gerbers and code examples on interfacing remote sensors and relays to mySQPROESP controllers. Support for Weather Underground and Over The Air updating, new GUI, improved response, etc, etc
21-June-2020
Please be patient as I rearrange things over the next few days and upload new files
30-June-2020 New PDF
30-June-2020 New Windows TCP/IP and Windows USB Applications.
We are preparing for firmware release 082 to be released shortly.
10 July 2020. A major flaw with PCB 09 has been reported. I have uploaded PCB 10 to address this issue.
13-July-2020 New Firmware v093, new PDF, new Windows USB and TCP/IP apps
20th July 2020
New Firmware 097 released. Also new PDF to match, new protocol pdf, new windows tcpip app
// 96
// Fix for OLED page option not being applied
// Fix for Beaufort Scale not being updated in XHTML
// Fix for OLED page 3, LOC date for GPS not showing
// Fix for Webserver / page not showing GPS date correctly
// Fix for crash if OLEDTEXT defined and no OLED display found
// Remove Beaufort scale from Windspeed line on / web-page as it has its own line now
// 95
// Fix bug in OLED page option not being saved
// Add error check on /admin3 for OLED Page Group Option
// Fix RTC values not showing on /admin7 page
// 94
// Fix for xhtml pages to correctly show values according to temperature and distance modes
// Remove webpagerefreshrate [redundant]
// Revise admin pages [now 1-8]
// Group all oled options and group on new /admin3
// Add oled page options, remembered in SPIFFS, option on /admin3
// Add oled page display time option to /admin3 [2000-10000], Default = 4500 milliseconds
// Add case 78 and 79 for get/set oled page option
// Move initialisation of webserver pages to machine state idle
// Use common function for checking server reboot from /adminx pages
// 93
// Fix for Windspeed Unit and Scale disappearing from web page when using xhtml
// Fix for 'gpa_loc' was not declared when GPS is defined
// Change RTC to use struct tm
// Change RTC set_date_time_rtc1307 to use struct tm type
// Change to WEBSERVER_handleadmin6() to use struct tm type for updating RTC date/time
// Change get_ntpserver_message() to use struct tm type in syncing RTC date/time to NTP
// Use common function to initialize struct tm types for NTP/GPS/RTC
// 92
// Fix sync of RTC to NTP
// Fix windchill factor not reporting as JSON string on root page [when JSON enabled]
// Add Beaufort Scale to home page
// Add XHTML support for Beaufort Scale
// Fix wind direction and wind chill factor disappearing from root page when XHTML enabled
// 91
// Combine RTC/NTP/GPS code into common routines to handle local date
// Update MQTT and webserver code in relation to local time
// Add case 77: Get NTP servername
// Rewrite web server code related to sending pages
// Fix for XTML not working
// 90
// Implement NTP
// Add sysnc RTC with NTP data
// Rename mqttserver to mqttclient
// Add code to restart mqttclient correctly if client exits
// Add extra controller data to MQTT publish [MAC, RTC, WindChillFactor]
// Fix compile errors in usermqtt file
// Update usermqtt file to add MAC, RTC, WindChillFactor
// Add JSON request /mac to get Controller MAC address
// Add JSON request /ntp to get Controller ntp date/time [utc, tz and loc time/dates]
// Add case 71: to protocol to return MAC address
// Add case 72: to protocol to return RTC date time as string
// Add case 73: to protocol to return Wind Chill Factor
// Add case 74: to protocol to return NTP UTC date time as string
// Add case 75: to protocol to return NTP LOC [UTC adj by TZ] date time as string
// Add case 76: to protocol to return TZ [hh:mm] as string
// Add tests for timing code
// Rearrange /admin pages to improve page load times, now up to /admin7
// Appy fix for WiFi connection, faster connection now possible
// Extract add a cross origin header into function call
// Add NTP time to oled page 9 [also displays RTC and TimeZone]
// Minor Bug Fixes
// 89
// Internal use only, not released
24 July 2020
I have found a small error on the myESP32 Daughter Board rev01 which I have corrected and will upload rev02 soon.
The error concerns the 2N7000 Mosfet connection which drives the 5V relays.
Somewhere between breadboard and pcb design I inadvertently swapped Source and Drain in the PCB Rev01, so it does not work relay does not turn on]. If one unsolders the 2N7000 mosfet, rotates it 180 degrees and then resolders it all is fine.
Rev02 fixes it on the PCB.Apologies for that.
CheersRobert
Last edit: brownrb 2020-07-24
29 Jul 2020 New PDF and Protocol documents uploaded
29 Jul 2020 We are preparing the next public firmware for release very shortly. Thanks to Tommy, Andrew, Carlos, Paul and Peter for their input, suggestions and feedback.
04 Aug 2020. New Firmware v100 update. New PDF
// ------------------------------------------------------------------------------------
// COMPILE ENVIRONMENT : Tested with
// ------------------------------------------------------------------------------------
// Arduino IDE 1.8.13
// Arduino ESP32 Core 1.0.4
// Libraries
// ArduinoJSON [Benoit Blanchon] 6.15.2
// myAsyncTSL2591, mybme280d, myMLX90614AF, myOLED, myPubSubClient
// Wire [as installed with Arduino 1.8.13]
// OneWire 2.3.5
// ESP32FS 1.0
// ------------------------------------------------------------------------------------
// 100
// Fix for oled display pg2 [GPS] and pg5 [HUMIDITY/AMBIENT/DEWPOINT/PRESSURE/SKY-A/SKY-O/WINDC/F]
// Optimize web server code
// Change order of oled page 2 to display lat/lon/alt/sat/fix
// 99
// Fix for /admin3 to display oled pagetime and pageoption even if oledtext not defined
// Fix for formatting /admin3 and /admin5
// Add /about as JSON request to return version etc
// Add /reboottcp as JSON request to restart TCP/IP interface
// Updates for DAUGHTER BOARD myESP32DB folder examples and pdf
// Fix for handling CFP, TC and TOC on /admin4
// Fix for BrokerIP, TCP/IP port, NTPServerName on /admin
// Fix JSON /g1 request to return 01/01/1900 if no GPS defined
// Fix for /admin7 showing invalid chars after YEAR value
// Change text /admin of NTP SYNC TIME to NTP QUERY TIME [it is not really a sync]
// Optimize case 8, 9, 72, 74, 75
// 98
// Fix for ANEMOMETER3DPRINT and ANEMOMETER4403 not showing windspeed
// Add /rebootws to enable restarting of web server
// Add /reboot to enable rebooting of controller
// Remove GPZDA - this is not supported by NEO-6M GPS sensors
// Comment out Serial.print statements in rainfall.h
// Fix array bounds issue in convert_utc_to_local_time()
// Reduce scope of local vars in getlux()
// Fix %BFS% on root web page
// Fix date showing as 00/00/1900 in TCP/IP and USB apps - changed to 01/01/1900
// 97
// Add GPZDA NMEA message parsing
// Fix for GPS init() code, incorrect PMK314 initialisation string
// Replace string constants in code with defines [CHARCOMMA, CHARDOT, CHARSPACE etc]
// Replace webpage not found string with common string constant when assembling webpages
// Changes to webpages to ensure smaller size and add reboot button on admin5 [was missing]
// Changes to webserver handling of webpages to match changes to webpages
// Rename colorpicker.html to cp.html
// Change admin button SPIFFS FILES to LIST FILES
// Add NTP hour during which the sync of RTC will occur
// Add rainfall code into rainfall.h
// Remove DOW from RTC page /admin7 and add code to calculate this automatically
31 Aug 2020. Updates to Windows TCP/IP app and Windows USB app to go with upcoming release of firmware 102. Do not use these apps with firmware 101 or less.
Firmware 102 will add support for the Sparkfun Weather Kit and the Misol Weather Station and Rain Bucket Gauges. Firmware 102 is currently in beta test.
// 102
// Add support for Anemometer Weather Meters Kit by Sparkfun Electronics SEN-08942
// [Pulse sensor Output Anemometer] Weather Sensor Assembly 80422 by Argent Data Systems
// [Rain Bucket Gauge] Weather Sensor Assembly 80422 by Argent Data Systems
// [Wind Direction Sensor] Weather Sensor Assembly 80422 by Argent Data Systems
// Add support for Misol weather station components [spare parts MS-WH-SP-RG, WH-SP-WS01 and WH-SP-WD]
// Fix for wind speed calculation using ANEMOMETER3DPRINT/ANEMOMETER4403/ANEMOMETER80422
// Fix for Liyuan wind direction sensor
// Fix for return rain voltage
// Add call for Get Rain Bucket Gauge [also to webserver and serial/tcp/ip calls)
// - Get cumulative rainfall for this current day
// - Get cumulative rainfall for this current hour
// - Get rain total in mm over previous hour
// Add rainfall (cummulative hour and cummulative day) to web server pages and json requests
// Add rainfall to MQTT, Weather underground and OLED display
// Add sync ability via webserver or serial/tcp/ip call for Rain Bucket Gauge min/hr to Real Time Clock
// Rewrite Rainfall.h for consistency usage with Rain Bucket Gauge
31 Aug 2020: Update to Windows Logviewer program.
07 Sep 2020. New Windows TCP/IP and new Windows USB applications. These should work on older firmware. If any issues please post logfile and issue.
Regards
Robert
17 Oct 2020. New ASCOM drivers - RainRate added. New PDF. New firmware 102c beta.
Last edit: brownrb 2020-10-17
27-Dec-2020 New PDF, New Firmware 110 with updated examples on Daughter Board, Branch Remote Slave, add Petes PCB for Raspberry PI to run mySQM server with ESP32 to run mySQM+ controller on the same PCB.
Regards
Robert
27-Dec-2020 New Windows TCP/IP application. New Windows USB application.