Author Archives: R-B

SiLabs BGM12x is the World’s Smallest Bluetooth Module

Silicon Labs introduces BGM12x, the industry’s smallest Bluetooth low-energy SiP module with an integrated antenna, offering a complete, cost-effective connectivity solution with no compromises in performance. Available in a tiny 6.5 mm x 6.5 mm package, the BGM12x Blue Gecko SiP module enables developers to miniaturize IoT designs by minimizing the PCB footprint including the antenna clearance area to 51 mm2 . Applications for this ultra-small, high-performance Bluetooth module include sports and fitness wearables, smartwatches, personal medical devices, wireless sensor nodes and other space-constrained connected devices.

BGM12x: The World's Smallest Bluetooth SiP Module

BGM12x: The World’s Smallest Bluetooth SiP Module

BGM12x Features Overview:

  • Best-in-class SiP module size: 6.5 mm x 6.5 mm x 1.5 mm
  • Integrated chip antenna with exceptional RF performance (70% antenna efficiency) and an RF pad option for connecting to an external antenna
  • Output power: +3 dBm to +8 dBm supporting ranges from 10 meters to 200 meters
  • Based on Silicon Labs’ Blue Gecko SoC combining a 2.4 GHz transceiver with a 40 MHz ARM Cortex-M4 processor core and 256 kB flash and 32 kB RAM
  • Energy-efficient Bluetooth solution consuming 9.0 mA (peak receive mode) and 8.2 mA @ 0 dBm (peak transmit mode)
  • Hardware cryptography accelerator supporting advanced AES, ECC and SHA algorithms
  • Industry-proven Silicon Labs Bluetooth 4.2 stack with frequent feature enhancements
  • Rapid time to market with global RF certifications
  • Easy-to-use development tools: Simplicity Studio, Energy Profiler, BGScript
  • Worldwide application engineering support

From Silicon Labs Blog

Using wrist as a joystick for controlling a smartwatch

A modern smartwatch is a great wearable computer that can do a lot more than just tell time. It can track user’s activities, monitor heart beat rate, synchronize with your smartphone to work as its extension, navigate you, and many more. Most of the time, operating a smartwatch requires a free hand (not the one with the watch strapped on). In certain situations, such as when you are holding something in your hand, it becomes challenging to use the smartwatch. A group of researchers from Dartmouth College and the University of Manitoba has come up with a solution called WristWhirl, exploring the potential to use the same wrist that is wearing the smartwatch as a joystick to operate the smartwatch.

Controlling a smartwatch with wrist gestures

Controlling a smartwatch with wrist gestures

In this paper, they described their prototype smartwatch that uses the wrist wearing the watch as an always-available joystick to perform common touchscreen gestures. The prototype watch is built from a 2″ TFT display and a plastic watch strap augmented with 12 infrared (940nm) proximity sensors to detect the wrist gestures. The user needs to initiate a gesture with a pinch. A piezo vibration sensor is implemented for sensing the user pinch. Once the pinch is detected, the proximity sensors are activated and ready to capture the wrist motion. The gesture must be terminated with another pinch, that will deactivate the proximity sensors to save battery power. The sensor readings are collected and processed using an Arduino DUE board.

A demo video of WristWhirl is posted below:

ChipKIT Project 6: BME280 Weather Station

BME280 is a fully integrated environmental unit from Bosch that combines sensors for pressure, humidity, and temperature in a tiny 8-pin metal-lid LGA package of size 2.5 x 2.5 x 0.93 mm³. Because of its compact size, ease of use (BME280 supports standard I2C and SPI interfaces), and availability of supporting open-source Arduino libraries, BME280 is very popular among weather enthusiasts. This project describes how to read barometric pressure, relative humidity, and temperature measurements from BME280 using chipKIT Uno32 to make a standalone weather station. The sensor readings are acquired over an I2C bus and are displayed on a Nokia 5110 LCD display.

BME280 weather station

BME280 weather station

Hardware setup

Nokia 5110 LCD was used in Nokia’s popular 5110 and 3310 model cell phones. It is a 48×84 pixels matrix LCD driven by the low-power PCD8544 controller chip. It is powered by 3.3V and includes on-chip generation of LCD supply and bias voltages, thus requiring minimum external components for its operation. The PCD8544 receives display data and commands from a microcontroller through a serial bus interface.

