Enjoy An ASCII Version Of Star Wars In The Palm Of Your Hand For May The 4th

Everyone by now has probably seen the original — and best; fight us — installment of the Star Wars franchise, and likely the ASCII-art animation version of it that improves greatly on the film by eliminating all those distracting special effects, human actors, and the soundtrack. But what we haven’t had until now is a portable player for ASCIIWars, to enjoy the film in all its character-based glory while you’re on the go.

While this tribute to [Simon Jansen]’s amazing ASCII-art achievement might seem like a simple repackaging of the original, [Frank] actually had to go to some lengths to make this work. After getting [Simon]’s blessing, the build started with a WEMOS D1 Mini, a good platform for the project less for its wireless capabilities and more for its 4 MB of flash memory. A 240×360 TFT LCD display was selected to show the film; the scale of the display made most fonts hard to read, so [Frank] used Picopixel, a font designed for legibility on small screens. The animation file is stored on the SPIFFS file system on the D1’s flash memory, and a few lines of code parse it and send it to the display. The final touch is mounting the whole thing is an old slide viewer, which magnifies the display to make it a little easier to see.

As much as we applaud [Frank]’s tribute to [Simon]’s effort, there’s no reason to confine this to the Star Wars universe. If you read up on the history of ASCII art, which goes surprisingly far back, you might be inspired to render another classic film in ASCIImation and put it on a viewer like this. ASCII-Metropolis, anyone?

Continue reading “Enjoy An ASCII Version Of Star Wars In The Palm Of Your Hand For May The 4th”

ASCII Schematic Diagrams

We wondered recently about those crude ASCII schematics you see in some documentation — are there any dedicated schematic-focused tools to draw them, or are they just hand-crafted using various ASCII-art drawing tools? To our surprise, there is such a tool. It is called AACircuit and was developed by [Andreas Weber]. It has a history going back to 2001 when it was first introduced as ASCIIPaint. Be forewarned, however, the quality of the code may be questionable. According to the notes on [Andy]’s GitHub repository:

WARNING: a lot of spaghetti code ahead

This code was created in 2001-2004 when I taught Borland Delphi 3 to myself. It contains many, many global variables, unstructured and undocumented procedural code and bad variable names.

If you don’t want to wrestle with old and sketchy object-oriented Pascal code, you’re in luck. [Chaos Ordered] has made a Pythonized version which you can get from his GitHub repository. We tried it out and got it working on Ubuntu in short order (after wrestling with a pycairo dependencies). This might not be everyone’s cup of tea, but it has some uses now and then. While we wouldn’t want to document a computer motherboard with ASCII schematics, it’s great for a quick-and-dirty circuit diagrams.

Not exactly schematics, but [Duckman] has some Arduino pinout diagrams he made using ASCII-art. These could be useful when pasted into source code as comments, documenting the pinouts for your project.

Do you recommend any tools for making ASCII schematics, or this just a waste of time?

Real Hackers Videoconference In Terminal

At some point or another, many of us have tried to see how much of our digital lives could be accessed from the comfort of a terminal. We’ve tried Alpine for email, W3M for web browsing, and even watched Star Wars via telnet. But, in the increasingly socially-distant world we find ourselves in today, we find ourselves asking: what about video calling?

Okay, we weren’t asking that. But thankfully [Andy Kong] was, and saw fit to implement it when he and a friend created AsciiZOOM, a “secure, text-based videoconferencing app, accessible from the safety of your terminal.”

As you may have guessed, [Andy]’s solution replaces the conventional video stream we’re all used to with realtime animated ASCII art. The system works by capturing a video stream from a webcam, “compressing” each pixel by converting it into an ASCII character, and stuffing the entire frame into a TCP packet. Each client is connected to a server (meeting room?) which coordinates the packets, sending them back and forth appropriately.

