Home of www.RoboHobby.com Java robotics project www.CubesAndCrosses.com
Train your logic skills in geometry
Create and delete one-color crosses
Play for free right in your browser!
Home-made CNC machine
Our new project -
How to make home-made CNC router
PICkit2 - Tutorials, Experiments
PICkit 2 - Small size USB programmer
from Microchip.
How to use it as a demo device for
USB programming in C language

www.RoboHobby.com
Home of www.RoboHobby.com
Java robotics project


Portable Notebook Table
How to make Portable Notebook Table.
Do it yourself!

Control robot on-line (GWT)
Control our robot on-line,
using GWT-based Web interface

Web-based (GWT) remote control for Java robotics.

Control robot on-line
Control our robot on-line,
using simple Web interface
(Old JSP-based version)

Web-based (JSP) remote control for Java robotics.

Sun SPOTs for robotics
Sun SPOT for hobby robotics.
How to use Sun SPOT devices
comunication of group of robots


Sun SPOT Accelerometer + Servo
Sun SPOT Balancing robot
Draft of new article


PICkit2 - Tutorials, Experiments
PICkit 2 - Small size USB programmer
from Microchip.
How to use it as a demo device for
USB programming in C language


Java SE SWING JSR-296 Example
How to run background task in
JSR-296 SWING application
with 'busy animation' in the status bar.
Useful addition to Netbeans template.

Java ME Code Examples
Java ME Source code examples
for robotics projects


Run Java ME Code Examples
How to run our Java ME code examples
for robotics projects


Java - work from home
Draft for article
'Java work from home.
(Java and self-employment)
Where and how to get
remote (telecommuting) job'


ScreenShots
See some screenshots of RoboHobby
Java/SWING application

See some screenshots of www.RoboHobby.com Java SWING application

Where programmers go
after age of 35?

Article in Russian
about job discriminationin
in IT industry:
'Where programmers go
after age of 35'?




Atmel NGW100 for
Java Hobby robotics

Set of articles about
Atmel NGW100 for
Java Hobby Robotics




Canon A570 IS + CHDK for
Kite Aerial Photography

How to use photo camera Canon A570 IS
with CHDK for kite aerial photography

Plastic box for Canon A570 IS
for Kite Aerial Photography (KAP)

How to make plastic box for Canon A570 IS

Kite Aerial Photography
Create your own hand-made kite for KAP
and do snapshots from a kite

Create your own hand-made kite for Kite Aerial Photography (KAP) and do snapshots from a kite, using cell phone or camera.

RoboHobby Kite
How to install and use
J2ME program on your cell phone,
make spy camera from it
and do snapshots from a kite

Picavet Suspension
Hand-made 'Picavet Suspension' for
Kite Aerial Photography (KAP).
How to make it by yourself.

Compact Picavet Suspension
Aluminum Home-made compact
'Picavet Suspension' for
Kite Aerial Photography (KAP).
You can fold it and make it
portable.

How to fly 'Flow form' kite in calm (No Wind) condiction.
Green Island KAP photos
Photo views from kite of
'Green Island'

Green Island
Some views from the ground
of rectreation zone
'Green Island'

KAP Wind Maps
Web-Map-based project
for local win measurement



Simple Spam Protection
Simple Spam Email Protection -
GWT-based code example


Under Linux
Install and Run RoboHobby application under
KNOPPIX 5.0


Under Windows
Install and Run RoboHobby application under
MS Windows XP


Platforms for Java Robotics
Which hardware/os platform to choose
for hobby robotics?



Download
Download RoboHoby Software

SpyGear's 'Spy Robot'
Article about reconstruction RC toy 'Spy Robot'
How to make robot with web camera or
with cell phone on a board from it


Load to your phone
Download RoboHobbyJ2ME application
right to your Siemens S75 cell phone.
Now no need to load it to PC, unzip, etc.


RoboHobby Linux Live CD
RoboHobby Linux Live CD
is ready for download.


Projects
List of old and current RoboHobby projects.

Hardware
List of what we use as a hardware

Software
List of software, we use in our projects

Computer vision
Vision is the main sense of our robots.
See some Java algorithms we use

Tips-n-Tricks
Some advices about hardware and software tricks

PIC Programming
(firmware)

Assembler program for PIC16F628A
Communication program for sending
commands from cell phone to motors.
Driver for motor controller.


