RS Media Robot serial hack

My goal is to make a wireless serial connection to the robot as if it were wired to my laptop.
I have 2 xb24 version 1084, usb explorer, explorer regulated.
The Robot has rx, tx, gnd and 3.3v pads.
As I understand it would be a AT transparent setup.

  1. Phisical connection to Explorer Regulated from robot, DOUT = RX, DIN = TX, GND = GND. is this correct?

  2. What about power? Can I connect the robot 3.3v to the explorer 5v (at the edge of the board) or should I connect directly to the 3.3v on the explorer (looks like direct to the 3.3v xbee pin) instead?

  3. USB explorer on x-ctu on my laptop says USB Serial port (com4) so it looks like at least that module is connected. After soldering the explorer regulated to the robot pads, how do I connect to it?

  4. I’ve read about firmware upgrade, is that needed for AT to proceed?

  5. What next to make this serial connection happen?

Ok I’ll take the time to respond to my own post.
1)correct physical connections
2)3.3v to the explorer 5v works, also to the 3.3v pin1 on xbee.
3)connect the radios by configuring sh/sl on dh/dl on both radios.
4)Firmware 1083 was from factory, garbled communications 9600 through 115200, Updated to 10CD same results, cannot downgrade to any firmware now to test others, connection to modem lost. Tried the 2 stop bits on the hyperterminal no fix.

So it looks like my serial hack is almost complete, just need to fix the sloppy connections.

1st xbee on usb explorer.
2nd xbee on robot. voltage to pin 1 = 3.3v, tx, rx, and gnd are all that I have connected.

here is what I get on hyperterminal as far as the sloppy connection goes

cãdä

ãle or directory

cãdä

ãuch file

cãdd

ãiy

cc

c: No such filecãdä

ãocãcã

ã<‹or directory

#cãdä

ãctory

#þcãdäcãsdóäfæsó

ãó:êdirectory

#cãdä

ãor directory

cã""

>

>

>

>!'Send­udio ackrecoverable frameaudio data format=signed

readˑ

“”

ã¨eoppïððw÷

ï÷ile or•½Éå

#cãdä

ãecy

#cãdä
\

•Ñ½Éå

cãdä

ãä: No such file or directory

#cãdä

ã^§Noictory

cãdä

ãor
cãdä

ãler#

cãdä

ãä: No such fileeþcãdä

ãä: No such file or directory

cãdd

ãirectory

cãdä

ãä: No suchr•Ñ½Éå
¡þcãdä

ãä: No such•½Éå
cãdä

ão such

#cãdäccdäcãdä

ãäcäão such filee

ãeectory

cãdä

ãr•
#

cãdä

ãle or directory

#cãdä

ãle

#þcã

ã: No such fileery

#cã

MXL¨ë±½…‘•Éfor RSmedia 32MB (2006-12-L¨¨¹…ÑÕÉ•I:

Press any key for alternate boot-uzions .0HCo^eel from Nand Flash×…

Manu IDëunt =000bÂ8

zone±scan­nished

BootingLinu²Í¥½¹2.4.18-rmk5-mLšn.com) (gccW¹2.95.3 2ŠšŠªB’•±•…Í•):45jº
essor: ARM/CIRRUS Arm92w–0re:S½n nodeotalX
ne(1):Í
ne(2): 0…Í
f

Console: colourVevice‚a98.50 BogoMIPS

Memory: 32MB = 32MB total

Memory: 30vode,aJ¥Ñ
Dentry-cachee 4B‘•É ¦“åÑ•Í
ache hash table
Mount-cache hash
table entries:M‚96 bytes)

Buffer-cache hash table entries: 1024é ¢tes)

Page-cache hash table entries:ŠzÉ‘•Ébs)

POSIX conformance testing by UNIFIX

Linu.for Linu’r¢
Com3nk socket

Starting­ttySA
Jis2Z
MX1ADS

¥é¥¹
½ÑÍÕV–ÉdriverWÍregistered

PPP¨[stered

SSFDC coreM1ADS nand I/Ortions

nandÒ±½­0ønand1 :ë­ ’…¹‘½µmø:±­na-02…¹‘½µman4¥Ñ…‰±•¥Í­ 2 KBb‚f9a : "PassD
isk"M ’…¹‘½µmflash…É£¥Ñ¥½¹dinitions installed

NET4:*/IPN
IP:®cash table of 512 buckets, 4Kbytes

TCP: Hash tables configured0NET4: Uni"A

MXL Bootloader forª¥…31)

