Unique Flat-Screen Display Put to Use in CRT Game Boy

The cathode-ray tube ruled the display world from the earliest days of TV until only comparatively recently, when flat-screen technology began to take over. CRTs just kept getting bigger over that time until they reached a limit beyond which the tubes got just too bulky to be practical.

But there was action at the low end of the CRT market, too. Tiny CRTs popped up in all sorts of products, from camcorders to the famous Sony Watchman. One nifty CRT from this group, a flat(tish) tube from a video intercom system, ended up in [bitluni]’s lab, where he’s in the process of turning it into a retro Game Boy clone with a CRT display. The display, which once showed the video from a door-mounted camera, was a gift from a viewer. Date codes on the display show it’s a surprisingly recent device; were monochrome TFT displays that hard to come by in 2007? Regardless, it’s a neat design, with the electron gun shooting upward toward a curved phosphor screen. With a little Google-assisted reverse engineering, [Bitluni] was able to track done the video connections needed to use his retro game console, which uses an ESP32 that outputs composite video. He harvested the intercom speaker for game audio, added a temporary Nintendo gamepad, and soon he was playing Tetris in glorious monochrome on the flat screen.

The video below is only the first in a series where the prototype will be stuffed into one nice tidy package. It certainly still needs some tweaking, but it’s off to a great start. We can’t wait to see the finished product.

Continue reading “Unique Flat-Screen Display Put to Use in CRT Game Boy”

An Apollo Guidance Computer Laid Bare

An Apollo Guidance Computer probably isn’t a machine that’s likely to come the way of most Hackaday readers. The device that played such a vital role in taking astronauts to the Moon and bringing them home again is hardly a common find, even if it is one of the most iconic machines of its type and era.

[Carl Claunch] was approached to assist in the restoration of an AGC, and while he can’t reveal any information about its owner he is at liberty to document his progress. The result is a fascinating in-depth technical examination of the device over multiple blog posts, and is well worth a read for anyone with an interest in the Apollo program. It’s an ongoing progression of blog posts that are probably too numerous to list individually, but include the construction of a substitute for the DSKY control panel as well as looking at the device’s memory and construction. [Carl] then embarks on a series of posts looking at the restoration itself. This is where we see the computer in greatest detail, and learn the most about it.

If you think you might have seen [Carl]’s name here before, you’d be right. One of his past exploits was getting the first version of FORTH running on an IBM mainframe.

How To Evolve A Radio

Evolutionary algorithms are an interesting topic of study. Rather then relying on human ingenuity and investigation to create new designs, instead, an algorithm is given a target to achieve, and creates “offspring”, iterating in an evolutionary manner to create offspring that get closer to the target with each generation.

This method can be applied to the design of electronic circuits, and is sometimes referred to as “hardware evolution”. A team from Duke University attempted exactly this, aiming to produce an oscillator using evolutionary techniques.

The team used a platform called the “evolvable motherboard”, or EM. The EM is a platform controlled by an attached computer, consisting of reconfigurable solid state switches that allow attached circuit components to be interconnected in every combination possible. These components may be virtually any electronic component; in this experiment, 10 bipolar transistors were used.

The evolutionary algorithm was given a fitness function that rewarded output amplitude and frequency, aiming to create an oscillator operating at 25KHz. However, the team noticed some interesting emergent behavior. The algorithm tended to reward amplification behavior from the circuit, leading to many configurations that oscillated poorly, but amplified ambient noise. In the end, the algorithm developed circuit configurations that acted as a radio, picking up and amplifying signals from the surrounding environment, rather than oscillating on their own. The evolutionary algorithm took advantage of the interaction between not only the circuit elements, but effects such as the parasitic capacitance introduced by the switching matrix and appeared to use the PCB circuit traces as an antenna.

The team conclude that evolutionary algorithms used in circuit design ignore human preconceptions about how circuits work, and will take advantage of sometimes unpredictable and unexpected effects to achieve their targets. This is a blessing and a curse, bringing unconventional designs to the fore, but also creating circuits that may not work well in a generalized environment. If your “oscillator” relies on a nearby noise source to operate, it may operate unpredictably in the field, for example.

We’ve seen evolutionary algorithms used before, such as being applied to robotic design.

The Naughty AIs That Gamed The System

Artificial intelligence (AI) is undergoing somewhat of a renaissance in the last few years. There’s been plenty of research into neural networks and other technologies, often based around teaching an AI system to achieve certain goals or targets. However, this method of training is fraught with danger, because just like in the movies – the computer doesn’t always play fair.

It’s often very much a case of the AI doing exactly what it’s told, rather than exactly what you intended. Like a devious child who will gladly go to bed in the literal sense, but will not actually sleep, this can cause unexpected, and often quite hilarious results. [Victoria] has created a master list of scholarly references regarding exactly this.

The list spans a wide range of cases. There’s the amusing evolutionary algorithm designed to create creatures capable of high-speed movement, which merely spawned very tall creatures that generated these speeds by falling over. More worryingly, there’s the AI trained to identify toxic and edible mushrooms, which simply picked up on the fact that it was presented with the two types in alternating order. This ended up being an unreliable model in the real world. Similarly, the model designed to assess malignancy of skin cancers determined that lesions photographed with rulers for scale were more likely to be cancerous.

[Victoria] refers to this as “specification gaming”. One can draw parallels to classic sci-fi stories around the “Laws of Robotics”, where robots take such laws to their literal extremes, often causing great harm in the process. It’s an interesting discussion of the difficulty in training artificially intelligent systems to achieve their set goals without undesirable side effects.

We’ve seen plenty of work in this area before – like this use of evolutionary algorithms in circuit design.

Digital Picture Frame Turned Vectrex Overlay

