If you’re creating an IoT application from the ground up, you’ll (at some point) have to determine if you’re going to build your gateway yourself or purchase a pre-built system.
In many cases, the only reason someone would design their own gateway from the ground up is because they think they’ll be able to either (a) hit a price point that is lower than if they purchase an off-the-shelf gateway, or (b) include features that are not available in off-the-shelf gateways. But in order to determine which route you should take, you’ll want to think through the four main components of an IoT gateway, and consider how difficult creating your own gateway might become.
Printed Circuit Board (PCB)
Laying out circuit boards for gateways is a lot like doing a Sudoku puzzle—it’s extremely complex. With circuit boards, once the hardware designers create the schematic design, they focus on routing the traces to memory—but this isn’t an easy thing to do.
Here’s why: Your processor—an Intel or ARM chip—generally has external RAM. Because RAM operates at such a high speed, the length of the copper traces that run to the RAM have to be the same length. If there is any mismatch in length, the clock edges won’t align properly, which is a big issue since the traces form a differential pair. If you’re set on building and designing your IoT gateway architecture, you need to be prepared for this and fully understand the task at hand; routing memory is far more difficult than routing other types of circuit boards.
You’ll also have to consider how the disc or flash will be loaded in production. Are you going to have a separate flash card that can be integrated in the gateway, or are you going to program it through a USB?
If all of this sounds daunting, keep in mind that there are many off-the-shelf or modular gateways that you can configure pretty easily. (Option’s CloudGate is a great example of this.)
The case for a gateway often ends up being a bigger deal than people recognize. There are only two ways you can handle this: You can find an off-the-shelf enclosure that works for you and then design your circuit board to fit into it, or you can design your circuit board and then design the case around it.
Here are a few considerations to keep in mind when making your decision:
- Designing your own enclosure can easily burn $100,000 (or substantially more), for design, tooling, fabrication, etc.
- Some gateways should be in metal boxes because of unintended radio emission concerns. (This is particularly strict when you’re using cellular to connect your IoT device.)
- Removing heat from the gateway can be a particularly tricky problem for some higher-performance systems. (Ever sit with your laptop on your lap while watching a movie or playing a game?)
- Even if you purchase an off-the-shelf gateway, you’ll want to consider customization costs, lead times, minimum order quantities, and more. There’s nearly always some level of customization for every gateway.
Note that many large companies don’t end up designing their own case unless they’re trying to sell a router with a unique look.
You’ll need to consider how you’re going to run your application software on Linux. (OpenWRT and Debian are both popular for gateway devices.) If you’re doing your own design, it’s not just a matter of loading Linux onto your processor; you often have to build your own kernel to be able to control all the peripherals. The kernel is what maps the operating system to the pins on the processor, and custom kernel development for Linux can be very time consuming and costly. This is something a lot of people don’t consider when they start designing gateways.
One way to avoid having to build your own Linux kernel is to do a hybrid model; you purchase a single-board embedded computer module that has already handled routing, memory, operating system, and peripherals. (Digi is an example of a company that makes the system-on-module solutions.)
If you plan to build your own gateway, you’ll also need to consider the actual application software that isn’t part of core processor, memory, or disc.
Take radios, for example. You’ll need to design your radio to run off the network of your choosing—and often, gateways have multiple radios. (Our gateways have Symphony Link and cellular, or Symphony Link and WiFi.) If you’re designing your own gateway, you’ll need to get FCC certification for every module, as well as co-located emitter certifications. Keep in mind that you can’t buy two off-the-shelf FCC-certified modules, put them in the same system, and carry forward the FCC certification. You actually have to re-certify the two together because of the intermodulation.
Also, if you’ve designed a Linux kernel, it needs to support the peripherals in your system. If the kernel isn’t configured correctly, you might be plugging in part of the WiFi driver to the input/output pin. (If you purchase an off-the-shelf solution, the kernel will likely support touching all of the pins and make everything connected to the board work seamlessly.)
The fact of the matter is this: Getting to the finish line with gateway development is very costly and very time consuming—and it can be pretty risky. Kernel development, for example, could take one week or it could take six weeks—and you typically don’t know the length of time going in.
We suggest that you model the total cost of development for a best- and worst-case scenario into your typical “buy vs. build” calculations. When you calculate that forward to your per-unit price, you may realize that an off-the-shelf gateway will be the most cost-effective and time-efficient method for now.