Skip to content

Wireling Arduino Shield

TinyCircuits Wireling Arduino Shield product photo

Description

This Arduino Shield allows users to add Wirelings to their Standard Arduino projects. Featuring a 4-channel Multiplexer, Real-Time Clock (RTC), on-board voltage regulation and level shifting, this board allows you to add up to 4 Wireling Boards to your project with ease!

Technical Details

TI PCA9544A Multiplexer Specs

  • I²C Bus 
  • Four Active-Low Interrupt Inputs
  • Active-Low Interrupt Output
  • Three Address Pins 

DS1339 I²C Serial Real-Time Clock (RTC)

  • Manages all Timekeeping functions: Counts Seconds, Minutes, Hours, Date of the Month, Month, Day of the Week, and Year with Leap-Year Compensation Valid Up to 2100
  • Two Time-of-Day alarms

    Power Requirements

    • Voltage: 3.0V - 5.5V 

    Pins Used

    • A5/SCL - I²C Serial Clock line
    • A4/SDA - I²C Serial Data line
    • IO2 - Used for RTC
    • IO3 - Used for RTC
    • IO4 - Power Control 

      Dimensions

      • 53.34mm x 57.58mm (2.1 inches x 2.27 inches)
      • Max Height: 12.5mm (0.48 inches) Measured from the top of the 5-pin connectors, and the bottom of soldered header pins
      • Weight: 10 gram (.35 ounces)

      Materials

      Hardware

      • Wireling Arduino Shield
        • You will also need a compatible Arduino, and all of the supporting cables involved with the platform
      • Wireling Cable(s)
        • Suggested: A mix of I²C, and Input/Output Wirelings to better use/understand the example program included in this tutorial

      Software


      Hardware Assembly

      All you will need to do for hardware assembly, is to match up the pins between your Arduino board and the Wireling Arduino Shield.

      Be careful when inserting and removing the Shield: keep the pins on each side as even with each other as possible to avoid any damaged or bent pins.


      Software setup

      For this Shield, you just need the Wireling Library. If you have not already downloaded the library from under the the Software section above, do that now and save the library to the proper folder. For some options on installing into a library, check out our Library Installation Help Page.


      Upload Your First Program

      The example program included with the Wireling library detects Wirelings attached to it's ports. You can open the program from the Arduino IDE under File/Examples/Wireling/WirelingScanner.

      Or you can open it from your Folder Explorer under Documents/Arduino/libraries/Wireling/examples/WirelingScanner and doubke-click it to open in the Arduino IDE.

      Wireling Program
      //-------------------------------------------------------------------------------
      //  TinyCircuits Wireling Basic Example
      //  Last Updated 4 December 2019
      //
      //  This example shows how to scan for I2C devices on each port as well as print
      //  out the state of the analog pin on each port.
      //
      //  Written by Ben Rose for TinyCircuits, https://TinyCircuits.com
      //-------------------------------------------------------------------------------
      
      #include <Wire.h>
      #include <Wireling.h>
      
      #if defined (ARDUINO_ARCH_AVR)
      #define SerialMonitorInterface Serial
      #elif defined(ARDUINO_ARCH_SAMD)
      #define SerialMonitorInterface SerialUSB
      #endif
      
      void setup() {
        Wire.begin();
        Wireling.begin();
        SerialMonitorInterface.begin(9600);
      }
      
      void loop() {
        for (byte port = 0; port < 4; port++) {
          Wireling.selectPort(port);
          SerialMonitorInterface.print("Port ");
          SerialMonitorInterface.print(port);
          SerialMonitorInterface.print(": ");
          int nDevices = 0;
          for (byte I2Caddress = 1; I2Caddress < 127; I2Caddress++ )
          {
            if (I2Caddress != 0x68 && I2Caddress != 0x70) { // Ignore the multiplexer and RTC address
      #if defined(_VARIANT_ROBOTZERO_)
              // On RobotZero, ignore the built in IMU, motor current setting digital potentiometer, and servo driver MCU
              if (I2Caddress != 0x1C && I2Caddress != 0x2F && I2Caddress != 0x6A) {
      #endif
                Wire.beginTransmission(I2Caddress);
                if (!Wire.endTransmission()) { // This means that a device has acknowledged the transmission
                  SerialMonitorInterface.print(" 0x");
                  if (I2Caddress < 16) {
                    SerialMonitorInterface.print("0");
                  }
                  SerialMonitorInterface.print(I2Caddress, HEX);
                  nDevices++;
                }
      #if defined(_VARIANT_ROBOTZERO_)
              }
      #endif
            }
          }
          if (nDevices == 0) {
            SerialMonitorInterface.print("None\t");
          } else {
            SerialMonitorInterface.print("\t");
          }
          int portAnalogPin = A0 + port;
          if (digitalRead(portAnalogPin)) {
            SerialMonitorInterface.print("High");
          } else {
            SerialMonitorInterface.print("Low");
          } 
          SerialMonitorInterface.print("\t");
        }
        SerialMonitorInterface.println();
      
      }
      

      This program works best if you have Wirelings to test with, as the Serial Monitor when opened will report the LOW/HIGH status, as well as the I²C address of any device on a given port (0-3).

      If you ever encounter issues later on with Wirelings, you can come back to this program to make sure you are still receiving some type of signal from the port and device you are using.

      Now you are ready to build any Wireling project!


      Projects

      If you want to learn how to use several Wirelings at once with just a few basics components, head over to the Basic Kit Tutorial that uses these Wirelngs:

    • RGB LED Wireling
    • Digital Hall Sensorireling with a Magnet
    • Buzzer Wireling
    • 0.42" Screen Wireling
    • Large Button Wireling
    • Ambient Light Sensor Wireling

    • Downloads


      Contact Us

      If you have any questions or feedback, feel free to email us or make a post on our forum. Show us what you make by tagging @TinyCircuits on Instagram, Twitter, or Facebook so we can feature it.

      Thanks for making with us!