There are currently 3 versions of each RoBIOS release (e.g. rob51q.hex, rob51e.hex, rob51f.hex). All RoBIOS versions are supplied as ASCII files (.hex) and as binary files (.hx) The RoBIOS version you install on an EyeBot controller has to match the camera connected: rob51q.hex for QuickCam grayscale (no longer produced), about 20 frames per second (fps)
for QuickCam color V2 (no longer produced), about 5 fpsrob51e.hex for EyeCam C1 (no longer produced), about 3 fps rob51f.hex requires FIFO extension on controller: for EyeCam C1, about 10 fps
requires FIFO extension on controller: for EyeCam C2, about 3 fps
Try to avoid using global variables alltogether Do not initialize global varibles upon declaration, i.e.:
int i=7;
This instruction will not be executed if the same program is run a second time. Better use:
int i;
int main()
{ i=7; ... }Do not use "start" as a global variable name. This is reserved for the system. EyeSim: global variables can lead to problems in EyeSim, since they are visible to all robots because of the use of threads
int OSSetADChannel(int channel)
{
int dummy = OSGetAD(GlobalChannel=Channel);
OSWait(1);
}int OSReadAD()
{
return OsGetAD(GlobalChannel);
}
The RoBiOS (Robot Basic Input/Output system) on the EyeBot is stored in flash memory and can therefore be upgraded using software. The hardware description table (HDT) is also stored in the same flash memory. RoBiOS makes it possible to download new HDTs and even a new versions of RoBiOS, just like you download a user program, over a serial cable.
In the rare case that RoBiOS gets corrupt, for example if a corrupt version of RoBiOS is downloaded, the controller cannot boot, so you cannot fix it by just download a new working version of RoBiOS.
In this case, you have to use the Background Debugger Module (BDM). A socket on the Eyebot marked "BDM" needs to be connected with the supplied cable to the parallel port of a PC. Besides re-writing the Flash-ROM, this connection can be used to debug/single-step a program on the Eyebot from a PC.
Please note: the supplied cable (MK3 and later) does not contain circuitry like the "standard Motorola BDM cable". This is not needed, since the circuitry is already included on the EyeBot controller itself.
Running the BDM under DOS is explained in the EyeBot online documentation. Use a fairly new BDM version (e.g. 1.22) and the FLASH.* plug-ins provided on our web site. BDM can be configured by editing BD32.CFG. In this file you should remember to set a number depending on the speed of the PC. The program is old - and the number should be very high on an average PC from our time. A table of values is found in the documentation included in the distribution. Another problem is that the program/connection seems to be very sensitive towards interrupts. Thus, running in plain DOS real-mode is recommended.
Re-installing RoBiOS using the BDM also wipes out any installed radio license code. If this happens to you, you need to email your distributor with the controller's serial number to obtaina new radio key. This can be installed by pressing <I> / REG.
Please note: From hardware version 3.12 on, the fuse has
been replaced by a reconstituting poly-switch (e.g. Farnell 131-724). If
a too high current occurs, the switch cuts power -- after about 5 min.
the switch will return to the normal state. No fuse-replacement is necessary!
We do not disclose the RoBios source code. There is actually no need to have the source code, not even if you want to write low level system routines.