HOME   PRODUCTS    ACCESSOIRES     SHOP   SUPPORT   CONTACT                                                                    中文

Input Voltage  - 6V to 20Vdc converted to 5V, 3A via step-down DC/DC converter to power the Raspberry Pi 
RS232 serial
 - Control the Raspberry Pi over RS232 or connect to external serial accessories 
RS485 serial
 - You will be able to have a communication port for your field bus directly connected to your RPi!
 - It will allow up to 32 devices to communicate through the same data line over a cable length of up to
   4,000ft with a maximum data rate of 10Mbit/s.
Audio  - 3.5mm MIC in jack
 - 3.5mm stereo audio jack
 - Audio IO connector (Microphone input and stereo audio amplifier 3.3Wx2)
Wireless  - WiFi (IEEE 802.11b/g/n) with external antenna
 - IR sensor (38KHz)
USB Storage  - Self-powered USB hub with 3 ports 
Real-time clock (RTC)   -  Based on DS3231SN with included CR2032 battery
GPIO Control  - 8-channel Darlington driver chip  (ULN2803) allowing to control electronic circuits which require more
Misc  - Power output socket
 - Camera flex slot so camera can still be used with the expansion  board attached
 - DIP switch to remove connection from RPi’s pin header
 - Directly connected on top of the Raspberry Pi using the board GPIO header pins
 - No wiring nor soldering is required
 - Duplicated the 40-pin header of the R-Pi in order to support existing expansion boards
Suitable for Raspberry Pi Model B+, Raspberry pi 2 Model B and Raspberry Pi 3 Model B NEW!
Dimensions  - 85 x 56mm (Same size as Raspberry Pi) 


      1 x X205 expansion board

      1 x USB adapter

      1 x 2.4GHz WIFI antenna

      4 x nylon spacers (M3 x 20mm)

      8 x nylon screws  (M3 x 6mm)


  A. Fitting the expansion board
  B. Operation system
Power supply
RS232 communications
  E. Testing of
RS485 communications
Microphone input and audio output
Audio input and output interface
Setting RTC time
Setting up the IR remote
ULN2803 8-channel RC servo port

1. Push a screws up through the mounting hole on the underside of the Raspberry Pi and screw the spacer down until it is hand tight    2. Plugs the expansion board straight into     your Raspberry Pi B+'s GPIO header and       screw  down   3. Insert the USB adapter
4. Install the WiFi antenna        


Xseries expansion board supplies the RPi with a regulated +5V through the GPIO header using a 2A poly-resettable (PTC) fuse. With the wide voltage input range (6~20Vdc), the RPi can be powered from a wide variety of external sources such as batteries, 12V power adapters, solar battery sources, etc.

Recommended Power Adapter : 110~240VAC input, 12VDC 2A output  
Dimension of input plug (Unit: mm)

Warning: do not connect a +5V supply through the Raspberry Pi micro-USB connector when used with this expansion board.


The RS232 port is connected to the UART port on the Raspberry Pi using a MAX3232 interface. The MAX3232 IC converts the 3.3V UART port to RS232 voltages allowing communication with RS232 compatible devices over a DB9 serial cable or with the use of a null-modem cable the board allows terminal access with linux on the Raspberry Pi using a terminal application. The RS232 port can be accessed through the terminal block on x205.

Schematic diagram

Configuring and using terminal application on your PC

PuTTY configuration (COMX, X= Serial port number)

What is RS485

Please click on the link below for further details of RS485.


Install Dedendecy Libraries (Raspbian)

1. Update source list

$ sudo apt-get update

2 . Install python-pip

$ sudo apt-get install python-pip

