Gumstix competition - low cost linux board with USB2 host

News and announcements related to Humanoids/walkers, robo-one/other conferences, intelligent servos, advanced robot controllers/sensors, and interesting new humanoid related developments.
15 postsPage 1 of 1
15 postsPage 1 of 1

Gumstix competition - low cost linux board with USB2 host

Post by limor » Wed Nov 11, 2009 12:03 am

Post by limor
Wed Nov 11, 2009 12:03 am

I'm very excited to have just received a new board that may revolutionize the hobby world. It is an extremely low cost, miniature, X86 compatible, linux board supporting USB2 host!

Where's the revolution? imagine being able to add to your robot or RC plane, hassle free, cheap, fully functional USB peripherals such as a $3 sound device, $2 wifi-n dongle, $3 bluetooth2.0 dongle, $3 webcam, be able to stream live video from and sound to/from your robot.... No need to be fluent in electronics or low level coding...

The board, which we will shortly stock, is called Bifferos which comes as a pair of boards - CPU board and the daughter board that has USB and Ethernet. Conceptually similar to Gumstix.

Image
Image
Image
Image
Image
Image
Image
I'm very excited to have just received a new board that may revolutionize the hobby world. It is an extremely low cost, miniature, X86 compatible, linux board supporting USB2 host!

Where's the revolution? imagine being able to add to your robot or RC plane, hassle free, cheap, fully functional USB peripherals such as a $3 sound device, $2 wifi-n dongle, $3 bluetooth2.0 dongle, $3 webcam, be able to stream live video from and sound to/from your robot.... No need to be fluent in electronics or low level coding...

The board, which we will shortly stock, is called Bifferos which comes as a pair of boards - CPU board and the daughter board that has USB and Ethernet. Conceptually similar to Gumstix.

Image
Image
Image
Image
Image
Image
Image
Last edited by limor on Wed Nov 11, 2009 9:53 am, edited 1 time in total.
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by limor » Wed Nov 11, 2009 1:55 am

Post by limor
Wed Nov 11, 2009 1:55 am

I spent a couple of hours this evening with the board. Didn't get far but decided bo blog what i did for posterity.

-------------
The board comes pre-flashed with a super bootloader and a basic linux kernel. "Super" because it can sense what is connected to the board and flash the board's 1mb memory via Ethernet or serial.

Any special drivers or software that I'd like to run on the board, needs to be on a USB memory stick formatted as Linux Ext3 filesystem and containing the root file system with all software and files that are needed. The pre-loaded linux boots up when the board is switched on and the last thing it does is look for the USB memory stick. At that point, if the stick is not there, it will halt. Otherwise it will provide a shell prompt.

Image
Image
Image

I didn't format a memory stick yet as Ext3 and plug it into the board, therefore as you can see, the boot process halts "Waiting for root device /dev/sda1..."

To connect the board to the PC, I followed instructions from the bifferos site regarding how to connect the board to the PC serial console using a Prolific USB-serial cable:
http://sites.google.com/site/bifferboard/Home/howto/connect-to-serial-console
My laptop is a MacBook (capable of running XP via Parallels on rare occasions). At first I didn't realize that without the driver for the Prolific chip PL-2303, which is on the USB-serial cable used in this case, neither OS/X nor XP will be able to communicate with the cable or the Bifferos.

So after plugging the cable and seeing that no new serial device was dynamically created on the MacBook ( ioreg -c IOSerialBSDClient ) I tried to get the communications going with XP running in Parallels.
At which point I realized I'm missing the Prolific drivers.
Here they are for both Windows and Mac:
http://www.prolific.com.tw/eng/downloads.asp?ID=31