RoboHobbyPlugin
Open Source project on
SourceForge, Java brain
for the robot

How to update Java
on KNOPPIX 5.0

Set of articles about how to remove
old version of Java (JRE or JDK)
on KNOPPIX and install new one
on remastered CD
Part 1 (Just test new Java)

Part 2
(Place new Java on Linux Live CD)



Java to EXE
Article about how to compile Java
programs to native binary code
(EXE for Windows)


Range of Bluetooth, Wi-Fi, ZigBee
What is the a real connection distance
of typical Bluetooth and Wi-Fi,
ZigBee or other RF devices?



What is inside?

What is inside web camera
'Genius Look 312P'?
How to re-construct it,
improve and use in robotics.

What is inside web camera
'Genius VideoCAM GE111'?
How to re-construct it,
improve and use in robotics.

What is inside web/photo camera
'Genius G-Shot D612'?
How to use it for
Kite Aerial Photography (KAP).


Sun SPOTs (in Russian)
Sun SPOT for hobby robotics.
Introduction lecture in Russian.




About
Some info about this site

About EATJ Java hosting
Some info about EATJ Java server-side
JSP/Servlet hosting



Short description of www.RoboHobby.com in German In German
Short description of www.RoboHobby.com
in German


Short description of www.RoboHobby.com in French In French
Short description of www.RoboHobby.com
in French


Short description of www.RoboHobby.com in Spanish In Spanish
Short description of www.RoboHobby.com
in Spanish


Short description of www.RoboHobby.com in Italian In Italian
Short description of www.RoboHobby.com
in Italian


Short description of www.RoboHobby.com in Russian In Russian
Short description of www.RoboHobby.com
in Russian





www.RoboHobby.com

How to use ATMEL NGW100 board for Java robotics

We are Java programmers and for us it is interesting - is it possible to install/use Java
on everything - on cell phones, on photo cameras, on DVD Blue ray discs, on small boards
with microprocessors.
And we decided to check - how Java works on small board ATNGW100.

This article is just first preview on how to install/use Java on NGW100.

In fact Atmel NGW100 is a router. It has RISC CPU and Linux on a board and it has two
network interfaces - one for LAN and one for WAN.

Most interesting thing is a fact, that using this small board as a conversion point,
where signals from virtual World (Internet) can be translated to real World
(servomotors in robotic arms, in motocontrol web cameras (tilt/pan), etc.).


After some experiments with Java ME cell phones, we decided to try Java embedded devices.
We found that if you are trying to use J2ME, it is not too easy to make connection
between brain (a cell phone) and motor driver (special board, which translates
control signals from phone to electro motors).
Originally cell phones were not designed for robotics and it was not too easy to use
them for hobby robotics. It is still interesting task, but we have made decision
to try special Linux-oriented boards with Java support.




Atmel NGW100 board
(First view)

Several weeks ago we've bought a small board with AVR32/AP7000 on a board - ATNGW100.
ATNGW 100 is a compact board, which may be interesting for Java hobby robotics.

View of the board:


Real weight of the board is about 70-75 gr.
Size is about 12.5 sm x 10 sm
Pover - 9-15V.
Board eats in reality something about 70-100mA.

The board shipped with pre-installed Linux.
That means you can use it right after plug-in a power to the board.

To check is your board alive, just connect your PC to the board via COM port (RS232)
and plug in a power to the board.

Note: if you don't have COM port on your PC, you should get USB-to-COM cable.
By the way, I don't have COM port on my notebook and
I use USB-to-Serial Port converter cable from Gembird (tm).

See Gembird cable photos:






As a rule all such a cables use one very popolar USB-to-COM chip and it is easy to
install them under Windows and Linux.
In the system they look like USB serial device 'Prolific'.






Note: In reality the board requires good clean power.
It doesn't work with cheap power adapters from China.
Use only quality power adapterses. (May be from China too).
:-)
Good unbreakable power is very inportant.
If power goes down during upgrade programs in flash memory of the board, you may
lost control of the board and it will be possible to re-pair it only using special
device - hardware programmer.

Also you need patchcord with RJ45 connectors:






Getting started

) Plug-in power to the board
) Connect the board to your PC, using COM ports
) Open HyperTerminal or similar terminal program
) Connect to device, using 115200,8,N,1 parameters
) Press 'reset' (small red button on the board)
) You should see in terminal window something like this:


