ROS Gets Quick Sensor Debugging In The Terminal

Sensors are critical in robotics. A robot relies on its sensor package to perform its programmed duties. If sensors are damaged or non-functional, the robot can perform unpredictably, or even fail entirely. [Dheera Venkatraman] has been working to make debugging sensor issues easier with the rosshow package for Robot Operating System.

Normally, if you want to be certain a camera feed is working on a robot, normally you’d have to connect a monitor and other peripherals, check manually, then put everything away again when you’re finished. [Dheera] considered this was altogether too much of a pain for basic sensor checks.

Instead, rosshow uses the power of SSH to speed things along. Log in to the robot, fire off a few command line instructions, and rosshow will start displaying sensor data in the terminal on your remote machine. It’s achieved through the use of Unicode Braille art in the terminal.  Sure, you won’t get a full-resolution feed from your high-definition camera, and the display from the laser scanner isn’t exactly perfect. But it’s enough to provide an instant verification that sensors are connected and working, and will speed up those routine is-it-connected checks by an order of magnitude.

Robot Operating System is a particularly useful platform if you’re thinking about the software platform for your next build. If you do put something together, be sure to let us know.

A PIC And A Few Passives Support Breakout In Glorious NTSC Color

“Never Twice the Same Color” may be an apt pejorative, but supporting analog color TV in the 1950s without abandoning a huge installed base of black-and-white receivers was not an option, and at the end of the day the National Television Standards System Committee did an admirable job working within the constraints they were given.

As a result of the compromises needed, NTSC analog signals are not the easiest to work with, especially when you’re trying to generate them with a microcontroller. This PIC-based breakout-style game manages to accomplish it handily, though, and with a minimal complement of external components. [Jacques] undertook this build as an homage to both the classic Breakout arcade game and the color standard that would drive the home version of the game. In addition to the PIC12F1572 and a crystal oscillator, there are only a few components needed to generate the chroma and luminance signals as well as horizontal and vertical sync. The game itself is fairly true to the original, although a bit twitchy and unforgiving judging by the gameplay video below. [Jacques] has put all the code and schematics up on GitHub for those who wish to revive the analog glory days.

Think NTSC is weird compared to PAL? You’re right, and it’s even weirder than you might know. [Matt] at Stand Up Maths talked about it a while back, and it turns out that a framerate of 29.97 fps actually makes sense when you think it through.

Continue reading “A PIC And A Few Passives Support Breakout In Glorious NTSC Color”

A Scratch Built VFD Clock With Inner Beauty

Vacuum fluorescent displays (VFDs) are one of those beautiful pieces of bygone technology that you just don’t see much of anymore. At one time they were a mainstay of consumer electronics, but today they’ve largely been replaced with cheaper and more energy efficient displays such as LEDs and LCDs. While they might be objectively better displays, we can’t help but feel a pang of regret seeing a modern kitchen bereft of that unmistakable pale green glow.

If his impressive VFD clock is any indication [Simón Berraud] feels the same way. Not only does the clock’s display instantly trigger waves of nostalgia, but the custom PCB has that mistakable look of consumer electronics circa 1985. If we didn’t know better, we’d think this thing fell through a time warp.

Well, if it wasn’t for the SMD ATmega328 on the flip side of the board, anyway. In addition to the MCU, the clock features four ULN2003AN Darlington transistor arrays to drive the VFD, and a M48T08 Real Time Clock to keep the whole thing ticking.

The careful observer might notice a distinct lack of buttons or switches on the clock, and wonder how this retro wonder is set. In a particularly radical hack, [Simón] sets the time with a hard coded variable in the source code; you just need to set it far enough into the future so that you have enough time to power it up at the appropriate moment.

[Simón] has put the Arduino-flavored source code for the ATmega328 as well as the schematics and board files in his GitHub repository for anyone else who might want to take a walk down memory lane. While you’re at it, you may want to look at these tips for getting unknown VFDs up and running, as well as this interesting explanation of how they can be used as amplifiers if you’re really looking for style points.

Writing A Very Tiny Chess Program

When programming for modern platforms, the restraints are different to those of 30 years ago. Back in the dawn of the microcomputer age, storage and RAM were measured in kilobytes. It simply wasn’t possible to store large amounts of graphical data, and even code had to be pared back at times. [reeabgo] found out some of these limitations first hand, when coding a tiny chess program for the Sinclair ZX81.