In XP I Installed an sourceforge application called realterm but all I got was gibberish no matter what baud rate. This must be some oddity related to Parallels because I then installed the driver in OS/X and use an application called zterm
http://homepage.mac.com/dalverson/zterm/
and communications worked perfectly at 115200 on OS/X
(btw during instalation of the driver it asks for a reboot, which i didn't do and the cable was recognized and all worked so no need for reboot immediately)
zterm works fine, recognizes serial port "usbserial" and console messages spit out after setting the baud to 115200 (see above screenshots of zterm showing the boot sequence text).

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

Next comes creating a usb drive with ext3 filesystem that will serve as root-file-system. The rootfs that Bifferos provides has very basic linux commands (busybox).
http://bifferos.bizhat.com/firmware/
There are couple of other options: Debian, Gentoo, and Slackware that community members have successfully installed on the board.
http://sites.google.com/site/bifferboard/Home/desktop-linux-distributions

After googling for a bit, it seems that to get a macbook to create an ext3 partition on a usb stick is note trivial.

So the given the XP / Parallels option, Google search comes up with a sourceforge project called GParted which is a general disk formating program but the advantage is that it can run off a USB stick or CD as a stan-alone bootable linux.

So the plan now is to take 2 USB sticks. one will become a bootable linux that will run GParted and the other will be the Ext3 root file system to be plugged into the Bifferos board. The GParted site says to install on XP a program called "live usb helper" that will automagically format the USB stick as Ext3 and install whatever image
which is a windows application. The program failed to recognize the usb stick when i tried on Vista. It failed to recognize the usb stick when running on XP. So i gave up on it.

instead, there was another windows tool for creating a bootable USB linux
http://unetbootin.sourceforge.net/
Nice thing is that it downloads bootable linux images from a large selection. One of the options was partedmagic.com (which includes gparted). i used parallels running XP to create the linux usb stick.

After reading a bit more I think I will need a full blown linux running on my mac via Parallels hopefully, in order to prepare my rootfs file system and possibly play around with drivers and write my own programs.
I spent a couple of hours this evening with the board. Didn't get far but decided bo blog what i did for posterity.

-------------
The board comes pre-flashed with a super bootloader and a basic linux kernel. "Super" because it can sense what is connected to the board and flash the board's 1mb memory via Ethernet or serial.

Any special drivers or software that I'd like to run on the board, needs to be on a USB memory stick formatted as Linux Ext3 filesystem and containing the root file system with all software and files that are needed. The pre-loaded linux boots up when the board is switched on and the last thing it does is look for the USB memory stick. At that point, if the stick is not there, it will halt. Otherwise it will provide a shell prompt.

Image
Image
Image

I didn't format a memory stick yet as Ext3 and plug it into the board, therefore as you can see, the boot process halts "Waiting for root device /dev/sda1..."

To connect the board to the PC, I followed instructions from the bifferos site regarding how to connect the board to the PC serial console using a Prolific USB-serial cable:
http://sites.google.com/site/bifferboard/Home/howto/connect-to-serial-console
My laptop is a MacBook (capable of running XP via Parallels on rare occasions). At first I didn't realize that without the driver for the Prolific chip PL-2303, which is on the USB-serial cable used in this case, neither OS/X nor XP will be able to communicate with the cable or the Bifferos.

So after plugging the cable and seeing that no new serial device was dynamically created on the MacBook ( ioreg -c IOSerialBSDClient ) I tried to get the communications going with XP running in Parallels.
At which point I realized I'm missing the Prolific drivers.
Here they are for both Windows and Mac:
http://www.prolific.com.tw/eng/downloads.asp?ID=31

In XP I Installed an sourceforge application called realterm but all I got was gibberish no matter what baud rate. This must be some oddity related to Parallels because I then installed the driver in OS/X and use an application called zterm
http://homepage.mac.com/dalverson/zterm/
and communications worked perfectly at 115200 on OS/X
(btw during instalation of the driver it asks for a reboot, which i didn't do and the cable was recognized and all worked so no need for reboot immediately)
zterm works fine, recognizes serial port "usbserial" and console messages spit out after setting the baud to 115200 (see above screenshots of zterm showing the boot sequence text).

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

Next comes creating a usb drive with ext3 filesystem that will serve as root-file-system. The rootfs that Bifferos provides has very basic linux commands (busybox).
http://bifferos.bizhat.com/firmware/
There are couple of other options: Debian, Gentoo, and Slackware that community members have successfully installed on the board.
http://sites.google.com/site/bifferboard/Home/desktop-linux-distributions

After googling for a bit, it seems that to get a macbook to create an ext3 partition on a usb stick is note trivial.

So the given the XP / Parallels option, Google search comes up with a sourceforge project called GParted which is a general disk formating program but the advantage is that it can run off a USB stick or CD as a stan-alone bootable linux.

So the plan now is to take 2 USB sticks. one will become a bootable linux that will run GParted and the other will be the Ext3 root file system to be plugged into the Bifferos board. The GParted site says to install on XP a program called "live usb helper" that will automagically format the USB stick as Ext3 and install whatever image
which is a windows application. The program failed to recognize the usb stick when i tried on Vista. It failed to recognize the usb stick when running on XP. So i gave up on it.

instead, there was another windows tool for creating a bootable USB linux
http://unetbootin.sourceforge.net/
Nice thing is that it downloads bootable linux images from a large selection. One of the options was partedmagic.com (which includes gparted). i used parallels running XP to create the linux usb stick.

After reading a bit more I think I will need a full blown linux running on my mac via Parallels hopefully, in order to prepare my rootfs file system and possibly play around with drivers and write my own programs.
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by NovaOne » Wed Nov 11, 2009 11:42 am

Post by NovaOne
Wed Nov 11, 2009 11:42 am

Very affordable. I like the uSD Hack:
http://sites.google.com/site/bifferboard/sd_mmc_howto

Alsothink this guy in the uk who hacks routers has some interesting ideas?:

http://www.sunspot.co.uk/Projects/Biffe ... index.html

PS Limor, I am interested.. :D
Very affordable. I like the uSD Hack:
http://sites.google.com/site/bifferboard/sd_mmc_howto

Alsothink this guy in the uk who hacks routers has some interesting ideas?:

http://www.sunspot.co.uk/Projects/Biffe ... index.html

PS Limor, I am interested.. :D
NovaOne offline
Savvy Roboteer
Savvy Roboteer
Posts: 405
Joined: Thu Jul 05, 2007 7:30 am

Re: Gumstix competition - low cost linux board with USB2 hos

Post by siempre.aprendiendo » Wed Nov 11, 2009 8:27 pm

Post by siempre.aprendiendo
Wed Nov 11, 2009 8:27 pm

limor wrote:I'm very excited to have just received a new board that may revolutionize the hobby world. It is an extremely low cost, miniature, X86 compatible, linux board supporting USB2 host!

... No need to be fluent in electronics or low level coding...




Hummm, it looks like pretty interesting and very affordable :)

There are many questions, like the support to other linux distros (Ubuntu would be great), ftdi software for usb2dynamixel (Bioloid),... :wink:

I have just read that it supports Debian (early stage beta), wonderful!
limor wrote:I'm very excited to have just received a new board that may revolutionize the hobby world. It is an extremely low cost, miniature, X86 compatible, linux board supporting USB2 host!

... No need to be fluent in electronics or low level coding...




Hummm, it looks like pretty interesting and very affordable :)

