A Converter You Won’t Have: PS/2 Mouse To Serial Mouse

When did you last buy a mouse? Did it have a little adapter in the box? There was a time when if you bought a USB mouse, in the box was also an adapter to allow it to be used with the older PS/2 interface. And if you were to go back a few more years into the past, you’d have found when you bought a mouse with a PS/2 connector fitted, it may well have come with an adapter for a 9-pin RS232 serial port. Those mice from a decade or more ago would have contained the software to recognise the interface into which they were plugged, and emulate it accordingly. It is unlikely then that you could take a modern USB-only device and an unholy chain of USB-to-PS/2-to-serial adapters, and have it work as a serial mouse. Want to run Windows 3.1 on a 386DX? You need a serial mouse.

Happily, [matze525] has come along with a solution for those of you with a need to drive an ancient PC with a serial mouse. He’s created a PS/2 to RS232 mouse converter, and it takes the form of a little PCB with an AT90S2313P microcontroller to do the translation and an RS232 level converter chip.

It might sound like a rather unexpected device to produce, but we can see it fills an important niche. In the early 1990s mice were not the reliable optical devices we have today, instead they had nasty mechanical connections inside, or if you were extremely lucky, optical encoder wheels. The supply of still-reliable RS232 mice must therefore be dwindling, and if you have a Windows 3.1 PC to keep alive then we can see the ability to use a more modern pointing device has a lot going for it.

If you have one of those machines from that era that came with proprietary interfaces, maybe you can make use of a USB to quadrature converter.

Reading Bingo Balls With Microcontrollers

Every once in a while a project comes along with that magical power to consume your time and attention for many months. When you finally complete it, you feel sorry that you don’t have to do anything more.

What is so special about this Bingo ball reader? It may seem like an ordinary OCR project at first glance; a camera captures the image and OCR software recognizes the number. Simple as that. And it works without problems, like every simple gadget should.

But then again, maybe it’s not that simple. Numbers are scattered all over the ball, so they have to be located first, and the best candidate for reading must be selected. Then, numbers are painted onto a sphere rather than a flat surface, sometimes making them deformed to the point where their shape has to be recovered first. Also, the angle of reading is not fixed but somewhere on a 360° scale. And then we have the glare problem to boot, as Bingo balls are so shiny that every light source reflects as a saturated bright spot.

So, is that all of it? Well, almost. The task is supposed to be performed by an embedded microcontroller, with limited speed and memory, yet the recognition process for one ball has to be fast — 500 ms at worst. But that’s just one part of the process. The project includes the pipelined mechanism which accepts the ball, transports it to be scanned by the OCR and then shot by the public broadcast camera before it gets dumped. And finally, if the reading was not reliable enough, the ball has to be subtly rotated so that the numbers would be repositioned for another reading attempt.

Despite these challenges I did manage to build this system. It’s fast and reliable, and I discovered some very interesting tricks along the way. Take a look at the quick demo video below to get a feel for the speed, and what the system “sees”. Then join me after the break to dive into the details of this interesting embedded build.

Continue reading “Reading Bingo Balls With Microcontrollers”

Review: Digilent Analog Discovery 2

I recently opened the mailbox to find a little device about the size of White Castle burger. It was an “Analog Discovery 2” from Digilent. It is hard to categorize exactly what it is. On the face of it, it is a USB scope and logic analyzer. But it is also a waveform generator, a DC power supply, a pattern generator, and a network analyzer.

I’ve looked at devices like this before. Some are better than others, but usually all the pieces don’t work well at the same time. That is, you can use the scope or you can use the signal generator. The ones based on microcontrollers often get worse as you add channels even. The Analog Discovery 2 is built around an FPGA which, if done right, should get around many of the problems associated with other small instrumentation devices.

I’d read good things about the Discovery 2, so I was anxious to put it through its paces. I will say it is an impressive piece of gear. There are a few things that I was less happy with, though, and I’ll try to give you a fair read on what I found both good and bad.

Continue reading “Review: Digilent Analog Discovery 2”

New Part Day: A Truly Secure Workstation

There is a chain of trust in every modern computing device that starts with the code you write yourself, and extends backwards through whatever frameworks you’re using, whatever OS you’re using, whatever drivers you’re using, and ultimately whatever BIOS, UEFI, Secure Boot, or firmware you’re running. With an Intel processor, this chain of trust extends to the Intel Management Engine, a system running independent of the CPU that has access to the network, USB ports, and everything else in the computer.