For Hackaday readers which might not be so well versed in the world of home video gaming before the 1983 crash, the Vectrex was an interesting attempt at bringing vector graphics into player’s living rooms. Priced around $500 in today’s dollars, the machine was unique in that it included its own black and white CRT display rather than requiring the owner to plug it into their television. To spice things up a little bit, games would include a thin plastic overlay you could put over the screen to give the game faux colors. What can we say? It was the 1980’s.

Like many vintage gaming systems, the Vectrex still commands a devoted following of fans, some of which continue to find ways to hack and mod the system nearly 40 years after its release. One such fan is [Arcade Jason], who’s recently been fiddling with the idea of creating a modern take on the overlay concept using a hacked LCD display. While it’s still a bit rough around the edges, it does hold promise. He hopes somebody might even run with the idea and turn it into a marketable product for the Vectrex community.

[Jason] started by getting an old digital picture frame and tearing it down until he liberated the LCD panel. By carefully disassembling it, he was able to remove the backlight and was left with a transparent display. He then installed the panel over the display of the Vectrex, leaving the picture frame’s PCB and controls dangling off to the side. Extending the display’s ribbon cable should be easy enough for a more robust installation.

He then loaded the frame with random psychedelic pictures he found online, as well as some custom overlays which he quickly whipped up using colored blocks in an art program. In the video after the break, [Jason] shuffles through images on the frame using the buttons on the PCB while loading different demos to show the kind of visual effects that are possible.

While a neat concept, there are a couple of issues that need to be resolved before this could really be put into practice. For one, the LCD panel isn’t the proper size or aspect ratio to match the Vectrex display, so it doesn’t cover the whole CRT. It’s also rather difficult to select images to show on the LCD panel; an improved version might use something like the Raspberry Pi to load images on the panel while exposing a control interface on a secondary screen of some type.

This isn’t the first time [Jason] has experimented with the Vectrex, or even the first time he’s tried to add color to the classic system. We’re interested to see what he comes up with next.

Continue reading “Digital Picture Frame Turned Vectrex Overlay”

Put an ItsyBitsy Zork in your Pocket

Before computer games had all these fancy graphics, text based games were a very popular genre. Rather than move a character on the screen, you’d type out commands for your player in sentence form which the game would interpret; decades before the “cloud” language processing technology that the likes of Amazon and Google currently use to power their virtual assistants. In some ways the genre was ahead of its time, but it didn’t survive the graphical revolution for home computers. Of course, these games still have some diehard fans out there.

[Dan The Geek] is one such fan. He loves text based adventure games like Zork so much that he wanted to create his own implementation of the core technology that made these games possible all those years ago. But he didn’t want to just do it on this desktop computer, there’s already projects that let you run these classic games on modern hardware. He wanted to see if he could run these classic games on a modern microcontroller, and create a authentic retro experience on a handy portable device.

[Dan] starts by explaining the technology used to make titles like these possible in the days when the wide array of home computer types required a nuanced approach. By separating the story files from the actual interpreter, developers could more easily port the games to various computers. In theory these interpreters, known as “Z-machines”, could be written for any computer that could compile C code, had enough RAM to hold the story, and had a terminal and keyboard. Not exactly the kind of system requirements we’re used to seeing for modern PC games, but it was the 1980’s.

In theory a modern microcontroller will meet these requirements, so [Dan] wanted to create his own Z-machine for one. But rather than “cheat” by using an SD card like previous Arduino Z-machines have, he wanted to see if there was a development board out there that could do it all internally. The answer came in the form of the  Adafruit ItsyBitsy M4 Express, with its 192 kB of RAM and 2 MB of SPI flash.

The Z-machine created by [Dan], which he’s calling A2Z, allows users to run Zork and other compatible interactive text games on the ItsyBitsy without any additional hardware. Just plug the board into your computer and you’ll be able to play the games over the the serial connection. He’s even implemented some retro color schemes to make the experience more authentic, like the blue of the Amiga or Compaq green.

We’ve covered previous projects that brought Zork and friends to the Arduino, your web browser via a virtual Altair 8800, and even some more exotic targets like custom FPGAs. You can play cave adventure, the game that inspired Zork, on the Supercon Badge.

Quick and Dirty MIDI Interface with USBASP

[Robson Couto] recently found himself in need of MIDI interface for a project he was working on, but didn’t want to buy one just to use it once; we’ve all been there. Being the creative fellow that he is, he decided to come up with something that not only used the parts he had on-hand but could be completed in one afternoon. Truly a hacker after our own hearts.

Searching around online, he found documentation for using an ATtiny microcontroller as a MIDI interface using V-USB. He figured it shouldn’t be too difficult to adapt that project to run on one of the many USBASP programmers he had laying around, and got to work updating the code.

Originally written for the ATtiny2313, [Robson] first had to change around the pin configuration so it would work on the ATmega8 in the USBASP, and also updated the USB-V implementation to the latest version. With the code updated, he programmed one of the USBASP adapters with a second one by connecting them together and putting a jumper on the J2 header.

He had the software sorted, but there was still a bit of hardware work to do. To provide isolation for the MIDI device, he put together a small circuit utilizing a 6N137 optoisolator and a couple of passive components on a piece of perf board. It’s not pretty, but it does fit right into the programming connector on the USBASP. He could have fired up his PCB CNC but thought it was a bit overkill for such a simple board.

[Robson] notes that he hasn’t implemented MIDI output with his adapter, but that the code and the chip are perfectly capable of it if you need it for your project. Finding the schematic to hook up to the programmer’s TX pin is left as an exercise for the reader.

If you don’t have a USBASP in the parts bin, we’ve seen a very similar trick done with an Arduino clone in the past.