From AcceedWiki
Jump to: navigation, search

Matrix-500 is an embedded computer with 200MHz ARM9 RISC CPU manufactured by Artila. There are 4 high speed RS232 ports (1 port RS232/422/485 selectable), 2 USB host controller ports, 1 USB device controller port, 16 general purpose digital IO port (inside case connector). Matrix-500 uses ARM-Linux, so it behaves like a standard Linux machine regarding the handling of USB, serial and Ethernet ports. Users can upload their own programs in order to customize Matrix-500 for their special purpose. SDK for both Linux and Windows host PCs is included.

Note that other Matrix-5xx products have different features. For example, the USB device controller is only available on the Matrix-500.


Console Port

Matrix 500's console is disable as factory default setting. To enable the console port, please find the information attached. Because the console port (ttyS0) share the same pins with serial port P3 (ttyS3), user need to prepare a special cable to connect ttyS0 via the RJ45 connector of Port 3. To trigger the console port function, user need to press "@@@@" (Artila doc says "$$$$") continuously right after power up and after the screen show "Starting Matrix 500......." Remember to disable the console port before leaving the Loader program. Regarding the special cable, it is different from the RJ45 to DB9 cable used on Port 1 to Port 4 (Details)

For iPAC-50xx series, which have a dedicated Console port, simply connect the provided CBL-F10M9-20 cable with the onboard 10pin Console header. Then use a standard PC null modem cable for connecting your host PCs serial port with the DB9 plug of CBL-F10M9-20. Open you host PCs COM port using your preferred terminal software (e.g. Hyperterminal). The connection settings are 115200bd, 8-N-1, ANSI mode. Restart iPAC-50xx and you will be able to log on to the device using Hyperterminal. This is especially helpful if you forgot the deviceĀ“s IP address.


USB Modem

USB Modem Support

USB modems (for plain old telephone service, ISDN or cable) are supposed to conform to the Communication Device Class (CDC) specification <>, and usually to the Abstract Control Model (ACM) sub-class. If your modem doesn't comply with the specification, it will not work with this driver.

You need to select the *USB Modem (CDC ACM) support* kernel option. If you build as modules, you need to install the acm.o option.

You need to set up the device node entries for the various modems. You can use up to 32 modems with this driver. Use the following commands to set up the first four:

  • mknod /dev/usb/ttyACM0 c 166 0
  • mknod /dev/usb/ttyACM1 c 166 1
  • mknod /dev/usb/ttyACM2 c 166 2
  • mknod /dev/usb/ttyACM3 c 166 3

You should now be able to use a terminal emulator program to attach to this device and connect to your modem or other terminal device.

SD Card Slot

Matrix-500's internal SD card slot meets SD 1.0 standard. This means SD cards up to 2GB are supported. Caution: SDHC cards will not work in Matrix-500.


Please use "dmesg" to check if the kernel detect the wireless. If kernel detect the usb wireless lan. You can skip the "modprob command" just type

  • ifconfig wlan0 up
  • iwconfig wlan0 essid XXXX key YYYY mode MMMM

(where XXXX is the network name YYYY is the hardware key MMMM is managed for infrastructure mode and ad-hoc for ad-hoc mode)

To configure IP address

  • dhcpcd wlan0 & ("&" means run in the background)


  • ifconfig wlan0 netmask

New driver for Ralink RT2571 is available in Artila CD\Matrix 500\Wifi\rt73.ko

copy rt73.ko to Matrix 500\disk cd \disk insmod rt73.ko

to insert the driver module to Matrix 500

Artila has drivers for WLAN sticks with Ralink 2500/2501 chipsets. Ralink provides a list of these products made by different companies at


For Bluetooth stick, Artila provides drivers for Broadcom Blutonium (BCM2033) and Tektronix BPA 100/105 (Digianswer)



  • Connector layout
  • Board layout
  • A mini-USB connector for the USB Device Controller (UDC) is on the right side of the housing (not shown on above documents)


