Embedded Computing
  • About
  • Blog
  • Hardware
    • Which Platform?
    • Controller Platforms >
      • Adafruit Platform
      • Arduino Plaform
      • BBC micro:bit
      • Espressif Platform
      • iLabs Platform
      • Raspberry Pi Platform (MCU)
      • Seeed Platform
      • Silicon Labs Platform
      • Teensy Plaform
    • Computer Platforms >
      • BeagleBone Platform
      • Raspberry Pi Platform (SBC)
      • UDOO Platform
    • Peripherals >
      • Shields
      • Grove System
      • Sensors
      • Actuators
    • Displays >
      • E-Paper Displays
      • Reflective Displays
      • TFT Displays
      • LCD Displays
    • Legacy Platforms >
      • chipKIT Plaform
      • 4D Systems Platform
      • Intel Platform
      • LaunchPad Plaform
      • BoosterPacks for LaunchPads
      • LightBlue Bean
      • Maple Plaform
      • Mediatek Platform
      • Microsoft Azure IoT DevKit
      • Particle Platform
  • Software
    • Exploring RTOS with Galaxia >
      • Event Library
      • Semaphore Library
      • Mailbox Library
      • Timer Library
      • Clock Library
      • SWI Library
      • Task Library
    • Ultra-Low Power with EnergyTrace >
      • Ultra-Low Power with MSP430
      • Ultra-Low Power with Energia MT and Galaxia
    • Using Integers Instead of Reals
    • Going Python?
  • IoT
    • IoT Platforms: Which Hardware? >
      • Matter with Silicon Labs MG24
    • IoT Services: Which Solution? >
      • Recommended IoT Solutions
      • Platform-Specific IoT Solutions
      • Other IoT Solutions
      • Not tested IoT Solutions
      • Notification Solutions
    • Get Date and Time from Internet with NTP
    • Fast and Easy WiFi Connection with QR-Code
  • Tools
    • How to Start?
    • Reference >
      • Asking for Help
      • Boards Pins Maps
      • Ruler
      • Boards and Plugs
      • I²C Logic Level Converter
      • Standards for Connectors
    • Training >
      • Texas Instruments Workshops
      • Embedded Systems: Shape The World — MOOC edX UTAustinX UT.6.02x
      • Embedded Systems - Shape The World: Microcontroller Input/Output — MOOC edX UTAustinX UT.6.10x
      • Embedded Systems - Shape The World: Multi-Threaded Interfacing — MOOC edX UTAustinX UT.6.20x
      • Real-Time Bluetooth Networks: Shape the World — MOOC edX UTAustinX UT.RTBN.12.01x
      • Systems Thinking with Texas Instruments Robotics System Learning Kit
    • Books >
      • Getting Started with the MSP430 LaunchPad
      • Getting Started with Arduino
      • Arduino Cookbook
    • IDE >
      • The Battle of IDEs
      • More Options
      • Assessing the Next Generation of IDEs
      • Tools for Documentation
    • Equipment >
      • Saleae Logic Analyser
      • Rigol DS1102E Oscilloscope
      • XDS110 Debug Probe with EnergyTrace​
      • Segger J-Link Programmer-Debugger
      • Nordic Power Profiler Kit II
  • Projects
    • Libraries >
      • Master I²C Software Library
      • Date and Time Library
      • highView Library Suite
      • Others Libraries
    • smartDevices >
      • I²C smartColours Smart Sensor
      • I²C smartRFID Smart Sensor
      • I²C smartLED Display
      • I²C smartControls Smart Device
      • I²C smartWiFi Smart Device
      • I²C smartBLE Smart Device
      • I²C smartNode Smart Device
    • IoT Projects >
      • Remote E-Paper Weather and Message Board
      • Typie-Walkie with LoRa and E-Paper Screen
      • Typie-Walkie with E-Paper Screen
      • Remote e-Paper Pictures Panel
      • Remote e-Paper Messages Panel
      • Industrial IoT Project
      • Remote Contactless Temperature Monitor
      • Using Node-RED for IIoT
      • Low Power Home Network Weather Monitoring
      • Updated Low Power Home Network Weather Monitoring
      • Weather and Security Station with Blynk
      • SensorTag to Blynk Using Node-RED
      • Pervasive Reporting
    • AI Projects >
      • Colour Recognition with Neural Network
    • Other Projects >
      • Air Quality Monitoring
      • Driving a Large E-Paper Display with a Compact Xiao RP2040
      • Low-Power E-Paper Weather Station
      • Portable Particulate​ Matter Monitor
      • FRAM-based E-Paper Screen Controller
      • General Purpose 3.5" Screen
      • Colour Recognition with Neural Network
      • A Low Power Weather Station
      • Digital Volt-Amp-Watt Meter
      • Mobile Measurement with LCD Display
      • Screen with SRAM for GUI
      • Volt-Amp-Watt-Meter for Grove
      • Multi-Touch Project with CapTIvate

