Table of Contents
The goal of this project is to demonstrate IDT’s wireless charging technology and the use of supercapacitors as an alternative to battery backups. The device also uses an XBee wireless module to communicate with another identical device with each sending the state of charge to the other. The incoming data is then processed through a microcontroller and written to an LCD display via I2C.
Linear Technology’s LTC3110 buck-boost supercapacitor charger
Microchip’s PIC16F1708 8-bit microcontroller
Digi’s XBee 802.15.4 wireless module (XB24-API-001)
Newhaven I2C LCD Display NHD-C0220BIZ-FS(RGB)-FBW-3VM
Digi’s XCTU software
Figure 1. Schematic view.
Figure 1 shows the schematic of the main PCB. Header JP1 is the +5V input from the IDT receiver which is fed into the input of the MIC29300 LDO regulator (U2). While the +5V from the wireless charger is present, the MIC29300 provides 3.3V to the rest of the board and acts as the input to the LTC3110 charger (U1). The voltage divider on the DIR pin of the LTC3110 will be set above its rising threshold and put in charging mode. The charge current can be programmed up to 2A with a resistor, but in this application we set it to 500mA. When the +5V is removed, DIR will become low and the capacitors will be used as the input. The 3.3V system voltage is then provided by the LTC3110. The Schottky diode (D1) prevents backward current flow during backup mode.
Meanwhile, the PIC16F1708 microcontroller (U3) reads the voltage at the midpoint of the capacitors on RA4 and converts it into a percentage. The percentage is written to the LCD display over I2C and sent over UART to the XBee module (U4) to be transmitted. The device is calibrated for the 100% point being 5.0V and the regulator cuts out around 0.25V. Therefore, the device will lose power when the display shows approximately 10% charge.
Figure 2. Layout view.
Figure 2 shows the layout of the main board. Pay special attention to the manufacturer’s recommended layout for the LTC3110 buck-boost converter to ensure stability and good thermal performance.
This board was fabricated by OSH Park and follows their design rules. It has two layers and measures 90.7mm x 69.5mm. The zip file below contains the Gerber and drill files necessary to reproduce this design.
First, let’s start with the settings of the XBee module. The settings can be programmed through Digi International’s XCTU software. For this project, a USB adapter board like Sparkfun’s WRL-11812 was used to program the device. I have left all the settings at the default values aside from the addresses, which can be seen below in Figure 3.
Figure 3. XCTU settings.
Note that the destination and source addresses would need to be flipped on the other unit. This application doesn’t require very long distance transmission, so the lowest power setting is okay, but since we have plenty of power to spare I left it at the highest. This can be scaled as necessary.
Note: You may notice that there is an I/O line from the microcontroller (RC2) to the SLEEP_RQ pin on the XBee module. The pin hibernate or sleep functions can be used, but be warned that the devices can become out of sync and miss data packets. No sleep function is used in the final build of this project.
Since this project uses multiple peripherals on the PIC16, Microchip’s Code Configurator extension for MPLAB X is very useful for getting everything up and running quickly. The individual settings and API definitions can be found in the full project below, but I will highlight the main settings here:
- Clock set as INTOSC 16MHZ_HF
- I2C at 100kHz with 7-bit slave addresses
- USART with transmit enabled and continuous receive at 9600 baud
- ADC using VDD as positive Vref and clock set at FOSC/64, using channels AN3 and AN7
- TMR0 with 10ms period using a prescaler of 256, callback rate of 1000ms, interrupts enabled
- TMR1 with 1ms period from FOSC/4, interrupts enabled
Important: The I2C slave address for the LCD of 0x78 that is given in the data sheet will not work as is. It has been pre-shifted to include the R/W bit and will not translate correctly if passed to the Microchip I2C APIs. It needs to be shifted right one bit. So the correct 7-bit address is 0x3C.
Full MPLABX project: Embedded World Project.X.zip
Bill of Materials
Quantities provided are for making one complete project with two boards.
Table 1. Bill of Materials
IC REG BUCK BOOST ADJ 2A 24TSSOP
IC REG LDO 3.3V 3A TO263-3
IC MCU 8BIT 4K FLASH 20DIP
MOD XBEE 802.15.4 1MW W/PCB ANT
LCD DISPLAY RGB LED BKLT 20 X 2
CONN RCPT 10 POS 2MM PITCH TH - Xbee headers
CONN IC DIP SOCKET 20POS TIN - PIC
FIXED IND 2UH 6.3A 11.7 MOHM SMD
DIODE SCHOTTKY 20V 1A 1206
CAP CER 47UF 6.3V X5R 0805
CAP CER 0.1UF 6.3V X7R 0805
Ccap, C3, C4
CAP CER 1UF 16V X7R 0805
CAP CER 10UF 6.3V X5R 0805
CAP CER 0.22UF 6.3V X7R 0805
CAP 27UF 2.5V 20%
RES SMD 12.1K OHM 1% 1/8W 0805
RES SMD 536K OHM 1% 1/8W 0805
RES SMD 1.91M OHM 1% 1/8W 0805
RES SMD 51.1 OHM 1% 1/8W 0805
RES SMD 976K OHM 1% 1/8W 0805
RES SMD 221K OHM 1% 1/8W 0805
RES SMD 7.5K OHM 1% 1/8W 0805
RES SMD 2.49K OHM 1% 1/8W 0805
RES SMD 4.7K OHM 1% 1/8W 0805
RES SMD 150 OHM 1% 1/8W 0805
Table 2. External Components.
EVAL KIT FOR P9038 - Transmitter
EVAL KIT FOR P9025 - Receiver
BOX PLSTC CLEAR 4.72"L X 3.15"W
HEX STANDOFF 8-32 ALUMINUM 1"
MACHINE SCREW PAN PHILLIPS 8-32
SPARKFUN XBEE EXPLORER USB
Comments, feedback, and questions can be sent to: firstname.lastname@example.org