Support Home


Tools, Drivers, etc


Product Support

Pre-compiled Binary Images

Pre-compiled boot strap code.
Pre-compiled device tree binary.
Pre-compiled Linux 4.5.2 kernel image.
Embedded Linux file system UBI image Embedded Linux File System.

Board Connection Diagram

Getting Started

The GESBC-9G25i comes from factory with Linux pre-installed and ready to run.

  1. Connect a 9 ~ 24V DC power supply to J1
  2. Connect a null modem serial cable between GESBC-9G25i debug port and PC/terminal serial port.
  3. Launch a terminal emulation program, such as HyperTerminal, putty, or minicom, on the PC configured to connect to the serial port of the GESBC-9G25i. Configure the serial port with the following parameters: 115200 bits per second, 8 data bits, no parity, 1 stop bit, no flow control.
  4. Connect the board to a local area network (optional)

When GESBC-9G25i powers up the system boot message will be displayed on the terminal screen.

Power Connection

The GESBC-9G25i Industrial Computer can use a wide range of DC power supply.

Connector Pin 1 Pin 2
J1 7.5VDC ~ 25VDC Ground

JTAG Connection

The GESBC-9G25i supports JTAG interface. The JTAG connection is on the back side of the PCB with a 2x5 surface mount header (unpopulated from factory). The JTAG signal arrangement is shown in the following table

Pin 1 Pin 3 Pin 5 Pin 7 Pin 9
Pin 2 Pin 4 Pin 6 Pin 8 Pin 10

RS-232 Port connection

The GESBC-9G25i has a debug serial port P0 that can be connected to desktop system to debug/monitor system. The debug serial port communication settings are 115200,8,N,1.

The DB9 connector P2 on the GESBC-9G25i connects to USART2 of the processor.

The header connector P3 is connected to the UART0 of the processor.

Pin 1 Pin 2 Pin 3
P0 (debug serial port) Rx Tx GND
P3 (UART0) Rx Tx GND

RS-485 Connection

The RS-485 interface on the GESBC-9G25i is on the 3 pin 2.54mm spacing header P3. It is connected to USART0 of the AT91SAM9G25 processor. The Linux device node is /dev/ttyS1.

Connector Pin 1 Pin 2 Pin 3
P3 RS-485-A RS-485-B GND

Sample RS-485 communication C program to send data through the RS-485 port.

ZigBee Network

ZigBee is a wireless technology developed as an open global standard to address the unique needs of low-cost, low-power wireless M2M networks. Applications include wireless light switches, electrical meters with in-home-displays, traffic management systems, and other consumer and industrial equipment. The GESBC-9G25i contains a socket to provide direct plug-in interface to XBee line of modules by Digi. The GESBC-9G25i can be easily configured as ZigBee network gateway with the ZigBee plug-in module.

The XBee socket M1 signals are listed in the following table,

Pin # Name GPIO Pin Name Description
1 Vcc NA 3.3V power supply from GESBC-9X25
2 Dout PC23 ZigBee module UART data out
3 Din PC22 ZigBee module UART data in
5 RSTn NA Low active reset for ZigBee module
12 CTSn PC25 Clear-to-Send Flow Control
16 RTSn PC24 Request-to-Send Flow Control

Note: pins not listed in the above table have no connection on the GESBC-9G25i.

High Current Digital Output Ports

The GESBC-9G25i has 8 high current drive digital outputs. The driver stage uses power MOSFET. The maximum voltage is 60VDC. The maximum continuous drain current @10VDC @32° is 1.2A.

The terminal block J21 provides the digital output connection.

Pin # on J21 GPIO From CPU Pin Device node
O1 PC10 /sys/class/gpio/pioC10
O2 PC11 /sys/class/gpio/pioC11
O3 PC12 /sys/class/gpio/pioC12
O4 PC13 /sys/class/gpio/pioC13
O5 PC14 /sys/class/gpio/pioC14
O6 PC15 /sys/class/gpio/pioC15
O7 PC16 /sys/class/gpio/pioC16
O8 PC17 /sys/class/gpio/pioC17

The output port can be controlled by sending a logic 1 or 0 to the corresponding device node. For example,

  echo "1" > /sys/class/gpio/pioC10/value

Please note a logic value 1 send to the output will turn on the output MOSFET and pull the output low.

Protected Digital Inputs

The GESBC-9G25i has 6 protected digital inputs. The protected inputs can withstand over voltage up to 30V.

Pin # on J21 GPIO From CPU Pin Device node
I1 PA24 /sys/class/gpio/pioA24
I2 PA25 /sys/class/gpio/pioA25
I3 PA26 /sys/class/gpio/pioA26
I4 PA27 /sys/class/gpio/pioA27
I5 PA28 /sys/class/gpio/pioA28
I6 PA29 /sys/class/gpio/pioA29

