Being a low-priority "I'd like to get around to doing this some time" project, I wasn't necessarily paying the closest attention to details, and a lot of things were left in the "to check later" basket, which was more of a mental note thing, than a proper tracked project thing — and it's not hard to figure out how that will end. Sooo… here's the round-up (and I'm making a proper check-list now):
- The cutout I added for the EtherTen's Ethernet port, was about 1mm too low, requiring me to take a file to the PCB. I've now raised the top edge of the cut out, and lowered the bottom edge slightly just for a touch extra clearance, and I'm mighty glad I'd moved the track that was originally wrapped fairly snugly around the cut-out. Still… All things considered, not too bad for a tape measure measurement.
- The RGB LED component I used, was a standard library footprint. I remember thinking, "you know, common ground on pin 1 doesn't quite seem right... I'll have to check that later." But I'd only put the component on the schematic to test out an idea — mainly to check whether I have enough ųC pins for it — and I hadn't actually decided to actually include it yet, the one on the original breadboard version was a little over-poweringly bright at times, so making sure it was the right part to what I might be using some time down the track, wasn't real high on the priorities. Unfortunately, of course, I didn't check the footprint. So my RGB LED, is presently a GB LED — turning the red segment off provides a false ground (back through the ųC) for the other two segments, at twice the resistance (which actually looks quite okay, and is plenty bright enough as is). Needs some further experimentation.
- The Clock display also seems to have developed a fault in the past week or four — which I don't think is actually my fault, for a change; I thought it was just a couple wires had come loose on the breadboard again, that was making a few digits fail, but, it was something more. One of the LEDs is leaking when reverse biased, and the driver chip is failing. I'm not sure which failed first, but there's definitely faults in both; when I transplanted the Clock display onto a breadboard and tested it manually, all the segments worked properly, but I noticed connecting power across the commons for digit 3, and one of the others, would cause that other digits D segment to light dimly, which leads me to think digit 3's D segment is permitting reverse current flow. I surmise from that, that it's doing nasty things to the driver chip, causing it to progressively fail, leading to the gradually increasing dead segments over the past couple weeks. I have one more driver, but only the one display, and not sure which of the two caused the initial problem, but knowing the display certainly has a problem, I'm loathe to plug in my other driver to test the theory — and so since I'm going to need to rev the board anyhow, I'd rather hunt down a replacement display, and keep the second chip for the new board.
On the software side, it's sending room temperature, light level data, and button presses, over MQTT. The RGB LED glows blue during "daylight" hours, and turns off at night, which is something of an inbuilt test of the light sensor. I did have the green segment blinking once per second, based off the clock chip's 1Hz output (which drives the internal time keeping), but that got annoying — which is a thing, I'm really not sure I want the LED there at all — though I might keep it purely as a network addressable indicator, even if I don't give it a purpose within the clock itself. I've removed the clock display driving code, because there's presently no display attached, though I'll have to re-activate that just so it takes up it's slab of space… And I need to fit the external temperature sensor — going to need an extension cord for that, too. And of course the entire menu system is going to have to wait until there's a display for it to use, and even then I'm very dubious it's going to fit on the device at all, so that may well end up being offloaded to the server in any case — sounds like fun either way.
The current TODO list basically goes:
- Fit the external temperature sensor (with extension), and get it sending data.
- Decide whether I really want that RGB LED there or not…
- Experiment some more with the light sensor to improve it's sensitivity range.
- Get the proper push buttons for it… the current ones are under-sized.
- Order new displays — the one I'm using is remarkably difficult to find in a colour I like.
- Re-activate the display driving code…
- Finish the coding — need to see if everything will even fit!
A final note… I also need a cleaner project management system. With a single project potentially spanning KiCad board designs, Arduino firmware, R.Pi based scripting, and potentially online components hosted on my GAE project, along with general notes and reference materials… having the separate bits living within their own little environments is, troublesome.