The Foghorn Requiem

Foghorns have been a part of maritime history since the 19th century, providing much needed safety during inclement weather to mariners out at sea. Over time, their relevance has slowly reduced, with advanced navigational aids taking over the task of keeping ships and sailors safe.

The sounds of the foghorns are slowly dying out. Artists [Joshua Portway] and [Lise Autogena] put together the Foghorn Requiem, a project which culminated on June 22nd 2013, with an armada of more than 50 ships gathered on the North Sea to perform an ambitious musical score, marking the disappearance of the sound of the foghorn from the UK’s coastal landscape.

ship_layoutUp close, a foghorn is loud enough to knock you off your shoes. But over a distance, its sound takes on a soulful, melancholy quality, shaped by the terrain that it passes over. The artists tried capturing this quality of the foghorn, with help from composer [Orlando Gough] who created a special score for the performance. It brought together three Brass Bands – the Felling Band, the Westoe Band and the NASUWT Riverside Band, almost 50 ships at sea and the Souter Lighthouse Foghorn to play the score.

Each of the more than 50 vessels were outfitted with a custom built, tunable foghorn, actuated by a controller box consisting of a TI Launchpad with GPS, RTC, Xbee radio and relay modules. Because of the great distances between the ships and the audience on land, the devices needed to compensate for their relative position and adjust the time that they play the foghorn to offset for travel time of the sound. Each controller had its specific score saved on on-board storage, with all controllers synchronized to a common real time clock.

Marine radios were used to communicate with all the ships, informing them when to turn on the controllers, about 10 minutes from the start of the performance. Each device then used its GPS position to calculate its distance from the pre-programmed audience location, and computed how many seconds ahead it had to play its horn for the sound to be heard in time on the shore. The controllers then waited for a pre-programmed time to start playing their individual foghorn notes. The cool thing about the idea was that no communication was required – it was all based on time. Check out the video of the making of the Foghorn Requiem after the break, and here’s a link to the audio track of the final performance.

This is a slightly different approach compared to the Super Massive Musical Instrument that we posted about earlier.

Continue reading “The Foghorn Requiem”

MicroDMA and LEDs

[Jordan] has been playing around with WS2812b RGB LED strips with TI’s Tiva and Stellaris Launchpads. He’s been using the SPI lines to drive data to the LED strip, but this method means the processor is spending a lot of time grabbing data from a memory location and shuffling it out the SPI output register. It’s a great opportunity to learn about the μDMA available on these chips, and to write a library that uses DMA to control larger numbers of LEDs than a SPI peripheral could handle with a naive bit of code.

DMA is a powerful tool – instead of wasting processor cycles on moving bits back and forth between memory and a peripheral, the DMA controller does the same thing all by its lonesome, freeing up the CPU to do real work. TI’s Tiva C series and Stellaris LaunchPads have a μDMA controller with 32 channels, each of which has four unique hardware peripherals it can interact with or used for DMA transfer.

[Jordan] wrote a simple library that can be used to control a chain of WS2812b LEDs using the SPI peripheral. It’s much faster than transferring bits to the SPI peripheral with the CPU, and updating the frames for the LED strip are easier; new frames of a LED animation can be called from the main loop, or the DMA can just start again, without wasting precious CPU cycles updating some LEDs.

GPS Engagement Ring Box

gpsEngagementRingBox

[James] got engaged recently, in part thanks to his clever GPS Engagement Ring Box, and he sent us a brief overview of how he brought this project to life. The exterior of the box is rather simple: one button and an LCD. Upon pressing the button, the LCD would indicate how far it needed to be taken to reach a pre-selected destination. After carrying it to the correct location, the box would open, revealing the ring (and a bit of electronics).

Inside is a GPS antenna and a Stellaris Launchpad, which are powered by three Energizer lithium batteries to ensure the box didn’t run out of juice during the walk. To keep the lid closed, [James] 3D printed a small latch and glued it to the top of the box, which is held in place by a micro servo. Once the box reaches its destination, the microcontroller tells the servo to swing out of the way, and the box can then open. As a failsafe, [James] added a reed switch to trigger an interrupt to open the box regardless of location. It seems this was a wise choice, because the GPS was a bit off and the box didn’t think it was in the correct place.