There are many questions, like the support to other linux distros (Ubuntu would be great), ftdi software for usb2dynamixel (Bioloid),... :wink:

I have just read that it supports Debian (early stage beta), wonderful!
siempre.aprendiendo offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 559
Joined: Wed Aug 08, 2007 9:13 pm
Location: Barcelona

Post by limor » Thu Nov 12, 2009 1:27 am

Post by limor
Thu Nov 12, 2009 1:27 am

a bit more progress this evening...

After searching google for windows/mac tools to format a USB stick with Ext3 file system and then copy the content of the above mentioned bifferos rootfs, I finally gave up and installed http://virtualbox.org
I then downloaded the latest GParted ISO
http://sourceforge.net/projects/gparted ... ve-stable/
the 2 downloads took a few minutes and then I ran the VirtualBox and created a virtual machine with default setting (called it gparted)
Image
Image

When running the new virtual machine it prompts for a CD file where i pointed it to the GParted ISO.
The Linux booted inside a window and i'm shown the list of devices that GParted can format. One was the virtual hard disk that is part of the virtual machine and the second was supposed to be the USB stick only that it didn't appear until i unmounted (ejected) it in Mac OS/X.
Image
Image

once my old 128mb usb stick was formated as ext3, the next step is to mount the stick and then copy the content of the Bifferos rootfs onto the stick
The GParted distribution comes with X windows and a xterm command shell.

mount /dev/sda1 /mnt

now the stick is mounted on /mnt

the next challenge is to access from this linux, the external Mac OS filesystem where the rootfs files are (or vice versa, transfer the files onto the linux virtual machine disk...)
a bit more progress this evening...

After searching google for windows/mac tools to format a USB stick with Ext3 file system and then copy the content of the above mentioned bifferos rootfs, I finally gave up and installed http://virtualbox.org
I then downloaded the latest GParted ISO
http://sourceforge.net/projects/gparted ... ve-stable/
the 2 downloads took a few minutes and then I ran the VirtualBox and created a virtual machine with default setting (called it gparted)
Image
Image

When running the new virtual machine it prompts for a CD file where i pointed it to the GParted ISO.
The Linux booted inside a window and i'm shown the list of devices that GParted can format. One was the virtual hard disk that is part of the virtual machine and the second was supposed to be the USB stick only that it didn't appear until i unmounted (ejected) it in Mac OS/X.
Image
Image

once my old 128mb usb stick was formated as ext3, the next step is to mount the stick and then copy the content of the Bifferos rootfs onto the stick
The GParted distribution comes with X windows and a xterm command shell.

mount /dev/sda1 /mnt

now the stick is mounted on /mnt

the next challenge is to access from this linux, the external Mac OS filesystem where the rootfs files are (or vice versa, transfer the files onto the linux virtual machine disk...)
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by limor » Mon Nov 16, 2009 9:47 pm

Post by limor
Mon Nov 16, 2009 9:47 pm

I'd like to have a linux system that can build both the kernel and some drivers that go into flash memory (1mb) and the stuff that wont fit onto the flash and will have to go onto the usb memory stick.
tried virtualbox with Gparted but that distribution is really limited and not intended as a development environment. then tried the Debian distribution called DamnSmallLinux but again that wasn't really intended as a development system.