The LCD requires 5 I/O pins for full control. The pins available in almost every Nokia 5110 LCD modules are listed below:

  1. RST: Display reset input
  2. CE: Chip enable input
  3. DC: Data or Command select signal
  4. DIN: Serial data input
  5. CLK: Clock input
  6. VCC: 3.3V power supply
  7. BL: Backlight LED anode (connect to 3.3V)
  8. GND: Power supply ground

The connections between the chipKIT Uno32 and Nokia 5110 LCD are similar to what I used before in this article. The following figure shows the pin connections between the two.

Pin connections between Nokia 5110 LCD and chipKIT Uno32

Pin connections between Nokia 5110 LCD and chipKIT Uno32

There are lots of BME280 breakout modules available in the market. You can use any of them with access to the I2C pins. The SDA and SCL pins are then connected to A4 and A5 pins of chipKIT Uno32, respectively. Note that in order to use the A4 and A5 pins for I2C operation, the JP6 and JP8 jumpers on board chipKIT Uno32 must be placed in RG3 and RG2 positions, respectively. They are placed in the RG3/RG2 position to use the pins for I2C operation. The complete hardware setup for this project is shown in the following figure.

Connections between chipKIT Uno32, BME280 and Nokia 5110 LCD

Connections between chipKIT Uno32, BME280 and Nokia 5110 LCD

The actual setup of the project. The Nokia5110 LCD and BME280 sensor modules are laid out on a breadboard.

The actual setup of the project. The Nokia5110 LCD and BME280 sensor modules are laid out on a breadboard.

Software

We will need to install the following libraries prior to develop the firmware for this project.

Adafruit unified sensor library

Adafruit BME280 library

Nokia 5110 LCD library for chipKIT from Rinky-Dink Electronics, which contains two versions of the LCD libraries: LCD5110_Basic, which supports texts, and LCD5110_Graph, which supports text, graph, and bitmaps. In this project, only the Basic library is used, which can be downloaded from the following link.

Download LCD5110_Basic

The complete chipKIT program for this project can be downloaded from the following link:

Download_BME280_Weather_Station_Firmware

The program displays ambient temperature in Centigrade, humidity in %, and atmospheric pressure in hectopascal (hPa) units.

Output

After uploading the program to Uno32 board, the weather station is ready to rock. The following pictures shows the output displayed on the LCD screen.

Weather station displaying temperature, humidity, and pressure.

Weather station displaying temperature, humidity, and pressure.

Atmospheric pressure is shown in hPa unit.

Atmospheric pressure is shown in hPa unit.

Wifi controlled FPV rover

First Person View (FPV), also known as video piloting, provides a more exciting driver’s viewpoint for controlling a RC rover by mounting a video camera. This FPV two-wheeled robotic rover is controlled over a WiFi network via any internet browser using an HTML-based control interface. It features an Arduino Uno board that controls the movement of the rover by driving two stepper motors. Arduino gets the WiFi capability with the help of an ESP-01 module (ESP8266 board). The communication between the Arduino and ESP8266 is through a serial interface. An Android smartphone is mounted at the front of the rover for live audio/video broadcasting to the operator’s control interface.

DIY FPV rover

DIY FPV rover

When the Arduino is restarted, it will try to connect your wi-fi network automatically. Use the Serial Monitor to check if the connection was successfull, and to obtain which IP was assigned to your ESP-8266 by your router. Open the html file in an internet browser (Firefox) and inform this IP address in the textbox.

You might also user other means to find out which IP address you router assigned to your device.

Disconnect the the Arduino Uno from your computer and connect it to the power bank. Wait for it to connect again.

Launch IP Webcam app in the smartphone attached to the robot. Type the video/audio IP on your control interface and connect to the server and you’ll be ready to go. You might need to reduce the resolution of the video in the app to reduce the delay between during the transmission.

One-button meeting call

How fast and easily can you call for a video conference? This fancy arcade button can do that with a single press. The button is connected to a Mac-Mini and initiates a Zoom meeting automatically, when it is pressed. It uses the Digispark Attiny85 microcontroller board that emulates an USB keyboard that signals the MacOS about the button press.

One-button meeting call

One-button meeting call

The idea is simple, we use a really cheap micro controller and a fancy button (from an arcade mashine) and simulate an USB keyboard. This simulated Keyboard doesn’t need any special software driver because all operating systems automatically have drivers included and can use it.

When the button is pressed it will signal the operating system: “there was a button pressed”. Which button to use, can be configured inside this micro controller code.

Another software tool (e.g. Automator) is used to detect a button-press similar to a user pressing a special hot key and triggers a script which finally starts the Zoom client.

 

 

« Older Entries Recent Entries »