Wednesday, 27 January 2010

Elonex ONEt hacking

« on: September 11, 2008, 10:43:40 PM »

I think this is the same device as the Elonex Onet

Device manufacturer:

The site of a Dutch guy who's had some success in hacking software and hardware. This includes links to the Dutch importer's site that are also worth looking at:

xterm on the Elonex ONE

xterm on the Elonex ONE

Three of the members of our Google Group have pooled their ideas and come up with a way to get the "xterm" terminal console onto the ONE's menu.

This is probably going to be a very useful thing to do, as I can imagine that lots of other Elonex ONE tips are going to start: "open up xterm and type the following commands..."

Anyway this is what you have to do to get xterm on your menu:

Pop up the virtual keyboard with alt-tab and hover over the xkbd logo.

Hold down the left button and select 'manual' and miraculously xterm will appear, running as "root".
type: cd /home/user
type: vi .icewm/menu
..then you're in the menu file. Find a suitable location for your menu entry, and type a line that says:
prog "xterm" xterm /bin/sh -c "xterm"
Make sure it lines up like the other lines, then save and close the file. (If '-c' doesn't work, try '-x' instead.)
Now hit the "One" button and see your new menu option.

Elonex ONEt has ARM processor

Your best bet is the Dutch Trendtac user group... I have found that
gang a very helpful bunch and with the most advanced "hacking"
There are a couple of thread there, specifically "Apps" and "Games"
which have a collection of interesting stuff, mainly for me VNC viewer
and Doom (!)

Your first port of call though should be this website which has a
small collection of useful software:
Ultimately you can grab and convert Debian Lenny mipsel packages
( to .xap format (the OneT's
format) with "mkxap" script available at the URL above. In short the
procedure is as follows on either a Linux box, through the OneT's
xterm or root console or in a Cygwin prompt:

1. go to a new directory, i.e. "mkdir temp", "cd temp"
2. download the .deb package from the Debian website
2. expand the .deb package with "ar -x .deb"
3. uncompress the data.tar.gz file "tar zxvf .tar.gz" in
its component directories
4. repackage the file as a .xap "mkxap directories
5. you can now go to the Software installer and install the .xap
and .info files from the "temp" directory

Please remember to check for dependancies for the Debian packages on
download page as you may need to convert those too for the binaries to
It's a clunky process but I have succesfully converted a couple of
programs and it is a whole lot simpler than building a cross-compiler
environment and make your own binaries! ;-)

On the other hand there are a number of wiser people than me out there
working at getting proper debian running on this low-spec gadget and
that will make it a lot more useful.

Bear in mind that run-of-the-mill techies are not enough for hacking
this gadget... you'll need people with experience of building software
on non-x86 cpu. Or just a lot of Googling and trial and error (I'm in
this category)

Sites with specialist Elonex ONEt software has some Card Games and some Puzzles and a quick note taking program - I particularly like the puzzles.

Each of these additional programs use up one of the icon spaces on the Elonex ONEt desktop - you have 5 screens of 15 icons, 75 in total - and some of the icons only want to display in certain places, which can mean that sometimes you add a program and don't see an icon because it's hidden by one for another program. To solve this you need to edit the relevant .desktop file. The simplest way to do this is to use the "Nedit" program downloaded from - launch the program, then select file open and type in the full path name of the file you want to edit - you discover the pathname by using the Bon Echo Internet Browser - type the address file:///share/applications into the Browser address bar (and, yes, you do need three "slashes" together - the pathname you want is: /share/applications/programname.desktop - replace programname by the actual name used for the file, when you edit the file the number on the line that starts Categories= determines which screen the icon appears on (numbered from 1 to 5) and the number on the line that starts ItemIndex= determines the position on the screen (numbered from 0 to 14) - a number of -1 means "place at the end" a # symbol at the beginning of a line makes it a comment so it's ignored - leaving out or commenting out the ItemIndex= line let's the Elonex place the icon at the earliest available position - if an icon cannot be placed at the requested position it will be placed at the next available later position (but never at an earlier position) - the actual places are determined by the order in which the files are read when the computer starts - so you won't see your changes until you restart the computer.

You can now understand why I quite like Firefox Addons and Flash Games (they don't use up any of your icons) and Games and Puzzles where one icon launches a program giving you access to many games or puzzles (they give you a lot of value for each icon used).

Tuesday, 26 January 2010

GNU ARM toolchain guide from IBM


The toolchain provides the ever-popular GDB for debugging low-level programs. When the program is targeted for a single-board computer with a JTAG or ICE unit attached, you can use the Sourcery G++ Lite debugger (gdb) to debug the ARM code remotely.
If you wish to test the code as I did—on the Android Linux system running on a mobile phone—you need to attach the phone to the workstation using the USB cable that came with it, then use the Android software development kit's (SDK's) adb push command to transfer the program to the phone. Once on the phone, in a directory that can contain executable code (/data/local/bin), make the program executable by issuing the chmod 555 hw command. (The chmod command on Android doesn't use +x, so 555 is necessary, instead.)
Finally, use the adb shell command to connect to the phone, use cd to change to the correct directory, and run it with ./hw. If all goes according to plan, the program should respond as it did on my phone, by greeting you with "Hello Android!"

Read more here:-

GNU ARM toolchain guide from IBM

GNU ARM Assembler 3 page quick reference

Assembler Quick reference

Not so quick at 30+ pages

ARM GCC inline assembly

Free ARM programming book

Free ARM programming book as PDF

Whirlwind Tour of ARM Assembly

23. Whirlwind Tour of ARM Assembly

Original source here

Development tools and boards from Olimex

  • H-JTAG freeware RDI151 server supports ARM-JTAG for every debugger/IDE which have RDI151 support. The setup should be as on this picture.
  • open source debugger diplom project from Dominic Rath with target to replace OCDdeamon for debugging with Insight/GDB.
  • YAGARTO open source Windows nad MACOS GCC setup
  • EWARM professional C compiler and debugger.There is free kickstart version which is with unlimited assembly language and 32K limit for C code from IAR Systems AB Sweden. Tested to work with H-JTAG RDI151 and our ARM-JTAG. The flash download to our LPC2138 board show about 30% slower flash programming than the expensive USB J-Link adapter from Segger. According to IAR Systems their EW-ARM is benchmark leader.
  • CrossWork for ARM IDE and debuger on top of GCC from Rowley Associates, this is the very first package to support smoothly Wiggler and ARM-JTAG.
  • OCDeamon toolchain and debugger from Macraigor Systems. Quite unstabile software, when it wants to work it works, when it doesn't want to work it doesn't. too dependand of computer CPU speed, parallel port settings etc. Macraigor is the original developer of Wiggler, but after the Wiggler clones flooded the internet they don't support quite this product.
  • WinARM - easy to install open source GCC toolchain by Martin Thomas. Lots of examples for our LPC boards are included in the installation. Simple tutorial how to setup our ARM-JTAG you can find here.
  • GNUARM another GCC toolchain from Arius.
  • Do-it-yourself 3D printer with LPC-H2148 as controller, contain also instructions how to setup Eclipse and GCC as development environment

New to ARM development?

If you are very new to ARM microcomputers, there’s no better introductory book
than “The Insider’s Guide to the Philips ARM7-Based Microcontrollers” by
Trevor Martin. Martin is an executive of Hitex, a UK vendor of embedded
microcomputer development software and hardware and he obviously understands
his material.
You must register first, then you can download this e-book for free from the Hitex web site.

This is another excellent introduction to ARM Cross Development With Eclipse Components, the free open source system, available as a free download with no need to register:-
Other resources are available at Alex the Geek

Snippet from the Hitex book:-

1.6 The ARM 7 Instruction Set
Now that we have an idea of the ARM7 architecture, programmers model and operating modes we need to take
a look at its instruction set or rather sets. Since all our programming examples are written in C there is no need
to be an expert ARM7 assembly programmer. However an understanding of the underlying machine code is
very important in developing efficient programs. Before we start our overview of the ARM7 instructions it is
important to set out a few technicalities. The ARM7 CPU has two instruction sets: the ARM instruction set which
has 32-bit wide instructions and the THUMB instruction set which has 16-bit wide instructions. In the following
section the use of the word ARM means the 32-bit instruction set and ARM7 refers to the CPU.
The ARM7 is designed to operate as a big-endian or little-endian processor. That is, the MSB is located at the
high order bit or the low order bit. You may be pleased to hear that the LPC2000 family fixes the endianess of
the processor as little endian (i.e. MSB at highest bit address), which does make it a lot easier to work with.
However the ARM7 compiler you are working with will be able to compile code as little endian or big endian.
You must be sure you have it set correctly or the compiled code will be back to front.

Sunday, 24 January 2010

CM-X300 Computer-On-Module $49

 CM-X300 Computer-On-Module          
CM-X300  Top
CM-X300 Bottom

CM-X300 Highlights
Full-featured Computer-On-Module starting at $49 !
XScale PXA300 / PXA310 / PXA320 CPU, up to 624 MHz, 32+32 KB cache, WMMX2
64 - 128 Mbyte DDR
512 Mbyte Flash Disk, including filesystem protection
WLAN / WiFi 802.11b/g Interface
Bluetooth interface
Graphics controller supporting STN and TFT panels with 800600 max resolution
see LCD panel support
H/W support for H.264, MPEG-4, H.263, MPEG-2, RealVideo, WMV9 and other video codecs.
General purpose bus
AC97, SDIO / MMC interfaces
Camera Interface port
Sound codec with speaker and microphone support
Touchscreen Controller
USB Slave / Host / OTG ports
Serial ports, GPIO
100 Mbps Ethernet port
Very low standby and active power consumption
Battery charger and management support
66 x 44 x 7 mm
Interchangeable with other modules via CAMI connectors
SB-X300 - turns the CM-X300 module into a tiny single board computer

The CM-X300 is a small Computer-on-Module board designed to serve as a building block in embedded applications. The CM-X300 has all the components required to run operating systems such as Linux and Windows CE. Ready packages for these operating systems are available from CompuLab.
The small size and low power consumption of the CM-X300 allows its integration into hand-held and mobile devices, while its low price makes it an ideal selection for cost-sensitive applications.  The CM-X300 delivers a price / performance ratio significantly better than that of any other platform.
The feature set of the CM-X300 module combines a 32-bit CPU, DDR, Flash Disk and vital computing peripherals. For embedded applications, the CM-X300 provides a general purpose local bus, 100Mbit Ethernet, serial ports, I/O lines and other essential functions.
Targeting the handheld application market as well, the module provides integrated WLAN (WiFi) and Bluetooth interfaces to implement industry standard wireless connectivity. Integrated battery charging and management enables easy integration in battery-powered mobile devices.
The standardized CAMI ("CompuLab's Aggregated Module Interface") connectors of the CM-X300 module allow interchangeability with other Computer-On-Module's available from CompuLab, enabling the flexibility required in a dynamic market where application requirements can change rapidly.
See O/S Support Coverage Map
For more information, see
Developer Resources page
Block Diagram

CM-X300 Features
"Option" column specifies the configuration code required to have the particular feature.
"+" means that the feature is always available.

CPU, Memory and Busses
Feature Specifications Option
CPU Marvell XScale PXA300 / PXA310 / PXA320 CPU
208 / 624 MHz, WMMX2, 2*128K internal SRAM
32 KB I-cache and 32 KB D-cache, WB, 128 MB address space
DMA and  Interrupt controllers, Timers
RAM 64 - 128 MB, DDR, 208 MHz, 16-bit D
NAND Flash Disk 512 Mbytes, bootable. N
External local bus 16-bit,  variable rate up to 52 MHz, 3.3V tolerance +
AC97 bus AC97 / AMC97 Rev 2.1 compliant +
Graphics Controller 
8/16 bit color, TFT / STN, frame buffer in CPU SRAM or system DDR
Resolution: up to 800 x 480 x 16 without restrictions, and up to 1024 x 1024 with some restrictions about overlays, BPP and pixel clock.
Camera Interface 
Direct camera sensor support, max resolution 2560 x 2048, pixel clock up to 52MHz. Available only with PXA310 CPU.
Hardware acceleration
Supports up to D1 decode and encode performance for codecs including H.264, MPEG-4, H.263, MPEG-2, RealVideo and Microsoft WMV9.
Hardware scaling, rotation and other raster graphics operations.
* Implemented by PXA310 CPU
Host/Slave (OTG) port, 12 Mbps, 23-endpoints (in slave mode), OHCI v1.0
Host port (shared with Bluetooth, therefore not available with "W" option)
Serial Ports
Up to 3 UART ports, 16550 compatible, max 921 kbps
COM-A - RS232, Rx / Tx
COM-C - TTL, full modem controls
COM-D - TTL, partial modem controls

General Purpose I/O
42 dedicated lines (32 I2C-controlled + 10 memory-mapped) plus additional lines shared with other functions. Can also be used as interrupt inputs.
Keyboard & mouse
USB, keypad or redirection from COM port
Davicom DM9000A MAC & PHY, 10/100BaseT, Activity LED's
Audio codec
Wolfson W9712L, AC97 interface, mono microphone input, stereo line input and 25 mW output for active speakers
Touchscreen ctrl.
A part of the W9712L codec chip. Supports resistive touch panels.
Real Time Clock, powered by external lithium battery
Implements 802.11b/g wireless connectivity standard
Supports Node to Access Point and Multi-Node (w/o access point) methods of connection. (but cannot act as Access Point)
Marvell 88W8686  802.11b/g chipset.
On-board ceramic chip antenna and connector for external antenna.
Bluetooth V2.0+EDR system. CSR BlueCore4-ROM chipset, 2.4GHz band, up to 3Mbps. On-board ceramic chip antenna and connector for external antenna.
Bluetooth and WiFi interfaces are always assembled together, and therefore are specified by the same assembling option.
Electrical, Mechanical and Environmental Specifications
Supply Voltage Single 3.3V or 3.6V battery
Active power consumption 0.2 - 2 W, depending on configuration and CPU speed
Standby/Sleep consumption 20 - 100 mW, depending on configuration and mode
Dimensions 66 x 44 x 7 mm
Weight 25 gram
MTBF > 100,000 hours
Operation temperature (case)
Commercial:    0o to 70o C
Extended: -20o to 70o C
Industrial: -40o to 85o C. Click for availability note
Storage temperature -40o to 85o C
Relative humidity 10% to 90% (operation)
05% to 95% (storage)
Shock 50G / 20 ms
Vibration 20G / 0 - 600 Hz
Connectors 2 x 140 pin, 0.6 mm
Connector insertion / removal 50 cycles
For more information see:
- CM-X300 Reference Guide
- Developer Resources

Tools for ARM7, ARM9, ARM11, Cortex Devices

Processors - Direct Insight Tools for ARM7, ARM9, ARM11, Cortex Devices

We offer comprehensive tool support for virtually all derivatives and cores including:
ARM Cortex-A8, Cortex-R4, Cortex-M3, ARM11, ARM720T, ARM920T, ARM922T, ARM926EJ-S, (F)-S, ARM7EJ-S, ARM7TDMI, ARM7TDMI-S, ARM946E-S, ARM966E-S, ARM968E-S. We have separate pages dedicated to Intel XScale, Marvell PXA270, PXA310, PXA320 and i.MX27, i.MX25 and i.MX37 processors.

Integrated Development Environment: IAR Systems

IAR Embedded Workbench provides a completely integrated development environment including a project manager, editor, build tools and the C-SPY debugger. In a continuous workflow, you can create source files and projects, build applications and debug them in a simulator or on hardware. IAR Systems is well known for highly optimized compilers. Every C/C++ compiler contains both generic global optimizations as well as low-level chip-specific optimizations that take advantage of all the specific features of your selected device.
The optional PowerPAC RTOS adds an affordable real-time kernel, file system, and optional USB and Ethernet support.

KickStart Development Board ImageKickStart Kits for NXP LPC, Atmel SAM7/SAM9, Luminary, STR7/9, STM32, Toshiba TMPA9/M3: IAR Systems
IAR KickStart Kits contain everything you need to get started with development, and to try out your application directly on the device. Each kit includes code-size limited development system with C/C++ compiler and example code, development board and- JTAG probe with flash programming

JTAG emulators and debuggers: Sophia
We offer a broad range of JTAG debuggers to cover every imaginable combination of development environments, embedded OS and target device.

Sophia EJ-SCT Sophia's EJ-SCT is a powerful, USB-powered probe with configurable support for all ARM families. Most popular development boards are supported out of the box, and the powerful Watchpoint debugger features optional interfaces to GDB for Linux targets, and Microsoft Platform Builder for hardware-assisted debugging of targets running Windows CE 6.0.
The advanced EJ-Extreme supports up to 100Gig of ETM and RTP trace.

ARM Development Boards from SKpang

ARM Development Boards
The ARM microcontrollers are High-Performance, 16/32-Bit RISC Core devices. ARM market is one of the most fastest growing microcontroller market. The prices of ARM devices now are similar to 8-bit devices, while they are providing much more power and peripherials than any other 8-bit microcontroller do.

They are available from number of vendors like: Analog Devices, Atmel, Cirrus Logic, OKI, Philips Semiconductors, ST Microelectronics, Texas Instruments and many others (Intel, Freescale, Samsung, Sharp, Hynix, etc).

Many experts say that in the next 5 years ARMs are going to replace the industry standard 8051 architecture in almost all applications.

Olimex aim is to provide low cost development tools and boards for as many ARM vendors as possible, this year we'll cover all above 7 vendors and will have more than 40 different development boards for ARM7 and ARM9 device.

Few years ago to start with ARM developing the companies had to spend tenths of thousands of USD to buy compiler, debugger/emulator and development board, now everybody who want's to learn ARMs can start with under $100 budged buying JTAG + Development board and using the free ARM GCC C compiler.

Very fast: most ARM7 cores run at 60Mhz and ARM9 cores run at 150Mhz+ providing more power than old 386 Intel processors. Low power: ARM7 cores need only approx 0.5-1mA per Mhz Great range of peripherials: ADC, DAC, USB, SPI, UART, I2C, CAN, Ethernet, SDRAM. Lot of internal Flash: 32KB-1MB, Lot of internal RAM: 4-256KB.
mbed Modules
mbed Modules
ARM7 Controller Board
ARM7 Controller Board
Cirrus ARM9
Cirrus ARM9
NXP ARM7 Dev Board
NXP ARM7 Dev Board
NXP ARM7 Header Board
NXP ARM7 Header Board
Atmel SAM7/9 Dev Board
Atmel SAM7/9 Dev Board
Atmel SAM7 Header Board
Atmel SAM7 Header Board
STM32 Dev Boards
STM32 Dev Boards
STM32 Header Boards
STM32 Header Boards
JTAG Programmer
JTAG Programmer
Starter kits
Starter kits
New Products For January
£64.04 inc VAT
LPC-1766STK Development Board with LPC166 TFT LCD, USB EHTERNET,
LPC-1766STK Development Board with LPC166 TFT LCD, USB EHTERNET,
£116.33 inc VAT
mbed Prototyping Board with LPC1768
mbed Prototyping Board with LPC1768
£51.70 inc VAT
£109.28 inc VAT
STM32-H103 Header for STM32F103RBT6 Cortex-M3
STM32-H103 Header for STM32F103RBT6 Cortex-M3
£29.32 inc VAT
STM32-103STK Starterkit Board for STM32F103RBT6 Cortex-M3
STM32-103STK Starterkit Board for STM32F103RBT6 Cortex-M3
£87.89 inc VAT
STM32-P103 Header Baord for STM32F10RBT6 Cortex M3
STM32-P103 Header Baord for STM32F10RBT6 Cortex M3
£48.41 inc VAT
SAM9-L9261 Development Board for AT91SAM9260
SAM9-L9261 Development Board for AT91SAM9260
£329.00 inc VAT
LPC-MT-2106 Development board with LPC2106
LPC-MT-2106 Development board with LPC2106
£64.51 inc VAT