There are 2 ways of getting access to a linux that is geared with enough software for cross-compiling.

1) get a $5/month linux VPS with Linux distribution such as Debian, Fedora etc. (1 minute)
2) install on your computer VirtualBox and then Debian or Slackware (2 hours)

I had already the VPS with Fedora so i just needed to add the packages listed below to get going. the downside of the VPS is that you then have to download an image of the Ext3 rootfs and burn it onto the USB stick using the method mentioned above (with VirtualBox or UNETBOOTIN as described above).

So I install virtualbox as described earlier only now it was with a proper debian ISO. in the debian download page, i chose the ISO that was about 40mb in size. during the install process it downloads anything it misses. the installation requires pretty much to press Enter every time it prompts something. However, the VirtualBox requires at least a couple of Gigs of disk space for Debian otherwise it fails (tried with 0.5Gb)

once you have root access you need to ensure all the packages are available for the compilation of the BifferBoard version of the OpenWRT operating system (which is a miniature linux designed for hacking embedded devices like routers). Here's a page of how they recommend creating a virtual machine running linux for the purpose of cross compilation:
http://wiki.openwrt.org/doc/howto/vm (a bit of an overkill imho but lets see if i can find shortcuts)

In Debian use the following:
aptitude install autoconf bison flex gawk ncurses-dev unzip zlib1g-dev bzip2 less make "g++" python zlibc patch subversion

In Fedora:
yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel subversion python

The BifferBoard source package requires also the following
wget http://tukaani.org/lzma/lzma-4.32.7.tar.gz
tar xf lzma-4.32.7.tar.gz
cd lzma-4.32.7
./configure
make
make install

All the above needs to be done as root. the following requires creating a non-root user login and working under that user

wget http://bifferos.planetlee.eu/bifferboar ... .4.tar.bz2
bzip2 -d bb-src-1.4.tar.bz2
tar xf bb-src-1.4.tar
cd bb-src-1.4

read the README.txt file

make

if there are no errors, the compilation will take over an hour. if you have dual core you can run "make -j 2" and it will take less time
I'd like to have a linux system that can build both the kernel and some drivers that go into flash memory (1mb) and the stuff that wont fit onto the flash and will have to go onto the usb memory stick.
tried virtualbox with Gparted but that distribution is really limited and not intended as a development environment. then tried the Debian distribution called DamnSmallLinux but again that wasn't really intended as a development system.

There are 2 ways of getting access to a linux that is geared with enough software for cross-compiling.

1) get a $5/month linux VPS with Linux distribution such as Debian, Fedora etc. (1 minute)
2) install on your computer VirtualBox and then Debian or Slackware (2 hours)

I had already the VPS with Fedora so i just needed to add the packages listed below to get going. the downside of the VPS is that you then have to download an image of the Ext3 rootfs and burn it onto the USB stick using the method mentioned above (with VirtualBox or UNETBOOTIN as described above).

So I install virtualbox as described earlier only now it was with a proper debian ISO. in the debian download page, i chose the ISO that was about 40mb in size. during the install process it downloads anything it misses. the installation requires pretty much to press Enter every time it prompts something. However, the VirtualBox requires at least a couple of Gigs of disk space for Debian otherwise it fails (tried with 0.5Gb)

once you have root access you need to ensure all the packages are available for the compilation of the BifferBoard version of the OpenWRT operating system (which is a miniature linux designed for hacking embedded devices like routers). Here's a page of how they recommend creating a virtual machine running linux for the purpose of cross compilation:
http://wiki.openwrt.org/doc/howto/vm (a bit of an overkill imho but lets see if i can find shortcuts)

In Debian use the following:
aptitude install autoconf bison flex gawk ncurses-dev unzip zlib1g-dev bzip2 less make "g++" python zlibc patch subversion

In Fedora:
yum install autoconf binutils bison bzip2 flex gawk gcc gcc-c++ gettext make ncurses-devel patch unzip wget zlib-devel subversion python

The BifferBoard source package requires also the following
wget http://tukaani.org/lzma/lzma-4.32.7.tar.gz
tar xf lzma-4.32.7.tar.gz
cd lzma-4.32.7
./configure
make
make install

All the above needs to be done as root. the following requires creating a non-root user login and working under that user

wget http://bifferos.planetlee.eu/bifferboar ... .4.tar.bz2
bzip2 -d bb-src-1.4.tar.bz2
tar xf bb-src-1.4.tar
cd bb-src-1.4

read the README.txt file

make

if there are no errors, the compilation will take over an hour. if you have dual core you can run "make -j 2" and it will take less time
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by limor » Mon Nov 16, 2009 11:36 pm

Post by limor
Mon Nov 16, 2009 11:36 pm

