🌑️  Monitor legacy analog systems with TinyML, Edge Impulse, and Blues Wireless. Learn more in our webinar on May 26th!

Search
Documentation Results
End of results
Community Results
End of results
Support
Blues.io
Notehub.io
Shop
Sign In
Search
Documentation Results
End of results
Community Results
End of results
Support
Blues.io
Notehub.io
Shop
Γ—
HomeNotecardNotecard API ReferenceNotecard Guides
Notecard Firmware Updates
Notecard Walkthrough
Overview
Notecard Requests & Responses
JSON Fundamentals
Notecard InterfacesUsing the Notecard Interface with a Firmware Library
Essential Requests
Time & Location Requests
Inbound Requests & Shared Data
Web Transactions
Low Power Design
Low Bandwidth Design
Host Firmware Update Requests
Advanced Notecard Configuration
Notecard Error and Status Codes
Rate this page Β 
  • β˜…
    β˜…
  • β˜…
    β˜…
  • β˜…
    β˜…
  • β˜…
    β˜…
  • β˜…
    β˜…

Notecard Interfaces

Requests can be issued to the Notecard over USB, UART, or I2C. The Serial UART interface is fixed at a baud rate of 9600, with eight data bits, no parity bit, and one stop bit (9600/N-8-1).

The Notecard I2C interface is available at address 0x17, but can be reconfigured using a card.io request. This interface implements a straightforward serial over I2C protocol.

Using the Notecard Interface with a Firmware Library

The simplest way to initiate a connection with the Notecard from firmware is with one of our firmware libraries. Using this approach, you can initialize the Notecard over the appropriate interfacing using a few lines of code. For instance, with Serial:

    #include <Notecard.h>
    
    Notecard notecard;
    notecard.begin(Serial1, 9600);
    import notecard
    import serial
    
    port = serial.Serial("/dev/serial0", 9600)
    card = notecard.OpenSerial(port)

    Or with I2C:

      #include <Notecard.h>
      
      Notecard notecard;
      notecard.begin();
      import notecard
      from periphery import I2C
      port = I2C("/dev/i2c-1")
      
      card = notecard.OpenI2C(port, 0, 0)

      Using the Notecard Interface with Simple Serial I/O

      Alternatively, it's possible to manually communicate with the Notecard over Serial in firmware using language-equivalent print() and read() functions.

        #define serialNotecard Serial1
        
        // Initialize the Notecard
        serialNotecard.begin(9600);
        serialNotecard.println("\n");
        
        // Send a hub.set request
        serialNotecard.println("{\"req\":\"hub.set\",\"product\":\""
                                myProductID "\"}");
        import json
        import serial
        
        serial = serial.Serial('/dev/ttyS0', 9600)
        serial.write(b'\n')
        
        req = {"req": "hub.set"}
        req["product"] = myProductID
        serial.write(bytearray(json.dumps(req), 'utf8'))
        serial.write(b'\n')

        The Notecard Serial-over-I2C Protocol

        If, on the other hand, you wish to use I2C without one of our firmware libraries, you'll need to write your own logic for writing to and reading from the bus. Your approach will vary from one language to the next, but you should use the existing implementations and the Serial-over-I2C Protocol Guide for reference.

        JSON FundamentalsEssential Requests
        Can we improve this page? Send us feedbackRate this page
        • β˜…
          β˜…
        • β˜…
          β˜…
        • β˜…
          β˜…
        • β˜…
          β˜…
        • β˜…
          β˜…
        Β© 2022 Blues Inc.Terms & ConditionsPrivacy
        blues.ioTwitterLinkedInGitHubHackster.io
        Disconnected
        Disconnected
        Having trouble connecting?

        Try changing your Micro USB cable as some cables do not support transferring data. If that does not solve your problem, contact us at support@blues.com and we will get you set up with another tool to communicate with the Notecard.

        Connect a NotecardClick 'Connect' and select a USB-connected Notecard to start issuing requests from the browser.