Manufacture ID:
ce ID:22BA

Press any key f00’

Co^knel½5…

Manu0º² Block¬¹Ñ=‚lock
ne table:3scanëfinished

Booting¹Linu²•ÉÍ¥½¹2.4.18-rmk5-mLBion.com)s&rš2ŠiT16 11:40:45j¨%+’‚Tsid(wb)–

Architecture:SX1ADS

On node…±Áages:Šz
ne(2): 0…ernel¬e: root=fe¬Édy device 8
ingV98.50 BogoMIPS

Memory:&ê2MB total

Memory:a‚3K code,¥
Dentry-cache hash(’º²Âbytes)

Inode-cache
Mount-cacheaÑ

Buffer-cache hashnåÑ•Í
Page-caches’BzÉ‘•É X¬Éµ…¹•testing
nu’Based½wanseaeQ.
Initializing RT netlink®Starting kswattySA0‚29)ZMX1ADS

ttySA1 at I/O¦JÍa
5ured

DMA¥Õ•Õ•PPP generic
Ñ•Cegistered

PPP BSD ComS•su½é"talled

SSFDCc‚‚‚‚49Éønand1±‚’“RootDisk”“½µmaa2Õѥͭ 4½ønand3 : block ‚¥’KB random
ma¤om[
½­‚f7b-
1ADSfs±NET4:*ÉN%½Ñ½½±Í ICMP, UDP, TCP

IP:®ache hashÍTCP: Hash±¥¹‘2NET4:+nuiëѹPBjÊÊRebel.com

found bad block‚ssÂ
[ ‚ 0taÍr1:Â
‘‘É:‚0*PAGE
:ttical found bad block ™s 0b Öata status: 0–‚•1c3 0‚VFS:S¹Ñ•‘rot (cramfs‹Íå
ÍÑ•µ only.

Freeingo
mLÉÑÕ

BusyBo²‚.60.5 (2005.11.2K41+‚(nter 'hel immands.

sh:yntrolW‘off

init

Using /lib/modules/mL}É•å±ÿe_lcd.o

HD66770 Recycle LCD•½¹ned

Using /lib/modules/mL}caW•kMXL-ADS VideotModule
Using /lib/modules/usb_disk.o

Call®Õ‘¥Í­}É•¥ÍÑ•É}ation

Call usb_disk_register

USB Device mass±
Using /lib/modules/mL}o

Date’gister usb_mmc_disk comMdiska
Using‰oes/mLMX1ADS USBTcontrollerriver•EXT2-fsnting unchecked—’µ•¹‘•‘
EXT2-fsÉ Ñcount reached,—ËckZmkdir: Cannot,ËkëIÙ eZmkdir: Cannot create direct
orynusic’: Filemkdir:¹½Ñcreate directoryk FileÍmkdir:¹½Ñcreatek‹mkdir: Cannot,
ctory ‰Ëkë•:ln: /lnk/Java/Default: FileÑln: /lnk/Java/User:ln:‰Ëkë©ÍWwwee: File
eZ
ln:‰kë©Í¥User: Fileln:‰ë¹ln:‰Éer:eln:‰Ëkë½owwee:ln: /lnk/Photo/User:‹Zln:‰k
ë•Wowwee:ln: /lnk/Videos/User:umount:©s…t

SD card¥Using /lib/modules/mL}½}ÿcs42l51.o

ChiiMºriverCo^fileÖ#Runningd/bin/sh

***rsu•jšÑ…ÉÑ¥¹/usr/bin/robot/run.sh

/bin/sh

/mnt/sd/robot.cfgÍ
/lnk/robot.cfg¥
/mnt/sd/Personalities eZHø/mnt/sd/Java eZ/mnt/s
d/Music¥Ñ
/mnt/sd/Music/å/mnt/sd/Music/.caeW/mnt/sd/Photo eZ/mnt/sd/Photo/.caW/m
nt/sd/Videos eZWHø/mnt/sd/Videos/.caZWHø/mnt/sd/A±/bin/sh

killall: nano-X:덕ÍÍkkillall: main_ui:ë‚ɽ•ÍÍklled

Nano-X version ÊÉ•Â

BusyBo².:41+‚uilt-in shelliuilt-in commands.

sh: can’tXlrnedh# framebuffer ioctl notoNANOX: WESTERNR12’ësend_command_to_sunra
mL}ÍÑ…ÉÑÕÁ

UART 2 is]½ÉM/usr/bin/robot/start_robot_mainFreeing argv

/usr/bin/robot/mediadaemonFreeing argv