The input value can be read directly from the device node, for example,

  cat /sys/class/gpio/pioA26/value

4 channel 10 bit analog inputs

The GESBC-9G25i has 4 channel single ended analog inputs connected to the on-chip A/D.

A/D Signal AN0 AN1 AN2 AN3 GND
Pin on J21 Pin A1 Pin A2 Pin A3 Pin A4 GND
CPU Pin # PB11 PB12 PB13 PB14 N/A

Digital GPIO (LVTTL)/IO Expansion

The GESBC-9G25i has 14 LVTTL digital GPIO lines on J24 that also includes SPI and I2C bus. These GPIO ports are connected directly to the ARM processor. The maximum output current is 4mA.

Pin # Name Description
1 PA11 CPU GPIO group A line 11 (MISO)
2 PA12 CPU GPIO group A line 12 (MOSI)
3 PA13 CPU GPIO group A line 13 (SPCK)
4 PA14 CPU GPIO group A line 14 (CS0)
5 PA21 CPU GPIO group A line 21
6 PA22 CPU GPIO group A line 22
7 PC0 CPU GPIO group C line 0 (TWD1)
8 PC1 CPU GPIO group C line 1 (TWCK1)
9 PC2 CPU GPIO group C line 2
10 PC3 CPU GPIO group C line 3
11 PC4 CPU GPIO group C line 4
12 PC5 CPU GPIO group C line 5
13 PC6 CPU GPIO group C line 6
14 PC7 CPU GPIO group C line 7
15 GND
16 GND

FLASH memory Allocation Map From Factory

The GESBC-9G25i has 128MB of NAND FLASH. The FLASH memory is "soft" partitioned into several regions as system storage. The storage map is shown in the following table.

0x0000_0000 ~ 0x0003_FFFF: Bootstrap code /dev/mtd0
0x0018_0000 ~ 0x001F_FFFF: Linux device tree binary file /dev/mtd1
0x0020_0000 ~ 0x007F_FFFF: Linux kernel /dev/mtd2
0x0080_0000 ~ 0x0FFF_FFFF: Root File System /dev/mtd3

Update System Software

The Linux kernel and device tree binary can be updated in-system. The following example updates the Linux kernel image in the NAND FLASH,

 # flash_eraseall /dev/mtd2
 # nandwrite -p /dev/mtd2 zImage

Please note the example above assumes the kernel image size is less than 6MByte. The NAND FLASH must be erased before writing new kernel image.

Application Development

Cross Development

A Linux based host system can be used as the cross development system. To use a general purpose Linux desktop for cross development the ARM Linux cross compiler and commonly used development tools must be installed. The factory installed embedded file system is based on Buildroot 2015.02 using glibc 2.19, binutils 2.25. The cross compiler tool chain must have compatible library in order for the cross compiled program to run on the target system.

Below is a simple example cross compiling the hellowWorld application,

  arm-linux-gnueabi-gcc -o helloWorld helloWorld.c

With cross compiler tool chain and development tools properly installed the cross compiling process is no different than native compiling process except the compiler name would be the cross compiler name.

Below are two pre-built Linux virtual machine images (compatible with VMWare VMWorkstation VMPlayer) has ARM cross development tools installed and ready to use.

In-System Development

The GESBC-9G25i also supports on-target development that allows developer to write, compile, and test program on-target. The following easy step-by-step instructions demonstrates the simple process,

  • Prepare the USB/SD storage by make an ext2/3 file system using mkfs.ext2/mkfs.ext3 command, for example
          # mkfs.ext2 /dev/sda1
          # mkfs.ext2 /dev/mmcblk0p1
  • Boot the GESBC-9G25i with USB/SD inserted. Mount the USB/SD to /mnt directory
          # mount /dev/sda1 /mnt 
          # mount /dev/mmcblk0p1 /mnt
  • Download the Debian file system and unpack it to USB/SD storage
          # cd /mnt
          # wget http://www.glomationinc.com/Support/GESBC-9G25w/debian-armel-8.4.xz
          # tar xf debian-armel-8.4.xz
  • Create a chroot proc directory in /mnt if it does not exist
          # mkdir -p /mnt/proc
  • Download development tools
          #apt-get install gcc

The above steps only need to be done once to prepare the USB/SD storage.

To switch to the on-target development system,

          # mount /dev/sda1 /mnt                      (if it has not been mounted)
          # mount -t proc proc /mnt/proc
          # chroot /mnt /bin/sh

Use the exit command to leave the development environment. Please remember to umount the /mnt/proc after leaving the development environment.

          # umount /mnt/proc

Additional Information

For customers that would like to build their own Linux kernel and/or file system. The following link provides information on build tools, kernel source, etc. Linux & Open Source related information for Atmel AT91SAM9Gx5 ARM Microcontrollers