|At a Glance|
|Product||Hawking Wireless-G Network Camera (HNC290G)|
|Summary||Inexpensive but buggy wired / wireless network camera|
• Built-in web server
• Wireless and Wired support
• Bundled TZO dynamic DNS trial
|Cons||• Too buggy and unreliable for serious use
• Low frame-rate at full-resolution
• No audio
It all started a few months ago. I was awakened at three in the morning by the rumble from a large truck. And then my wife and I noticed flashing lights illuminating the bedroom window and heard the unrolling of hoses. Fire! When my wife gathered in the street with the neighbors, she saw a detached garage from a nearby row of townhouses ablaze. When it was all over, the garage and two cars inside were destroyed. The fire had scorched the townhouse walls, but hadn’t breached the interior.
The next time, I didn’t hear the trucks. It was only when I went for my morning run did I see the fire investigators and police cars. This time, the fire was in a single-family house just behind ours. I don’t know how we slept through it. Luckily, the fire hadn’t spread far and thanks to an observant passerby, everyone in the family had gotten out.
As I ate my breakfast, and watched the goings on through the back kitchen window, I thought it was too much of a coincidence. The second fire was less than 30 feet from the first. When we talked to the neighbors, it became clear this was no accident. Someone had stuffed newspaper under a ledge at the front of the house and set it afire. After this incident, the fliers offering a reward went up, and the fire investigators went door-to-door asking questions.
Then, no more than a month later; three A.M. and a nearby rumble again. This time as we looked out the bedroom window, we could see large billows of smoke and flashes of light through the trees as the flames rose. Three suspicious fires in a matter of months, and they were all in close proximity to our home. Along with new smoke detectors and outdoor lights, was there anything else we could do to make sure we weren’t the fourth victim?
And then I had an idea: a networked surveillance camera. I wasn’t sure they would help identify any firebugs, but maybe even the presence of a visible camera would scare him off. In this review, I’ll check out the the HNC290G Wireless-G Network Camera from Hawking Technologies. The camera is available for around $120, features a built-in web server for stand-alone operation, 640×480 resolution, motion detection, and is advertised as being able to stream video at up to 30 frames per second.
The HNC290G can operate wirelessly, but setting it up requires a wired network connection. Figure 1, from the Hawking manual, shows the back panel of the unit with the various connections marked. The front of the camera, shown previously, has a manual-focus ring, tiltable adjustable lens and several status LEDs. When I powered the camera up, I turned to the Windows-only installation wizard for configuration.
Figure 1: Rear of HNC290G
Figure 2 shows the initial screen of the application after it scanned and found the camera on the network.
Figure 2: Scanning for cameras
The wizard walked me through the initial setup, which guided me through configuring the network address (Figure 3).
Figure 3: IP Address Setup
Setting Up, Continued
The Wizare also helped me to select and configure an associated wireless access point (Figure 4). Note that both WEP and the more-secure WPA encryption are supported for securing your wireless connection. But when it came time to set the password used to control access to the camera, I was a bit surprised to find that I was limited to only using four characters.
Figure 4: Access point selection
Once the Wizard got through the basic setup, Internet Viewing setup was next. Figure 5 shows the initial screen of this setup phase. (Since the wizard runs only under Windows, I was somewhat amused to see a picture of an Apple iBook used.)
Figure 5: Internet Viewing Setup
This phase of the setup is supposed to automatically punch the necessary holes in your router’s firewall. But for the firewall configuration to work, you must be using a router that supports the UPnP protocol. In my case, I was using a Linksys WRT54G which, although several years old, has UPnP support. But when I tried out the wizard, it was unable to complete the configuration (Figure 6). But since the network ports required were identified, I manually opened the ports myself using the WRT54G’s menus.
Figure 6: Setup error
This part of the wizard also walks you through configuring the camera for dynamic DNS. Hawking is partnering with TZO to offer a free 75 day trial of TZO’s Standard dynamic DNS and Web relay services. The services let you register a unique domain name for the camera, which is kept pointed to the IP address assigned to your router by your ISP.
The service lets you remotely access the camera over the Internet – although not through a secure (https) connection) – without having to keep track of your IP address when it changes. Note that after the trial period expires, having an easy-to-remember name for your camera will set you back $25 a year. This part of the setup went uneventfully and the TZO service worked as advertised.
When I finally had the camera set up, I unplugged the Ethernet cable, and moved the camera into position pointing out my front window. Hawking provides a Windows application for viewing and recording video from the camera, but my interest was in its web capabilities. Figure 7 shows the basic viewing screen accessible from a web browser. The video window shows the view from my camera which was approximately 50′ and two walls from my WRT54G.
Figure 7: Basic Web Interface
When viewing the camera from a web browser, the basic viewing capability is provided via a Java applet. I was happy to see Java used instead of ActiveX, which many of these cameras use, because it meant that usage was not limited to Internet Explorer. From the main page, various options are available including turning on a date/time overlay on the picture, changing the resolution etc. Note that the figure shows that I have the date/time overlay turned on, but the image doesn’t have the overlay. I found that this feature sometimes worked, and sometimes didn’t.
A status line on the bottom of the browser showed me how many users were connected to the camera and the current frame rate. Hawking specs the frame rate and resolutions available as: 30+ fps @ 160 x 120 (QCIF), 30fps @ 320 x 240 (CIF) and 10fps @ 640 x 480 (VGA). I found that I would typically get 10-12 frames per second with a 320/240 resolution. When I raised the resolution to its maximum of 640/480, I was very lucky to get 4 frames per second. Most of the time I would get no picture at all.
To rule out problems due to the wireless connection, I temporarily switched over to using Ethernet. I found that I could reliably get around 8-12 FPS at the maximum 640×480 resolution and even low 20s if I covered the lens. This told me that the image compression algorithm used isn’t smart enough to recognize available bandwidth, which isn’t an issue with a 100Mbps Ethernet connection.
At the 320×240 setting with a wired connection, I was able to achieve FPS readings of high 20s to low 30s. Figure 8 shows a frame grab when I did get 640/480.
Figure 8: 640×480 Screen Grab – Click for full-resolution image
In general, I found the image to be of pretty good quality at this high setting, but since I couldn’t reliably get any image, it didn’t do me much good. I did find that moving the camera closer to the access point helped both the frame rate and the ability to use the higher resolution.
An option for 50 vs. 60 Hz was designed to allow users to account for the presence of fluorescent lights. The button below the image allows a user to take a “snapshot” of an interesting frame and email it to defined email address. But like the date/time overlay, I found this button sometimes worked and sometimes didn’t. And even when it did work, I found it hard to get the correct image. There seemed to be a few seconds lag between the pressing of the button and the time when the image was actually grabbed.
Other setup options available through the web interface included setting the time via a NTP server, network configuration, changing the administration password and defining up to four view-only users (Figure 9).
Figure 9: User Creation Option
Under the “Network Settings” menu, I found an option for turning off the LEDs on the camera. This is a nice feature for surveillance use where you would want a camera to be stealthy. Unfortunately, the setting returns to its default state of on / blinking with network traffic each time power is cycled.
Motion Detection and Low Light Operation
To me, the most interesting option was the motion detection feature. I don’t want to sit and watch my camera all the time, but instead would like it to notify me when someone or something approaches my home. The camera lets you enter an email address and when “motion” is detected in front of the camera, a picture of what caused the motion is emailed to you.
By default this option is turned off, so I configured it, turned it on, and waved my hand in front of the camera. A bit later, I received an email with a picture of a blurry hand. Neat. But when I went back to check the web interface, I found the camera locked up and unresponsive. Oops. I debugged this problem for a while before I emailed a helpful contact at Hawking who eventually got me an updated firmware image that no longer locked up when motion was detected.
But even though it no longer locked up, I still found the feature to be finicky. When I tried to force a motion event by walking in front of the camera, sometimes I’d get nothing, other times I would. When I had it pointing out my front window, most times a car driving up would trigger an event, (Figure 10) but walking up the driveway often wouldn’t.
Figure 10: Detection of car arrival
There were no options for sensitivity in motion detection. I could set the number of frames to email and the time to wait between events, but there was nothing to specify how much motion should be considered relevant. Another issue I had with this feature was garbled images (Figure 11). Approximately one out of twenty images would arrive in my mailbox corrupted as if it were sent before it was completely constructed on the camera.
Figure 11: Garbled Image
To take a different approach to the motion detection problem, I tried out another feature of the camera. The HNC290G has the ability to serve up a single JPEG image from the camera using a pre-defined URL. So with a bit of scripting, wget to fetch images and ImageMagick to time-stamp and compare them, I had a poor-man’s change detection system.
This cobbled-together solution worked more reliably than the built-in motion detection feature. But it required a PC to do the real work and kept my network busy fetching a new image every second. Figure 12 is an example showing that it was able to detect me walking up the driveway.
Figure 12: Home-Brew motion detection
Note that the quality of the image in 320/240 mode is such that you’d probably not be able to identify an unknown person. I found that the script running under Ubuntu Linux on my 2 GHz Core Duo could easily process fetch and process an image a second. But the same script running on my NSLU2 could only process an image every 25 seconds or so. And even then, it often ran out of memory and failed.
And speaking of failure, I also found that the whole process was moot after 15-20 minutes because the HNC290G would start returning the same image every time until the power was cycled. The web interface would be showing the correct video, but the still-image feature would be stuck in time.
The last test I wanted to run with the camera was usage in low light conditions. The HNC290G isn’t designed or advertised to work in low-light, but if it were to meet my home security needs, It would need to work at night with only my outside lighting. In general, I found it worked better than expected when lighting was poor. Figure 13 shows my wife arriving home in the evening, just after sunset. You can see that it was dark enough out that the car headlights are on, but the camera still was able to pick her up.
Figure 13: Twilight motion detection
Figure 14 shows me walking up the driveway much later in the evening when there was little natural light. I was holding a small flashlight to simulate a flame that an arsonist might be carrying. The built-in motion detection feature of the camera captured both of these pictures automatically so when it does work, it handles low-light fairly well.
Figure 14: Night time motion detection
Bugs and Under the Covers
While working with the camera, I had a few issues with the web interface. More than once, when trying to log in, I found that my password wasn’t accepted. It was only after I cycled the power on the unit was I able to log in. This would be a big problem if I were trying to use the camera while away from home.
The other issue I saw was CPU usage. A couple of times while viewing the camera I noticed the fan on my laptop kick on, and the processor usage jump up into the high 90 percent levels for both of my CPUs. But when I stopped the camera applet, processor usage went back to normal.
I haven’t seen this behavior on other Java pages, so it tells me that there must be some sort of programming error in the applet. I also got a “Too many users” error on one occasion when I brought up the camera’s viewing page, but I was the only person viewing it. A quick “refresh” of the browser cleared the error, however.
Moving on to the internal exam, I did a quick port-scan of the box to see what operating system the camera was running. I found no interesting ports open, but the finger-print ID told me it was likely a Contiki OS, running on an Ethernut board. In the Figure 15, you can see that the wireless capabilities are provided by a mini-PCI card containing a RaLink 2560 chip.
Figure 15: HNC290G Main Board – Click for full-resolution image
I couldn’t dig up any information on the large MARS chip, but the bulk of the functionality on the camera is provided by a Taifatech Tf-520 chip, which contains a web server, a JPEG encoder, networking support and other functions.
When I started this review, I wasn’t sure what to expect from a low-cost Internet camera. In general, I found the image quality of the HNC290G, at least at the highest resolution mode, to be pretty good. I was also pleased to be able to access my camera across the Internet using the TZO dynamic DNS and I thought it also did well in low-light conditions.
But where the camera failed miserably was in reliability. When the camera worked, it did a pretty good job. But if I go to the effort of installing a surveillance camera, I need to have confidence that it will always work as designed. And in this respect, the device did poorly. In fairness to Hawking, the HNC290G is not advertised as a surveillance camera. But the problems I found would frustrate its use for other applications, too.
Between the occasional inability to log in, the motion detection failures, the garbled images and the other issues I uncovered, Hawking has a lot of bugs to fix. Hopefully, all of these problems can be addressed in firmware. But until then, I’d be hard-pressed to recommend the HNC290G as anything other than a toy, and a buggy one at that.