MacDevCenter    
 Published on MacDevCenter (http://www.macdevcenter.com/)
 See this if you're having trouble printing code examples


What Is FireWire (and How Best to Use It)

by FJ de Kermadec
07/26/2005
FireWire
FireWire is Apple's branded name for a high-speed data serial bus they developed. Also known as IEEE-1394, this digital interface technology can move data up to 400 megabits per second (Mbps). A more recent version of this standard, FireWire 800, is capable of speeds up to 800 Mbps. Common uses for FireWire include data transfers with external hard drives, DV camcorders, webcams, and Apple's own iPod digital music player. Up to 63 FireWire devices can be connected and recognized at once. Sony has branded this technology as iLink, which also adheres to the IEEE-1394 standard.

In this article:

  1. So, What Makes FireWire Really Special?
  2. Optimizing Your Devices
  3. Create a FireWire Network
  4. Firewire Target Disk Mode
  5. Recycle Older Drives
  6. Use FireWire to Talk to Your TV
  7. Get Familiar with Developer Tools
  8. Final Thoughts

FireWire is fully autoconfigurable. Devices are placed on a peer-to-peer chain, communicate with each other and, roughly speaking, mind their own business in accordance with others. As long as you comply with higher protocol requirements (such as mounting and unmounting drives) and provide sufficient power to the chain, you can theoretically expand it to no end without suffering a meltdown.

FireWire supports branching and chaining (meaning you can plug a device into another device through which it will communicate to your computer or yet another element in the link) and does not require you to know about terminators or plugging orders; any given device A can be before, after or in between devices B and C in the chain without ill effects. There are, of course, limitations to these theories, mostly due to bugs in the firmware or circuits of some devices but, generally speaking, any user capable of putting a plug into a socket should be able to use his or her FireWire peripherals.

Interior decorators and anally retentive geeks (like me) will also like the fact that FireWire uses thin cables—even the super-thick FireWire cables are nothing compared to the large ribbons that were once commonplace—making them easy to hide, bend, and store, without risking damage to them or the devices they are plugged into.

But, aren't these considerations true of most technologies today? Hmm, maybe most, but not all. And there is a wide gap between being true on paper and being true in practice, as those of us who have played with some USB hubs know. FireWire has been doing all this for years and does it well, in part thanks to Apple's insistence that the technology should really work before you can call yourself a FireWire device manufacturer. Other technologies may offer similar features, but the very diverse market that backs them sometimes interferes with their goal of reaching true "plug and play."

So, What Makes FireWire Really Special?

Related Reading

Digital Video Hacks
Tips & Tools for Shooting, Editing, and Sharing
By Josh Paul

FireWire 800 is among the fastest, if not the fastest, general purpose interface you can find. It can reach speeds of up to 800 megabits per second, allowing for the transfer of vast amounts of information in very little time, which truly makes sense considering the size of some files we are now commonly manipulating and backing up. Higher transfer speeds also mean you can work directly from an external drive without experiencing a drop in performance, something that is far from being true if you work with large files stored on USB volumes—in which case dropped frames, skipped beats and oh-so-long "Saving…" progress indicators will quickly become good friends.

FireWire also supports multispeed. FireWire devices exist at speeds from 100 megabits to 800 megabits, depending on their age, purpose, and quality. Guess what? You can mix all these on a single bus and still have all devices operate at maximum speed, as the interface can change speeds on a packet-by-packet basis. Impressive, huh? We have all become so accustomed to 802:11g networks slowing down to a crawl because of the lone "b" node somewhere, that we have forgotten this scenario is not true with all interfaces. This also means you do not need to upgrade all your devices every time a better cable, port, or chipset comes along if you want to truly benefit from your latest purchases.

FireWire can operate over ultra-long distances—up to 100 meters—opening up possibilities that are unheard of with other technologies. While that may not seem immediately useful, think how nice it would be to finally put these hissing and roaring drives in an insulated closet? If you work in a laboratory of some kind, maybe you can connect to drives and devices located in another, high security room? Fear not, though, even if you don't work with flesh eating bacteria and merely own a single silent hard drive, some of the tips we are going to see today (like FireWire networking) will give you plenty of ideas to use these meters.

FireWire also provides plenty of power to the devices connected to it: up to 45W of power, more than other ports. What does this mean? This means fewer power bricks that can catch fire, fewer cables to manage, devices that charge and sync at the same time, and, as the power is significant, this means you can enjoy all this without cutting down on disk speeds, status lights, or even on-device screens. In other words, you don't have to choose between portability and features, which other interfaces usually require. Most self-powered drives, the iPod, the iSight, and dozens of other convenient little machines would not exist if it weren't for the power of FireWire.

FireWire can be Isochronous (yes, that is Iso-chron-ous). In other words, it can move streaming data in real time, putting an emphasis on speed and fluidity. Other interfaces do this, but FireWire has taken it to an art, which explains why it is used on set-top boxes, TVs, professional audio equipment, or anything that requires streaming to work really well. In those cases, FireWire guarantees the bandwidth to some devices and manages the resources allocated to other peripherals on the chain so that they can work at the best possible speed without constraining the bandwidth below what the broadcast link requires.

FireWire creates peer-to-peer networks and has always done so, meaning devices can talk to each other without requiring a computer, even on complex chains. Better yet, this feature has been here from day one, meaning all FireWire devices were built with this in mind, which is not the case of other general purpose interfaces. While you may not need your iSight to engage in heated discussions with your FireWire cup warmer (yes, there is such a device), being able to pull a cable between two camcorders and copying the data from one onto the other is a nifty trick.

Last but not least, FireWire has been designed to be efficient, no matter how many devices there are on a chain. While other interfaces degrade quickly in performance, FireWire will continue to move data along, unperturbed by all the traffic happening on the link. For example, FireWire can write and read to memory without getting the CPU in your Mac involved, meaning it draws surprisingly few resources.

Of course, all the elements we outlined are theoretical. As we all know, FireWire setups are not 100 percent perfect in real life. And faulty cables, buggy firmwares, poorly designed chipsets, cable-eating dogs, and kicking feet have brought more than one carefully crafted chain to its knees. Nevertheless, the technology is here and it has been refined over many years to form a truly exceptional standard that can benefit to home users as well as high-end professionals.

Optimizing Your Devices

Optimizing your devices is the first step to a trouble-free FireWire experience. FireWire devices rely on some pretty serious firmware to do their work. Often the firmware is upgradable. So it's a good idea to have a look online every once in a while to see whether the manufacturer of your drive or camcorder has released a new version of its internal software. In many cases, the updates will improve performance (transfer rates for example), minor cosmetic issues (such as incorrect blinking lights), or solve a bug with some no-brand card commonly found in low-end PCs. In some other cases, though, these upgrades can fix serious bugs that went unnoticed at release time and could avoid data loss; some will remember the early days of Panther where a bug resurfaced in some firmwares that caused much trouble.

Once you have upgraded your firmwares, let's have a look at the cables. After all, FireWire 800 can operate up to distances of 100 meters, but that doesn't mean just any cable can do it. While the ultrathin, ultraslick cables that ship with iPods and iSights are sufficient in most cases for such devices, they are by no means heavy duty; for one thing, they tend to bend and break slightly more easily. Whenever you have a mission-critical device, invest in a good, thick, well-shielded cable. This will not only improve transfer rates, it will also make them smoother and more reliable. Slight bends and cuts on cables can at times cause Kernel Panics as well, which you definitely want to avoid.

Finally, pay particular attention to your hubs. These little devices do contain some electronics that can get damaged or interfere with the proper operation of your device. Whenever you have the time, unplug all your FireWire peripherals, lay down all the cables, and try to rethink the chaining and organization of your stack.

For example, by chaining a couple of drives together, maybe you could avoid using a hub? Or maybe by placing that older, slower device at the end of the chain and saving data the trouble of passing through it, you could improve performance of that new camera you just bought. Since FireWire is so simple to use, we tend to plug things together, without doing much thinking about the configuration. This can lead to the slow building of suboptimal performance.

When changing Macs, keep in mind that newer Macs tend to provide more power through ports than older ones. Any standard-compliant FireWire device will accept it without issue, but some older or less solidly built ones may overheat or get damaged—and you can't really blame Apple on that one. To avoid surprises, get a look at the specifications pages for your Mac or look it up on specialized hardware sites.

Create a FireWire Network

FireWire can also be used as a networking interface. How do you go about that? Simply use your "Network" preferences pane, in the System Preferences application and check the "Built-In FireWire" port in the "Network Port Configuration" list. Then, link your devices together as you would with regular Ethernet cable and you're free to go; just make sure that both devices are configured to use FireWire as a networking interface, or you won't go very far.

You can use DHCP (Dynamic Host Configuration Protocol) over FireWire, setup your network manually if you are so inclined, and even specify proxies, just like with other interfaces. Bonjour over FireWire is also fully supported. These networks will actually operate at a very high speed, sometimes a lot more than what your other networking interfaces can do, and, in almost all cases, much more smoothly as FireWire has been designed to sustain high-data rates.

figure 1

FireWire networking comes in very handy when sharing Internet access. Let's suppose you have a guest in your hotel room who wishes to borrow your Internet access. Only the hotel locks in the access with a MAC address, and you don't feel like using AirPort for security reasons. Simply enable Internet Sharing and FireWire networking and you're ready to go. What about network administrators that require two network interfaces to perform firewall testing, but only have their iBook on the go? Boom (as someone we know would say), two network interfaces without adding an Ethernet card!

figure 2

Whatever you decide to do with FireWire's networking capabilities, the bottom line is that it can be used as a super-fast, very reliable networking interface, just like you already use Ethernet or AirPort. Realistically speaking, you probably won't use FireWire for networking very often (although you could), but it can, at times, be a lifesaver.

Firewire Target Disk Mode

FireWire Target Disk Mode is a commonly used feature in troubleshooting. In a nutshell, Open Firmware and the FireWire components of your Mac work together to turn the machine into an external FireWire drive, making it available to other computers and devices in the chain, just as if it were a mass storage device.

Usually, Target Disk Mode is used to pull data in a hurry from a crashed computer, install Tiger on a nonofficially supported machine (not that you would want to do that, of course), or as a powerful way to hack data from a password protected machine—but luckily FileVault has come to the rescue over the past few years.

There are, however, more productive usages of Target Disk Mode that are often overlooked. For example, if you have a desktop Mac and a portable, keeping the two in sync can be a pain. With a simple cloning tool such as Carbon Copy Cloner , you can transfer everything from one Mac to the other in a matter of minutes.

Of course, doing so requires that both hard drives be more or less the same size (you obviously can't clone an 80GB hard drive into a 20GB one) and you might run into the occasional glitch as your desktop Mac probably isn't configured to manage the hardware your laptop will include, such as a battery or maybe an AirPort card. Light configuration will be required and the resulting clone might not be the most stable of setups.

For example, don't expect all your serial numbers to work on the cloned machine, and don't try to edit the next blockbuster in FinalCut pro on your blueberry iBook. Nevertheless, as a quick and dirty panic-relief situation, it does work perfectly well, and I have used it many times in the past when attending conferences where I just wanted to take notes, chat a bit, and check my mail periodically, while still keeping my articles and mail archives at hand.

Recycle Older Drives

After reading articles lately on the importance of scrubbing hard drives before selling them, maybe you no longer feel like including a drive in the PC (if you're a switcher) or PowerMac that you're letting go of. What should you do? Stick the old hard drive into your new Mac? Hmm, maybe you don't have enough space (if you replaced your PowerMac G4 with an iMac G5, for example) or the drive doesn't conform to the new specifications.

In many cases, older drives can be repurposed in external FireWire enclosures. While the resulting device might not be the fastest of your peripherals, the extra drive may come in handy for backups and other housekeeping duties.

If you decide to investigate that option, though, please do invest in a high-quality case, as you want to entrust your data only to the best chipsets and firmwares. The Apple Discussions, notably the forums concerning older machines, can be a good starting point for such a project, as you will be able to interact with users who have faced similar questions.

Use FireWire to Talk to Your TV

Many TVs and set-top boxes now ship with FireWire interfaces to stream data, receive information, and talk to other pieces of equipment in your home theater system. Since these devices comply to the FireWire standard, you can plug them into your Mac and they will start talking to each other.

Now, how does your TV make sense of what your Mac does? Simply by using an application on your Mac that sends signals to the TV that it understands: the same that would be sent over the same link by a camcorder or an entertainment unit. Some commercial solutions have begun popping up that do just that, but the open source community is already at hard work creating such applications that can turn your Mac into a full-featured remote control for your TV, recording device, and media center. Of course, some antipiracy (i.e. vendor lock-in) technologies that are now commonly embedded in TVs can interfere with that process but, in many cases, there is plenty left to do.

A good introduction to this use of FireWire is Build Your Own PVR (for free) with HackTV by Erica Sadun.

Get Familiar with Developer Tools

Like with many great technologies full of potential, there are many tools that take advantage of its cool features but that cannot be officially supported, because they're not stable enough, for example. This is why I encourage you to go to the Apple Developer Site and download the latest version of the development tools. You will find a wealth of FireWire-related utilities and applications that can be compiled in Xcode, ready for you to play with. One important word of caution: don't start playing at a hardware level unless you know what you are doing or are ready to face the consequences of a glitch; some of these utilities can cause issues if used improperly.

Final Thoughts

I've just scratched the surface of what makes FireWire great and why it's a promising, fundamentally useful technology. I hope these few pointers will encourage you to play more with this excellent technology. There's a lot to do with FireWire and, as more developers jump on board (Remember, this is the year of HD!), we should see some very interesting devices and ideas appearing over the next months.

FJ de Kermadec is an author, stylist and entrepreneur in Paris, France.


Return to the Mac DevCenter

Copyright © 2009 O'Reilly Media, Inc.