Beat The Streets With This Text Spraying Robot

In the midst of striking for climate change awareness, you may need some extra hands. That’s what [Anred Zynch] thought when they built Strettexter, the text-spraying writing robot that sprays onto streets.

The machine is loaded with 8 spray cans placed into a wooden box (a stop line with a wooden ledge to prevent the cans from falling out) and is fixed on top of a skateboard. It uses a PWN/Servo shield soldered onto an Arduino Uno connected to 8 servo motors (TowerPro SG90s) to control each of the spray bottles. A table converts every character into 5×8 bit fonts to fit the size of the spraying module. The device also includes a safety switch, as well as an encoder for measuring the horizontal distance traveled.

The Strettexter is activated by pulling on the skateboard once it’s been set up and connected to power (for portability, it uses a 8000mAh power bank). In its current configuration, the words stretch out pretty long, but some additional testing will probably lead to better results depending on the constraints of your canvas. The shorter the words, the more difficult it is for the white text to be legible, since there is significant spacing between printed bits.

We don’t condone public vandalism, so use this hack at your own discretion.

Continue reading “Beat The Streets With This Text Spraying Robot”

Hang Ten With Help From The Surf Window

Unless you live in a special, unique place like Hawaii or Costa Rica it’s unlikely you’ll be able to surf every day. It’s not easy to plan surf sessions or even surf trips to most locations because the weather conditions will need to be just right. Not only the wave height (swell) but also the wind speed and direction, tide, water and air temperature, and even amount and type of marine life present can all impact your surf session. You’ll want something which can easily tell you right away if conditions are good.

This project from [luke] is called the Surf Window shows the surf conditions at the local beach with just one glance. Made out of various pieces of wood, each part represents one of the weather conditions at the beach. A rotating seagull gives the wind direction, for example, and the wave height is represented by 3D, moving waves. All of the parts are connected with various motors and linkages to an Arduino Mega +WiFi R3 which grabs all of its information from Magicseaweed, a surf forecasting site.

The Surf Window can show the current conditions at virtually any surfable beach in the world, so if you really want to know how Jaws, Mavericks, or even Reef Road is breaking right now, you could use this to give you a more nuanced look. Don’t forget to take the correct board for the conditions!

Continue reading “Hang Ten With Help From The Surf Window”

Daisy Chained Seven Segment Art Display


This seven segment art display makes use of a 81 seven segment red common cathode LED displays. The LEDs are arranged onto 100x100mm boards that each contain an Arduino Nano and 9 seven segment displays, daisy chained through three-pin headers located on the sides of the boards. The pins (power, ground, and serial) provide the signals necessary for propagating a program across each of the connected boards.

The first board – with two Arduino Nanos – sends instructions for which digits to light and drives the display, sending the instructions over to the next board on the chain.

In a multiplexed arrangement, a single Arduino Nano is able to drive up to 12 seven segment displays, but only 9 needed to be driven for the program, keeping D13’s built in LED and the serial pins free. Since no resistors are featured on the boards, current limiting is done through software. This was inspired by the Bubble LED displays on the Sinclair Scientific Calculator, and was done in order to achieve a greater brightness by controlling the current through the duty cycle.

The time between digits lighting up is 2ms, giving them some time to cool down. The animations in the demos featured falling and incrementing digits, as well as a random number generator using a linear feedback shift register.

Continue reading “Daisy Chained Seven Segment Art Display”

A Spectrum Analyzer For The Smart Response XE

Remember the Girl Tech IM-me? It was a hot-pink clearance rack toy that suddenly became one of the hottest commodities in the hacking world when it was discovered they could be used for all sorts of radio frequency shenanigans. Now they go for triple digits on eBay, if you can even find one. Well, we’re probably about to see the same thing happen to the Smart Response XE.

Thanks to the work of a hacker named [ea], this cheap educational gadget is finally starting to live up to the potential we saw in it back when a teardown revealed it was powered by an Arduino-compatible ATmega128RF chip. With a big screen, a decent QWERTY keyboard, and integrated wireless hardware, it seemed obvious that the Smart Response XE was poised to be the next must-have repurposed piece of kit.

