Here we’ve grouped user interface, sensors, and production. It’s not so much that there is little to say on these as it is just the opposite: these topics that are so huge, offer so many options and can change so rapidly that trying to cover all possibilities doesn’t make much sense. Instead, here we’ll touch upon general considerations concerning sensors, user-facing application software and some of the nuts and bolts of manufacturing custom hardware.
It is possible, and often desirable, to add some user interface components to a product. This can be as simple as a power switch or as involved as a touch screen with a GUI.
However, if your creation involves lots of user interaction, or if the tasks they will be accomplishing are the least bit complex, it is often more desirable—and less expensive—to skip the UI hardware altogether and provide an interface that users already understand and enjoy using.
The two main ways of achieving this are through the browser or via a mobile application, for smartphones, tablets, etc.
Whether it’s for placing an order, managing their wishlists, uploading photos to a database… pretty much everyone is already familiar with using their browser to interact with some remote back-end system.
If you want ultimate portability—an interface that works on any desktop computer or mobile device—then going through a browser is a good choice. This is especially true in cases where your product is naturally connected to the network, such as devices based on Wi-Fi modules as described in the Communications section.
To create a useful UI, you’ll start by defining what users can do, and how they go about doing it, using a set of wireframes. Consulting with an ergonomics and accessibility expert on this front can make a big difference when creating interface that is useful, intuitive and enjoyable.
When you want to provide immediate access and a solution that’s fully integrated with a person’s day-to-day activities, a smartphone/tablet app can be a great choice. If your device has a communications module that’s supported by mobile devices, like wi-fi or bluetooth low energy (BLE, also know as “Bluetooth Smart”), and then an app is a great choice.
The development process is in many ways identical to that for a browser-based GUI. In fact, there are SDKs available that allow you to develop a single application that will run in browsers, as well as natively on Android, iOS, Blackberry and other mobile platforms while allowing any competent web integrator to manage the look & feel of the application using the techniques they are already familiar with.
If it can be measured, then it’s more than likely that there’s a sensor that can do the job for you. The are sensor for pretty much any discreet physical quantity (think temperature, pressure, distance, weight, velocity, etc) and even sensors with enough processing power to digest raw input and provide higher-level information, e.g. a capacitive touch sensor that eliminates noise and random data and can tell the difference between a swipe, a tap and a double-click.
Depending on your requirements and priorities, we can provide suggestions for the optimal solution in your specific case.
In most instances, digital sensors will provide information through one of a handful of industry standard protocols. These are usually either serial data (e.g. through a UART), SPI communication lines or use the I2C two-wire bus.
Serial communications are simple but are one-to-one, meaning you need a serial port for each device you want to exchange with and it usually involves parsing text (more involved and brittle code).
SPI is fast and has a common bus—shared between any number of devices—but requires 3 I/O pins for the bus, plus another to address each peripheral.
I2C is great in that it requires only two pins for I/O but involves more overhead than SPI (you basically need to send the address of the device you’re talking to for each message), the addressing scheme can limit the number of similar devices you can put on the same lines and a faulty component can ruin your day (by tying up the bus, blocking communication to everyone else).
Most of the options for described in the processing section and the various SoCs will support some or all of these methods of interfacing with components.
Though there are many commonalities between various chips, the downside is that the capabilities of each sensor and the types of data they are reporting are so varied and application-specific, that the actual contents of the messages required to configure devices and retrieve their data will change for each device. Judicious choice of components can mitigate this, as there are libraries available for many peripheral devices.
Production of PCBs
If you’re doing anything more complex than a simple proof of principle, it will probably involve the creation of a custom printed circuit board (PCB) to tie all the components together.
It’s never been easier, faster or less expensive to design and produce a run of PCBs and your consultant will handle the details. Though there are many choices of materials for the substrate, thickness etc. the main difference between circuit boards will be the number of layers.
Types of Boards
A single-layer board can sometimes be made for simple circuits, and these can be produced on the spot with a turnaround measured in hours for a quick test, but in most cases the complexity of the layout requires at least two layers.
A two-layer PCB is sufficient in the majority of cases, and allows for the use of ground planes and/or routing signal traces on both sides of the board, reducing it’s total footprint. It is possible to have components on both sides of a PCB, and in cases where the board’s area is of great concern this might be a necessity, but the downside is that it complicates manufacturing somewhat.
Four, or more, layers may be needed in some cases either because of a circuit’s high complexity, size constraints or because it’s a high frequency application. When you get into high frequency designs, things that look like simple wires at low frequencies (the traces on the PCB that route electrical signals) start behaving more like actual components (e.g. capacitors and resistors) so the size of the traces and their relative distances start to matter much more. For example, the distance between a signal trace and the ground plane can really start to count, so a multi-layer PCB can be used to bring that layer up closer to the components on the top.
The process of turning a PCB into an actual circuit involves placing the components and soldering all the electrical connections. For prototypes this can almost always be done “by hand” (meaning components are positioned manually and everything is soldered in our small reflow oven) but when want to produce hundreds or thousands of products, it is time to automate the process.
The component placement can often be fully automated using pick & place machines. The method used to solder depends on the specifics, but in short there are two ways to go: reflow and wave soldering.
Reflow soldering is the process of applying a solder paste, followed by components on top, and then baking the circuit in a way that follows a precise thermal profile. If you can design for this, then it’s the usually the way to go because it’s simple and widely supported from small fabs to manufacturing outfits support huge volumes.
Wave soldering can be cheaper at large scales, but is a demanding process that requires lots of attention to layout, part selection… even to the orientation of the parts on the PCB. It usually the only way to go if you have through-hole components.
By combining the information in the 3 steps to a great product and this technology selection HOWTO, you’ll have a firm grasp on your needs and a good idea on how to meet your goals. We’d be happy to discuss your specific requirements, all you need is to send us word.
Good luck with your projects!