after 1.5 hours of compilations, the thing stopped having maxed out the 3gigs of virtual disk that i allocated to this Debian virtual machine. I tried to use a feature of VirtualBox called "Shared folders" where the guest O/S (Debian in my case) is able to mount a host directory (my host being MacOS). It worked following these instructions, !!but!! no symbolic links or file ownership are supported through this mechanism @!#$

Googling revealed that increasing the VDI (virtual disk image) in virtualbox requires creating a new larger image, copying the old to the new and repartitioning using Gparted. Thats where my patience ends for tonight.

Which brings the question: why 3 gigs of space are not enough to compile a tiny linux kernel smaller than 1mb ? I hope to find the answer later.

So I log into my $5/month VPS where i have 20gb of disk and plenty of CPU and ran the compilation again this time in Fedora Centos linux (after having installed all the necessary packages with "yum install"). the next 1.5 hours are not going to be fun for whoever is sharing cpu resources with me on that VPS.

Update: it took 20 minutes for the whole thing to compile on the VPS. well worth $5
after 1.5 hours of compilations, the thing stopped having maxed out the 3gigs of virtual disk that i allocated to this Debian virtual machine. I tried to use a feature of VirtualBox called "Shared folders" where the guest O/S (Debian in my case) is able to mount a host directory (my host being MacOS). It worked following these instructions, !!but!! no symbolic links or file ownership are supported through this mechanism @!#$

Googling revealed that increasing the VDI (virtual disk image) in virtualbox requires creating a new larger image, copying the old to the new and repartitioning using Gparted. Thats where my patience ends for tonight.

Which brings the question: why 3 gigs of space are not enough to compile a tiny linux kernel smaller than 1mb ? I hope to find the answer later.

So I log into my $5/month VPS where i have 20gb of disk and plenty of CPU and ran the compilation again this time in Fedora Centos linux (after having installed all the necessary packages with "yum install"). the next 1.5 hours are not going to be fun for whoever is sharing cpu resources with me on that VPS.

Update: it took 20 minutes for the whole thing to compile on the VPS. well worth $5
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by l3v3rz » Tue Nov 17, 2009 5:14 pm

Post by l3v3rz
Tue Nov 17, 2009 5:14 pm

How would you say this compares with the beagle board http://beagleboard.org/ Has anyone looked at using this for robotics ? I see its available from Sparkfun (http://www.sparkfun.com/commerce/product_info.php?products_id=9444) - are you looking to stock in UK?

cheers
How would you say this compares with the beagle board http://beagleboard.org/ Has anyone looked at using this for robotics ? I see its available from Sparkfun (http://www.sparkfun.com/commerce/product_info.php?products_id=9444) - are you looking to stock in UK?

cheers
l3v3rz offline
Savvy Roboteer
Savvy Roboteer
Posts: 473
Joined: Fri Jul 18, 2008 2:34 pm

Post by limor » Tue Nov 17, 2009 9:49 pm

Post by limor
Tue Nov 17, 2009 9:49 pm

l3v3rz wrote:How would you say this compares with the beagle board http://beagleboard.org/ Has anyone looked at using this for robotics ? I see its available from Sparkfun (http://www.sparkfun.com/commerce/product_info.php?products_id=9444) - are you looking to stock in UK?
cheers


We are looking into stocking a Beagle Board compatible board. The Beagle Board can be purchased from the beagleboard.org site. We probably won't stock the original one because the available margins for small volume purchases are not worth the effort (same applies for gumstix).

For robotics project, our 1Ghz RoBoard and high mHz ARM based embedded linux board such as the BeagleBoard and gumstix provide I/O and computation power necessary to perform some path finding and maybe some video image processing.

The great thing about the BifferBoard is that it is the smallest cheapest USB2.0 Linux host In The World!

USB2.o Linux host means you can use it in your robot applications to link USB devices that are otherwise inaccessible to the hobby community (see some example at the beginning of this thread). Hobby electronics use serial and i2C for communications. not USB because it is too complicated and because there are few available drivers other than Linux and Windows.

Beagle Board:
* 600mhz OMAP3530 processor; TMS320C64x+™ DSP; ARM Cortex-A8
* HD video output, OpenGL© ES 2.0 capable
* 128mb RAM, 256mb flash, Linux
* USB power, USB 2.0 HS OTG
* serial, mmc, spi,..
* 10cm x 10cm
* 150 EUR/USD

Biffer Board:
* 150MHz CPU, Intel compatible 486SX instruction set, MMU
* 32mb RAM, 1mb flash, Linux
* USB power
* 6.8cm x 2.8cm
* USB power, USB 2.0 OHCI/EHCI USB
* 10/100 ethernet, serial, i2c, GPIO
* 50 USD, 32 EUR, 29 GBP
l3v3rz wrote:How would you say this compares with the beagle board http://beagleboard.org/ Has anyone looked at using this for robotics ? I see its available from Sparkfun (http://www.sparkfun.com/commerce/product_info.php?products_id=9444) - are you looking to stock in UK?
cheers