As impressive as it is impractical, the only area in which the project lacks is in audio. [Andy] suggests using Discord to solve that, but here’s hoping we see subtitles in version 2! Will AsciiZOOM be replacing our favorite videoconferencing suite any time soon? No. Are we glad it exists? You betcha.

Continue reading “Real Hackers Videoconference In Terminal”

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”

Slaying Dragons In Notepad

We all have our favorite text editor, and are willing to defend its superiority above all other editors by any means necessary. And then there’s Notepad. But what Notepad may lack in text manipulation features, it compensates with its inconspicuous qualities as a gaming platform. Yes, you read that correctly, and [Sheepolution] delivers the proof with a text-based adventure game running within Notepad.

What started out with [Sheepolution] jokingly wondering what such a game may look like, ended up as an actual implementation as answer to it. Behind the scenes, a script written in Lua using the LÖVE framework — for which he also created an extensive tutorial — monitors the state of several text files that make up the game world. Each location is a separate text file to open in Notepad, showing the current state of the game, telling the story with text and ASCII art, and offering choices to the player. The game is played by modifying and saving those text files, which the script then processes to push the gameplay forward by simply updating the content of those files with the new state. Check out the game’s trailer after the break to get a feel of what that looks like.

Unfortunately, Notepad itself doesn’t automatically reload the file when its content changes, so to provide a smoother gaming experience, [Sheepolution] modified the open source implementation Notepad2 to work around this, and bundled it as part of the game’s executable. Initially, he even added animations to the ASCII graphics, but in the end decided against most of them to avoid constant disk writes and race conditions caused by them.

Sure, this is no Game Boy emulator in a text editor, and it may not be as groundbreaking as Notepad’s latest feature, but it’s always amusing to see alternative uses for well-established tools.

Continue reading “Slaying Dragons In Notepad”

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”

Vintage Mini Inkjet Prints On-Demand ASCII Art

Readers of a certain age may fondly remember ASCII art emerging from line printers in a long-gone era of computing; for others, it’s just wonderfully retro. Well, when [Emily Velasco] found a vintage Kodak Diconix 150 inkjet at a local thrift store for $4, she knew what she had to do: turn it into a dedicated ASCII-art machine.

Dating to the mid-1980s, the diminutive printer she scored was an early example of consumer inkjet technology; with only 12 “jets,” it sported a resolution roughly equivalent to the dot-matrix impact printers of the day. [Emily] notes that this printer would have cost around $1000 in today’s money — this is from a time before printer companies started selling the printer itself as a loss leader to make revenue on the back end selling consumables. It seems you can’t escape the razor-and-blades model, though: [Emily] had to pay $16 for a new ink cartridge to revive the $4 printer.

With the new ink in place, and some tractor-feed paper acquired, [Emily] started work on the art generator. The concept is something that might have been sold on late-night TV ads: a “cartridge” you plug into your printer to make ASCII masterpieces. Starting with a stripped-down Centronics printer cable that matches the printer’s port, she added an Arduino nano to store and serve up the art. The user interface is foolproof: a single button press causes a random selection from one of ten ASCII images to be printed. The whole thing is ensconced within a slick 3D printed case.

One of the coolest aspects of this project is the lack of power supply. When she first hooked the Arduino to the printer’s parallel port, [Emily] noticed that it powered right up with no external supply, and in true hacker fashion, just ran with it. Upon reflection, it seems that power is being supplied by the printer status lines, Busy and/or Ack, through the input protection diodes of the Atmega328 on the nano.

We really like this project, and are more than a little bummed we tossed those old printers that were kicking around the Hackaday labs for years. If you still have yours, and would like turn out some rad ASCII art, the code for this project is up on GitHub.

We’re no strangers to [Emily]’s work, but if you aren’t familiar with it, check out her inspiring talk from the 2019 Hackaday Superconference. Meanwhile, don’t miss the excellent video about the ASCII art printer cartridge, after the break.

Continue reading “Vintage Mini Inkjet Prints On-Demand ASCII Art”