Icom CI-V USB/TTL Rig Cable Design Using the FTDI Chipset

July 25th, 2011 § 19 comments § permalink

I spent some time this weekend with the fine folks over at NYC Resistor hacking on some ham radio related stuff. We took a crack at a USB CI-V interface for an Icom radio. Googling around, we found lots of level converters for RS-232 serial ports, but very little with USB in mind. In addition, most of the circuit designs for homebrew cable assemblies were quite complicated, and generally speaking, published in about 1992.

It turns out that the Icom CI-V interface is TTL-based, with the TX/RX cables bridged together, with a ground reference on the sleeve of the 3.5mm connector. Given the popularity of Arduino and similar chipsets that require a TTL serial interface to program and operate, we figured we could do better with a prefabricated USB-TTL cable like the TTL-232R-5V from FTDI. It turns out the resulting build is stupid-easy.

Here’s a diagram of the resulting assembly, for those who are searching for how to do this:

We turned out to require a stereo Ring-Tip-Sleeve connector rather than a mono two-conductor one, despite much documentation claiming the contrary. Your mileage may vary.

If necessary, one could also use the RTS/CTS contact-closure as a push-to-talk switch setup, which most of the popular ham radio software packages support. The total cost of this assembly is roughly $20, which is how much the cable costs. To cut costs even further (down to about $5), you could hack this together using the bare FT232RQ chip which you can get from Mouser for $4.95 as of this writing. In any case, this is a pretty massive improvement over the $60 that Icom likes to charge for the equivalent.

The drivers are available for all major platforms and are bundled in the Linux kernel already so the additional software needs are minimal for this over a ‘traditional’ RS-232 cable. We tested this on Mac, Linux, and Windows with perfect results.

Mounting a USB Drive in a Consistent Location on Ubuntu 9.10 (Karmic)

November 18th, 2009 § 2 comments § permalink

This is an obtuse and unabashedly geeky post, but I spent several hours trying to solve this irritating problem, so I’m posting my results here in an attempt to shortcut this issue for others.

The Problem: I have an external USB drive on which I store Virtual Machines which I run with the very excellent VirtualBox. I like to keep it mounted at /media/VirtualMachines. My VirtualBox configuration (stored in ~/.VirtualBox/) points to this location, so it’s vital that it remains consistent between reboots, remounts, updates, and the like. Prior to Ubuntu 9.10, one used to be able  to specify a consistent mount point using the GNOME userspace tools by simply right-clicking on the volume on the desktop, navigating to “Volume”, and choosing a location by typing it in. This was possible, because prior to version 9.10, Ubuntu relied upon hal to provide an abstraction layer between hardware devices and the kernel. There’s a fair amount of code in GNOME which allows for quick configuration of functionality provided by hal. hal is now deprecated in favor of DeviceKit, so some of those tools are gone, and this is one.

The Solution: I spent a fair amount of time googling about trying to come up with an equivalent. Many of the tutorials that I found were either outdated, or involved diving into the internals of udev/DeviceKit. This seemed like it was a problem best-suited to something simpler. It turns out that you can use plain old /etc/fstab to mount a device in a specific place, using the partition’s UUID instead of a block device path. This is handy, because if it’s a removable device, you won’t know what block device it’ll be assigned when you plug it in, or when the system boots. Because it will mount after boot time, you’ll also have to set the user option to allow gnome to mount the device after you log in — otherwise the action will be restricted to the root user. Be sure also to set auto, so that the OS will automatically mount the drive for you without you having to issue the commands yourself.

The relevant line in /etc/fstab looks like this, for me:

UUID=0e408c42-233a-4d0c-a7be-dac2379092d5 /media/VirtualMachines ext3 rw,auto,user,exec 0 0

You can get the UUID of the relevant partition of your drive by using devicekit-drives:

$ devkit-disks --show-info /dev/sdb1 | grep uuid
 by-id:                     /dev/disk/by-uuid/0e408c42-233a-4d0c-a7be-dac238a1a3e8
 uuid:                        0e408c42-233a-4d0c-a7be-dac238a1a3e8
 uuid:

Of course, substitute /dev/sdb1 for the partition you’re trying to mount.

On Twitter.

May 10th, 2009 § 2 comments § permalink

