Fixed Point Math Exposed

If you are used to writing software for modern machines, you probably don’t think much about computing something like one divided by three. Modern computers handle floating point quite well. However, in constrained systems, there is a trap you should be aware of. While modern compilers are happy to let you use and abuse floating point numbers, the hardware is often woefully slow. It also tends to eat up lots of resources. So what do you do? Well, as [Low Byte Productions] explains, you can opt for fixed-point math.

In theory, the idea is simple. Just put an arbitrary decimal point in your integers. So, for example, if we have two numbers, say 123 and 456, we could remember that we really mean 1.23 and 4.56. Adding, then, becomes trivial since 123+456=579, which is, of course, 5.79.

Continue reading “Fixed Point Math Exposed”

Clearly 3D Printing

[Joel] picked up a wireless mouse kit. The idea is you get some 3D printing files and hardware. You can print the shell or make modifications to it. You can even design your own shell from scratch. But [Joel] took a different approach. He created a case with transparent resin. You can see the impressive result in the video below.

While the idea of buying the mouse as a kit simplifies things, we would be more inclined to just gut a mouse and design a new case for it if we were so inclined. We were more impressed with the results with the transparent resin.

Continue reading “Clearly 3D Printing”

In Future, Printer Documents You

[Jason Dookeran] reminded us of something we don’t like to think about. Your printer probably adds barely noticeable dots to everything you print. It does it on purpose, so that if you print something naughty, the good guys can figure out what printer it came from. This is the machine identification code and it has been around since the days that the US government feared that color copiers would allow wholesale counterfiting.

The technology dates back to Xerox and Canon devices from the mid-80s, but it was only publicly acknowledged in 2004. With color printers, the MIC — machine identification code — is a series of tiny yellow dots. Typically, each dot is about 10 microns across and spaced about a millimeter from each other. The pattern prints all over the page so that even a fragment of, say, a ransom note can be identified.

Continue reading “In Future, Printer Documents You”

Vintage Hacks For Dot Matrix Printers In China

In an excerpt from his book The Chinese Computer: A Global History of the Information Age, [Thomas Mullaney] explains how 1980s computer tech — at least the stuff that was developed in the West — was stubbornly rooted in the Latin alphabet. After all, ASCII was king, and with 60,000 symbols, Chinese was decidedly difficult to shoehorn into 8 bits. Unicode was years in the future so, of course, ingenious hackers did what they do best: hack!

The subject of the post is the dot matrix printer. Early printers had nine pins, which was sufficient to make Latin characters in one pass. To print Chinese, each character required at least two passes of the print head. This was slow, of course, but it was also subject to confusing variations due to ink inconsistency and registration problems. It also made the Chinese characters twice as big as English text.

Initial attempts were made to use finer pins to pack twice as many dots in the same space. But this made the pins too thin and subject to bending and breaking. Instead, some engineers would retain the two passes but move the print head just slightly lower so the second pass left dots in the gaps between the first pass dots. Obviously, the first pass would print even-numbered dots (0, 2, 4,…), and the second pass would catch the odd-numbered dots. This wasn’t faster, of course, but it did produce better-looking characters.

While international languages still sometimes pose challenges, we’ve come a long way, as you can tell from this story. Of course, Chinese isn’t the only non-Latin language computers have to worry about.

Build Your Own Tape Recorder/Player

If you want to read something from magnetic tape, you need a tape head, right? Or you could do like [Igor Brichkov] and make your own. It looks surprisingly simple. He used a washer with a small slot cut in it and a coil of wire.

The first experiment, in the first video below, is using a commercial tape head connected to a preamp. Music playing “through” the homemade head is readable by the commercial tape reader. This is a prelude to creating an entire tape deck using the head, which you can see in the second video below.

Continue reading “Build Your Own Tape Recorder/Player”

Is That A Large Smartwatch? Or A Tiny Cray?

While we aren’t typically put off by a large wristwatch, we were taken a bit aback by [Chris Fenton]’s latest timepiece — if you can call it that. It’s actually a 1/25th-scale Cray C90 worn as a wristwatch. The whole thing started with [Chris] trying to build a Cray in Verilog. He started with a Cray-1 but then moved to a Cray X-MP, which is essentially a Cray-1 with two extra address bits. Then he expanded it to 32 bits, which makes it a Cray Y-MP/C90/J90 core. As he puts it, “If you wanted something practical, go read someone else’s blog.”

The watch emulates a Cray C916 and uses a round OLED display on the top. While the move from 22 to 32 address bits sounds outdated, keep in mind the Cray addresses 64-bit words exclusively, so we’re talking access to 32 gigabytes of memory. The hardware consists of an off-the-shelf FPGA board and a Teensy microcontroller to handle mundane tasks like driving the OLED display and booting the main CPU. Interestingly, the actual Cray 1A used Data General computers for a similar task.

Of course, any supercomputer needs a super program, so [Chris] uses the screen to display a full simulation of Jupiter and 63 of its moons. The Cray excels at programs like this because of its vector processing abilities. The whole program is 127 words long and sustains 40 MFLOPs. Of course, that means to read the current time, you need to know where Jupiter’s moons are at all times so you can match it with the display. He did warn us this would not be practical.

While the Cray wouldn’t qualify as a supercomputer today, we love learning about what was state-of-the-art not that long ago. Cray was named, of course, after [Seymour Cray] who had earlier designed the Univac 1103, several iconic CDC computers, and the Cray computers, of course.

Adding Texture To 3D Prints

[3DJake] likes putting textures on 3D prints using things like patterned build plates and fuzzy skin. However, both of those techniques have limitations. The build plate only lets you texture the bottom, and the fuzzy skin texture isn’t easy to control. So he shows how to use Blender to create specific textures to produce things like wood-like or leather-like surfaces, for example. You can see how it works in the video below.

As [Jake] points out, you might be able to use other artistic programs to do this, but the kind of things we use like FreeCAD of Fusion360 aren’t going to cut it.

Continue reading “Adding Texture To 3D Prints”