Mmm… Obfuscated Shell Donuts

In case you grow tired of clear-written, understandable code, obfuscation contests provide a nice change of scenery, and trying to make sense of their entries can be a fun-time activity and an interesting alternative to the usual brainteasers. If we ever happen to see a Simpsons episode on the subject, [Andy Sloane] has the obvious candidate for a [Hackerman Homer] entry: a rotating ASCII art donut, formatted as donut-shaped C code.

The code itself actually dates back to 2006, but has recently resurfaced on Reddit after [Lex Fridman] posted a video about it on YouTube, so we figured we take that chance to give some further attention to this nifty piece of art. [Andy]’s blog article goes in all the details of the rotation math, and how he simply uses ASCII characters with different pixel amounts to emulate the illumination. For those who prefer C over mathematical notation, we added a reformatted version after the break.

Sure, the code’s donut shape is mainly owed to the added filler comments, but let’s face it, the donut shape is just a neat little addition, and the code wouldn’t be any less impressive squeezed all in one line — or multiple lines of appropriate lengths. However, for the actual 2006 IOCCC, [Andy] took it a serious step further with his entry, and you should definitely give that one a try. For some more obfuscated shell animations, check out the fluid dynamics simulator from a few years back, and for a more recent entry, have a look at the printf Tic Tac Toe we covered last month.

Continue reading “Mmm… Obfuscated Shell Donuts”

Testing Hardware With ASCII Waveforms

Testing software is — sometimes — easier than testing hardware. After all, you can always create test files and even fake user input before monitoring outputs using common tools. Hardware though, is a bit different. Sometimes it is hard to visualize exactly what’s happening. [Andrew Ray’s] answer? Produce simulated waveforms using ASCII text.

The process uses some custom tools written in OCaml, but the code is available for you on GitHub. The tool, called Hardcaml, allows you to write test benches for hardware — not a new idea for FPGA developers. The output, however, is an ASCII text waveform and common software development tools can check that waveform against the expected output.

Continue reading “Testing Hardware With ASCII Waveforms”

Logging Into Linux With A 1930s Teletype

Buried deep within all UNIX-based operating systems are vestiges of the earliest days of computing, when “hardware” more often than not meant actual mechanical devices with cams and levers and pulleys and grease. But just because UNIX, and by extension Linux, once supported mechanical terminals doesn’t mean that getting a teletype from the 1930s to work with it is easy.

Such was the lesson learned by [CuriousMarc] with his recently restored Model 15 Teletype; we covered a similar Model 19 restoration that he tackled. The essential problem is that the five-bit Baudot code that they speak predates the development of ASCII by several decades, making a converter necessary. A task like that is a perfect job for an Arduino — [Marc] put a Mega to work on that — but the interface of the Teletype proved a bit more challenging. Designed to connect two or more units together over phone lines, the high-voltage 60-mA current loop interface required some custom hardware. The testing process was fascinating, depending as it did on an old Hewlett-Packard serial signal generator to throw out a stream of five-bit serial pulses.

The big moment came when he used the Teletype to log into Linux on a (more or less) modern machine. After sorting out the mysteries of the stty command, he was able to log in, a painfully slow process at 45.5 bps but still a most satisfying hack. The ASCII art — or is it Baudot art? — is a nice bonus.

We love restorations like these, and can practically smell the grease and the faint tang of ozone around this device. We’re not thrilled by the current world situation, but we’re glad [CuriousMarc] was able to use the time to bring off a great hack that honors another piece of our computing history.

Continue reading “Logging Into Linux With A 1930s Teletype”

Arduino Revives A Classic 1980s Minitel Terminal

Before there was the Internet, there were a lot of would-be Internets. Compuserve comes to mind, as do Prodigy, GEnie, Delphi, and the innumerable BBS systems that were once gateways to worlds beyond our CRT monitors and 300 baud Hayes Supermodems.