We are looking into stocking a Beagle Board compatible board. The Beagle Board can be purchased from the beagleboard.org site. We probably won't stock the original one because the available margins for small volume purchases are not worth the effort (same applies for gumstix).

For robotics project, our 1Ghz RoBoard and high mHz ARM based embedded linux board such as the BeagleBoard and gumstix provide I/O and computation power necessary to perform some path finding and maybe some video image processing.

The great thing about the BifferBoard is that it is the smallest cheapest USB2.0 Linux host In The World!

USB2.o Linux host means you can use it in your robot applications to link USB devices that are otherwise inaccessible to the hobby community (see some example at the beginning of this thread). Hobby electronics use serial and i2C for communications. not USB because it is too complicated and because there are few available drivers other than Linux and Windows.

Beagle Board:
* 600mhz OMAP3530 processor; TMS320C64x+™ DSP; ARM Cortex-A8
* HD video output, OpenGL© ES 2.0 capable
* 128mb RAM, 256mb flash, Linux
* USB power, USB 2.0 HS OTG
* serial, mmc, spi,..
* 10cm x 10cm
* 150 EUR/USD

Biffer Board:
* 150MHz CPU, Intel compatible 486SX instruction set, MMU
* 32mb RAM, 1mb flash, Linux
* USB power
* 6.8cm x 2.8cm
* USB power, USB 2.0 OHCI/EHCI USB
* 10/100 ethernet, serial, i2c, GPIO
* 50 USD, 32 EUR, 29 GBP
limor offline
Savvy Roboteer
Savvy Roboteer
User avatar
Posts: 1845
Joined: Mon Oct 11, 2004 1:00 am
Location: London, UK

Post by l3v3rz » Wed Nov 18, 2009 12:30 am

Post by l3v3rz
Wed Nov 18, 2009 12:30 am

That's a fantastic price point for Biffer. I hadn't realised it was going to be that cheap - look forward to seeing it on the Shop. I'm amazed you can get linux running on something so small (in memory terms)

cheers
That's a fantastic price point for Biffer. I hadn't realised it was going to be that cheap - look forward to seeing it on the Shop. I'm amazed you can get linux running on something so small (in memory terms)

cheers
l3v3rz offline
Savvy Roboteer
Savvy Roboteer
Posts: 473
Joined: Fri Jul 18, 2008 2:34 pm

Bifferboard Propeller interface

Post by bifferos » Thu Jan 28, 2010 12:19 pm

Post by bifferos
Thu Jan 28, 2010 12:19 pm

If interested, you can follow my attempts to interface the Bifferboard to the Propeller chip here:
http://sites.google.com/site/bifferboar ... estigation

I believe the combination of the two will be very useful for robotics, but there's still a fair amount of work to achieve my aim of full integration. At the moment I'm using telnet to access the Bifferboard, and then programming the Propeller through the serial console.

It's quite neat (or at least I think so). I suspect that much of what I've done is applicable to the Roboboard sold on this site, and there will be spin-off (pardon the pun) for people using that instead.

regards,
Biff.
If interested, you can follow my attempts to interface the Bifferboard to the Propeller chip here:
http://sites.google.com/site/bifferboar ... estigation

I believe the combination of the two will be very useful for robotics, but there's still a fair amount of work to achieve my aim of full integration. At the moment I'm using telnet to access the Bifferboard, and then programming the Propeller through the serial console.

It's quite neat (or at least I think so). I suspect that much of what I've done is applicable to the Roboboard sold on this site, and there will be spin-off (pardon the pun) for people using that instead.

regards,
Biff.
bifferos offline
Newbie
Newbie
Posts: 2
Joined: Thu Jan 28, 2010 12:11 pm

Post by PedroR » Mon Feb 01, 2010 1:35 pm

Post by PedroR
Mon Feb 01, 2010 1:35 pm

Hi Biff

I actually got to have a look at your board with Limor I would like to take the opportunity to suggest an alternative approach at this:


How about using an ATMEGA chip that emulates a USB client and sits on the USB bus, performing different functions like high speed comm, ADC, DIO, etc?


Typically for a Humanoid Robot we need two types of things:
- High Speed UART (1Mbps or more. this is fundamental for ROBOTIS servos which are one of the most popular around)
- An ADC chip to interface with sensors
- Eventually one or two additional COMM ports to interface with a 6 or more axis IMU for example or an Xbee Module or BT module.


I don't believe the COMM port on the chip will run at such high speed (I also don't know if it even has a comm port) but the USB host should at least run at 12mbps (USB 1.1).


Therefore, I was thinking about the following:

- Getting one of the ATMEGA chips that can do USB client and sit it on the USB bus.