U-Boot 1.1.4-at0 (Jan 3 2007 - 10:30:09)

U-Boot code: 00000000 -> 000144f7 data: 24000000 -> 24002d80
SDRAM: 32 MB at address 0x10000000
Testing SDRAM...OK
malloc: Using memory from 0x11fc0000 to 0x12000000
Flash: 8 MB at address 0x00000000
DRAM Configuration:
Bank #0: 10000000 32 MB
In: serial
Out: serial
Err: serial
Net: macb0, macb1
Press SPACE to abort autoboot in 1 seconds
### JFFS2 loading 'uImage' to 0x10200000
Scanning JFFS2 FS: ....... done.
### JFFS2 load complete: 912671 bytes loaded to 0x10200000
## Booting image at 10200000 ...
Image Name: Linux-2.6.18-atngw
Image Type: AVR32 Linux Kernel Image (gzip compressed)
Data Size: 912607 Bytes = 891.2 kB
Load Address: 10000000
Entry Point: 90000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK

Starting kernel at 90000000 (params at 11fc0040)...

pdc pdc.0: Atmel Peripheral DMA Controller enabled
EIM: External Interrupt Module at 0xfff00000, IRQ 19
EIM: Handling 4 external IRQs, starting with IRQ 64
smc smc.0: Atmel Static Memory Controller at 0xfff03400
pio0: Atmel Port Multiplexer at 0xffe02800 (irq 13)
pio0: Handling 32 external IRQs, starting with IRQ 96
pio1: Atmel Port Multiplexer at 0xffe02c00 (irq 14)
pio1: Handling 32 external IRQs, starting with IRQ 128
pio2: Atmel Port Multiplexer at 0xffe03000 (irq 15)
pio2: Handling 32 external IRQs, starting with IRQ 160
pio3: Atmel Port Multiplexer at 0xffe03400 (irq 16)
pio3: Handling 32 external IRQs, starting with IRQ 192
pio4: Atmel Port Multiplexer at 0xffe03800 (irq 17)
pio4: Handling 32 external IRQs, starting with IRQ 224
dmac0: DesignWare DMA controller at 0xff200000 irq 2
NET: Registered protocol family 2
IP route cache hash table entries: 256 (order: -2, 1024 bytes)
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 1024 bind 512)
TCP reno registered
JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler cfq registered (default)
Serial: Atmel USART3 driver
usart.1: ttyS0 at MMIO 0xffe01000 (irq = 7) is a USART3
loop: loaded (max 8 devices)
eth0: Atmel MACB at 0xfff01800 irq 25 (00:04:25:1c:89:72)
eth1: Atmel MACB at 0xfff01c00 irq 26 (00:04:25:1c:89:73)
physmap platform flash device: 00800000 at 00000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0041
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
cmdlinepart partition parsing not available
RedBoot partition parsing not available
Using physmap partition information
Creating 3 MTD partitions on "physmap-flash.0":
0x00000000-0x00020000 : "u-boot"
0x00020000-0x007f0000 : "root"
0x007f0000-0x00800000 : "env"
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xffe00000 (irq 3)
mtd_dataflash spi0.0: AT45DB642x (8448 KBytes)
ip_conntrack version 2.4 (256 buckets, 2048 max) - 204 bytes per conntrack
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Time: avr32 clocksource has been installed.
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 56K (90000000 - 9000e000)
init started: BusyBox v1.4.2 (2007-04-17 15:34:55 CEST) multi-call binary
* mounting virtual filesystems: /proc /sys /dev /dev/pts /config /tmp /var/run
/var/lib/samba /var/log
* set mdev hotplug ... [ OK ]
* mdev ... [ OK ]
* setting hostname ... 'ngw.example.net'
* network loopback ... [ OK ]
* starting syslogd ... [ OK ]
* log messages to syslog ... [ OK ]
* starting klogd ... [ OK ]
* probing modules ... vfat loaded, mmc_block loaded, atmel-mci loaded
, [ OK ]
* mounting filesystems: /usr
* setup eth0 ... [ STATIC ] (10.11.12.1)
* setup eth1 ... [ OK ]
* network ... [ OK ]
* starting telnetd ... [ OK ]
* enable ipv4 forwarding ... [ OK ]
* iptables postrouting ... [ OK ]
* iptables incoming trafic ... [ OK ]
* iptables outgoung trafic ... [ OK ]
* starting dnsmasq ... [ OK ]
* running ntpdate ... [ FAILED ]
* starting dropbear ... [ OK ]
* starting inted ... [ OK ]
* starting nmbd ... [ OK ]
* starting smbd ... [ OK ]
* starting winbindd ... [ OK ]
* starting httpd ... [ OK ]
* get board type for GPIO ... 'NGW'
* setup GPIO boot LED ... [ OK ]
* setup GPIO LED A ... [ OK ]
* setup GPIO LED B ... [ OK ]

