So many are the clock projects which cross the Hackaday threshold, that it’s very rare indeed to see something that hasn’t already been done. We think we’ve not seen a lenticular clock before though, and we’re thus impressed by this one produced by [Moritz Sivers].
You may well be familiar with lenticular images from toys and novelties, an animation is sliced into lines and placed behind an array of multi-faceted linear lenses. It gives the effect of movement as from different viewing angles a different frame of the animation is perceived. In this clock the animation is replaced by the clock digits, and by rotating the whole with a servo driven by an ESP8266 microcontroller it can display different digits to the viewer. The write-up and the video below are of value both for the clock itself and the description of how these animations are produced. The clock itself doesn’t sacrifice usability for all its novelty, and we can see this technique might find a place in other projects requiring custom displays.
When choosing a low-level language, it’s hard to beat the efficiency of Forth while also maintaining some amount of readability. There are open source options for the language which makes it accessible, and it maintains its prevalence in astronomical and other embedded systems for its direct hardware control and streamlined use of limited resources even though the language started over 50 years ago. Unlike 50 years ago, though, you can now take your own self-contained Forth programmer on the go with you.
The small computer is built on a design that [Dennis] built a while back called my4TH which has its own dedicated 8-bit CPU and can store data in a 256 kB EEPROM chip. Everything else needed for the computer is built in as well but that original design didn’t include a few features that this one adds, most notably a small 40×4 character LCD and a keyboard. The build also adds a case to tie everything together, with ports on the back for I2C and power plus an RS232 port. An optional battery circuit lets the computer power up without an external power supply as well.
Displays are crucial to modern life; they are literally everywhere. But modern flat-panel LCDs and cheap 7-segment LED displays are, well, a bit boring. When we hackers want to display the progress of time, we want something more interesting, hence the plethora of projects using Nixie tubes and various incantations of edge-lit segmented units. Here is [upir] with their take on the simple edge-lit acrylic 7-segment design, with a great video explanation of all the steps involved.
The idea behind this concept is not new. Older displays of this type used tiny tungsten filament bulbs and complex light paths to direct light to the front of the display. The modern version, however, uses edge-lit panels with a grid of small LEDs beneath each segment, which are concealed within a casing. This design relies on the principle of total internal reflection, created by the contrast in refractive indices of acrylic and air. Light entering the panel from below at an angle greater than 42 degrees from normal is entirely reflected inside the panel. Fortunately, tiny LEDs have a wide dispersion angle, so if they are positioned close enough to the edge, they can guide sufficient light into the panel. Once this setup is in place, the surface can be etched or engraved using a CNC machine or a laser cutter. A rough surface texture is vital for this process, as it disrupts some of the light paths, scattering and directing some of it sideways to the viewer. Finally, to create your display, design enough parallel-stacked sheets for each segment of the display—seven in this case, but you could add more, such as an eighth for a decimal point.
How you arrange your lighting is up to you, but [upir] uses an off-the-shelf ESP32-S3 addressable LED array. This design has a few shortcomings, but it is a great start—if a little overkill for a single digit! Using some straightforward Arduino code, one display row is set to white to guide light into a single-segment sheet. To form a complete digital, you illuminate the appropriate combination of sheets. To engrave the sheets, [upir] wanted to use a laser cutter but was put off by the cost. A CNC 3018 was considered, but the choice was bewildering, so they just went with a hand-engraving pick, using a couple of 3D printed stencils as a guide. A sheet holder and light masking arrangement were created in Fusion 360, which was extended into a box to enclose the LED array, which could then be 3D printed.
Morse code, often referred to as continuous wave (CW) in radio circles, has been gradually falling out of use for a long time now. At least in the United States, ham radio licensees don’t have to learn it anymore, and the US Coast Guard stopped using it even for emergencies in 1999. It does have few niche use cases, though, as it requires an extremely narrow bandwidth and a low amount of power to get a signal out and a human operator can usually distinguish it even if the signal is very close to the noise floor. So if you want to try and learn it, you might want to try something like this Morse trainer from [mircemk].
While learning CW can be quite tedious, as [mircemk] puts it, it’s actually fairly easy for a computer to understand and translate so not a lot of specialized equipment is needed. This build is based around the Arduino Nano which is more than up for the job. It can accept input from any audio source, allowing it to translate radio transmissions in real time, and can also be connected to a paddle or key to be used as a trainer for learning the code. It’s also able to count the words-per-minute rate of whatever it hears and display it on a small LCD at the front of the unit which also handles displaying the translations of the Morse code.
We would not be surprised if DSI screens made up the majority of screens on our planet at this moment in time. If you own a smartphone, there’s a 99.9% chance its screen is DSI. Tablets are likely to use DSI too, unless it’s eDP instead, and a smartwatch of yours definitely will. In a way, DSI displays are inescapable.
This is for a good reason. The DSI interface is a mainstay in SoCs and mobile CPUs worth their salt, it allows for higher speeds and thus higher resolutions than SPI ever could achieve, comparably few pins, an ability to send commands to the display’s controller unlike LVDS or eDP, and staying low power while doing all of it.
There’s money and power in hacking on DSI – an ability to equip your devices with screens that can’t be reused otherwise, building cooler and cooler stuff, tapping into sources of cheap phone displays. What’s more, it’s a comparably underexplored field, too. Let’s waste no time, then!
Decently Similar Internals
DSI is an interface defined by the MIPI Alliance, a group whose standards are not entirely open. Still, nothing is truly new under the sun, and DSI shares a lot of concepts with interfaces we’re used to. For a start, if you remember DisplayPort internals, there are similarities. When it comes to data lanes, DSI can have one, two or four lanes of a high-speed data stream; smaller displays can subsist with a single-lane, while very high resolution displays will want all four. This is where the similarities end. There’s no AUX to talk to the display controller, though – instead, the data lanes switch between two modes.
I don’t like HDMI. Despite it being a pretty popular interface, I find crucial parts of it to be alien to what hackers stand for. The way I see it, it manages to be proprietary while bringing a lot of the old cruft in. It doesn’t have a native alternative like DisplayPort, so portable implementations tend to suffer power-wise; the connector situation is interesting, and the HDMI Foundation has been doing some weird stuff; in particular, they are pretty hostile to open-source technology.
This article is not the place for such feelings, however, especially since I’ve expressed them enough in the DisplayPort article. We the hackers deserve to be able to handle the interfaces we stumble upon, and I firmly believe in that way more than in my right to animosity towards HDMI.
The HDMI interface is seriously prominent wherever you look, in part because it’s the interface created by the multimedia-involved companies for the multimedia-involved companies. Over the years we’ve had it, it’s been more than sufficient for basically everything we do video-wise, save for the highest resolutions.
It’s also reasonably simple to wire up, hack on, and even bitbang. Let’s go through what makes it tick.
The Core
HDMI is, at its core, three differential pairs for data, plus one pair to clock them and in the darkness bind them. It’s a digital interface, though it is a fun one. This makes it way more suitable for higher-distance video transmissions than interfaces like VGA, and as long as you stick to relatively low resolutions, HDMI won’t have as many asks in terms of PCB layout as DisplayPort might, thanks to HDMI link speeds scaling proportionally with the display resolution.
If there’s one thing we like better around here than old, obscure displays, it’s old, obscure displays with no documentation that need a healthy dose of reverse engineering before they can be put to use. These Plessey dot-matrix displays are a perfect example of that.
We’re not sure where [Michael] scored these displays, but they look fantastic. Each 8-pin DIP has two 5×7-matrix, high-visibility LED displays. They bear date codes from the late 80s under the part number, GPD340, but sadly, precious little data about them could be dredged up from the Interwebz. With 70 pixels and only six pins after accounting for power and ground, [Michael] figured there would be a serial protocol involved, but which pins?
He decided to brute-force the process of locating them, using a Pico to sequentially drive every combination while monitoring the current used with a current sensor. This paid off after only a few minutes, revealing that each character of the display has its own clock and data pins. The protocol is simple: pull the clock and data pins high then send 35 bits, which the display sorts out and lights the corresponding pixels. The video below shows a 12-character scrolling display in action.
Plessey made a lot of displays for military hardware, and these chunky little modules certainly have a martial air about them. Given that and the date code, these might have come from a Cold War-era bit of military hardware, like this Howitzer data display which sports another Plessey-made display.