- The ATMEGA is capable of HIGH speed communitcation, has an onboard ADC and can talk to the computer over USB (High Speed).


One of the simplest approaches I can see is having it show up as a Serial COM port to the computer.

You could use some of the signal bits (DTR, RTS, etc) to change the operation mode of the chip:

- For example RTS HIGH would have the chip work in "brigde mode" where the virtual COMM port takes data at high speed and teh chip replays it on it's COMM at the same high speed.

- For example RTS LOW would put it in terminal mode, where you could read the ADC pins (analog entries).

- Additional PIN combinations could be used for different things like setting up the chip (selecting the speed on the COMM port for example), setting up different things, etc.


There is one additional challenge which is using AX servos. These are half duplex and therefore have RX and TX on the same wire.
ROBOTIS recommends some hardware setup but this should be expensive.
I've heard that if you short RX and TX, the ATMEGA chips can actually work by enabling or disable RX or TX in turns, which, in turn, would mean you could do half duplex by shorting the output pins.

This could be a cheap solution to interface with AX-12s. Once again, this is something that could be setup at run time to modify the behaviour of the chip.



There are many other things you could do but this is just a rough idea. (other ideas: enabling the use of multiple UARTs on the chip which are accessed on the fly by setting different RTS/DTR, etc pin combinations, making the ATMEGA expose multiple Virtual COMM ports to the computer for different purposes, etc....)

I also know this solution with the "bridge mode" may add some latency but nevertheless I would like to hear your and other's opinions as it may may be cheapest yet most flexible way to interface the biffer board with a robot.


Regards
Pedro.
Hi Biff

I actually got to have a look at your board with Limor I would like to take the opportunity to suggest an alternative approach at this:


How about using an ATMEGA chip that emulates a USB client and sits on the USB bus, performing different functions like high speed comm, ADC, DIO, etc?


Typically for a Humanoid Robot we need two types of things:
- High Speed UART (1Mbps or more. this is fundamental for ROBOTIS servos which are one of the most popular around)
- An ADC chip to interface with sensors
- Eventually one or two additional COMM ports to interface with a 6 or more axis IMU for example or an Xbee Module or BT module.


I don't believe the COMM port on the chip will run at such high speed (I also don't know if it even has a comm port) but the USB host should at least run at 12mbps (USB 1.1).


Therefore, I was thinking about the following:

- Getting one of the ATMEGA chips that can do USB client and sit it on the USB bus.

- The ATMEGA is capable of HIGH speed communitcation, has an onboard ADC and can talk to the computer over USB (High Speed).


One of the simplest approaches I can see is having it show up as a Serial COM port to the computer.

You could use some of the signal bits (DTR, RTS, etc) to change the operation mode of the chip:

- For example RTS HIGH would have the chip work in "brigde mode" where the virtual COMM port takes data at high speed and teh chip replays it on it's COMM at the same high speed.

- For example RTS LOW would put it in terminal mode, where you could read the ADC pins (analog entries).

- Additional PIN combinations could be used for different things like setting up the chip (selecting the speed on the COMM port for example), setting up different things, etc.


There is one additional challenge which is using AX servos. These are half duplex and therefore have RX and TX on the same wire.
ROBOTIS recommends some hardware setup but this should be expensive.
I've heard that if you short RX and TX, the ATMEGA chips can actually work by enabling or disable RX or TX in turns, which, in turn, would mean you could do half duplex by shorting the output pins.

This could be a cheap solution to interface with AX-12s. Once again, this is something that could be setup at run time to modify the behaviour of the chip.



There are many other things you could do but this is just a rough idea. (other ideas: enabling the use of multiple UARTs on the chip which are accessed on the fly by setting different RTS/DTR, etc pin combinations, making the ATMEGA expose multiple Virtual COMM ports to the computer for different purposes, etc....)

I also know this solution with the "bridge mode" may add some latency but nevertheless I would like to hear your and other's opinions as it may may be cheapest yet most flexible way to interface the biffer board with a robot.


Regards
Pedro.
PedroR offline
Savvy Roboteer
Savvy Roboteer
Posts: 1199
Joined: Mon Jun 16, 2008 11:07 pm

Post by bifferos » Mon Feb 01, 2010 2:30 pm

Post by bifferos
Mon Feb 01, 2010 2:30 pm

Pedro,

What you are talking about is some stand-alone hardware that's not really got anything specifically to do with the Bifferboard, so yes it can be used with Bifferboard, but it's something that can be developed quite independently, and used with Roboard, or anything else with a USB host port. I suspect this hardware will not be easy to make at home, since it will need a custom PCB (correct me if I'm wrong), although it can be programmed easily enough using libusb under Linux.

I could have taken the same approach to programming the Propeller chip, i.e. I could have bought the USB programming cable for 20 uk pounds, or the demo board for about the same, but I decided to start with the chips themselves and the Bifferboard and take it from there to keep the cost as low as possible.

USB has a few problems for hobbyists doing real-time stuff:
1) It always seems to cost more than just connecting some GPIO lines
2) It is hard to understand
3) It has potential latency issues
4) There is only very experimental support for USB drivers under RTAI [1]

