Let's Make Robots!

Would you ARM yourself? (Or, Who wants a slice of Badj-berry Pi?)

While the parts for what I'm considering aren't here yet, they're definitely a possibility. With all the chatter about the new Beagle and with everyone already having an RPi in hand it seems, to me one of the next logical steps (if we are to take PicAxe and Arduino as a template) is the hobbiest making his/her own Linux SBC. I suppose if you're Patrick McCabe and have a reflowster, it's not out of the question. However, God what a pain in the ass that would be.

Right now, there's only about one ARM Cortex processor,the M0, available as a DIP package. It doesn't have an MMU, so chances are slim that you could get Linux on it in a useful way. However, its existence proves that a Mfr can get Advanced RISC Machine architecture into a format that most of us could manage without worrying about micron-level solder bridges.

But that brings up another point-would it really be useful for hobby robotics and embedding? Other than the fact that it would be really cool to do it, is there a good reason to? The Pis and Beagles and Pandas are so cheap and reliable that for sot purposes, it doesn't make sense to make a dedicated Linux SBC on your own (a Badj-berry? A Beagle-Roy? ;-).

With an ATMel or a Pic, it is often the case that you have a board you use for testing and then you move a less expensive and less featured brain (ie, no USB or a smaller pcb footprint) to the body of the robot or the heart of the embedded appliance. Would that make sense in the Linux SBC context? Does the power and complexity of the ready-made boards overcome the cost factors that make this frequent with the 8 and 16 bit SBCs? Are there other factors-the challenges of standard I/O like monitor and keyboard interfacing for example-that are bigger problems than would be worth it? And most importantly, is it even interesting to anyone? Am I the only one who's imagined this project? I mean, there are guys who have built versions of the Altair just for fun (and I'm not talking about the Arduino version-this was an actual umpteen-thousand register Altair with lots of wires.)

Let me be clear, here. I don't think that if there was a through-hole M9 available that I would be up to the challenge of breadboarding one up and dropping Debian onto it tomorrow, but if it were a possibility I don't think it would take me as long to make it work as it would to get the parts shipped to me. Anyone else?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I fully agree with OddBot. I haven't seen much robots that actually needed/used the power of an Arm micro processor. I only find them usefull to add a webcam/wifi to a robot.

8 bit micro controllers can control a lot of things. My hexapod now has 21 servos, wireless control, 16 leds, 2 SR04 sensors and a Wiicam. And I could add lot more things...

In the end I bought a cheap Android phone.

It seems to me this will give me similar processing abilities with a lot of added bonuses such as built in camera, wifi, bluetooth, LCD colour display,GPS etc. Grog tells me his "My Robot Lab" will run on an android phone so when I get time I will test it out. To give my phone I/O capability I'll link it to an Arduino compatible controller using bluetooth.

At the end of the day I can take the phone out of the robot and use it as a normal phone.

There is also the io-io board for android. Connects via microUSB or Bluetooth and gives you a nice "java" library to use in your android app to interface with it. Gives a very nice complement of IO pins, think the usual SPI, PWM, i2c and serial are all there. Can also charge the phone if connected via usb and supplied enough power. I've seen someone bit bang twin PWM signals via the audio channels too although some level shifting and an external power supply was required to add 2 continuous rotate servos and make a little robot driving around. although for your little challenge. Deimos on the homepage would not have been possible without either the pi or alot of external kit on an 8 bit micro. Still doesn't fully use the pi yet but it is a robot running a webserver for remote control and including feedback with a webcam. Think it just uses the pi, webcam, WiFi dongle and a 16 channel servo driver over i2c.

Yes, I looked at the IOIO but in comparison, both Micro Magician and Mini Driver boards are cheaper, include motor drivers, servo outputs and are easier for me to program.