Network Gateway ready



BusyBox v1.4.2 (2007-04-17 15:34:55 CEST) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ #




Pay attantion to some strings:
U-Boot 1.1.4-at0 (Jan 3 2007 - 10:30:09)
and
Image Name: Linux-2.6.18-atngw

That means factory pre-build versions of U-Boot and Kernel are pretty old.
First thing that we should do is to install more fresh versions of boot-loader (U-Boot)
and Linux Kernel.

If you are Linux professional, you can build U-Boot from source code.
Get source code, get/install patches, do compilation and then install the bin file.

For me, as a Java programmer it was not so actual to do all these staps.
It was not my target - to create my own version of the bootloader.
All I wanted is just to replace old version with new one.


There is a special utility 'Flash Upgrade', which can be used for updating U-Boot program
in flash memory in the NGW100. No need to use hardware programmer device.

) Download special file, which can upgrade your old version (1.1.4) to new version (1.1.3)

Link:
http://www.atmel.no/buildroot/buildroot-u-boot.html

Screen:



) Format SD card under Linux. Type of format must be 'ext2'.
(ToDo - create additional article 'How to format SD card under Linux'
and 'How to install Linux in the Windows, using VMware)
) mount the SD card somewhere in your file system
) put file 'flash-upgrade-atngw100-to-v1.3.3.uimg' to the SD card
) umount SD card from your file system
) insert the card to the board's (NGW100) card reader
) press 'reset' button on the NGW100
) press 'SPACEBAR' button on keyboard on your PC.
) On the Uboot prompt type:
.Uboot> ext2load mmc 0:1 0x10400000 /flash-upgrade-atngw100-to-v1.3.3.uimg

) Press 'y' in answer to question of flash-upgrade program:

Press 'y' to continue, or any other key to abort.


The process of upgrading bootloader:

U-Boot 1.1.4-at0 (Jan 3 2007 - 10:30:09)

U-Boot code: 00000000 -> 000144f7 data: 24000000 -> 24002d80
SDRAM: 32 MB at address 0x10000000
Testing SDRAM...OK
malloc: Using memory from 0x11fc0000 to 0x12000000
Flash: 8 MB at address 0x00000000
DRAM Configuration:
Bank #0: 10000000 32 MB
In: serial
Out: serial
Err: serial
Net: macb0, macb1
Press SPACE to abort autoboot in 1 seconds
Uboot> mmcinit
Manufacturer ID: 02
OEM/Application ID: 544D
Product name: SD256
Product Revision: 0.13
Product Serial Number: 2060196395
Manufacturing Date: 05/01
SD Card detected (RCA 62797)
CSD data: 002d0032 1b5983cc f6daff80 164000e1
CSD structure version: 1.0
MMC System Spec version: 0
Card command classes: 1b5
Read block length: 512
Supports partial reads
Write block length: 512
Does not support partial writes
Does not support group WP
Card capacity: 255066112 bytes
File format: 0/0
Write protection:
.Uboot> ext2load mmc 0:1 0x10400000 /flash-upgrade-atngw100-to-v1.3.3.uimg
................................................................................
..............................................................................
70991 bytes read
Uboot> bootm 0x10400000
## Booting image at 10400000 ...
Image Name: AVR32 Flash Upgrade Utility v0.2
Image Type: AVR32 Linux Kernel Image (gzip compressed)
Data Size: 70927 Bytes = 69.3 kB
Load Address: 10000000
Entry Point: 90000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK

Starting kernel at 90000000 (params at 11fc0040)...

AVR32 Flash upgrade utility version 0.2