Service providers varied by region, of course. The French postal and telephone service rolled out their service, Médium interactif par numérisation d’information téléphonique, in 1978. Mercifully and memorably shortened to Minitel, the service was originally intended primarily as an online telephone directory, and later expanded to include other services. [Kevin Driscoll] and [Julien Mailland] recently resurrected a Minitel terminal, a Videotex terminal that was the gateway to the service. The terminal they used, a model 1B, is a stylish machine with a monochrome CRT display and compact “AZERTY” keyboard. [Kevin] and [Julien] built a Videotex server for it using an Uno and a logic-level converter to keep the two talking. Using the hardware, they’ve developed a Twitter client, a webcam display, and dumb Linux terminal.

[Julien] and  [Kevin] previously authored a great history of Minitel that’s worth a read. And we’ve seen a few Minitel hacks before, including converting one to USB for use as a Raspberry Pi terminal.

AsciiCam: Make ASCII Art With Your Phone

We admit it, we have a nostalgic soft spot for ASCII Art. Pictures made form characters, printed on an old-fashioned line printer. They’ve been a hacker standby since the 1960’s. Times have moved on though. These days we’re all carrying supercomputers in our pockets.  Why not use them to create more great ASCII art? That’s exactly what [Brian Nenninger] did with AsciiCam. AsciiCam lets you use your Android phone’s camera to create ASCII images.

Using the software is simple. Just launch it and you’re greeted with an ASCII preview of the camera image. Users can select from a 16 color palette and full 24 bit color. Monochrome modes are also available. You can also choose from black text on a white background or white text on black.

The great thing about AsciiCam is the fact that it is open source. You can download the full source code from Github. If you just want to run the software, it’s available through the Google Play Store. This is a labor of love. The first Github commits were six years ago, and [Bran] is still working — the most recent commits were made only a few days back. AsciiCam is also a good example for neophyte Android programmers.

Want to know more about ASCII art? Check out Al’s history of ASCII art, or this talk about both ASCII and ANSI creations.

A Vintage Morse Key Turned Into USB Keyboard

Time was when only the cool kids had new-fangled 102-key keyboards with a number pad, arrow keys, and function keys. They were such an improvement over the lame old 86-key layout that nobody would dream of going back. But going all the way back to a one-key keyboard is pretty cool, in the case of this Morse keyer to USB keyboard adapter.

To revive her dad’s old straight key, a sturdy mid-20th century beast from either a military or commercial setup, [Nomblr] started with a proper teardown and cleaning of the brass and Bakelite pounder. A Teensy was chosen for the job of converting Morse to keyboard strokes; careful consideration to the timing of dits and dahs and allowances for contact debouncing were critical to getting the job done. A new wooden base not only provides stability for the key but hides the Teensy and makes for a new presentation. The video below shows it in action; our only complaint is the lack of sidetone to hear the Morse as you pound out that next great novel one click at a time.

Lovingly restored telegraph gear is a bit of a thing around here; we featured this vintage telegraph sounder revived with a Morse code sender not too long ago.

[via r/DIY]

Thanks to [Liz] for the tip

The Other Kind Of Phone Hacking

While it’s true that your parts bin might have a few parts harvested from outdated devices of recent vintage, there’s not much to glean anymore aside from wall warts. But the 3×48-character LCD from [Kerry Wong]’s old Uniden cordless landline phone was tempting enough for him to attempt a teardown and reverse engineering, and the results were instructive.

No data sheet? No problem. [Kerry] couldn’t find anything out about the nicely backlit display, so onto the logic analyzer it went. With only eight leads from the main board to the display module, it wasn’t likely to be a parallel protocol, and the video below shows that to be the case. A little fiddling with the parameters showed the protocol was Serial Peripheral Interface, but as with other standards that aren’t exactly standardized, [Kerry] was left with enough ambiguity to make the analysis interesting. Despite a mysterious header of 39 characters, he was able in the end to drive the LCD with an Arduino, and given that these phones were usually sold as a bundle with a base and several handsets, he ought to have a nice collection of displays for the parts bin.

With how prevalent this protocol has gotten, [Kerry]’s post makes us want to get up to speed on the basics of SPI. And to buy a logic analyzer too.

Continue reading “The Other Kind Of Phone Hacking”