I agree with you and Merser.  Thank you for saying it.  we (LMR as a group of robot builders) need to step up.  The commercial/industrial/military world of robots continues to make incredible strides while we build yet another line follower or obstacle avoider.  Our newest 16 Mhz arduinos with 32 or 256K of memory don't really do any more than a 30 year old Heath Hero 1 with  4 K of memory, often less.  We might replace a $5 remote controller with a bluetooth phone and pc keyboard and end up with the equivalent of a $10 remote control car with more computing power than existed in the world in 1965.  Then we might step up to a Raspberry Pi at 700 Mhz with 512 MB of memory and do pretty much the same thing. doubt we would ever come close to matching the heavily funded labs in abilities, but surely we can do more.  Even that won't be easy, as I discussed at some length here http://letsmakerobots.com/node/36393.  But we certainly never will if we don't take some sort of step.  One reason (only one!) that I have never posted a robot on LMR is because I really don't want to post Yet Another Obstacle Avoiding Robot.  But going beyond that takes a LOT of time and effort.  I, too, look forward to seeing the base level move up a notch.

Currently all the controllers I've designed for DAGU are 8-bit, Arduino compatible. I did look at these more powerful processors about a year ago when I was trying to determine if DAGU needed to branch in a new direction.

Looking at the bot's on LMR, I found that even when a robot used a propeller, FEZ etc. the robots made with these more powerful processors did almost nothing new. At best they had a camera and could track a coloured ball which is something you can do with an 8-bit processor anyway using a Nootropic video experimenter shield.

GroG has put a lot of effort into HIS "My Robot Lab" but I still do not see many robots using this system. All this makes me wonder are the more powerful processors really worth the effort?

I challenge the members of LMR to show me robots using Linux operating systems that do more than obstacle advoidance or using a camera to follow a red ball. Show me what these processors can really do!

I love your challenge Oddbot. I hope some take it up. I think most people thought of being able to do vision processing when the pi came out and have made a start with open cv.
With something like that I reckon it could swallow up huge amounts of time for baby step improvements.
In the meantime what else can we do with these boards.

Although it would certainly be a challenge, it would be within reason to build Linux capable hardware.  There are various processors about that could be used, even though many would require a lot more external parts than the BBB or RPi use.  I even considered doing it a few years ago, and others have.  But to me, the (much) bigger problem is getting Linux to run on it.  Simply recompiling a custom Linux kernel for known, well-debugged hardware (like a RPi or a PC) is a non-trivial task.  For a new, custom designed board you would first have to create a "board support package" which is a configuration description and set of drivers for the board.  That includes a lot of small details, like what registers control the MMU, how do they control it, where are the ports located, the drivers to use, the drivers (maybe with some assembly language) for devices that don't already have them, etc.  These are the very lowest level details of the Linux kernel.  A task not for the faint of heart.  It is quite a large undertaking even for a person or group experienced in such things.

There is, by the way, a version of Linux designed to run on much smaller, less capable cpu's, with less memory and even without an MMU.  It is much more constrained and intended to be used much like an arduino, where you write the software/firmware on a PC then download it.  It is called ucLinux ( for micro controller Linux) and the details and code are here: http://www.uclinux.org/

Even after getting the kernel to run, there is still a huge amount of work setting up a full Linux distro to work on custom hardware.

In short, I think the hardware would be the easy part.  But even not counting the difficulty, I think there would be very few advantages.

Was going to mention µClinux. For the most part its just Linux for systems without an MMU. as you say it would need porting to the particular system in question but it wouldn't surprise me if someone has started on a version for the DIP packed arm core mentioned above. There was a port for the Nintendo DS handheld, rather cool. Even included a touchscreen keyboard.
Looking at AtMel's AT 91 dev board, this seems like less and less fun. I think I would tend to agree that there wouldn't be a good enough reason for me at least to do it. I think some of the NAND to Tetris appeal wore off. If a bandwagon got rolling on it then an open hardware project would be very democratic and interesting, but I hardly have the energy for everything I have half built on the bench now.