The Amazon Echo Dot is a popular home voice assistant, often trusted to control heating, lighting, music and even door locks. Personally, I use mine for trivial tasks such as controlling Spotify and setting alarms but you can see that it would make an obvious target for an attack.
As discussed in the previous article, the display is controlled by a number of shift registers. Shift registers can be controlled directly by a SPI bus, which is useful as most microcontrollers (including our ATtiny87) have a built in SPI bus peripheral. This means that writing a byte to the shift register is almost as easy as just writing a byte to a register.
My Nixie tubes have 11 active pins each: a common anode and one cathode per digit (ten in total). The anode is connected to +180V via a 47k current-limiting resistor and each cathode is connected to the collector of a high voltage bipolar transistor (MPSA42) so that current can be controlled through each of them via the base of the transistor. This gives a total of 29 transistors that need to be individually controlled (24 hour clock requires 3 possible numbers for the first digit, 10 for the second, 6 for the third and 10 for the fourth). I chose to do this by using four 8-bit shift registers, connected in series to make one, 32-bit shift register.
A geometric series is a series of numbers where each number in the series is equal to the previous number multiplied by a constant multiplication factor. For example: 2, 4, 6, 8, 16… is a geometric series with a constant multiplication factor of 2.
The sum to infinity of such a sequence, then, can be represented as:
One big change since I did the first version of the clock is my access to professionally made PCBs. At the time, I was only able to produce PCBs via hand etching or using my home-made PCB mill. A board like this requires at least a double sided design which is not easy using the above methods and so I used veroboard. This is painfully slow and messy.
For the new version I will use a professionally made two layer PCB.
I’m replacing the screen on the logic analyser for a few reasons: The CRT is heavy and bulky – replacing it would make the whole thing lighter, an LCD could be brighter and I can add colour to the monochrome display, and on top of this it’s just an interesting project. The most important thing is that the replacement screen is not worse than the old one!
After putting this project on the back burner, I am focusing on it once again. Brian HG on the EEVblog forums suggested that a simple line doubler would make the signal compatible with most modern VGA displays. What that means is that each line in the frame needs to be repeated twice, at double the speed.
Currently we get a new line every 40 microseconds, but this is too slow for most displays to be happy about. Therefore, if we record each line and output it twice at 20 microseconds each most VGA displays will be ok with it.