Last Friday, Alex and I went to the keynote speech and alumni reception of “Blowing up the Brand“, a conference put on by our old department at NYU, partially to say hello to some old professors and bum a few free drinks from the University. The keynote, given by Rob Walker of The New York Times Magazine‘s “Consumed” column, focused on how one can, and whether one should, think of oneself as a brand. The genesis of Mr. Walker’s remarks was a question posed to him at a conference some months ago, wherein he suggested, off-handedly, that one ought to think of oneself as a brand in order to market oneself in–I think–the employment marketplace. His speech delved into the consequences of this for personal life and, to some degree, civil society in general.

However, what struck me most about the talk, was how often–especially during Q&A–the topic turned to Twitter, the social network and online communication tool du jour. Questions went something like “What do you think of x marketing campaign on Twitter?” “Can you think of any company using Twitter effectively?” “Marketing consultants say you have to be on Facebook, MySpace, and Twitter, is this true?”

The questions, and their answers, indicated a greater truth than the effectiveness of any given usage of Twitter: Nobody knows how to use Twitter. Absolutely nobody. Sure, there might be interesting individual usages of Twitter that integrate with a billboard in Times Square, or through which customer service representatives respond to complaints. But nobody has a very good idea of how one ought to use this new tool. It got me wondering: what’s different about Twitter when compared with the last big online hit, say, Facebook. My thoughts go something like this:

Twitter is searchable

This is a pretty big deal. Facebook is only searchable insofar as individual users allow you to search their names or selected metadata. Twitter is full-text indexed for all its users’ content (except those users who have closed their updates to the world). What’s more, it’s not natively categorized. Sure, there are a few attempts to get users to include metadata in their posts, like hashtags, but when posts are only 160 characters long, there’s not much space for anything other than the most distilled content you can cram into one. Twitter does make arbitrary-text searching easy and fast, though, so a given company can easy find the latest instances of “Comcast” or “Skittles”, and use that data in some other application.

Twitter is conversational

Twitter engenders public discourse in 160-byte chunks. Find a post you agree with/disagree with/love/want to roundly excoriate? Reply @to_the_user and you can, instantly, in public. The only thing is that there are no conversation threads, like on a message board, no “Reply All” as in email, just your own voice added to the multitude. Combined with searching, this is a new way to get an idea of the general zeitgeist on a particular topic.

Twitter encourages integration

Twitter feeds and searches can be exported in XML and integrated into any application you like, from the simple (witness the twitter feed on this page), to the complicated (a billboard in Times Square that responds to tweets). Facebook and MySpace don’t allow for such fast data export and re-use over their global populations of users.

Yet, with all that, there is no specific, canonical usage of Twitter. Twitter is somewhat unique in that it is simply a tool for moving data around and searching and slicing it in interesting ways, then shipping it off to be used elsewhere. On the small, user-scale, that could be a few friends talking about where they’re going for drinks via text message. On a global scale, it could be used to pin down a global conversation about a product, service, company, politician, and so on. There are no rules, just a loose framework. Every company with a marketing budget is, apparently, trying to figure out how to use the tool to its best effect, but, to date, don’t seem to have come up with a consensus. This shouldn’t be surprising; it’s like asking “how do I use the Postal Service?” You use it however it’s useful–do you want to send a package, a letter, do direct mail, register with the Selective Service, or contact a pen pal? The postal service does all of that. Twitter is just a mechanism for moving data — it can be used as effectively as one wishes. The sooner marketing consultants realize this, the better.

Hacking the Wii v3.4U

March 28th, 2009 § 1 comment § permalink