Though as it turns out, [ea] isn’t using the device’s built-in wireless hardware. Step one in this exceptionally well documented and photographed project is to tack a CC1101 transceiver module to the SPI pins on the ATmega128RF. Then with the appropriate firmware loaded up, that nice big screen will show you what’s happening on the 300 MHz, 400 Mhz and 900 MHz bands.

But the fun doesn’t stop there. With the CC1101-modified Smart Response XE, there’s a whole new world of radio hacks you can pull off. As a proof of concept, [ea] has also included a POCSAG pager decoder. Granted the RTL-SDR has already made pulling pager messages out of the air pretty easy, but there’s something to be said for being able to do it on something so small and unassuming.

If you can’t tell, we’re exceptionally interested in seeing what the community can do with the Smart Response XE. At the time of this writing, the going rate on eBay for a good condition unit looks to be about $10 USD, plus the $3 or so for the CC1101 module. But the prices went through the roof when we first posted about it, so get them cheap while you still can.

[Thanks to bburky for the tip.]

The Arduino IDE Finally Grows Up

While the Arduino has a very vocal fan club, there are always a few people less than thrilled with the ubiquitous ecosystem. While fans may just dismiss it as sour grapes, there are a few legitimate complaints you can fairly level at the stock setup. To address at least some of those concerns, Arduino is rolling out the Arduino Pro IDE and while it doesn’t completely address every shortcoming, it is worth a look and may grow to quiet down some of the other criticisms, given time.

For the record, we think the most meaningful critiques fall into three categories: 1) the primitive development environment, 2) the convoluted build system, and 3) the lack of debugging. Of course, there are third party answers for all of these problems, but now the Pro IDE at least answers the first one. As far as we can tell, the IDE hides the build process just like the original IDE. Debugging, though, will have to wait for a later build.

Continue reading “The Arduino IDE Finally Grows Up”

Finding USB Bugs The Hard Way

Sometimes debugging just doesn’t go the way you want it to. When USB problems arise, you can usually use a protocol analyzer to find the issue causing trouble. For [Paul Stoffregen], it was only the first step in a long process to find the culprit.

Procotol Analyzer

The complaint that came up was from a customer whose 2 port USB hub wasn’t working on their Teensy 3.6. The hub had been tested on Linux, Mac, and Windows, so it made sense to test what was different about the Teensy. Furthermore, all other USB hubs worked on the Teensy. As it turns out, these weren’t the most helpful assumptions to make when finding the bug.

Any protocol analyzer can be used, for instance the Beagle480. The way it works is by passing through USB communication, making a copy of the communication coming in and out, and sending it to the PC.

 

Normally, the analyzer has a small buffer memory and must sustain fast data flow. Unfortunately, this can occasionally cause software lockup. From what could be gathered from the verbose printing, USB descriptors were found for the hub. As it turns out, the faulty hub was a Multi-TT type hub, while most others are single TT (transaction translator).

Fixing Software Lockup

Since it was necessary to get the rest of the descriptor data, fixing the software lockup was the next step. Writing in a panic function – a breakpoint of sorts – into the code allowed the USB host’s power to terminate, and stepping through the program revealed that while the 2 port hub was initially being read, some issue arose afterwards.

As it turns out, the issue relied on USB split transactions, used only between USB hosts and hubs. Communication happens by tokens, which begins with a SPLIT-START token.

 

As it turns out, the issue was that the tokens weren’t being sent in the correct order. The other hubs seemed to be handle this nevertheless. By applying a fix to the C++ code of the bad hub, which had previously not been implementing the data structure for accessing register properly, the hub was able to work again.The hub appeared to be rejecting bad token, which was causing the issue in the first place.

All in all, while I’m sure this had to be a head scratching experience, at least it gives us some insight into the low-level design of USB communication.