If you want to proclaim to the world that you’re a geek, one good way to go about it is to wear a wristwatch that displays the time in binary. [Jordan] designs embedded systems, and he figured that by building this watch he could not only build up his geek cred but also learn a thing or two about working with PIC microcontrollers for low power applications. It seems he was able to accomplish both of these goals.
The wristwatch runs off of a PIC18F24J11 microcontroller. This chip seemed ideal because it included a built in real-time clock and calendar source. It also included enough pins to drive the LEDs without the need of a shift register. The icing on the cake was a deep sleep mode that would decrease the overall power consumption.
The watch contains three sets of LEDs to display the information. Two green LEDs get toggled back and forth to indicate to the user whether the time or date is being displayed. When the time is being displayed, the green LED toggles on or off each second. The top row of red LEDs displays either the current hour or month. The bottom row of blue LEDs displays the minutes or the day of the month. The PCB silk screen has labels that help the user identify what each LED is for.
The unit is controlled via two push buttons. The three primary modes are time, date, and seconds. “Seconds” mode changes the bottom row of LEDs so they update to show how many seconds have passed in the current minute. [Jordan] went so far as to include a sort of animation in between modes. Whenever the mode is changed, the LED values shift in from the left. Small things like that really take this project a step further than most.
The board includes a header to make it easy to reprogram the PIC. [Jordan] seized an opportunity to make extra use out of this header. By placing the header at the top of the board, and an extra header at the bottom, he was able to use a ribbon cable as the watch band. The cable is not used in normal operation, but it adds that extra bit of geekiness to an already geeky project.
[Jordan] got such a big response from the Internet community about this project that he started selling them online. The only problem is he sold out immediately. Luckily for us, he released all of the source code and schematics on GitHub so we can make our own.
This week, we’re taking the wayback machine to 1940 for an informative, fast-paced look at the teleprinter. At the telegram office’s counter, [Mary] recites her well-wishes to the clerk. He fills out a form, stuffs it into a small canister, and sends it whooshing through a tube down to the instrument room. Here, an operator types up the telegram on a fascinating electro-mechanical device known as a teleprinter, and [Mary]’s congratulatory offering is transmitted over wires to her friend’s local telegraph office hundreds of miles away.
We see that the teleprinter is a transceiver that mechanically converts the operator’s key presses into a 5-digit binary code. For example, ‘y’ = 10101. This code is then transmitted as electrical pulses to teleprinters at distant offices, where they are translated back into alphanumerical data. This film does a fantastic job of explaining the methods by which all of this occurs and does so with an abstracted, color-coded model of the teleprinter’s innards.
The conversion from operator input to binary output is explained first, followed by the mechanical translation back to text on the receiving end. Here, it is typed out on a skinny paper tape by the type wheel shown above. Telegraphists in the receiving offices of this era cut and pasted the tape on a blank telegram in the form of meaningful prose. Finally, it is delivered to its intended recipient by a cheeky lad on a motorbike.
Continue reading “Retrotechtacular: Teleprinter Tour, Teardown”
When life gives you lemons, you make lemonade. When life gives you freezing cold temperatures and a yard full of snow, you make binary clocks out of ice. At least that’s what [Dennis] does, anyway.
[Dennis’] clock is made from several cylindrical blocks of ice stacked on top of one another. There are six columns of ice blocks. The blocks were made by pouring water into empty margarine containers and freezing them. Once they were frozen, [Dennis] bore a 5/16″ hole into the bottom of each block to house an LED. Wires ran from the LEDs back into the drainage port of a cooler.
The cooler housed the main electronics. The LED controller board is of [Dennis’] own design. It contains six TLC59282 chips allowing for control of up to 96 LEDs. Each chip has its output lines running to two RJ45 connectors. [Dennis] couldn’t just use one because one of the eight wires in the connector was used as a common power line. The main CPU is an Arduino. It’s hooked up to a DS3234 Real Time Clock in order to keep accurate time. The oscillator monitors temperature in order to keep accurate time even in the dead of winter. Continue reading “Binary Clock Fit For Queen Elsa’s Ice palace”
[Brett] was looking for a way to improve on an old binary clock project from 1996. His original clock used green LEDs to denote between a one or a zero. If the LED was lit up, that indicated a one. The problem was that the LEDs were too dim to be able to read them accurately from afar. He’s been wanting to improve on his project using seven segment displays, but until recently it has been cost prohibitive.
[Brett] wanted his new project to use 24 seven segment displays. Three rows of eight displays. To build something like this from basic components would require the ability to switch many different LEDs for each of the seven segment displays. [Brett] instead decided to make things easier by using seven segment display modules available from Tindie. These modules each contain eight displays and are controllable via a single serial line.
The clock’s brain is an ATmega328 running Arduino. The controller keeps accurate time using a DCF77 receiver module and a DCF77 Arduino library. The clock comes with three display modes. [Brett] didn’t want and physical buttons on his beautiful new clock, so he opted to use remote control instead. The Arduino is connected to a 433MHz receiver, which came paired with a small remote. Now [Brett] can change display modes using a remote control.
A secondary monochrome LCD display is used to display debugging information. It displays the time and date in a more easily readable format, as well as time sync information, signal quality, and other useful information. The whole thing is housed in a sleek black case, giving it a professional look.
What time is it? For that matter, what is the date? This clock can tell you both of those things, if only you could read it. The inspiration for this Binary Epoch kit came after a friend of [Maniaclal Labs] built an eight-bit binary clock. That’s a pretty common project that gets riffed on for things like mains-timed logic-driven clocks. They figured why not make it bigger? But even then you can make some sense out of the display after studying it for just a bit, you won’t be much closer to answering those two questions.
The problem is that this is unreadable in a couple of different ways. First off, how long did it take you to figure out in your head the decimal equivalent of the binary number displayed above? We gave up. But pounding the number into Google (search for: 0b01010010000010000001001010010011 in decimal) gives us 1376260755. meaningful? Again, not to a human. This is Unix time, which is the number of seconds elapsed since the Epoch: 8/11/13-22:39:15.
Check out the video below that shows how to set the clock, which uses a menu system for human-friendly input. But since it’s Arduino compatible you can also connect an FTDI cable and program it from a computer. Oh, and since this is Open Source Hardware (note the icon in the lower right) you can get all the info to build (or breadboard) your own from their Github repo.
Here’s another complicated clock that uses Nixie tubes to display time and date info which is actually of use.
Continue reading “Unreadable Binary Epoch clock is unreadable”
There are 2 types of people in the world; those who know binary, those who don’t, and those who know ternary. [Emanuele] thought a binary wristwatch is the pinnacle of nerd and set out to build his own. The resulting binary clock not only screams nerd as intended, but is also a functional time piece, as well.
The idea of a binary wristwatch came to [Emanuele] while he was working with PICs at school. Not wanting to let that knowledge go to waste, he used a PIC16F628 microcontroller for this build. There are four LEDs for the hours and six LEDs for the minutes, each attached to a separate microcontroller pin for easy programming.
To keep time, [Emanuele] kept the PIC in sleep mode most of the time, only waking it up when a an internal timer’s register overflows. The watch spends most of its time sleeping, sipping power from a coin cell battery with a battery life that should last weeks, at least.
The entire circuit is tucked away in a PVC enclosure with a wonderful rainbow ribbon cable band. We’re not so sure about how that feels against the skin all day, but it does exude the nerd cred [Emanuele] was looking for.
If you’re into microcontrollers you know the ability to think and perform math in binary is a must. [Joe Ptiz] has been looking for a way to keep from being distract by the math when coding while still keeping the binary strings in the forefront of his mind. The solution he came up with is to use the Python interpreter as a binary math aide.
We knew that you could use Python to convert between decimal, hexadecimal, and binary. But we failed to make the leap to using it for troubleshooting bit-wise operations. We can see this being especially useful when working with sixteen-bit I/O ports like those found on STM32 chips. For us it’s easy to do 8-bit math in our head, but doubling that is another story.
The image above is one screenshot from [Joe’s] tutorial. This illustrates a few different bit-wise operators given decimal inputs but displaying binary as output. He also illustrates how you can use python to test out equations from C code by first setting the variables, pasting the equation, then printing the result to see if the output is what was expected.