I’m probably the last person in the Universe to hack their Wii to install the Homebrew channel. Nonetheless, I did it this weekend, and while the documentation on the process is generally complete via resources like WiiBrew, I did run into a few bumps along the way. Below are my notes from the process, for others who might run into the same issues as I.

  • The Wii only supports SD cards. MMC (MultiMedia) cards, while having the same form-factor and looking deceptively like SD cards, will result in getting a mysterious “There is nothing inserted in the SD slot” error. This was unfortunate for me, as I had an old MMC lying about which would have served this purpose extremely well. I had to steal the SD card from my trusty Nikon D50 to make this project go at all.
  • You can back up your existing Zelda save game. Just copy the ‘/private’ directory form the SD card once you’ve copied your save game onto it.
  • When running the Twilight Hack I noticed that once I backed out from the Wii System Settings to the Wii System Menu and ran the game, the Twilight hack had disappeared and Zelda prompted to create a new savegame. The problem, it turns out, was pressing the “Home” button on the Wiimote and clicking “Wii Menu” there, rather than repeatedly pressing the on-screen “Back” button. The Wii System Settings is itself part of the Wii System Menu. v 3.4 of the Wii System Menu software deletes the unauthorized savegame when it’s started, and pressing the “Home” button and clicking “Wii Menu” there causes the Wii System Menu to actually relaunch, rather than just go up a couple of layers in the menu structure.
  • It’s possible to keep the Twilight hack and all the rest of your homebrew stuff on the same card; just keep other stuff out of the private/ directory to keep things separate. You can also only have one boot.dol file on there at a time, but if you install the Homebrew channel and the Browser, hopefully you won’t need to re-run the Twilight Hack very often.
  • Once I had the Homebrew channel installed, my first order of business was to install Homebrew Browser. I quickly realized that there’s not much intelligence built into the Browser, and it will allow you to download and run tools which don’t work with your System Version. For example, there are separate versions of DVDX in the Browser, one for v 3.4, and another for all previous releases. I erroneously attempted to install the DVDX for all previous, which, naturally, errored out. The two versions aren’t particularly clearly marked. Look closely before you download and install.
  • DVD playback works, but is far from smooth. It looks like the DVD is being transcoded, on-the-fly into another codec. Either that, or the CPU can’t keep up with decoding the DVD. In my short test, I noticed extreme encoding artifacts. I’m not sure how the DVDX architecture works, but it doesn’t seem to just be decoding the DVD’s MPEG format, but rather making it into something else. Clearly, more research is needed here.

Overall, I’ve been very impressed with the Wii Homebrew scene so far, and the software I’ve played with has been entertaining, if not incredibly polished. I’ll keep this post updated with more notes and pitfalls as I go along.

ShmooCon 2009

February 12th, 2009 § 8 comments § permalink

Last weekend I attended ShmooCon 2009 in Washington, DC with my colleagues Brian and Mike. For my years in, around, and studying the computer underground, I’d rather embarrassingly never actually attended a hacker conference before. This, then, was an excellent opportunity to go to a local one with a reputation for openness and friendliness–and on someone else’s dime to boot. Some highlights:

  • Matt Blaze’s keynote around arcitecture, secrecy, and telecommunications was excellent. Mr. Blaze didn’t provide deep technical analysis, but rather told a series of loosely-connected anecdotes under the theme “system design matters more than most people think”. To give an example: CALEA is a policy that layers a set of specific technical requirements on top of a system architecture that has grown organically and provided natural security controls. Prior to CALEA, law-enforcement had to request a phone tap, which was placed close to the subscriber’s line using a loop extender, and then that loop was manually recorded at the requesting police station. CALEA mandated a convenient, instant, standard interface for tapping telephones, which sounds lovely, but is expensive, and gives an easily exploitable view into phone switches. When that hole was exploited, hackers got to say “I told you so”.
  • ShmooCon gives attendees the ability to dispense what it likes to term “instant feedback”. Sure, you can go to the conference website and fill out a feedback form, but that’s boring. If, during a talk, you feel that the speaker isn’t being entirely truthful, you can hurl a conference-sanctioned ShmooBall at the hapless presenter. The organizers do provide speakers with perspex shields, however. Some attendees build pneumatic, fully-automatic launchers to ShmooBall their friends into oblivion, which really takes heckling to a whole new level in my view.
  • Meeting some heavy hitters in the InfoSec field. RenderMan even commented on my hat.
  • Brian, myself, an anonymous friend, and Mikes arm and leg

    An anonymous friend, Brian, myself, and Mike's arm and leg

    Getting the latest beta version of BackTrack 4, then using it to great effect to score second place in the “Hack or Halo” challenge on Saturday evening. Brian, Mike and I formed Team NYU and popped some boxes, somehow managing to score 14/17 points in under two hours. When Brian and I sat down, we decided that since we were unlikely to place very high in the contest, we should kick back, hang out, grab a beer, and see how many puzzles we could solve. Twenty minutes in, we glanced at the scoreboard, saw we were tied for second, and hit the afterburners. Mike joined us, scoring key points cracking a WEP key, and, most famously, calculating the Fibonacci sequence on his phone, and summing the sequence on his calculator for an epic win in the binary analysis category.

  • Attending Jay “MF” Beale’s talk and witnessing the long-awaited release of Middler, then meeting Jay the following day.

Many thanks to the Shmoo Group for hosting a fantastic conference. All things being equal, I’ll be returning next year.

EDIT: Thanks also to foobar42 for graciously allowing me to use a couple of his photos; I was too busy hacking to take any.