UPDATED AND EXTENDED SECOND EDITION, COVERING BOTH ORIGINAL AND V2 NOW AVAILABLE
The BBC micro: bit is capable of taking on a variety of roles including that of a powerful IoT device. In order to gain full access to its features and to external devices, however, you need to use C which delivers the speed crucial to programs that communicate with the outside world.
Written for the electronics enthusiast, micro: bit IoT In C starts with a first "Hello Blinky" C program with the mbed online compiler, we move to the desktop to using an offline approach using the yotta development environment plus NetBeans to make things even easier. Now we are ready to discover how to control the micro: bit's I/O lines, exploring the basis of using the GPIO. For speed, however, we need to work directly with the raw hardware and also master memory mapping, pulse width modulation and other more sophisticated bus types.
From here we can start connecting sensors using first the I2C bus, then by implementing a custom protocol for a one-wire bus, and eventually adding eight channels of 12-bit AtoD with the SPI bus, which involves overcoming some subtle difficulties. We then look at serial connections, one of the oldest ways of connecting devices but still very useful. The micro: bit lacks WiFi connectivity but using a low-cost device we enable a connection to the Internet via its serial port which allows it to become a server.
To conclude we look at the micro: bit's LED display. This may only be 5x5, but it is very versatile, especially when you use pulse width modulation to vary the brightness level, something we demonstrate in a classic game, written of course in C.
About the Author: Harry Fairhead has been working with microprocessors, and electronics in general, for many years and is author of the best selling The 386/486 Personal Computer: A Power User's Guide and Exploring Intel Edison. Harry is Editor of IoT-Programmer.com and a regular contributor to I-Programmer.info, where he covers all aspects of hardware.