Standard flash memory option is with 16MB flash memory. On request 8MB or 32MB and 64MB are available.


Matrix 500 has a watchdog device and it works as a standard watchdog device under Linux. The default setting of the watchdog timer is 5 seconds. Kernel will reset the watchdog timer before it time out. If for some unexpected reason, kernel fails to reset the watchdog timer, Matrix 500 will reset itself and system will reboot again. We do not recommend user to use watchdog timer in his application. To implement a software Watchdog process is a better way for application level watchdog

Application Stories

Matrix-500 is a standalone embedded computer. Typical applications are in data collection and preparation in POS (Point Of Sale), at a gas station to prepare and transmit accounting data or in advertisement systems with displays.

Tech Spec

  • 2*USB, 3*RS232, 1*RS232/422/485, 1*10/100 Ethernet
  • Matrix 500 has a MMU. It is a MMU ready Linux Kernel and fork() is ok. It is not necessary to specify stack size at compile time.
  • Matrix 500 uses Standard Linux with MMU Kernel version 2.6.14
  • Root Filesystem uses ETX2 format. The Root Filesystem is extract and built on the RAMDISK of Matrix 500 during system startup. The system image uses about 4MB space of the Flash Memory
  • User Flash disk uses JFFS2 format and space size is Flash memory size minus 4MB of image(e.g. 16MB Flash - 4MB Image = 12 MB [11764KB ] user flash disk )
  • USB WLAN Adaptor Support List (RT2570): RT2570 Hardware
  • Boot from USB Disk and SD Card are not available at this moment. We will consider it in the future.

Firmware Upgrade

In case you want to upgrade firmware: use an USB disk and load all files to be upgraded on it. Then

  1. copy the files "matrix500v2.alf", "m500kv2" and "m500rv2" to a USB flash disk
  2. Insert the USB disk to Matrix 500
  3. mount USB disk by " mount /mnt/sda1"
  4. change to the /mnt/sda1 directory
  5. type "update m500kv2"
  6. type "update m500rv2"
  7. type "update matrix500v2.alf"
  8. Reboot the Matrix 500


The new link is (login: ftp, password: ftp).

Python is available on request.

Flash Recovery

1) Recovery from wrong boot image

Please use serial console and under loader screen ( type @@@@ right after reboot to enter loader screen), select format option (H) to format the user disk. After format, reset the system. Doing this will reload the factory setting at next system boot. But it will take about two minute for system to rebuild its /etc/rc.

2) Recovery from corrupt flash

After download newest firmware please perform following steps:

Find the flash corrupted Matrix 500

  1. Open metal case of Matrix 500
  2. Find JP1 near COM4 port connector
  3. Place JP1 to 1-2 position
  4. Connect the console cable on Port 3 of Matrix 500
  5. Open hyper terminal software and serial port setting as 115200, n,8,1
  6. Power on Matrix 500 again (or push reset button)
  7. You will see "CCCCC" pop up on the hyper terminal from console port
  8. upload file "loader.bin" with Xmodem protocol
  9. once done, "CCC" will show up again then
  10. upload "m500v2.bin" with xmodem
  11. once complete, loader screen will show up. Type "L" key to upload "matrix500v2.alf " with Kermit protocol
  12. once done, type "S" to upload "m500kv2" with Kermit
  13. once done, type "T" to upload "m500rv2" with Kermit

After all these steps are done, place the JP1 to 2-3 position and then reset Matrix 500. The new loader and kernel will boot up and you can perform the test again.

Why to choose ARM9 with MMU

MMU (Memory Management Unit) is important unit for CPU which is operated on multi-task Operating System and software. If the CPU does not have MMU, it have to use uCLinux which is a special version Embedded Linux OS which is designed for non-MMU CPU. Special care must be taken into consideration if you want to port x86 Linux software to a non-MMU RISC-based Linux plaftform. To avoid this compatibility issue, it is better to choose ARM9 RISC with MMU

Personal tools