Various groups in the IETF currently standardize technology for use with constrained devices and the choice of hardware impacts the design of Internet of Things (IoT) systems. To provide guidance RFC 7228 “Terminology for Constrained-Node Networks” defines three classes of devices depending on their RAM and flash memory size. Class 0 characterizes devices that have less than 10 KiB of RAM and less than 100 KiB of flash memory and RFC 7228 adds “… most likely they will not have the resources required to communicate directly with the Internet in a secure manner.” For others even class 2 with ~ 50 KiB of RAM and ~ 250 KiB of flash memory is too constrained.
With the increasing commercial interest in IoT the question about a reasonable hardware configuration surfaces again and again. At the IETF#90 ACE meeting I offered to bring a hardware expert along. Peter Aldworth, a hardware engineer with more than 19 years of experience, lead the discussion at this webinar.
The question about the suitable hardware platform has been particularly interesting in context of security discussions since security protocols tend to consume a fair amount of resources. Since security is often added to an existing design, as an afterthought, various deficiencies are built-in from the get-go.
To give you a flavor of the discussion consider this piece of hardware, the Nordic nRF51822-mKIT. It is an example of a recently released Internet of Things development board offering a Bluetooth 4.1 stack. This board allows engineers to create Bluetooth Smart peripherals using the mbed development environment. It uses the ARM Cortex M0 processor with 128 or 256kB flash and 16kB RAM. The ARM Cortex M0 is an example of a frequently used processor in Internet of Things appliances.