/etc/emtk/emtkrc:êor directory

finish

/etc/emtk/emtkrc:ê¡filey/usr/bin/robot/main_uiFreeing argv

/etc/emtk/emtkrc:ꍡfor directory

DEBUG:×ɱ}Í•Ñ}Ù…±Õ• DEBUG:×Í•Ñ}Ù…±Õ• 9

Chi²•ÉÍ¥½¹087

sh

Running‘É}±¥ÍÑ}‘¥É•Ñ½Éå
•…‘}É•…Ñ•ùùhre!

sh

####USBÊ9NANOX: WESTERN•Font‹/®¹t

**EMTKªR
¹¥µ}¥½¹}Í¡½Ý –tNNOX: WESTERNÙSendto sunÍ™™™Â3recoverable•þ57)

audioÑformat=signed

read finished

Send­udio ack cmd toÍ™™ ‚recoverableaudio data format=signed

read finished

#cIRDataZ

ãddcãdä cãaánî aáW×TÔHH

MXL BootloaderÖd2-L¹ÕÉ•ID:00C2

DeviceeuÉÉ00

Co^ernel½5…

Manu ID‚e‚² Block¬=0‚0QQNÂscan blockË‘
Booting¹±…

Linu²k5-mL…estechsolution.com)r01Í-2ºrocessor: ARM/CIRRUS Arm92

MXL BootloaderÖRia&
Manufacture ID:0(¥•Ior alternat0øCo^FI¨øManuv0ë­countbable:08EE9388

scanëfinished

BootingLinu²•ÉÍ¥½¹2B…µestechsolution.com)von&ª(release))º¥Fssor:
Architecture: MotorolaO…•Í

                       line:®Cole:¬ëÉ8øating delay looÉ9‚¨½5%AM

Memory:&

Memory:¥…n
Dentry-cache hash table entries:)Inode-cacheÍble‘ åÑ•Í
Mount-cache hasht2éÉ0byte
s)

Buffer-cache hashs(order:bage-cachetÉ‘•ÉPOSIX¬½u.nu’Based¥ming­Starting kswatty
SA0 at I/O 0ÍttySA1êDS

5gured

DMA
block:• 16

PPPVrsion 2.4.1

PPP Deflate Com½µion[•registered

SSFDC¬½installed

MX1ADSSrtitions

nand0 : blockÂl" 11 Ñmao“½­‚22a-0¢ ±Ñ¥Í­n±½­‚4aa-02:’nand4 :‚¥Ñ…‰±•
¥Í­ and5 : blockÂ9aͥͭ B random masi4:*TCP/IP4.½Ñ¹c•Kbytes

TCP: Hash tables¬tablished¢omain/nu Point Emulator.

foundlc, blocksus‚
reserved:‚t™™

ecc1:ÂÂ0PAGE ±‘nfound bad block 0jò0ff ff ff ff 11 e6f3 es ock status: ‚11
,:ecc1:‚3¦øVFS:S¹Ñ•‘root (cramfsÍÍÑ•µFgmLÍ

BusyBo².41+‚ash)

Enter 'hel½of built-in commands.

sh:Í job¬Using‰mdules/mL}É•å±ÿe_lcd.o

HD6677•132LÍ¥½¹0.1 installed

Using /lib/modules/mLaWÍkMXL-ADS½ed

Using /lib/modules/usb_disk.o

Call®Õ‘¥Í­}É•¥ÍÑ•É}aon

Call usb_disk_register

USBT…rfaceÑ
Using /lib/modules/mL}µµo

Date :s¬µ}‘¥Í­cMMC diski