[reeabgo]’s project goes by the name ChesSkelet, and is truly tiny. Measuring in at just 377 bytes in its smallest version, the entire program takes up less space than this very article describing it. To achieve these feat requires certain sacrifices, of course. The tiniest edition contains no graphics whatsoever, representing the game state with simple characters and featuring no adornments whatsoever. The full-fat version comes in at 477 bytes and adds quite a lot of functionality. There’s a proper checkerboard, along with move legality checks and pawn promotion.

Unfortunately, advanced chess play isn’t quite possible – castling is not implemented, and the AI doesn’t yet handle check situations properly. Despite this, it’s a solid approximation of the real game, all packed into an impressively small space.

We see plenty of chess hacks around these parts – including the robotic variety.

Reverse Engineering A Modern IP Camera

Security cameras used to be analog devices feeding back into a room full of tiny screens and commercial grade VCRs. As technology moved forward, IP cameras began to proliferate. Early models simply presented a video stream and configuration page to the local network. Modern models aimed at the home market differ however. More often than not, configuration is through a strange smartphone app, and video is accessed through third-party servers. It’s all a bit oblique, and so [Alex] decided to take a look under the hood. 

The exploration begins externally, with [Alex] capturing data sent to and from the camera with Wireshark. Straight away, red flags are raised. For as yet unknown reasons, the camera attempts to resolve Google, Facebook and Alibaba servers over DNS. Disassembly then follows, revealing that a serial terminal with root access is available. [Alex] uses this to probe around, uncovering the firmware update script and a way to decrypt said updates.

The work thus is a great example of how to approach hacking a given device from first principles. The overall goal is to find a way to gain complete control over the camera, reprogramming it to serve up video as [Alex] wishes, rather than to a distant third party server. It’s not the first time we’ve seen an IP camera hacked, and we doubt it will be the last. If you’ve got one cracked, be sure to let us know.

An Air Quality Monitor That Leverages The Cloud

Air quality has become an increasing concern in many urban areas, due to congestion and our ever-increasing energy use. While there are many organisations that task themselves with monitoring such data, it’s also something anyone should be able to take on  at home. [Chrisys] is doing just that, with some impressive logging to boot.

The build starts with a Raspberry Pi Zero W, which offers the requisite computing power and Internet connectivity in a compact low-power package. For determining air quality, the Bosch BME680 sensor is used. This offers temperature, pressure, and humidity readings, along with the ability to sense the presence of volatile organic compounds, or VOCs. These can be harmful to human health, so it’s useful to have an idea of the levels in your home.

The hardware is incredibly refined. It’s simple enough for the newbie, but just begs for the more experienced hacker to expand on.

On the software side, data is accessible through the Balena cloud service. Sensor readings are stored in an InfluxDB instance, with Grafana providing the visually attractive graphs and monitoring. It’s all very slick and Web 2.0, and can be accessed from anywhere through a web browser.

The project is a great example of combining a basic DIY Raspberry Pi setup with the right software tools to create a polished and effective end product. Of course, if you’re looking for something more portable, this project might be more your style. 

Arduino Converts Serial To Parallel: The Paralleloslam

After a youth spent playing with Amigas and getting into all sorts of trouble on the school computer network, I’ve always had a soft spot in my heart for hardware from the 80s and 90s. This extends beyond computers themselves, and goes so far as to include modems, photocopiers, and even the much-maligned dot matrix printer.

My partner in hacking [Cosmos2000] recently found himself with a wonderful Commodore MPS 1230 printer. Its parallel interface was very appropriate in its day, however parallel ports are as scarce as SID chips. Thankfully, these two interfaces are easy to work with and simple in function. Work on a device to marry these two disparate worlds began.

Enter: The Paralleloslam

While I was gallivanting around the Eastern coast of Australia, [Cosmos2000] was hard at work. After some research, it was determined that it would be relatively simple to have an Arduino convert incoming serial data into a parallel output to the printer. After some testing was performed on an Arduino Uno, a bespoke device was built – in a gloriously plastic project box, no less.

An ATMEGA328 acts as the brains of the operation, with a MAX232 attached for level conversion from TTL to RS232 voltage levels. Serial data are received on the hardware TX/RX lines. Eight digital outputs act as the parallel interface. When a byte is received over serial, the individual bits are set on the individual digital lines connected to the printer’s parallel port. At this point, the strobe line is pulled low, indicating to the attached device that it may read the port. After two microseconds, it returns high, ready for the next byte to be set on the output lines. This is how parallel interfaces operate without a clock signal, using the strobe to indicate when data may be read.

At this point, [Cosmos2000] reached out – asking if I had a name for the new build.

“Hm. Paralleloslam?”

“Done. Cheers!”

Continue reading “Arduino Converts Serial To Parallel: The Paralleloslam”