Swing by his blog for more information on the box’s construction and the wiring. We wish [James] the best and look forward seeing his future hacks; perhaps he’ll come up with some clever ones for the wedding like our friend Bill Porter.

A Shell For The Stellaris & Tiva

cli

When [antoker] is working on a microcontroller project, he often has to write short bits of test code to make sure everything in his circuit is working properly. This is a time-consuming task, and a while back he started on a small side project. It’s a command line interface for a microcontroller that allows him to send short commands to the uC over a serial connection to play around with the ADC, UART, and GPIO pins.

[antoker]’s tiny Unix-like environment is based on modules  that can keep track of the time, print the current commands and stack to a terminal, and query things like the current speed of the uC and the available Flash and RAM.

This tiny shell also has scripting capabilities and a jump function, making this a true programming language, however minimal it is. Right now [antoker]’s work is available for the TI Stellaris and Tiva series microcontrollers, and a video of a scripted Larson scanner is available below.

Continue reading “A Shell For The Stellaris & Tiva”

$25 coupon code for Texas Instruments store

ti-25-buck-coupon

If you’ve been coveting a piece of Texas Instruments hardware you should put in an order before September 30th. A coupon code for $25 off a purchase was posted to the Stellaris ARM Community forums and it should work until that date. Above is the overview of an order placed yesterday for two Tiva Launchpads (apparently TI has rebranded the Stellaris chips as Tiva for some odd reason). After applying the coupon code “National-1yr” the total price of [BravoV’s] order is just under one dollar (including shipping). The coupon code can be entered into a box on the right hand column of step #3 (payment) when placing an order.

UPDATE: There are now multiple comments reporting that the coupon code no longer works.

We’re pretty sure you can use this coupon code on anything in the TI store. But if you don’t have a Stellaris/Tiva Launchpad yet we highly recommend getting one. We picked ours up about a year ago. It’s a great way to try your hand at ARM programming. We have had some issues with how the breakout headers are organized — there’s some gotchas with multiple pins being connected (read the last five paragraphs of the project write up linked in this post for more). But for the price and ease of programming this will get you up and coding in no time. If you need some ideas of what to do with the board look at our posts tagged as “Stellaris”.

[Thanks Vlad]

Evalbot as a JTAG programmer

evalbot-as-jtag-programmer

[Adarsh] needed a JTAG programmer to push code to a CPLD dev board he was working with. He knew he didn’t have a dedicated programmer but figured he could come up with something. Pictured above is his hack to use a Stellaris Evalbot as a programmer.

Long time readers will remember the Evalbot coupon code debacle of 2010. The kits were being offered with a $125 discount as part of a conference. We were tipped off about the code not know its restrictions, and the rest is history. We figure there’s a number of readers who have one collecting dust (except for people like [Adam] that used it as a webserver). Here’s your chance to pull it out again and have some fun.

A bit of soldering to test points on the board is all it takes. The connections are made on the J4 footprint which is an unpopulated ICDI header. On the software side [Adarsh] used OpenOCD with stock configuration and board files (specifics in his writeup) to connect to the white CPLD board using JTAG.

Video player built from Stellaris Launchpad

stellaris-launchpad-playing-video

We think it’s pretty impressive to see a Stellaris Launchpad playing back Video and Audio at the same time with a respectable frame rate. It must be a popular time of year for these projects because we just saw another video playback hack yesterday. But for this project [Vinod] had a lot less horsepower to work with.

He’s using a 320×240 display which we ourselves have tried out with this board. It’s plenty fast enough to push image data in parallel, but if you’re looking for full motion video and audio we would have told you tough luck. [Vinod’s] math shows that it is possible with a bit of file hacking. First off, since the source file is widescreen he gets away with only writing to a 320×140 set of pixels at 25 fps. The audio is pushed at 22,400 bytes per second. This leaves him very few cycles to actually do anything between frames. So he encoded the clip as a raw file, interlacing the video and audio information so that the file can be read as a single stream. From the demo after the break it looks and sounds fantastic!

Continue reading “Video player built from Stellaris Launchpad”