3.Use pip to install WiringPi (WiringPi is designed for raspberry pi to behave similarly to that of the wiring library under Arduino.   After this library is  installed,c  or shell or python can use the  function to configure and control GPIOs directly.  :

$ sudo pip install wiringpi

4. Installed the associated library files of serial ports :

$ sudo apt-get install python-serial

5.Test whether the GPIO library and the serial library is installed or not:

$ python

$ import RPi.GPIO

$ import serial

If there is no error , then the two libraries are installed correctly.

6. We need to configure  file ‘/boot/cmdline.txt’ to remove the kernel booting information and debug message:

$ sudo nano / boot / cmdline.txt

You can see the following information:

dwc_otg.lpm_enable = 0 console = ttyAMA0, 115200 kgdboc = ttyAMA0, 115200 console = tty1 root = / dev/mmcblk0p2 rootfstype = ext4 elevator = deadline rootwait

Remove “console = ttyAMA0, 115200 kgdboc = ttyAMA0, 115200″ so that the information becomes:

dwc_otg.lpm_enable = 0 console = tty1 root = / dev/mmcblk0p2 rootfstype = ext4 elevator = deadline rootwait

7. Disable log in from the serial port:

$ sudo nano / etc / inittab

and comment out ” T0: 23: respawn :/ sbin / getty-L ​​ttyAMA0 115200 vt100″

8 Restart Raspberry Pi:

$ sudo reboot

Now you can use / dev/ttyAMA0 like the regular COM port.

Python Test Code

Test code(serial_test.py , unzip and save to /home/pi ) :

Test Tools

1 x Raspberry Pi

1 x X205 expansion board for Raspberry Pi

1 x Cable (two conductors)

1 x  USB-RS485 converter

Wire Diagram and Test


X205 RS485 ‘A’-> USB-RS485 converter ‘ A ‘

X205 RS485 ‘B’-> USB-RS485 converter ‘ B ‘

After the wiring is done, launch a serial terminal. We use X-CTU in our case, and set the baud rate  to 9600:

After running serial_test.py, enter the characters in the X-CTU:



To configure X300 sound card as the default audio device.

<1> Right-click the volume icon, a pop-up menu appears to allow you to select "USB PnP Sound Device".

Click "Device Settings..." to allow more detailed control of the X300 audio devices – you can access this either under Device Settings from the volume right-click menu or from the Preferences section of the main menu, where it is listed as Audio Device Settings.


From this dialog, select the device you want to control from the drop-down at the top, and then press the Select Controls button to choose which of the controls the device offers that you want to display. Pressing the Make Default button on this window has the same effect as choosing an output source in the volume right-click menu.

Let's record the sound with LXterminal
pi@raspberrypi ~ $   arecord -D plughw:1,0 -f cd test.wav

Press Ctrl + C to abort recording
Playback the recording with aplay
pi@raspberrypi ~ $   aplay test.wav

 This page details how to setup the RTC Pi on the Raspbian Jessie image from http://www.raspberrypi.org/downloads

<7> Ensure that the CR2032 coin battery was inserted into the battery holder.  Using the expansion board without a battery installed may damage the RTC chip and will stop it from appearing on the I2C bus.

<8> Follow the instructions on how to install and configure I2C on Raspbian Linux.

<9> Once you have installed I2C check that the RTC Pi has been detected using:
pi@raspberrypi ~ $   sudo i2cdetect -y 1

The RTC Pi should appear on channel 68 as shown in the screen shot below.  If the RTC Pi does not appear check that the battery is installed correctly and is fully charged:

<10> Enable I2C by running:

pi@raspberrypi ~ $   sudo nano /etc/modprobe.d/raspi-blacklist.conf

Find the I2C line where the I2c is black listed
blacklist i2c-bcm2708

Comment it out by replacing it with the line below

#blacklist i2c-bcm2708

To ensure that the necessary kernel modules are loaded at boot, ensure your /boot/config.txt file has the entry below …
pi@raspberrypi ~ $   sudo nano /boot/config.txt

Save your changes by pressing Ctrl-x then Y

<13> Edit /lib/udev/hwclock-set with

pi@raspberrypi ~ $   sudo nano /lib/udev/hwclock-set

<14> Locate the lines and edit

Comment following three lines in config.txt by adding '#' located at start of the line. (check Images below)

<16>  Save your changes by pressing Ctrl-x then Y

Reboot your Raspberry Pi
pi@raspberrypi ~ $   sudo reboot
Get the right time set on the Pi ,
pi@raspberrypi ~ $   sudo date MMDDHHMMYYYY.SS 
              (MM= Month, DD= Date, HH= Hour, MM= Minute, YYYY= Year, SS= Second ) 
                                          example:  2013 Jan 4 , 11:39:00 , sudo date 010411392013.00 

Write the system time to the expansion board,
pi@raspberrypi ~ $   sudo hwclock -w
Verify the time ,
pi@raspberrypi ~ $   sudo hwclock -r

If everything worked correctly the expansion board should be initialised on boot and the current date and time will be loaded into Linux.
<21> Installing LIRC
pi@raspberrypi ~ $   sudo apt-get install lirc

Add the two lines below to /etc/modules . This will start the modules up on boot. Pin 8 bellow will be used to take the output from the IR sensor.
pi@raspberrypi ~ $   sudo nano /etc/modules
lirc_rpi gpio_in_pin=8

Save your changes by pressing Ctrl-x then Y

<24> Edit your /boot/config.txt file
pi@raspberrypi ~ $   sudo nano  /boot/config.txt

and add:

<25> Edit /etc/lirc/hardware.conf and have it appear exactly as shown below.
pi@raspberrypi ~ $   sudo nano /etc/lirc/hardware.conf

# /etc/lirc/hardware.conf 
# Arguments which will be used when launching lircd 
# Don't start lircmd even if there seems to be a good config file 
# Don't start irexec, even if a good config file seems to exist. 
# Try to load appropriate kernel modules 
# Run "lircd --driver=help" for a list of supported drivers. 
# usually /dev/lirc0 is the correct setting for systems using udev 
# Default configuration files for your hardware if any 

The highlighted text are the parts that will need changing, though it’s worth checking the rest of the text incase you have a different initial configuration.

Save your changes by pressing Ctrl-x then Y

<27> Reboot the Raspberry Pi
pi@raspberrypi ~ $   sudo reboot

Run these two commands to stop lircd and start outputting raw data from the IR receiver

pi@raspberrypi ~ $   sudo /etc/init.d/lirc stop
pi@raspberrypi ~ $   mode2 -d /dev/lirc0

<29> Point a remote control at your IR receiver and press some buttons. You should see something like this:  

Bring in some muscle to your output pins with 8 mighty Darlingtons! This driver chip contains 8 drivers that can sink 500mA from a selectable 5V or DC input voltage supply and has kickback diodes included inside for driving coils. This will let your little microcontroller or microcomputer power solenoids, DC motors (in one direction) and unipolar stepper motors. The GPIO Pins are connected to ULN2803 inputs through a DIP switch, with the its outputs going to two array of Wire-to-Board header. Alternatively, these ports can be used to supply +5V or input voltage to other external circuitry, or embedded devices.

Please note that this is an 'open collector' driver - it can only be used to connect the load to ground and there will be a 1 Volt (or more) 'drop' across the internal transistors.

Schematic diagram            Raspberry Pi GPIO Pin numbering             ULN2803 Datasheet


Optional driver to install - WiringPi

Install GIT
pi@raspberrypi ~ $   sudo apt-get install git-core
<2> Download WiringPi
pi@raspberrypi ~ $   git clone git://git.drogon.net/wiringPi
<3> Enter the directory of wiringPi
pi@raspberrypi ~ $   cd wiringPi

<4> Install wiringPi
pi@raspberrypi ~ $   ./build

<5> Test GPIO port
pi@raspberrypi ~ $   gpio mode x out (x = 0~7)
pi@raspberrypi ~ $   gpio write x 1 (x=0~7, 1=On)
pi@raspberrypi ~ $   gpio write x 0 (x=0~7, 0=off)

All Rights Reserved