Device Profile: Braddahead Second Sight CCTV system
Oct 20, 2003 — by LinuxDevices Staff — from the LinuxDevices Archive — 34 viewsBraddaHead Ltd. is a UK start-up that designs, develops, and manufactures advanced digital Closed Circuit TV (CCTV) based security and surveillance control systems. Braddahead's first product, Second Sight, is a CCTV system built around Linux that launched Sep. 10, 2003. We contacted BraddaHead's CTO Pete Diamond and Senior Software Engineer Alex Bennee to find out more technical details about Second Sight (SS); and as a bonus, came away with lots of great insights about strategic operating system selection (i.e., real-time vs. not, proprietary vs. free, vendor-supported vs. roll-your-own). Enjoy!
Braddahead's Second Sight (SS) CCTV system
What's it do?
At its most basic, SS captures, digitizes, and compresses analog TV signals from multiple sources in real-time, storing the digitized video to disk and building a database of when and where the video was captured. Recorded video can then be reviewed locally, while still capturing and recording new video, or streamed over a network.
BraddaHead claims SS provides a full range of CCTV/Security functionality, including motion detection (the system monitors images for changes in light levels that might indicate movement), alarm integration, single channel audio recording, pan-tilt-zoom camera control, and more.
According to Diamond, key features include support for the new JPEG2000 image compression standard (which, he says, has many attractive features for security applications), SNMPv3 support (plus documented MIB) for secure authenticated communications in a managed network environment, a wide range of I/O ports and options, and — of course — Linux 2.4.20+ providing a stable, open operating system.
What's inside the box?
SS is based on an STMicroelectronics ST40 microcontroller, a member of the SuperH family of RISC processor engines that ST co-developed with Hitachi. The ST40 core provides a 166MHz, 300MIPS 32-bit CPU based on a two-way superscalar architecture, a 64-bit floating-point co-processor, and on-chip instruction and data caches.
View of the internal electronics
(Click for larger view)
SS boots its kernel from Flash memory and loads additional modules from its internal IDE hard disk. A Memory Technology Device (MTD) filesystem mini-flash partition is used to store “NV parameters such as MAC address,” according to Bennee.
I/O connection interfaces include Composite Video (1vpp) in and out, alarm/relays in and out, S-Video, Ultra SCSI, USB 2.0, RS232, RS422/RS485, and 10/100 Ethernet.
Braddahead's Linux experience
Bennee says Braddahead originally used ST's Linux distro for ST40, but then moved across to the main SuperH development tree, porting bits of the ST40 tree across into the main tree with the help of ST themselves. Bennee adds that the company did use ST's pre-built toolchain, and “ST was very helpful in providing support when we had issues — which were very few and far between — with the processor.”
The company looked at several commercial real-time Linux offerings, especially as real-time requirements where a potential concern at the start of the project. “However, in the end, we went for a vanilla kernel and 'rolled our own,' the rationale being that we could always switch to a real-time variant later if we needed to without having to commit to the cost up front,” says Diamond.
“We now use straight linuxsh on top of a standard 2.4 kernel, with a few minor changes to boot on our board. All bug-fixes are of course contributed upstream, as will be our board setup at some point,” notes Bennee.
Other software
Asked about interesting software running on SS, Bennee replied, “Outside our app, just the basics of a distribution (init, bash etc). As we have a hard disk, we didn't go the BusyBox route.” Diamond adds, “Of course, the box internally looks like a normal Linux machine (shells, libraries, scripting languages), which makes it an ideal platform for OEM and system integrators to develop custom solutions.”
SS uses a custom text-mode display driven by a simple console driver. But, adds Bennee, “there is scope to upgrade the driver to a full framebuffer device later, should we require it.” The box comes with a built in webserver and uses ssh for default secure access for debugging purposes “No telnet holes!” says Bennee.
Diamond notes that Braddahead plans to offer two APIs, eventually. A high Level SNMP based API will allow high level control of the box including access to the image library. “This is probably of more interest to system integrators that want to manage a large numbers of boxes.”
Meanwhile, a low level internal API to the hardware will be available to OEMs who want to manage the images on their own, “or do different or interesting things with the images.” Diamond notes, “This API will enable direct control of the cameras and compression engine (which our manager app uses), which can be used by those that don't want or need our full featured manager.”
Why Linux?
“When we originally conceived of the products,” says Diamond, “We considered Linux at the outset but were concerned about its real-time performance capability and felt that with a new product from a new company, it might be safer for us to use an established RTOS. This led us to select VxWorks, but following a dispute over supply terms we decided to look hard at our application and review how 'hard real-time' it actually was. This coincided with Alex — who is a major Linux fan — joining us, so the decision was made.”
Diamond adds that another major selling point was the availability of existing, royalty free drivers for mature chips such as Ethernet, SCSI, and USB. Work was required for devices that had only been tested on x86 hardware, but nowhere near as much as writing everything from scratch. “We could focus on our value-add rather than going over ground better trodden by others.”
The broad range of devices supported under Linux gave Braddahead freedom in chip selection, adds Bennee. “For example, when we re-spun our boards with a new Ethernet chip, all we needed to do was recompile the kernel with the new driver.”
“Linux also gives us flexibility if we need to make more major changes or [move to another] architecture — something that can be prohibitively expensive with a proprietary RTOS, which is probably licensed by processor family and/or project,” adds Diamond.
Diamond summarizes: “A key marketing appeal of Linux, in trying to make our products ubiquitous, is the opportunity afforded by having a Linux OS, two levels of API, and a powerful platform for our customers to develop their own application specific software to run on our system.”
Retrospective
While the company seems pleased with the choice to use Linux, the development experience was not all romance. “There have been times when trying to get bits of the kernel to work has felt a little overwhelming,” recalls Bennee. “This is something where the embedded Linux vendors could offer better thought-out packages, other than a few GUI development tools and a kernel. One problem we noticed is that although [off-the-shelf] single-board computers are generally well supported, most vendors shy away from helping you get stuff running on your own custom board.”
Diamond adds that the nature of the development meant that both hardware and software teams worked very closely. “This has helped us avoid hard real time problems by altering the software/firmware/hardware interface. The flexibility offered by using VHDL (Very High-level Design Language) and FPGAs (Field Programmable Gate Arrays) has been invaluable in this respect.”
The future of embedded Linux
Diamond and Bennee both believe embedded Linux can look forward to a very bright future.
“For anything moderately complex, working with a full OS with independent processes beats a big chunk of monolithic code any day,” says Bennee. “The ability to leverage open source apps for adding useful functionality without having to divert from your own core competencies is also a great boon — after all, why should a CCTV developer have to worry about the periphery details of SCSI stacks and device drivers?”
Bennee expects that embedded Linux will become easier as more people use it, and that more will use it as it becomes easier. “This seems to be the trick for any technology to achieve 'take-off.' To get to a level of uptake where there is sufficient critical mass for the technology to take on a life of its own.”
“However, it may not happen overnight,” he adds, citing the example that microwave ovens, introduced in 1957, began to proliferate only in the 70s. “Even mobile phones were around for a long time before they really took off.”
The good news for embedded Linux, according to Diamond, is that, “even in a relatively conservative market like ours, customers really see Linux and an open architecture as a positive product attribute.”
“Linux is a core part of our corporate strategy,” Diamond emphasizes.
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.