For new makers, hobbyists, and students, entering the ever-changing world of IoT development boards can seem daunting and complex. Some might wonder what the difference is between a couple of sensors, or how data can be gathered and sent over Wi-Fi. With the CodeBug Connect, all of these problems and questions can be tackled by almost anyone, no matter the skill level.
Before getting into what the board can do, it's important to look at all of the components on it to get a feel for what's possible. Most apparent is the 5 x 5 grid of individually addressable LEDs which can be used in countless applications. There is a pair of five-way joysticks at the bottom which can act as simple pushbuttons or directional switches. At the back there is an accelerometer and the Wi-Fi chipset for wireless communication. Finally, there are four GPIO "legs" along the sides that can have conductive threads sewn on or alligator clips attached. The six-pin header at the end is for connecting expansion boards.
Perhaps the most intriguing aspect, the LED matrix is capable of displaying simple shapes, text, and some fun patterns. These can be used in conjunction with the accelerometer to do light paintings, as seen here:
They can also visualize data, such as the temperature of a coffee mug or the color of an object.
For a more mobile project, the CodeBug has a set of four large GPIO pin holes that straddle both sides of the PCB that can be woven onto fabric with conductive thread. They are able to read analog voltage levels via a four-channel ADC and support high-impedance sensing. This allows the board to function like a MaKey MaKey board by detecting changes in capacitance on the pin. The quad-core processor is connected to 4MB on onboard flash storage which lets it run the very basic Pyiotos operating system and CircuitPython for easier programming. It also has UART terminal access over USB and a boost converter for transforming 3.7V from a battery into 5V.
So after making a couple of projects with the onboard components, someone might be wondering if there's a way to expand this functionality. And the answer is yes. There are several add-on boards that can be connected to that 6-pin header on the PCB that provide extended features. One of these modules is the Envirosense Add-on, and it is able to read the temperature, pressure, relative humidity, altitude, UV light levels, visible light levels, and color, which makes this single package very versatile.
Another great board is the GPS Add-on, and it has a Quectel L80-M39 GPS receiver that gets the location and sends it over the bus to the CodeBug.
As a device that has onboard Wi-Fi, the CodeBug is partially intended for use as a datalogger. This means it can gather information from some of its sensors and either store it inside of the 4MB of flash storage or send it wirelessly to an access point. Imagine having a smart squirrel feeder that can send an alert via IFTTT to your phone when an animal is detected, or make LEDs light up in a certain pattern based on the current weather.
Arduino boards typically only support C/C++ programs, such as those written in the Arduino IDE. Raspberry Pi boards are normally programmed with Python, C, or C++. The CodeBug combines the best of both worlds. Because it runs an OS, there is a CircuitPython interpreter running on top of it. But if the programmer prefers the C family of languages instead, it can run programs compiled using Arduino libraries and toolchain.