HSMC configuration: 0x00030001 0x06030504 0x00080008 0x00001103
Atmel AT49BV642D found at address 0x00000000
cfi: using AMD/Fujitsu command set
cfi: 2 erase regions (total size: 8388608 bytes)
0 8 sectors, 8192 bytes each
1 127 sectors, 65536 bytes each
Going to copy 104816 bytes to offset 0x00000000 in flash
Press `y' to continue, or any other key to abort


With this utility you have just one option too choose - 'y'.
(He-he-he)

If you press 'y', your bootloader will be updated.




Erasing... done
Programming... done
Verifying... done
Flash upgrade successful. Please press reset or cycle power.




Now we do restart, pressing 'reset' red button on the board.
And see, that new version of U-Boot (1.3.3) is installed:



U-Boot 1.3.3-00248-gae9bc0c (Jul 23 2008 - 14:28:10)

U-Boot code: 00000000 -> 00011360 data: 00017bf8 -> 0004e530
malloc: Using memory from 0x11f71000 to 0x11fb1000
DMA: Using memory from 0x11f6d000 to 0x11f71000
Flash: 8 MB at address 0x00000000
DRAM Configuration:
Bank #0: 10000000 32 MB
In: serial
Out: serial
Err: serial
Net: macb0, macb1
Press SPACE to abort autoboot in 1 seconds
### JFFS2 loading 'uImage' to 0x10400000
Scanning JFFS2 FS: ....... done.
### JFFS2 load complete: 912671 bytes loaded to 0x10400000
## Booting kernel from Legacy Image at 10400000 ...
Image Name: Linux-2.6.18-atngw
Image Type: AVR32 Linux Kernel Image (gzip compressed)
Data Size: 912607 Bytes = 891.2 kB
Load Address: 10000000
Entry Point: 90000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK

Starting kernel at 90000000 (params at 11f71008)...

pdc pdc.0: Atmel Peripheral DMA Controller enabled
EIM: External Interrupt Module at 0xfff00000, IRQ 19
EIM: Handling 4 external IRQs, starting with IRQ 64
smc smc.0: Atmel Static Memory Controller at 0xfff03400
pio0: Atmel Port Multiplexer at 0xffe02800 (irq 13)
pio0: Handling 32 external IRQs, starting with IRQ 96
pio1: Atmel Port Multiplexer at 0xffe02c00 (irq 14)
pio1: Handling 32 external IRQs, starting with IRQ 128
pio2: Atmel Port Multiplexer at 0xffe03000 (irq 15)
pio2: Handling 32 external IRQs, starting with IRQ 160
pio3: Atmel Port Multiplexer at 0xffe03400 (irq 16)
pio3: Handling 32 external IRQs, starting with IRQ 192
pio4: Atmel Port Multiplexer at 0xffe03800 (irq 17)
pio4: Handling 32 external IRQs, starting with IRQ 224
dmac0: DesignWare DMA controller at 0xff200000 irq 2
NET: Registered protocol family 2
IP route cache hash table entries: 256 (order: -2, 1024 bytes)
TCP established hash table entries: 1024 (order: 0, 4096 bytes)
TCP bind hash table entries: 512 (order: -1, 2048 bytes)
TCP: Hash tables configured (established 1024 bind 512)
TCP reno registered
JFFS2 version 2.2. (NAND) (C) 2001-2006 Red Hat, Inc.
io scheduler noop registered
io scheduler cfq registered (default)
Serial: Atmel USART3 driver
usart.1: ttyS0 at MMIO 0xffe01000 (irq = 7) is a USART3
loop: loaded (max 8 devices)
eth0: Atmel MACB at 0xfff01800 irq 25 (00:04:25:1c:89:72)
eth1: Atmel MACB at 0xfff01c00 irq 26 (00:04:25:1c:89:73)
physmap platform flash device: 00800000 at 00000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0041
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
cmdlinepart partition parsing not available
RedBoot partition parsing not available
Using physmap partition information
Creating 3 MTD partitions on "physmap-flash.0":
0x00000000-0x00020000 : "u-boot"
0x00020000-0x007f0000 : "root"
0x007f0000-0x00800000 : "env"
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xffe00000 (irq 3)
mtd_dataflash spi0.0: AT45DB642x (8448 KBytes)
ip_conntrack version 2.4 (256 buckets, 2048 max) - 204 bytes per conntrack
ip_tables: (C) 2000-2006 Netfilter Core Team
TCP bic registered
NET: Registered protocol family 1
NET: Registered protocol family 17
Time: avr32 clocksource has been installed.
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 56K (90000000 - 9000e000)
init started: BusyBox v1.4.2 (2007-04-17 15:34:55 CEST) multi-call binary
* mounting virtual filesystems: /proc /sys /dev /dev/pts /config /tmp /var/run
/var/lib/samba /var/log
* set mdev hotplug ... [ OK ]
* mdev ... [ OK ]
* setting hostname ... 'ngw.example.net'
* network loopback ... [ OK ]
* starting syslogd ... [ OK ]
* log messages to syslog ... [ OK ]
* starting klogd ... [ OK ]
* probing modules ... vfat loaded, mmc_block loaded, atmel-mci loaded
, [ OK ]
* mounting filesystems: /usr
* setup eth0 ... [ STATIC ] (10.11.12.1)
* setup eth1 ... [ OK ]
* network ... [ OK ]
* starting telnetd ... [ OK ]
* enable ipv4 forwarding ... [ OK ]
* iptables postrouting ... [ OK ]
* iptables incoming trafic ... [ OK ]
* iptables outgoung trafic ... [ OK ]
* starting dnsmasq ... [ OK ]
* running ntpdate ... [ FAILED ]
* starting dropbear ... [ OK ]
* starting inted ... [ OK ]
* starting nmbd ... [ OK ]
* starting smbd ... [ OK ]
* starting winbindd ... [ OK ]
* starting httpd ... [ OK ]
* get board type for GPIO ... 'NGW'
* setup GPIO boot LED ... [ OK ]
* setup GPIO LED A ... [ OK ]
* setup GPIO LED B ... [ OK ]

Network Gateway ready



BusyBox v1.4.2 (2007-04-17 15:34:55 CEST) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ #


But we still use old version of kernel.
Now it is time to test new kernel.

Again - if you want, you can download source files, install patches and do re-compilation
of the kernel.
But for now we need just to test how new kernel works on the board.

) Download tar-ball

Link:
http://www.atmel.no/buildroot/buildroot-bin.html

Under section 'Binary images for ATNGW100' load tar-ball.

Screen:


File:
http://www.atmel.no/buildroot/binaries/v2.3.0/atngw100/rootfs.avr32.tar.bz2

) Copy kernel image file from rootfs.avr32\boot\uImage to SD card.
NOTE: SD card must be formated as 'vfat' (FAT32 or FAT)
) umount card from file system of your Linux PC
) insert SD card to NGW100
) Restart NGW100
) SD card should be automatically mounted to /media/mmcblk0p1/
) Make a copy of an old kernel :
cp /uImage /uImage.old

) Place new kernel image from SD card on the place of the old one
cp /media/mmcblk0p1/uImage /uImage

) Press 'reset' button on NGW100
) Press 'SPACEBAR' button on your PC and stop loading process.
) type in U-Boot command prompt:


U-Boot 1.3.3-00248-gae9bc0c (Jul 23 2008 - 14:28:10)

U-Boot code: 00000000 -> 00011360 data: 00017bf8 -> 0004e530
malloc: Using memory from 0x11f71000 to 0x11fb1000
DMA: Using memory from 0x11f6d000 to 0x11f71000
Flash: 8 MB at address 0x00000000
DRAM Configuration:
Bank #0: 10000000 32 MB
In: serial
Out: serial
Err: serial
Net: macb0, macb1
Press SPACE to abort autoboot in 1 seconds
### JFFS2 loading 'uImage' to 0x10400000
Scanning JFFS2 FS: ....... done.
### JFFS2 load complete: 1252014 bytes loaded to 0x10400000
## Booting kernel from Legacy Image at 10400000 ...
Image Name: Linux-2.6.27.6.atmel.1
Image Type: AVR32 Linux Kernel Image (gzip compressed)
Data Size: 1251950 Bytes = 1.2 MB
Load Address: 10000000
Entry Point: 90000000
Verifying Checksum ... OK
Uncompressing Kernel Image ... OK

Starting kernel at 90000000 (params at 11f71008)...

Linux version 2.6.27.6.atmel.1 (ssg@ssg-0) (gcc version 4.2.2-atmel.1.1.3.buildr
oot.1) #1 Thu Dec 18 14:57:28 CET 2008
CPU: AT32AP700x chip revision C
CPU: AP7 [01] core revision 0 (AVR32B arch revision 1)
CPU: MMU configuration: Shared TLB
CPU: features: dsp simd ocd perfctr java
CPU: Running at 140.000 MHz
Physical memory:
10000000-11ffffff
Reserved memory:
10000000-101817bf: Kernel code
101817c0-102193e7: Kernel data
Exception vectors start at 90013000
CPU: Paging enabled
Node 0: start_pfn = 0x10000, low = 0x12000
Node 0: mem_map starts at 9021c000
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
Kernel command line: root=/dev/mtdblock1 rootfstype=jffs2
PID hash table entries: 128 (order: 7, 512 bytes)
avr32_comparator: irq 0, 140.000 MHz
console [ttyS0] enabled
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 30328k/30328k available (1465k kernel code, 2440k reserved, 111k data, 7
6k init)
SLUB: Genslabs=10, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay using timer specific routine.. 281.81 BogoMIPS (lpj=563636)
Mount-cache hash table entries: 512
net_namespace: 756 bytes
smc smc.0: Atmel Static Memory Controller at 0xfff03400
NET: Registered protocol family 16
pdc pdc.0: Atmel Peripheral DMA Controller enabled
at32_eic at32_eic.0: External Interrupt Controller at 0xfff00100, IRQ 19
at32_eic at32_eic.0: Handling 4 external IRQs, starting with IRQ 64
AVR32 AP Power Management enabled
dw_dmac.0: DesignWare DMA Controller, 3 channels
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 1024 (order: 1, 8192 bytes)
TCP bind hash table entries: 1024 (order: 0, 4096 bytes)
TCP: Hash tables configured (established 1024 bind 1024)
TCP reno registered
NET: Registered protocol family 1
JFFS2 version 2.2. (NAND) A 2001-2006 Red Hat, Inc.
msgmni has been set to 59
io scheduler noop registered
io scheduler cfq registered (default)
atmel_usart.0: ttyS0 at MMIO 0xffe01000 (irq = 7) is a ATMEL_SERIAL
MACB_mii_bus: probed
eth0: Atmel MACB at 0xfff01800 irq 25 (00:04:25:1c:89:72)
eth0: attached PHY driver [Generic PHY] (mii_bus:phy_addr=0:01, irq=-1)
MACB_mii_bus: probed
eth1: Atmel MACB at 0xfff01c00 irq 26 (00:04:25:1c:89:73)
eth1: attached PHY driver [Generic PHY] (mii_bus:phy_addr=1:03, irq=-1)
physmap platform flash device: 00800000 at 00000000
physmap-flash.0: Found 1 x16 devices at 0x0 in 16-bit bank
Amd/Fujitsu Extended Query Table at 0x0041
number of CFI chips: 1
cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness.
RedBoot partition parsing not available
Using physmap partition information
Creating 3 MTD partitions on "physmap-flash.0":
0x00000000-0x00020000 : "u-boot"
0x00020000-0x007f0000 : "root"
0x007f0000-0x00800000 : "env"
atmel_spi atmel_spi.0: Atmel SPI Controller at 0xffe00000 (irq 3)
atmel_spi atmel_spi.0: Using bounce buffer at 0x24000000 len 4096
mtd_dataflash spi0.0: AT45DB642x (8448 KBytes) pagesize 1056 bytes
atmel_usba_udc atmel_usba_udc.0: MMIO registers at 0xfff03000 mapped at fff03000

atmel_usba_udc atmel_usba_udc.0: FIFO at 0xff300000 mapped at ff300000
at32ap700x_rtc at32ap700x_rtc.0: rtc core: registered at32ap700x_rtc as rtc0
at32ap700x_rtc at32ap700x_rtc.0: Atmel RTC for AT32AP700x at fff00080 irq 21
at32_wdt at32_wdt.0: AT32 WDT at 0xfff000b0, timeout 2 sec (nowayout=0)
atmel_mci atmel_mci.0: Atmel MCI controller at 0xfff02400 irq 28, 1 slots
Registered led device: sys
Registered led device: a
Registered led device: b
TCP cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 10
IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
cpufreq: AT32AP CPU frequency driver
at32ap700x_rtc at32ap700x_rtc.0: setting system clock to 1970-01-01 00:00:00 UTC
(0)
VFS: Mounted root (jffs2 filesystem).
Freeing init memory: 76K (90000000 - 90013000)
mmc0: new SD card at address a1ea
mmcblk0: mmc0:a1ea SD256 249088KiB
init p1s
tarted: BusyBox v1.4.2 (2007-04-17 15:34:55 CEST) multi-call binary
* mounting virtual filesystems: /proc /sys /dev /dev/pts /config /tmp /var/run
/var/lib/samba /var/log
* set mdev hotplug ... [ OK ]
* mdev ... [ OK ]
* setting hostname ... 'ngw.example.net'
* network loopback ... [ OK ]
* starting syslogd ... [ OK ]
* log messages to syslog ... [ OK ]
* starting klogd ... [ OK ]
* probing modules ... vfat failed, mmc_block failed, atmel-mci failed
, [ OK ]
* mounting filesystems: /usr
* setup eth0 ... [ STATIC ] (10.11.12.1)
* setup eth1 ... [ OK ]
* network ... [ OK ]
* starting telnetd ... [ OK ]
* enable ipv4 forwarding ... [ OK ]
* iptables postrouting ... [ FAILED ]
* starting dnsmasq ... [ OK ]
* running ntpdate ... [ FAILED ]
* starting dropbear ... [ OK ]
* starting inted ... [ OK ]
* starting nmbd ... [ OK ]
* starting smbd ... [ OK ]
* starting winbindd ... [ OK ]
* starting httpd ... [ OK ]
* get board type for GPIO ... 'NGW'
* setup GPIO boot LED ... [ FAILED ]

Network Gateway ready



BusyBox v1.4.2 (2007-04-17 15:34:55 CEST) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
~ #


Now pay ATTENTION to the string:

CPU: features: dsp simd ocd perfctr java
That means new kernel found as a CPU feature 'java'.
What does it mean?
Is this processor has embedded java as a hardware feature?
Or kernel feature finding procedure made an error?

Is AVR32AP7 supports Java on hardware level?
Simple answer is 'Yes'
See:
Java on AVR32AP7:
http://www.atmel.com/dyn/resources/prod_documents/doc32049.pdf
http://www.is2t.com/en/news-pressreleases-avr32ap7.php

This sounds good, but - how we can use Java in reality? Where to get tools?
Are there any free software tools for Java programming for NGW100?
For now I found only commercial product for Java development for AVR32AP7:
http://www.is2t.com/en/products-avr32

There were some info about porting free Java JVM - JamVM for NGW100.
But we did not test it yet.
There is a hope the JamVM will implement 'hardware acceleration' feature.
Then it will be possible to use 'java in CPU', implemented on the AP7000 fitted on NGW100.

Also there is a hope that NanoVM, which now it is tested on AVR Mega8 and Mega32,
will be ported to AVR32AP7 and then we will be happy to use it on NGW100.
See:
http://www.harbaum.org/till/nanovm/index.shtml
and
http://www.ericengler.com/NanoVM.aspx?AspxAutoDetectCookieSupport=1


TO BE CONTINUED...

--------------------------------------------------------------------------------

At the end I want to present a list of some useful commands for those,
who don't know Linux:
) df

~ # df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 8000 7816 184 98% /
dev 15200 4 15196 0% /dev
tmp 15200 0 15200 0% /tmp
run 15200 20 15180 0% /var/run
samba 15200 172 15028 1% /var/lib/samba
log 15200 36 15164 0% /var/log
/dev/mtdblock3 8448 8160 288 97% /usr


) reboot
(Reboot the system - no need to press the 'red button' on the board.)

) mount
(Shows mounted devices)


If you want to upload files to NGW100, using FTP, it is recommended to download
and use 'FileZilla' program.
Standard Windows FTP doesn't work or it should be tuned in a very special way.
My suggestion - do not waist your time, download and use FileZilla FTP client program.

http://filezilla-project.org/download.php

Connection sreen of FileZilla


You can see file systems of your PC and file system of NGW100:







Google
 



Contact us:


My Skype name is oleg_skp
Start Skype text chatStart Skype text chat
View Skype profileView Skype profile
Start Skype voice callStart Skype voice call
Add me to your Skype contact listAdd to Skype contact list
Leave voicemail using SkypeLeave voicemail using Skype
Send a file using SkypeSend a file using Skype
Note: To use these links
the Skype program should
be installed on your computer.
You can load it for free from
their official site:
Contact via Skypewww.Skype.com
------------------