I was doing some research on co-processors for our robot this year. We plan to have a pretty sweet point-based curve drive system (finally!) We have not run into any problem yet with the RC (currently we work in mili-everythings and use a trig lookup table). We try to plan ahead, so now I am looking at the different ways that we can integrate coprocessors with the IFI RC.
Many people on CD seem to use the Gumstix board. I looked at it, considered it, and said "woah, $200 for 400MHz!? "
I then started searching for deals on Micro-ITX boards (fanless ones!) I came across this: http://www.intel.com/products/motherboard/D201GLY2/index.htm
*This particular model is out of stock⦠EVERYWHERE⦠However, you can buy a seperate mobo and cpu (1.6ghz) for around $30 more.
*
Itās a 1.2GHz Fanless, Low Powered (35W cpu) Mini-ITX mobo/cpu combo with usb, serial, networking, the works⦠Seems to run off of 12Vdc (i tried to decipher the spec PDF.) It really looks cool⦠Plug in a Compact-Flash to ATA adapter⦠Get $11 of ram from newegg⦠And you have a motionless coproc for under $100ā¦!
However, if we decide that we need a co-proc like this, what are the caveats? Why do people use gumstix when this looks so much better/cheaper? Also, to those with experience with embedded computers, what operating system should we use? I am greatly bias towards linux/unix, but which distro would give me the fastest boot times and the least amount of overhead?
Iāve used Debian and it is seriously fast even when i ran it on a 500mhz PIII.
I believe Gentoo is also wicked fast compared to the other distroās. I havenāt fooled around with many though.
If you research it a little you will find that a lot of the boot speed and the functionality of each distro is based on what windows manager youāre using and what programs you actually keep installed at start-up. Thereās this one manager called Enlightenment that many people use with Debian. Then againā¦I am a little bias because thatās all I use on a few of my āoldā computers:rolleyes: . Good luck though.
PS.-Might want to change your thread title so nobody thinks youāre selling something.
What happens if I donāt even use a window manager? I am comfortable enough to just use the command line, and during competition the robot certainly does not need one!
As for apps on startup, the only thing we would need is the serial driverā¦
It should be possible to just have it start up without a window-manager, maybe log in, start up only the serial driver, and execute a compiled C app. Maybe we could make it boot like that in ācompetition modeā Then maybe if you insert a usb drive with a certain script on it, the machine would boot normally⦠(gets ideas!)
I also seriously wonder why people are freaking out over those new cheap linux boxes (around $250) when you can build something like this for even less & with more power.
I might just buy this as a home server, and hook it up to the bot offseason. Iāll post how it goes if I ever do it!
As for my OS question, is it possible?
It should be possible to just have it start up without a window-manager, maybe log in, start up only the serial driver, and execute a compiled C app. Maybe we could make it boot like that in ācompetition modeā Then maybe if you insert a usb drive with a certain script on it, the machine would boot normallyā¦
I know that the clock is a bit overkill, but if it is CHEAPER than the slower options⦠Why not?
Also, people usually use the prog serial port on the RC to communicate with the coprocessor, although if you bought a USB-IO device you could use the PWMS as well.
I am not sure, however, if you can use the TTL port with the TTL adapter. This would leave the prog port free⦠Ill try it if I ever get the coproc.
Itāll give you a DOS command prompt, and you can tweak your AUTOEXEC.BAT to execute your app. Iām not sure about FreeDOSā USB support, but if it there, you can probably write a script in your AUTOEXEC thatāll check for an additional mounted drive and run a script from there instead.
Question though, the board doesnāt have any harddrive storage right? Would you hook up a SATA drive, or a CF solid state?
OR just boot off USB keys?
If you do the latter, youād just plug in different USB keys depending on which āmodeā you wanted, right?
I was planning on using a Compact Flash to IDE adapter. It should give me more throughput than a USB key, right? And they would be swappable as well⦠Maybe Iāll put the base system (freedos, unix equivelant) on the Compact Flash, and the application itself on the USB thumb drive⦠This way, the thumb drive would not even need to have a bootable partition⦠It would just need a directory in there called like āFRC_2007ā which the coproc would look inā¦
Does anybody know of a Unix equivalent to freedos? Something where I could still easily call up a serial port, or look into the filesystem, but not have a whole window manager open?
Interesting stuff. I may have to test this on a VM before I actually buy a box, but this just looks pretty sweet.
And to add to the tank analogy: Yes, the tank is heavier, but only by 2-3 lbs at most. Our robot is underweight as is. Assuming we build a lightweight case (or buy a lightweight enclosure), it should be doable. I would personally rather us have a multifunction amazingly fast piece of machinery than a fly swatter
The big plus on these two boards is they have a GPIO that can be used for external devices.
Iād like to second the idea of using FreeDOS. Itās small and there are a lot of tools that will work with it. Itās also easy to write drivers, which will be a plus for the external devices you are trying to add.
You said you were looking for a Unix alternative, you can look at Minix. There are ports to X86 boards. Itās also small and there have been ports of a number of tools to it.
I could not find a price for that. It looks really cool for its pinout array. How much does that cost? The USB IO adapters are all around $100. If this is around $150, it might just be a great deal. Especially since they only need 5V@360mA. And what about just installing debian or something and disabling the window manager? Then editing the bashrc or whatever it uses to run a program on the flash drive. Then we could be āopen source!!ā
I was pretty well uninterested (I did not grow up around Unix/Linux) until someone mentioned DOS. Duh! Should have remembered DOS was an option.
Hmm⦠1.5GHz⦠just DOS and you in the computer⦠wow thatās enough to make you sweat cold. :ahh:
Though⦠on second thought⦠youāre missing a lot of stuff⦠like interrupts, hardware timers, CCPs, ADCs, etc⦠maybe it isnāt fantastic as I originally thought.
On second thought, i think Iāll stick with my tiDSP board when it comes to doing something nuts with motion control/signal processing/HDMI HDCP stripping/etc.
I guess you all are planning on just slaving the FIRST controllerās outputs to the computer via RS-232.
Though⦠on second thought⦠youāre missing a lot of stuff⦠like interrupts, hardware timers, CCPs, ADCs, etc⦠maybe it isnāt fantastic as I originally thought.
There is nothing stopping you from writing hardware drivers for FreeDOS.
Later on in my note I suggested looking at Minix at http://www.minix3.org/. Minix is a small Unix like operating system that would be slightly easier to write drivers for.
In any case the MiniITX board heās got is still a 386 PC at heart, so all of the hardware that we use (Like ADCās and additional timers) isnāt really there. They are going to be off board and some software drivers will need to be written. Lots of companies supply Linux drivers, which is why Linux may be the best default choice.
For the boards I linked to, Iām looking at using FreeDOS. I developed DOS drivers, so it is an environment Iām used to. If you look at the FreeDOS source the interrupt handler is going to be able to manage the extra timers with some ease and pass them off to the program.
Granted in FreeDOS you donāt really have multitheading / multitasking. If you want that, then either something like Minux, Linux or BSD/Solarias may be a better choice. For real time then FreeRTOS is a good place to start.
On the other hand, itās a 1.5 Ghz machine. So there are cycles to burn.
If you donāt mind doing some learning and tweaking, you can also google āLinux From Scratchā and build your own highly stripped down linux system so that it only boots and has installed the minimal components that you need on startup(most likely being the kernel and your robot control code, maybe an ssh daemon for easy remote programming along with a few misc things that might be important)
Also, we are currently using a micro-ATX board with an AMD X2 4800+, 1gb of ram and a 8gb solid state drive. All for $200. (for advanced video processing).
And last, boot time doesnāt matter. As I understand it the power to the bot is turned on before the match and only the PWM/Relay outputs are disabled.