Musicmanager
Well-Known Member
I've been at this project for a while and as I had promised some pictures some of my ETO friends suggested I should do this Show & Tell .. .. .
Members who are UK resident may recognise a reference to Prof. Chris Smith who is a regular contributor to Breakfast TV as an eminent epidemiologist and ' Covid Forecaster ' .. .. .. .. when he is commenting, there is usually a large round clock in view on the wall of his laboratory and our Daughter-in-Law asked me if I could reproduce it for her; as a Daughter-in-Law she is more like the Daughter we wish we'd had, so I was keen to make an attempt in spite of my novice abilities.
Whilst looking for an inspirational place to start, I was seduced by an Arduino Project labelled ' GorgyMeteoClock ' mainly due to the impression that apart from time & date, it would also open the front door when the bell rang & tell really funny jokes on demand.
This scheme used a DS 3231 module for time & date but also included a BMP 280 module for Temperature & Barometric Pressure and a HTU21DF for Humidity, none of which I had been asked to include so the seduction was complete !
It did however, offer a good suggestion for the structure of the clock, using a piece of Gloss Black Acrylic for the clock face holding LED's, 7 Seg's and a small TFT and then an identical sized piece of Smoked Grey Acrylic placed over that which dimmed the glare of the LED's and also provided an uninterrupted smooth outer surface. In view of the price of the Acrylic sheet I did some early experiments with small samples and discovered that whilst the theory was good for LED's & 7 Segs, it was not so for a TFT because the smoked grey cover made the TFT difficult to see and as a result I elected to use LED's and 7 Seg's of various sizes for display.
I then set to build a prototype of the circuit and the associated sketch and very quickly realised that there was so much of the 4500 lines program I could not follow, I was immediately at a stop. I elected to write my own sketch, using code snippets from datasheet examples and a great deal of help from ETO members and eventually a working Clock, displaying 24 hour time on a 1.2 inch set of 7 Seg's and a day, month & year on a smaller set of 7 Seg's ;
At this point I was using an Arduino Uno for the sketch and when I set to write a sketch for the BMP & HTU sensors, whilst the sketch was very straightforward I encountered lots of problems with stability, most of which I couldn't identify the cause but nevertheless were eliminated when I elected to use 2 x Arduino Nano's - 1 for Clock the other for sensors.
This got me to the point that a structure could be made up and here it is .. .. .
The white border is the protective coating on the back of a 40 cm square sheet of Gloss Black Acrylic with a piece of 4mm plywood, glued and screwed in place; The Stripboard on the LHS has 3 x MAX 7219's soldered in place and the pair of sensors are in view on the top edge. The two 'posts' visible to the right of the Nano's are M3 allthread with nuts & washers which provide +ve & -ve power for the whole unit.
Having completed all the circuitry, I added 30mm plywood upstands to all 4 sides which held a piece of Matt Black Acrylic as a cover.
In this view, the 5 buttons in place for adjusting Time & Date are clearly visible, as is a small additional power board holding 2 x 7805 V. Regs;
At the bottom of the picture is a pair of capacitors which had straddled the M3 power posts but I had laid them aside in favour of the V. Regs for a particular reason.
From the outset the code operating the DS 3231 had run perfectly without any issue; however, that was not the case for the sensors code. The code took a reading from each of the Sensors, transmitted to the Nano via i2C which was then converted for display on a proprietary 8 digit 7 Seg Module. This all worked perfectly for a period but then the display would freeze and only a power reboot would reinstate it.
I spent 3 weeks, coating the circuit with noise abatement capacitors; using screened cable to protect signal wires from stray capacitance; the small circuit board with the V. Regs was to separate the power supply to each Nano which also offered no improvement. A huge investigation got underway, by me and by some of my ETO friends but no solution emerged and whilst the Clock continued to 'tick', the sensors ran or didn't run without any influence from me.
I had returned to the datasheets a number of times looking for inspiration without anything obliging; A part of the sensors 'Setup' code includes a series of parameters relating to sampling, over-sampling, averaging etc., which I had deliberately taken at face value for fear of getting into my inexperience too deeply;
However, the BMP280 datasheet explains that when a sample is taken it is in two parts - the time taken to collect a sample, which will vary slightly according to it's value - and a 'standby time' which is the time dormant between samples, which is set by default at 8ms;
I changed the 'standby time' to 100ms and the sensor circuit ran much longer before freezing . . .
I concluded that because the sensor readings are coded to display as a scroll with 15 seconds display and then 2 seconds interval, if the 'standby time' and the 2 second interval coincided there would not be any signal to 'wake' the display; In an attempt to prove this, I extended the interval to 10 seconds and the display froze after one cycle.
A quick maths exercise ( not my strongest discipline ) display of 15 seconds + an interval of 2 seconds = 17 seconds; of the options available for 'standby time' I selected 4000ms because 17 / 4 doesn't work .. .. .. .. .
The Sensors circuit is now perfect too ! Eureka !!
Here is the almost finished article - there are a few aesthetic items to add .. ..
Finally, I like to place on record here my enormous appreciation for all the help I've had with this project from various ETO members.
If I've bored you all to tears, I apologise .. .. .. .
Thanks
MM
Members who are UK resident may recognise a reference to Prof. Chris Smith who is a regular contributor to Breakfast TV as an eminent epidemiologist and ' Covid Forecaster ' .. .. .. .. when he is commenting, there is usually a large round clock in view on the wall of his laboratory and our Daughter-in-Law asked me if I could reproduce it for her; as a Daughter-in-Law she is more like the Daughter we wish we'd had, so I was keen to make an attempt in spite of my novice abilities.
Whilst looking for an inspirational place to start, I was seduced by an Arduino Project labelled ' GorgyMeteoClock ' mainly due to the impression that apart from time & date, it would also open the front door when the bell rang & tell really funny jokes on demand.
This scheme used a DS 3231 module for time & date but also included a BMP 280 module for Temperature & Barometric Pressure and a HTU21DF for Humidity, none of which I had been asked to include so the seduction was complete !
It did however, offer a good suggestion for the structure of the clock, using a piece of Gloss Black Acrylic for the clock face holding LED's, 7 Seg's and a small TFT and then an identical sized piece of Smoked Grey Acrylic placed over that which dimmed the glare of the LED's and also provided an uninterrupted smooth outer surface. In view of the price of the Acrylic sheet I did some early experiments with small samples and discovered that whilst the theory was good for LED's & 7 Segs, it was not so for a TFT because the smoked grey cover made the TFT difficult to see and as a result I elected to use LED's and 7 Seg's of various sizes for display.
I then set to build a prototype of the circuit and the associated sketch and very quickly realised that there was so much of the 4500 lines program I could not follow, I was immediately at a stop. I elected to write my own sketch, using code snippets from datasheet examples and a great deal of help from ETO members and eventually a working Clock, displaying 24 hour time on a 1.2 inch set of 7 Seg's and a day, month & year on a smaller set of 7 Seg's ;
At this point I was using an Arduino Uno for the sketch and when I set to write a sketch for the BMP & HTU sensors, whilst the sketch was very straightforward I encountered lots of problems with stability, most of which I couldn't identify the cause but nevertheless were eliminated when I elected to use 2 x Arduino Nano's - 1 for Clock the other for sensors.
This got me to the point that a structure could be made up and here it is .. .. .
The white border is the protective coating on the back of a 40 cm square sheet of Gloss Black Acrylic with a piece of 4mm plywood, glued and screwed in place; The Stripboard on the LHS has 3 x MAX 7219's soldered in place and the pair of sensors are in view on the top edge. The two 'posts' visible to the right of the Nano's are M3 allthread with nuts & washers which provide +ve & -ve power for the whole unit.
Having completed all the circuitry, I added 30mm plywood upstands to all 4 sides which held a piece of Matt Black Acrylic as a cover.
In this view, the 5 buttons in place for adjusting Time & Date are clearly visible, as is a small additional power board holding 2 x 7805 V. Regs;
At the bottom of the picture is a pair of capacitors which had straddled the M3 power posts but I had laid them aside in favour of the V. Regs for a particular reason.
From the outset the code operating the DS 3231 had run perfectly without any issue; however, that was not the case for the sensors code. The code took a reading from each of the Sensors, transmitted to the Nano via i2C which was then converted for display on a proprietary 8 digit 7 Seg Module. This all worked perfectly for a period but then the display would freeze and only a power reboot would reinstate it.
I spent 3 weeks, coating the circuit with noise abatement capacitors; using screened cable to protect signal wires from stray capacitance; the small circuit board with the V. Regs was to separate the power supply to each Nano which also offered no improvement. A huge investigation got underway, by me and by some of my ETO friends but no solution emerged and whilst the Clock continued to 'tick', the sensors ran or didn't run without any influence from me.
I had returned to the datasheets a number of times looking for inspiration without anything obliging; A part of the sensors 'Setup' code includes a series of parameters relating to sampling, over-sampling, averaging etc., which I had deliberately taken at face value for fear of getting into my inexperience too deeply;
However, the BMP280 datasheet explains that when a sample is taken it is in two parts - the time taken to collect a sample, which will vary slightly according to it's value - and a 'standby time' which is the time dormant between samples, which is set by default at 8ms;
I changed the 'standby time' to 100ms and the sensor circuit ran much longer before freezing . . .
I concluded that because the sensor readings are coded to display as a scroll with 15 seconds display and then 2 seconds interval, if the 'standby time' and the 2 second interval coincided there would not be any signal to 'wake' the display; In an attempt to prove this, I extended the interval to 10 seconds and the display froze after one cycle.
A quick maths exercise ( not my strongest discipline ) display of 15 seconds + an interval of 2 seconds = 17 seconds; of the options available for 'standby time' I selected 4000ms because 17 / 4 doesn't work .. .. .. .. .
The Sensors circuit is now perfect too ! Eureka !!
Here is the almost finished article - there are a few aesthetic items to add .. ..
Finally, I like to place on record here my enormous appreciation for all the help I've had with this project from various ETO members.
If I've bored you all to tears, I apologise .. .. .. .
Thanks
MM