So I am taking the approach that I will use 6 GPIO lines to transfer data to and from the Propeller. I've nothing against AVR, in fact I prefer developing on them to the Propeller, since I know them better, however I had troubles to use the AVR for VGA output, whereas the Propeller made it simple.

It's possible to use the GPIO technique for the AVR, and do pretty much anything with it as well, although in order to make the Bifferboard into an AVR programmer, I need MISO and MOSI, connected to Bifferboard, and they are very useful for other stuff, so that may involve connecting/disconnecting something as part of the 'firmware upload' operation. The Propeller doesn't have such a limitation. However, once I develop a Linux driver that talks 'high speed GPIO' to the microcontroller the microcontroller part can be either in Spin (on the Propeller) or C (on the AVR).

I like the approach of using GPIO, since it can be breadboarded, or stripboarded, or someone can make a PCB and start selling it if they want, but it's important that there is this flexibility. It is very costly to make up a populated PCB unless you're going to make 500+ of them, so it's a bit of an 'all-or-nothing' affair. Of course, if you're going to make such a PCB yourself, and you want me to take a look at getting it working with the Bifferboard, that should be easy enough!

You might also be interested in my RTAI experiments here:
http://sites.google.com/site/bifferboar ... kware/rtai

regards,
Biff.


[1] Of course USB drivers work fine async, it's only using them as part of a real-time task that has issues.
Pedro,

What you are talking about is some stand-alone hardware that's not really got anything specifically to do with the Bifferboard, so yes it can be used with Bifferboard, but it's something that can be developed quite independently, and used with Roboard, or anything else with a USB host port. I suspect this hardware will not be easy to make at home, since it will need a custom PCB (correct me if I'm wrong), although it can be programmed easily enough using libusb under Linux.

I could have taken the same approach to programming the Propeller chip, i.e. I could have bought the USB programming cable for 20 uk pounds, or the demo board for about the same, but I decided to start with the chips themselves and the Bifferboard and take it from there to keep the cost as low as possible.

USB has a few problems for hobbyists doing real-time stuff:
1) It always seems to cost more than just connecting some GPIO lines
2) It is hard to understand
3) It has potential latency issues
4) There is only very experimental support for USB drivers under RTAI [1]

So I am taking the approach that I will use 6 GPIO lines to transfer data to and from the Propeller. I've nothing against AVR, in fact I prefer developing on them to the Propeller, since I know them better, however I had troubles to use the AVR for VGA output, whereas the Propeller made it simple.

It's possible to use the GPIO technique for the AVR, and do pretty much anything with it as well, although in order to make the Bifferboard into an AVR programmer, I need MISO and MOSI, connected to Bifferboard, and they are very useful for other stuff, so that may involve connecting/disconnecting something as part of the 'firmware upload' operation. The Propeller doesn't have such a limitation. However, once I develop a Linux driver that talks 'high speed GPIO' to the microcontroller the microcontroller part can be either in Spin (on the Propeller) or C (on the AVR).

I like the approach of using GPIO, since it can be breadboarded, or stripboarded, or someone can make a PCB and start selling it if they want, but it's important that there is this flexibility. It is very costly to make up a populated PCB unless you're going to make 500+ of them, so it's a bit of an 'all-or-nothing' affair. Of course, if you're going to make such a PCB yourself, and you want me to take a look at getting it working with the Bifferboard, that should be easy enough!

You might also be interested in my RTAI experiments here:
http://sites.google.com/site/bifferboar ... kware/rtai

regards,
Biff.


[1] Of course USB drivers work fine async, it's only using them as part of a real-time task that has issues.
bifferos offline
Newbie
Newbie
Posts: 2
Joined: Thu Jan 28, 2010 12:11 pm

Post by Denova » Fri May 27, 2011 8:44 am

Post by Denova
Fri May 27, 2011 8:44 am

Is there any alike devices but not for linux?
Is there any alike devices but not for linux?
Denova offline
Newbie
Newbie
Posts: 1
Joined: Fri May 27, 2011 8:42 am

linux commands

Post by danny0085 » Thu Aug 25, 2011 3:41 pm

Post by danny0085
Thu Aug 25, 2011 3:41 pm

Here you can check out the most used linux commands [spam link removed]
Here you can check out the most used linux commands [spam link removed]
danny0085 offline
Newbie
Newbie
Posts: 1
Joined: Thu Aug 25, 2011 3:40 pm


15 postsPage 1 of 1
15 postsPage 1 of 1
cron