Using‰
MX1ADS USBT•ontroller glue•EXT2-fs¥nting unchecked fs,—
EXT2-fs warning: maZ[Õnning e2fsck is recommended

mkdir:ÉåË…:‹mkdir: Cannot create½mkdir:½ry ‰ë½¥Ñ¥•Í:eÍmkdir: Cannot,dectory:Zmk
dir: Cannot,•dectoryÍln: /lnk/Java/Default: File¥ln: /lnk/Java/User: File¥ÑÍ
ln:‰
Ëkë©ÍWwee: File eZln:‰kë©ÍU: File eZ
ln:‰ë½±¥Ñ¥•ÍWe eZ
ln:‰Ëkë½ln:‰ë½Wwwee:Zln:‰Ë
kë½User:ln:‰kë•Wwwee: File eZln:‰Ëkëumount:©:nvalid argument

SD card¥Í
Using‰oes/mL cs42l51.o

Chib,

Any solution for this problem? Thanks

> 3.3v to the explorer 5v works, also to the 3.3v pin1 on xbee.

I’m not sure what you mean by this, but I hope it doesn’t mean you’re actually feeding 5V to the XBee. That would be a sure recipe for disaster…

> cannot downgrade to any firmware now to test others, connection to modem lost.

There are a few suggestions in the FAQ for dealing with the situation where X-CTU can’t talk to the XBee. Version 10CD should be fine though (although it isn’t the latest).

Reading between the garbled bits in the terminal printout, the far send seems to be reporting quite a few error messages - so something’s apparently wrong there.

Also, I’m guessing that the output is being generated at a fairly high rate. Given that, you’re probably going to need to implement flow control on the connection in order not to lose characters. However, lack of flow control shouldn’t lead to garbled characters.

What was the baud rate you were using when you captured the output?

Hello Johnf, thanks for taking a look here. The RS Media only puts out 3.3v so what I meant was that I could connect the 3.3v to the 5v input of the explorer regulated with the xbee on it and it would power up normally. I read up on the xbee power input before anything.
As fas as the x-ctu, it does read both xbee’s at 115200, and I can do At configs, just cant do any firmware updates after updating to 10CD. So i’ve stayed on 10CD. The robot communicates at 115200 and I have configured both xbee’s at that speed and have set 2 stop bits on the hyperterminal with no improvement. So the captured output was using 115200.
Freddy

Hello Johnf, thanks for taking a look here. The RS Media only puts out 3.3v so what I meant was that I could connect the 3.3v to the 5v input of the explorer regulated with the xbee on it and it would power up normally. I read up on the xbee power input before anything.
As fas as the x-ctu, it does read both xbee’s at 115200, and I can do At configs, just cant do any firmware updates after updating to 10CD. So i’ve stayed on 10CD. The robot communicates at 115200 and I have configured both xbee’s at that speed and have set 2 stop bits on the hyperterminal with no improvement. So the captured output was using 115200.
Freddy

Ok. Thanks for the reassurance on the power!

I tried googling for technical details on the robot but didn’t come up with very much, except for one mention that its processor has a system clock of 200 MHz. That rang some alarm bells.

Now, I’m going to make a couple of assumptions here and then stick my neck out with a theory. The theory might still be broadly right even if the assumptions are wrong, but its case would be weakened.

Assumption: the scenario you’re describing is that an XBee is mounted on the robot, communicating with the second XBee attached to a PC.

Assumption: you’ve found a way to tap in to a direct RS-232 connection on the robot (my googling suggested that the robot output was via USB).

Observation: your hyperterminal capture does look very much like a baud rate mismatch. In fact, when characters are corrupted over a serial link there’s very little other than extreme noise that can explain it.

You say you tried two stop bits in hyperterminal but that it made little difference. At 115200 baud, two stop bits at the PC end do make sense, so keep them in and keep reading.

It’s the serial link between the robot and its XBee that I now think may be causing the problem. If the robot system clock is 200 MHz, and if it uses the standard algorithm (that’s two more assumptions…), it’ll divide that clock by (16 * x) to get the baud rate, where x is the nearest integer to the theoretically correct value. The theoretically correct value for x is 200M / 16 / 115200 = 108.506, so the nearest integer is 109.

The robot’s actual baud rate is therefore presumably 200M / 16 / 109 = 114,678.89 baud.

However, the best the XBee with its 20 MHz clock can manage is 111,111.11 baud. The difference between these rates is 3.2% and that’s rather a large difference.

So I think you may need to look at the robot-XBee link and adjust something. There are two possibilities: either set the robot to send two stop bits, or set the robot to use a custom baud rate as close as possible to 111,111.11 baud.

To choose between the two possibilities: I would set two stop bits on the robot. If you change the robot’s baud rate, you’ll then re-encounter the original problem when you connect the robot directly to a PC.

Johnf, Your are correct in the setup you described and there is a serial connection available on the media board of the robot where I have soldered the radio. So I am currently attempting (with the help from Helibot, a well known user at robocommunity.com) to set 2 stop bits or a diffrent baud rate on the robot, even to a 57600 rate that might be more reliable? I will post any updates ASAP thanks again for your in depth help on this. Almost there!

Freddy

OK, Success! But not at 111,111.11 since the program used does not support custom rates. I will hope to be able to use 115200 by some custom program running at the robot end or somehow setting 2 stop bits more favorably. 57600 is good for now I’ll be testing some ppp. Thanks for your help Johnf