CapTIvate Touch Keypad BoosterPack

The CapTIvate Touch Keypad BoosterPack is a welcome addition to the the CapTIvate Development Kit with a ready-to-use numeric pad.

It features a numeric keypad with additional pads for enter and cancel. The MSP430FR2522 comes flashed with firmware to send the proximity and the digits pressed through UART and I²C.
Picture

Hardware

The board includes 12 pads for the ten digits, enter and cancel, plus 14 red LEDs, one per pad and two for awake and detect.

The MSP430FR2522 manages the capacitive touch and sends the data through serial and I²C ports, and activates an interrupt to pin 12 or 27.

The LP3943 drives the LEDs and is connected to the MSP430FR2522 through a secondary I²C bus.
Picture

Software

For an unknown reason, the firmware didn't work as expected. A logic analyser showed a flat trace for the clock and data lines of the I²C bus.

Right, the logic trace with Channel 0 black for IRQ-A, Channel 5 green for I²C SDA and Channel 6 blue for I²C SCL.


Picture
However, I connected the board to a USB port through the programmer included in the CapTIvate Development Kit and used the  CapTIvate™ Design Center GUI for MSP430™ Capacitive Sensing MCUs.

The CapTIvate GUI displayed all the pads touched, and the proximity sensor as well. 
Picture
Luckily, the source code is provided as a CCS project. To solve the issue, I imported the project into CCS, built it and uploaded it using the programmer from the CapTIvate Development Kit.

​Eventually, the clock and data lines of the I²C bus worked as expected. The BoosterPack acts as an I²C slave device with 6 registers, as described at the I²C Slave Register Map Specification section. However, I wasn't able to use the last status registers.

Right, the logic trace with Channel 0 black for IRQ-A, Channel 5 green for I²C SDA and Channel 6 blue for I²C SCL.
Picture
After a period of inactivity, the BoosterPack enters low power mode. The LEDs are then turned off.

When proximity is detected, the BoosterPack wakes up and turns the LEDs on.

Pressing one pad turns the LED even brighter, although the finger hides it.

The 
LEDs are managed by the BoosterPack itself, and are not exposed to the LaunchPad I²C bus.

Pins Map

Picture

Conclusion

I was unpleasantly surprised by the issue with the flashed firmware. I had to build and flash the firmware from CCS to get the I²C bus activated. Although easy, the process requires an external programmer, taken from the CapTIvate Development Kit.

Once flashed with the correct firmware, the BoosterPack worked as expected, with proximity detection and clear reading of the pads touched. Developing a library for Energia was quick to complete.

Pros

  • Self-contained BoosterPack
  • Documentation, including three examples

Cons

  • Surprises with the firmware
  • LEDs managed by the BoosterPack, not exposed to the LaunchPad

Wrap-Up

  • A ready-to-use sensor
  • Excellent documentation

Links

  • CapTIvate landing page
  • Technology Guide
  • Hardware
  • Software
  • BOOSTXL-CAPKEYPAD Development Kit​ Wiki
Picture
Powered by Create your own unique website with customizable templates.