Needless to say, this chain of trust is untenable. Any attempt to audit every line of code running in a computer will only be met with frustration. There is no modern Intel-based computer that is completely open source, and no computer that can be verified as secure. AMD is just as bad, and recent attempts to create an open computing platform have met with frustration. [Bunnie]’s Novena laptop gets close, but like any engineering task, designing the Novena was an exercise in compromise. You can get around modern BIOSes, coreboot still uses binary blobs, and Libreboot will not be discussed on Hackaday for the time being. There is no modern, completely open, completely secure computing platform. They’re all untrustworthy.

The Talos Secure Workstation, from Raptor Engineering, an an upcoming  Crowd Supply campaign is the answer to the untrustworthiness of modern computing. The Talos is an effort to create the world’s first libre workstation. It’s an ATX-compatible motherboard that is fully auditable, from schematics to firmware, without any binary blobs.

Continue reading “New Part Day: A Truly Secure Workstation”

What Could Go Wrong: Asynchronous Serial Edition

It’s the easiest thing in the world — simple, straightforward serial data. It’s the fallback communication protocol for nearly every embedded system out there, and so it’s one that you really want to work when the chips are down. And yet! When you need it most, you may discover that even asynchronous serial can cost you a few hours of debugging time and add a few gray hairs to your scalp.

In this article, I’m going to cover most (all?) of the things that can go wrong with asynchronous serial protocols, and how to diagnose and debug this most useful of data transfer methods. The goal is to make you aware enough of what can go wrong that when it does, you’ll troubleshoot it systematically in a few minutes instead of wasting a few hours.

Continue reading “What Could Go Wrong: Asynchronous Serial Edition”

Cable Butchering For Logic-Level Serial

Early PCs and other computers had serial ports, sometimes as their main interfaces for peripherals. Serial ports still survive, but these days they are more likely to have a USB connection into the main computer. However, when you are working with a microcontroller, you probably don’t want a proper RS232 port with its plus and minus 12 volt signals.

You can get converters that specifically output logic-level signals but you probably can’t pick one up at the local office supply store. They might, though, have a normal USB to serial cable. [Aaron] had the same problem so he hacked into a cable to pull out the logic level signals.

On the one hand, hacks like this are a good inspiration for when you have a similar problem. On the other hand, you probably won’t wind up with the same cable as [Aaron]. He got lucky since the board inside his cable was clearly marked. Just to be sure, he shorted the transmit and receive lines to see that he did get an echo back from a terminal program.

Unsurprisingly, you can also repurpose an ESP8266 to perform this same task. Or, you can use a cable as an I/O device.

Dragging Teletypes Into The 21st Century

If you are of a certain age you may have worked in an office in the days before the computer revolution, and the chances are that in the corner of your office there would have been a teletype machine. Like a very chunky typewriter with a phone attached, this was an electromechanical serial terminal and modem, and machines like it would have formed the backbone of international commerce in the days before fax, and then email.

Teletypes may have disappeared from the world of trade, but there are a surprising number still in private hands. Enthusiasts collect and restore them, and radio amateurs still use digital modes based on their output. The problem facing today’s teletype owner though is that they are becoming increasingly difficult to interface to a modern computer. The serial port, itself an interface with its early history in the electromechanical world, is now an increasingly rare sight.

[Eric] has a project which addresses the teletype owner’s interfacing woes, he’s created a board with all the necessary level shifters and an Atmega32u2 microcontroller to translate the teletype’s output to USB.

In his design he’s had to solve a few problems related to such an aged interface. Teletypes have a serial output, but it’s not the TTL or RS232 we may be used to. Instead it’s a high-voltage current loop designed to operate electromagnets, so his board has to incorporate an optocoupler to safely isolate the delicate computer circuitry. And once he had the teletype’s output at a safe level he then had to translate its content, teletypes speak 5-bit ITA2 code rather than our slightly newer 7-bit ASCII.

The result though is a successful interface between teletype and computer. The former sees another teletype, while the latter sees a serial terminal. If you have a teletype and wish to try it for yourself, he’s released the source code in a GitHub repository.

Teletypes have featured a few times here at Hackaday over the years. We’ve had one as an SMS client, another that monitors a Twitter feed, and while it’s not strictly a teletype, a close examination of an Olivetti mechanical serial terminal.