| handyboard.com | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
The Handy Board FAQ![]() The Handy Board
This page answers some common questions and problems regarding the Handy Board.
Why was the Handy Board designed?There were several considerations motivating the development of the Handy Board.
(Last updated 2000-10-25) What is the difference between the Handy Board and the 6.270 Board?First, the similarities:
The differences, first from a pro-Handy Board point of view:
And now, the differences from a pro-6.270 point of view:
That pretty much covers it. Find the HB documentation on the web at http://el.www.media.mit.edu/groups/el/projects/handy-board and the 6.270 documentation in the Robot Builder's Guide (in the form of Unix-compressed PostScript files) at: ftp://cherupakha.media.mit.edu/pub/projects/6270 (Last updated 2000-09-26) How can I choose between the Handy Board and the Mini Board?First, lots of people use Mini Boards. There are more than 2000 of them out in the world.But when deciding if the Mini Board is what you need, keep in mind its main constraint: no memory external to the 6811 chip. The 6811 recommended for use with the Mini Board (the mc68hc11e2fn) has 2048 bytes of EEPROM program memory (and 256 bytes of RAM). In practice, this means that programming the Mini Board is best done in assembly language or a traditional compile-link-download version of C (like Dunfield's Micro-C or ImageCraft C). The Mini Board cannot run Interactive C, because Interactive C requires 32K of RAM memory. So this means that programs running on the Mini Board are necessarily small. If the application is one with a particular dedicated functionality, that is often fine, and the Mini Board's small size and low cost are advantages. Or, if the application is connecting motors and sensors to a desktop computer, the Mini Board is a great solution as a "serial line slave" interface. The other virtue of the Mini Board is its simplicity. It has only 4 chips and is easy to build. The core features of a 6811 with 2048 bytes of memory, 4 DC motor outputs, 8 analog inputs, and 8 digital I/O pins make it suitable for many robotic applications.
On the other hand, If the application is more open-ended and experimental, and cost is not an extreme limiting factor, the Handy Board is a more satisfactory choice. In a board about twice the area of the Mini Board, it provides the additional features of 32K of battery-protected static RAM memory, an LCD screen, infrared decoder chip, infrared output oscillator, battery charge circuitry, a piezo beeper, and a user knob. For experimental and educational purposes, the Handy Board's capability to run Interactive C is the distinguishing difference. Also, the LCD screen is great for remote interpretation of sensor data and general debugging purposes.
For information on the Mini Board is available from ftp://cherupakha.media.mit.edu/pub/projects/miniboard/gen-info.txt. The Handy Board home page is located at http://handyboard.com/. (Last updated 2000-09-26) How can I choose between the RCX and the Handy Board?The great strength of the LEGO Mindstorms system and its RCX brick is that it genuinely an everything-included, out-of-the box robotics building system. When you buy the Robotic Invention System, you get the RCX brick controller, motors, sensors, a big kit of LEGO, software, and everything else to make it all work. The Handy Board is more suitable when you don't mind a little soldering to build your sensors and motors, but want something more expandable and with more inputs and outputs. To compare, the Handy Board can drive 4 motors and has direct inputs for 16 sensors, while the RCX brick does 3 motors and 3 sensors. The Handy Board's design is open and fully documented; it is much easier to connect your own unique hardware to the Handy Board than it is to the RCX. The design of the RCX brick has been reverse-engineered and published by hobbyists, but it is still fairly tricky to connect unusual hardware to the RCX and then write software drivers to make that hardware work. The Handy Board is more expensive than the RCX: A Handy Board costs $200 to $300 for the assembled/tested board alone, while $200 buys you a Mindstorms RCX brick, plus 2 motors, 3 sensors, and a kit of 700+ LEGO pieces. (Last updated 2002-04-09) What is the difference between the L293D and L293B motor driver chips? Can I substitute L293B's for L293D's?The L293D and L293B motor driver chips are closely related. The L293D chip is rated for 600 mA per channel, while the L293B is rated for a whole 1A per channel. However, the L293D includes spike-protecting diodes on the motor outputs while the L293B does not. This means that the L293B may not simply be substituted for the L293D in motor control applications. It is possible to wire two of these chips in parallel (e.g., two L293D's or one L293D and one L293B) to gain increased current-carrying capability. This readily done by plopping one IC on top of the other and individually soldering each matching pin together. Another way to achieve greater power-handling capability on the Handy Board is to use the Texas Instruments TI SN754410 Quadruple Half H driver, which combines the protective diodes of the L293D chip with the greater current capacity of the L293B chip. The SN754410 is a plug-and-play replacement for the L293D. (Last updated 2000-09-26) What kinds of motors are compatible with the Handy Board?The Handy Board is designed for motors that will operate at 9 volts and draw up to 1 ampere of current maximum. This includes all of the motors sold by the LEGO Group (the 9v standard motor, 9v gear motor, and 9v micro motor) and a variety of hobby motors. A motor draws its maximum amount of current when it is stalled (this is sometimes referred to as the stall current). A good way to get an estimate of how much current this will be at the Handy Board's rated 9v supply level is to measure the motor's resistance using a standard VOM (volt-ohm meter), and apply the Ohm's Law formula current = voltage divided by resistance. Set the meter to its most sensitive resistance scale (typically, 0 to 200 ohms), apply the probes to the motor terminals, and gently rotate the motor shaft by hand until you obtain the smallest possible reading. The idea is to find the static position of the shaft that gives you the lowest ohmage reading and take that as the measurement. If this reading is nine ohms or more, then the motor should be compatible with the Handy Board. (At 9 volts, a 9 ohm reading would mean a current draw of one amp, the maximum the Handy Board can deliver.) If the reading is less than four ohms, the motor will probably draw too much current and won't work.
Please be aware that the Handy Board is not compatible with 3v to 4.5v motors found in many toy cars. These inexpensive motors are extremely noisy from an electrical standpoint; also, they typically will draw several amperes of current, thereby overloading the Handy Board's motor drivers and causing the board to reset. The Handy Board also is not compatible with motors used in high end radio control cars. These motors are designed to draw huge amounts of power25, 50, or more amperes of current. (Last updated 2000-09-26) How do I convert a standard DC motor to work with LEGO Technic?A LEGO gear can be fitted onto the shaft of most DC motors using heat-shrink tubing to fill the gap between the outside diameter of the motor shaft and the inside diameter of the LEGO gear. Then, LEGO plates can be glued to the sides of the motor. This must be done so that the shaft and gear protrude at a legitimate ``LEGO spacing'' in order that the resulting assembly is compatible with the LEGO system.
See pages 51 through 54 of
(Last updated 2000-09-26) How can I use motors other than 9 volts with the Handy Board?The Handy Board's internal battery is rated for 9.6 volts; this is generally adequate for running motors rated between 6 and 12 volts. However, some 6 volt motors aren't happy with the extra voltage, and some 12 volt motors will run too slowly.Here are instructions for modifying the Handy Board to accept an external motor battery that can be any voltage from about 6 volts to 36 volts. Lyle Hazelwood implemented a high-current H-bridge circuit described by Chuck McManis and tested by Jeffrey Keyzer, and posted th e schematic and so me circuit notes. Matt Harlan created a printed
circuit board with a high-powered H-bridge motor circuit for the Handy
Board. Documentation consists of the readme file, the (Last updated 2000-09-26) How can I get more power out of the Handy Board's motor outputs?The Handy Board's built-in motor drivers are good for driving small DC motors rated 6 to 12 volts, but they aren't suitable for operating motors on high-end RC cars, or other big motors, which can easily draw 5, 10, 20 amperes of current, or more. The L293D or TI replacement motor driver chips are only good for about one ampere of current on a continuous basis. There are two categories of replacement motor driver circuits:
(Last updated 2001-03-12) What is the difference between a servo motor and a DC motor?A DC motor has a two wire connection. All drive power is supplied over these two wires -- think of a light bulb. When you turn on a DC motor, it just starts spinning round and round. Most DC motors are pretty fast, about 5000 RPM (revolutions per minute). With the DC motor, its speed (or more accurately, its power level) is controlled using a technique named pulse width modulation, or simply PWM. This is idea of controlling the motor's power level by strobing the power on and off. The key concept here is duty cycle -- the percentage of on time versus off time. If the power is on only 1/2 of the time, the motor runs with 1/2 the power of its full-on operation. If you switch the power on and off fast enough, then it just seems like the motor is running weaker -- there's no stuttering. This is what PWM means when referring to DC motors. The Handy Board's DC motor power drive circuits simply switch on and off, and the motor runs more slowly because it's only receiving power for 25%, 50%, or some other fractional percentage of the time. A servo motor is an entirely different story. The servo motor is actually an assembly of four things: a normal DC motor, a gear reduction unit, a position-sensing device (usually a potentiometer -- a volume control knob), and a control circuit. The function of the servo is to receive a control signal that represents a desired output position of the servo shaft, and apply power to its DC motor until its shaft turns to that position. It uses the position-sensing device to determine the rotational position of the shaft, so it knows which way the motor must turn to move the shaft to the commanded position. The shaft typically does not rotate freely round and round like a DC motor, but rather can only turn 200 degrees or so back and forth. The servo has a 3 wire connection: power, ground, and control. The power source must be constantly applied; the servo has its own drive electronics that draw current from the power lead to drive the motor. The control signal is pulse width modulated (PWM), but here the duration of the positive-going pulse determines the position of the servo shaft. For instance, a 1.520 millisecond pulse is the center position for a Futaba S148 servo. A longer pulse makes the servo turn to a clockwise-from-center position, and a shorter pulse makes the servo turn to a counter-clockwise-from-center position. The servo control pulse is repeated every 20 milliseconds. In essence, every 20 milliseconds you are telling the servo, go here. To recap, there are two important differences between the control pulse of the servo motor versus the DC motor. First, on the servo motor, duty cycle (on-time vs. off-time) has no meaning whatsoever -- all that matters is the absolute duration of the positive-going pulse, which corresponds to a commanded output position of the servo shaft. Second, the servo has its own power electronics, so very little power flows over the control signal. All power is draw from its power lead, which must be simply hooked up to a high-current source of 5 volts. Contrast this to the DC motor. On the Handy Board, there are specific motor driver circuits for four DC motors. Remember, a DC motor is like a light bulb; it has no electronics of its own and it requires a large amount of drive current to be supplied to it. This is the function of the L293D chips on the Handy Board, to act as large current switches for operating DC motors. Plans and software drivers are given to operate two servo motors from the HB. This is done simply by taking spare digital outputs, which are used to generate the precise timing waveform that the servo uses as a control input. Very little current flows over these servo control signals, because the servo has its own internal drive electronics for running its built-in motors. (Last updated 2000-09-26) How many servo motors can I drive from the Handy Board?The Handy Board itself comes with drivers to run two servo motors. See the servo driver page, which is in the Software/Libraries area. With the Expansion Board, the Handy Board can run six servo motors. (First answered Mon Feb 15 12:46:22 1999.) (Last updated 2000-09-26) How do I use stepper motors with the Handy Board?Please see Peter Harrison's excellent informational page, Using Stepper Motors with the Handy Board. (Last updated 2000-09-26) Does the Handy Board have any digital outputs?> My question is what pins can I use for digital outputs? Can I use> d0..d7 for outputs instead of inputs. How many possible digital outputs > could I use at one time? The SPI pins on the connector on the middle right edge of the board (J6) can be configured as digital outputs. Do a poke(0x1009, 0x3c) to make them outputs; then they are mapped to the middle 4 bits of address 0x1008 (SS= bit 5, SCK= bit 4, MOSI= bit 3, MISO= bit 2). Poke to that address (0x1008) to set them. d0..d7 is the data bus and stuff is flying around on those pins all the time, so they cannot be used as outputs. If you hook an 'hc374 chip to the board, in the same fashion as the one driving the motor chips, you get 8 more digital outs. Connect the 'hc374's clock line to any of the three unused output latch selects of the 'hc138 (Y0, Y2, or Y4). All of these signals are present on the Expansion Bus. Also, digital input #9 can be reconfigured as an output. Do a bit_set(0x1026, 0x80) to make it an output, and then use bit_set(0x1000, 0x80) to turn the bit on and bit_clear(0x1000, 0x80) to turn it off. TO3 is an uncommitted timer output brought out to the Expansion Bus. This pin is bit 5 of PORTA; i.e., set it with bit_set(0x1000, 0x20) and clear it with bit_clear(0x1000, 0x20).
Finally, consider adding the Expansion Board, which adds nine digital outputs to the Handy Board system. (Last updated 2000-09-26) Please explain the Handy Board's battery charging system.The Handy Board provides three ways to charge its internal battery:
(Last updated 2000-09-26) My Handy Board's battery won't charge.Before assuming you have a bum battery, check these possibilities:
If you've checked all of these things and your battery still is lasting only a few minutes, then you probably do need to replace the NiCads. (Last updated 2001-03-01) What are the specifications of the Handy Board'sDC adapter?The specifications of the Handy Board's DC adapter are as follows:
Most ``universal'' type adapters will work properly at one of their settings. Look for the yellow charge LED to light up indicating proper charge (make sure the Charge Rate switch is set to ``Normal'' mode). Please be careful not to get an adapter that is overpowered. Problems have been reported using adapters that are rated for 1 to 2 amps. Also, do not use an adapter that is underpowered or undervoltage. A 9 volt adapter will appear to work---the charge LED will light---but it won't be able to charge the battery for more than a few minutes' worth of power. Finally, do not use a regulated power supply. Use inexpensive, unregulated wall wart type adapters only. Advanced user adapter informationThe Handy Board can make use of other, specific adapter configurations with certain caveats. The one listed above is the most versatile, so that is the official recommendation, but here are some alternatives:
Basically, the serial interface has a bridge rectifier, so any polarity will work, but the HB itself has only a diode, so (a) you need center-negative or alternating current, and (b) it's protected against reverse polarity (center-positive). (Last updated 2000-09-26) I'm measuring the voltage on my adapter, and it says 18 volts. Is this normal?This is correct. Normal DC adapters are unregulated and there is an inverse relationship between voltage and current.Here is how to interpret the rating on an adapter. Let's use the Handy Board's 12 volt, 500 mA (milliamp) DC adapter standard as an example. This rating means that when a load is drawing 500 mA of current, the adapter voltage will be 12 volts. If the adapter is plugged into the wall but its output is not connected to anything -- in other words, there is no load -- then the current is zero and the voltage measured will higher than the adapter's specification. For the Handy Board's ``12 volt'' adapter, a reading of 18 volts is normal if there is no load. If there is load that draws more than 500 mA, then the output voltage would be less than 12 volts. Note that it is possible to draw more than 500 mA even though an adapter might only be rated for 500 mA. The effect is that the output voltage will be less than the adapter's specified voltage, and also this will overtax the adapter and potentially cause it to fail. (Last updated 2000-09-26) What kind of RS-232 cable do I use to connect from my computer to the Handy Board Interface/Charger?The Interface Charger board connects just like an external modem. The HB interface has a DB-25 female connector, as does the standard modem. This connects to a PC using straight-through wiring. Thus, for PC's with a standard 25-pin male connector, the Interface Charger board can literally plug right into the PC's serial port (if there is no clearance problem); i.e.:
For a PC with a standard 9-pin male connector, a DB-9 female to DB-25 male modem adapter or cable is used. This cable should provide the following wiring:
For a Macintosh, a minidin-8 male to DB-25 male modem cable should be used. Make sure to not get a Macintosh printer cable, which looks exactly the same but has different internal wiring. (Last updated 2000-09-26) What kind of telephone/RJ11 cable do I use to connect from my Interface/Charger Board to the Handy Board?See the answer to The R11 on my Interface/Charger board is smoking hot and is turning black! (That's what happens if you use the wrong kind!) (Last updated 2000-09-26) The R11 on my Interface/Charger board is smoking hot and is turning black! What is wrong?You are using a network-style (non-inverting) RJ11 cable. The Handy Board must be used with telephone-style (inverting) RJ11 cables. If you use a network style cable, you invert the power and ground connections, which blows up the 47 ohm charge resistor (R11) on your serial interface board, along with potential for greater damage. Here is how you tell if you have a telephone-style or network-style RJ11 cable. Hold the two ends together, metal contact side up, as if you were trying to plug them into each other. Then look at the wiring colors. On a telephone cable, each color should line up with itself on the other end. On a network cable, the colors are inverted. See the diagram below for clarification. Again, please, please, PLEASE! be careful about this and do not use network cables with your Handy Board.
(Last updated 2000-09-26) I want to plug two Handy Boards together so that they can communicate. What kind of cable should I use?For this application, you must use a specially-wired RJ11 cable, different from both of the configurations show above. The cable must connect the two board's ground lines together, but connect each board's TxD (transmit line) to the other board's RxD (receive line). The unswitched power lines should not be connected together. The following diagram shows how to do this. The diagram is a view looking down at the modular plugs, contact side up:
The outer two wires (black and yellow) are the TxD and RxD lines, the red wire is ground, and the green wire (which should not be connected) is the unswitched battery terminal. You will need an RJ11 crimping tool and individual RJ11 plugs to build the proper cable. (Thanks to Bill Bynum and Richard Drushel for working through incorrect information I had earlier posted on this topic.)(Last updated 2000-09-26) I want to save money. Should I buy the parts myself to build the Handy Board?If you are building just one board, no. You won't save any money because you can't just order all of the parts from any one electronics supplier. You typically will need to order from six to eight different companies, and once you get done paying shipping charges, your monetary savings will be nil or negative. Compounding the problem is that some parts (in particular, the 68HC11, the L293D motor driver chips, the DS1233 low voltage reset, and the IS1U60 infrared demodulator) are very difficult to obtain in unit quantities. Therefore, buying parts yourself only makes sense if (a) you already have many or most of the parts lying around in your junk bin, or (b) you are buying parts for ten or more Handy Board systems, or (c) you are most interested in the learning experience and don't mind if it costs you a little more money. If you are interested primarily in the building experience, please consider buying a full parts kit from one of the authorized vendors. (Last updated 2001-03-18) Is it possible to expand the Handy Board\\\'s memory to 64K?This is tricky, because the HB\\\'s peripherals (motor outputs, sensorinputs, and expansion interface) are mapped across a full 16K of the lower 32K of memory (see the H\\\'s memorymap). But, the guys working on simpleRealTimeJava for the 68HC11 have come up with a clever design that alternately maps an additional 32K or the peripherals into the lower half of RAM. The instructions for modifying your Handy Board to have the extra 32K of RAM are available at http://www.rtjcom.com/6811/hb64.html. Please note that Interactive C will not support the extra 32K. You\\\'ll have to program your HB in the SimpleRTJ or assembly language to take advantage of the extra RAM installed with this method. Interactive C will continue to work properly on a modified board, however, using the stock 32K memory. Below is older information about “why it\\\'s hard” to dothe full-blown modification. I guess it\\\'s not so hard if you think about it right :-). The SimpleRTJ solution is agreat hack for improving the existing Handy Board design.
Also, it is relatively straightforward to build a serially-accessible external memory for data storage. For example,see Jim Fong\\\'s SPI-based EEPROM application note. (Last updated 2002-07-03) Is there a version of the Handy Board that uses the 68HC12 chip?No, there is no 68HC12 version of the Handy Board. If I revise the HB, I will move up to a chip with substantially more horsepower and a flat architecture for expanded memory; e.g., the 68332. While the HC12 is a wonderful chip -- and it certainly would make sense to use it if starting from scratch -- the improvement from HC11 to HC12 is not great enough to warrant a re-design. (Last updated 2000-09-26) I can't find the Hitachi LM052-L display. What are some alternatives?Please see the component suppliers list. (Last updated 2000-09-26) I plan to use assembly language (or a compiler other than Interactive C) with the Handy Board. What is the memory map of the Handy Board 6811 system?Compilers other than Interactive C may easily be used with the Handy Board, or you may code directly in assembly language. Here is the memory map of the Handy Board hardware, which is necessary if you are writing your own drivers:
Please note one special case regarding the memory map: the Handy Board operates its 6811 in Special Mode. This causes the 6811 interrupt vector bank to be located at $bfc0 to $bfff rather than the normal area ($ffc0 to $ffff).
So, make sure to declare your interrupt vectors in the Special Mode range of $bfc0 to $bfff. For example, the RESET vector is located at $bffe:$bfff. Any normal downloader program (e.g., dlm.exe for DOS, hbdl.exe for Windows, or 6811 Downloader for Macintosh) can be used to download the standard Intel hex file (with .s19 or .hex suffix) produced by standard 68HC11 development tools. For information about how the Handy Board's memory map is accomplished, please see 6.270 Robot Builder's Guide Appendix B. This technical appendix explains the 6.270 Board's design, which uses the same memory and peripheral circuit as the Handy Board. (Last updated 2000-09-26) I live outside of the United States. Where can I buy LEGO materials?LEGO has a nationally-based distributor system; in other words, you must find the LEGO distributor authorized in your own country and buy from them. Retail distributors are not allowed to ship internationally. Please look on the LEGO home page page to find the LEGO headquarters in your own country. Contact them and ask for your local distributor. (Last updated 2000-09-27) How much of the Handy Board's 32K memory is available for user programs running under Interactive C?Here is an approximate breakdown of how Interactive C makes use of the Handy Board's 32K of RAM:
Thus, about 16K of the memory is reserved for user code plus user globals. Since Interactive C compiles into code for the runtime virtual machine rather than into 68HC11 machine language, user IC programs tend to be more compact than those compiled with traditional compilers, partially offsetting the overhead of the IC system itself. (Last updated 2000-09-27) What is the correct value of the CONFIG register? How do I use EEPROM?> I've seen stuff that says the CONFIG register should be set at 0x0C, and> also at 0x0D. Which is right for the Handyboard if I want to use EEPROM > ($b600 to $b7ff)? 0x0c turns off the EEPROM; 0x0d turns it on. Now, since Interactive C expects to have RAM where the EEPROM lives, the "correct" value for the HB is 0x0c. Where have you seen that 0x0d is the right value? This is wrong; 0x0d should only be around as an "advanced user who isn't using IC" value.
> I have cleared the BPROT register ($1035), and yet my IC poke The BPROT is "time protected," meaning that you must change it within a few cycles of system reset, so waiting until IC boots up and then poking isn't going to do any good. You would have to modify the system pcode to modify the BPROT register right off the bat; or at least, point the reset vector toward a little bit of your .asm code (which resets the BPROT and then jumps to the normal start of pcode). Secondly, you can't just poke new values into the EEPROM itself. You have to go through a programming sequence involving the PPROG register. See the Mini Board EEPROM boot loader file for example code (ftp:// cher.media.mit.edu/pub/projects/miniboard/ms-dos/eeboot20.asm). As suggested above, the remaining problem is that there is no straightforward way of telling IC that the particular piece of the memory map where the EEPROM lives suddenly is not available to it. Expect crashes when your code or dynamic data stretches into this piece of memory (if IC works at all; I don't remember if it needs that piece of memory before any user code is loaded). Finally, why do you need EEPROM? The SRAM is battery backed. Anything you stuff into memory will stay there as long as there are at least a few volts on your battery pack (i.e., long after the pack is too dead to boot the board, the memory will still be preserved). If you must use it, I would recommend that you work in assembler or a conventional C (e.g., Dunfield's Micro-C or ImageCraft C) where you have full control of the memory map. (Last updated 2000-09-27) How do I read and write to the serial line from an Interactive C program?It is possible for an IC program to use the serial port. Randy Sargent's instructions athttp://www.ai.mi t.edu/people/rsargent/ic/serialio.htmlwere written for the 6.270 board, but are directly applicable for the Handy Board running Interactive C. Then, you can print numbers using (for example) the following printdec() routine:
/*
printdec.c
routine to output an integer value
as a decimal number over the serial line
requires serialio.c
*/
/* prints number over serial line */
void printdec(int n)
{
int leading_digit= 0;
int dig, div;
if (n == 0) {
_printnum(0);
return;
}
if (n < 0) {
serial_putchar('-');
n = 0 - n;
}
for (div= 10000; div= div/10; div> 0) {
dig= n/div;
n= n - dig*div;
if (dig || leading_digit) {
_printnum(dig);
leading_digit= 1;
}
}
}
/* prints digit from 0 to 9 over serial line */
void _printnum(int n)
{
serial_putchar(n + '0');
}
To start a new line on the serial output, use:
void newline() {
serial_putchar(10);
serial_putchar(13);
}
(Last updated 2000-09-27) IC won't load my ICB files.Please note one big GOTCHA with ICB files. On the MS-DOS platform (with both the freeware v2.853 and commercial 3.1 beta 4) version of Interactive C, the ICB files must have Unix-style line termination.Here is the explanation. ICB files are text files, and in a text file, the Mac, Unix, and MS-DOS file systems each have a different way of specifying the end of each text line. On the Mac, a ctrl-M indicates the end of line. On Unix, it's a ctrl-J. On the PC, it's a ctrl-M followed by a ctrl-J. On the MS-DOS computer platform, if you use Newton Lab's web-based ICB assembler, or if you download an ICB file from an FTP server, when you save the resulting ICB file it will undoubtedly create a normal MS-DOS text file, with ctrl-M + ctrl-J linefeeds. YOU MUST EDIT THIS FILE AND REMOVE ALL OF THE CTRL-M's. Originally, ctrl-J meant line feed and ctrl-M meant carriage return (think of a TeleType machine). So on MS-DOS, when you remove the ctrl-M's you get files where each new line starts where the last one ended in terms of screen column. THIS WILL LOOK WRONG BUT IT IS WHAT THE MS-DOS INTERACTIVE C VERSIONS REQUIRE. On the Mac and Unix platforms, the IC accepts the corresponding native text file format. But the MS-DOS and Windows versions of IC require the CTRL-M's to be edited out of ICB files. Remi Desrosiers contributed a DOS utility to automatically strip out the CTRL-M's. It's called i2u.exe (IBM to Unix). Please make sure to save as source so it gets downloaded as a binary file. (Last updated 2000-09-27) I keep getting a message that says "-POWER GLITCH-" on the Handy Board LCD screen.This is caused when the incorrect pcode file is downloaded to the Handy Board. Make sure you are downloading pcode_hb.s19, not pcoder22.s19.It may be necessary to reconfigure your downloader to send the proper file. If you are using Initialize Board on the Macintosh, use ResEdit to change the STR resource, naming "pcode_hb.s19" as the file to download. (Last updated 2000-09-27) I'm using the DOS version of IC, and I'm running out of conventional memory.To give your computer more conventional memory, try booting directly into DOS rather than running from a DOS shell under Windows. (Last updated 2000-09-27) I can't get any of the downloaders to work on myfast Windows machine. What is wrong?!@#!!Some fast Wintels have trouble runningthe downloaders properly. Here are some suggestions that many HandyBoard users have found helpful:
(Last updated 2001-04-16) How can I configure Windows NT to work with the free Interactive C software tools?Windows NT normally will not let a DOS program touch any of the hardware, including the serial ports. However, Jeroen van der Vegt has found a way around the problem:
(Last updated 2000-09-27) When I turn on the Handy Board, all I see is a row of black squares on the top line of the LCD screen.Usually, all this means is that the Handy Board's battery has run down, and the board has lost its RAM-resident pcode program. The solution is to run one of the standard downloaders, putting the pcode_hb.s19 program back into the Handy Board. If the row of black squares is very dark (essentially, full on contrast), this usually indicates a power problem with the Handy Board. Check if any of the components is getting warm or hot to the touch, and look for stray leads or other evidence of a short. (Last updated 2000-09-27) I left my Handy Board in the closet for a few months, and now when I try to use it I can't get it to work!Don't worry, nothing bad happened to your Handy Board while you were ignoring it. First, the battery needs to be charged, and then the pcode_hb.s19 program needs to be reloaded. The Handy Board's nicad cells will preserve the contents of the memory for about a month. After that, the pcode program (which is in RAM) will be lost. You can use Zap Mode to quickly put enough juice into the Handy Board that its red Low Batt light will go out. (Just make sure to put it into Normal Charge mode as soon as the battery begins to get warm, in about 3 hours.) Then, use your downloader to put the pcode_hb.s19 program back into the Handy Board. If the downloader isn't working, make sure that you are using the same cable set-up you had when you last successfully used your board. Check that you have a standard modem cable, and that you have a four-wire, telephone-style RJ11 cable. Other things that can go wrong when your Handy Board is in the closet is your serial line configuration. Make sure that the Handy Board's red BATT and green PWR LEDs are off before the download sequence, and that the green LED turns on and starts flashing during download. If this doesn't happen, it's typically a cabling or serial driver problem. (Last updated 2000-09-27) One of the motor outputs has stopped working.Usually this is because a motor chip (either a L293D or SN754410NE) has overheated and failed. It is not uncommon for these chips to fail, especially when using motors that might draw more current than they are rated for. Try swapping the two motor chips (parts U10 and U11). If the non-functional port moves to the corresponding position for the other chip (i.e., motor 0 to 2, motor 1 to 3), then it is almost certainly the motor driver chip. If this does not fix the problem, try replacing U8 (the 74HC374) and/or U9 (the 74HC04). These two chips are both part of the motor driver circuit. (Last updated 2000-09-27) When I turn the Handy Board off, the BATT and PWR LEDs stay on!This symptom occurs when current from the memory power supply (which is always on, to preserve the contents of the RAM) bleeds into the CPU power circuit. Typically, this indicates a failed chip in the memory circuit (possibly the RAM itself), or, a board short between the memory power supply and a chip in CPU circuit (i.e., just about any other chip on the board). To debug this situation, remove the LCD screen and turn the Handy Board off. Presumably the BATT and PWR LEDs are still on. Begin by removing U2, the 62256 RAM chip. Do the LEDs go out? If so, the RAM chip has probably failed; try another one. If not, remove U7, the 74HC132 chip. This chip is part of the memory circuit and is also always powered. If the LEDs go out, this chip is probably faulty; replace it. If both U2 and U7 are removed and the problem persists, it is probably a board short. One at a time, remove additional chips to see if you can make the problem go away. If when a particular chip is removed, the LEDs turn off, then there is probably some shorting path from the U2/U7 chips to the chip just removed. Check the board for stray leads or other defects. (Last updated 2000-09-27) What software did you use to create the Handy Board and this web site?I do most of my computing, including all of my WWW development, on the Apple Macintosh platform. I now have a blue-and-white G3 tower, which is driving a bargain-basement HP 17 inch Trinitron monitor running at 1024x768 pixels which works great. After roughing out web page layouts in Claris Home Page, I write HTML code mostly by hand, using either Emacs or Pete Keheler's excellent Alpha text editor for the Mac. For printed circuit board CAD, I use a package for the Macintosh called the Douglas Professional System by Douglas Electronics. This includes DesignWorks, a schematic entry program by Capilano Computing (which incidentally is available for Windows as well as Mac), Douglas Professional Layout, a PC board editing program, and Douglas Autorouter, an auto-routing program. For technical illustrations, I use Adobe Illustrator 5.5. I save my drawings as EPS files and rasterize them into GIF files using Adobe Photoshop 3.04. (Unsolicited plug: these two applications are the most bug-free large commercial programs I have ever used.) I have a CalComp DrawingSlate II tablet, which is great for making illustrations. To create printed documents (e.g., The Handy Board Technical Reference), I use LaTeX 2.09 by Leslie Lamport, which is a macro package building on Don Knuth's fabulous TeX typesetting system. I am a bit of TeX/LaTeX bigot; I defy anyone to show me hard copy from Microsoft Word (or any other desktop word processor) that rivals the typographical beauty and intelligence of TeX's output. I have recently started to use Thomas Kiffe's shareware version CMacTeX 2.5 for the Macintosh, a full port of the powerful Unix system. I also use Trevor Darrell's psfig macro for incorporating PostScript figures into documents. For PDF output, I convert the resulting PostScript files using Adobe Acrobat Distiller. (Last updated 2000-09-27) Can you explain the meaning of the LEDs on the Handy Board and the Interface/Charger Board?on the Handy Board:
on the Serial Interface/ Batt Charger:
(Last updated 2000-10-25) What about the Rug Warrior?The Rug Warrior is a robot designed by Joseph Jones and Anita Flynn with assistance from Fred Martin and Randy Sargent. It has its own control board with integrated sensors that has a very similar architecture to the Handy Board and uses the Interactive C software system. Information about the Rug Warrior is available at http://www.egroups.com/group/rugwarrior. (Last updated 2000-11-28) Someone told me the Handy Board is free. How can I get my free Handy Board?MIT has released the design of the Handy Board with no licensing fee (i.e., “free”), but physical Handy Boards cost money and they are not free.
Consider the difference between “free speech” and “free beer.” The Handy Board is free as is the liberty of free speech, not the hand-out of free beer.
Sorry to dash your hopes, but look at the bright side: because the Handy Board is an open design, freely distributed, it's grown a large and supportive user base, and there are a lot of people who can help you get going with Handy Board projects. The Handy Board's official licensing policy is available at http://handyboard.com/howtoget/license.html. (Last updated 2001-02-27) My motors are going crazy and I can't download to my board! What should I do?Calm, please—it's normal for the motor ports to come up in a random on/off state when the board has lost its program. The motor output latch must be initialized by a program on the board in order for the motors to be turned off, so if the program is lost, the motors will come up in an arbitrary state. So the first thing to do is unplug your robot from the board. If you're having trouble downloading, you may as well “remove the whole patient” from your robot. Next, make sure you have the proper RJ11 cable—the wrong one can do damage. See http://handyboard.com/faq/display.php?key=rj11 for info. Assuming this is OK, now please perform the HyperTerminal/Loopback test at http://handyboard.com/faq/winindex.html. This will make sure your serial communications are working properly. If all looks good and you're still not able to download, try another downloader. Not all downloaders work on all machines. See the list of downloaders at http://handyboard.com/software/util.html. If you're still out of luck, see if you can borrow a known working Handy Board to test your set-up, or bring your Handy Board to other computer that's known to download properly. Finally, if you're still having problems, please write a note to the Handy Board community newsgroup. Describe what you've tried and someone may be able to help you. (Last updated 2001-04-09) Can you recommend LEGO kits to use with the Handy Board?There are several LEGO kits which are well suited for use with the Handy Board. The following list includes links into the Pitsco LEGO-Dacta Store web site:
In addition to these basic kits, you will need LEGO motor cables to be modified to use with the Handy Board. Get the 9 Volt Connecting Leads, W779897, about $13.50. This kit includes three leads. You can clip these in half, yielding six LEGO 2x2 connector heads. Wire the other ends to Handy Board style male pin connectors (see the Handy Board Manual PDF File or On-Line Sensor and Motor Wiring Directions). Finally, the LEGO 9v Gear Reduction Motor, W775225, about $16.75 is a great component for use with the Handy Board. PLEASE NOTE: If the deep-links into the Pitsco LEGO Dacta site go sour, you should be able to type the item numbers (starting with W) into the http://www.pldstore.com site. (Last updated 2002-04-25) Where do I get replacement batteries for my Handy Board?The Handy Board uses an 8 cell, AA nicad rechargeable battery pack. The packs are rated with a battery life measure of milli-amp-hours (mAh). A rating of 600 mAh indicates the battery could supply 600 mA of current for one hour. (Actually, the rating is based on a much lighter load, so it more properly means that the battery could supply 30 mA continuously for 20 hours.) Higher numbers are better, but packs with more capacity generally weigh more, and your robot has to carry that weight around. Battery packs for use with the Handy Board may be obtained from the following vendors:
Please note two important items regarding the Handy Board battery:
(Last updated 2002-05-08) Where can I get a replacement LCD screen for my Handy Board?Digi-Key Electronics stocks a replacement screen for the Handy Board: part number 67-1779-ND, about $10. You'll also need a strip of male header pins, e.g.: Digi-Key 929400-01-36-ND, about $1.30. (Last updated 2005-12-04) I'm building my Handy Board, and it won't go into the bootstrap download mode.First, check that the RP4 is 1K x 4 and NOT 1K x 7. Check that R15 is installed. (See http://handyboard.com/schemv12/cpu.gif). Also, check R8 and D1 are installed properly (see http://handyboard.com/schemv12/digin.gif). (Last updated 2002-06-09) Can I install an NVRAM (non-volatile RAM) in the Handy Board?Yes. An example is Digi-Key's part number 296-9392-5-ND. It is twice the height of the standard chip, so the screen doesn't fit well, but still works if the pins are slightly bent back. (Last updated 2002-07-25) How do I convert my stock Handy Board and Expansion Board to be compatible with Botball (the K versions)?In order to convert a Handy Board system (HB plus EXPBD) to the corresponding Botball "K versions," two changes must be made:
The following diagram shows where to cut on the Handy Board. After making this change, analog input 0 will no longer have a built-in 47K pullup resistor:
Next, get a 47K x 5, 6 pin resistor pack. Orient it as shown on the underside of the Expansion Board. Note the dot or band marking, which aim toward the edge of the board as indicated. Note that pin #2 is not connected. Clip it off before soldering. Solder the 5 pins as shown. After making this change, Expansion Board inputs 20 through 23 now have their own permanent 47K pullup resistors. Inputs 16 through 19 have no pullup resistor.
Congratulations! You now have HB-K and EXPBD-K versions. (Last updated 2003-03-11) Where can I get a CMUcam for the Handy Board?The best place is from the Kiss Institute for Practical Robotics. They sell a version of the CMUcam that includes a custom adapter for the Handy Board. See the KIPR ordering form here. (Last updated 2003-05-30) Is the Handy Board compatible with Mac OS X?Yes. You need two things:
(Last updated 2004-02-07) Why Can't I Use Nickel-Metal-Hydride (NiMH) Batteries with the Handy Board?The Handy Board's battery charging method is a simple trickle-charge circuit that never turns itself off (normal charge). This is fine for nicads; trickle-charging them indefinitely does them no harm. NiMH cells, however, require that the charge current cease when the cells are fully charged. If the HB's nicads are replaced with NiMHs, the circuit will permanently damage the NiMH cells. (See http://www.panasonic.com/industrial/battery/oem/images/pdf/Panasonic_NIMH_Precautions.pdf and http://www.panasonic.com/industrial/battery/oem/images/pdf/Panasonic_NiMH_ChargeMethods.pdf for discussions of proper NiMH charge methods.) A couple of comments:
Nicads are inexpensive and robust, so just because they are old tech doesn't mean they are no good. (Last updated 2004-02-22) Where can I buy a replacement 6811 processor?Motorola/Freescale 68HC11 processors are sold by Newark Electronics. For the Handy Board, purchase the mc68hc11e1cfn3.(Last updated 2005-08-12) Where can I order parts to build the Handy Bug robot in Robotic Explorations?The Handy Bug (or a robot very close to it!) can be built using the following LEGO sets:
To make adapters from the LEGO connectors to the Handy Board, you'll need 0.1" header pins, Digi-Key part number 929400-01-36-ND, about $2 each. Each item has 36 pins, enough for 9 Handy Board sensor plugs or 12 Handy Board motor plugs. Also, Gleason Research has a sensor/motor kit that is a very good value. (Last updated 2006-02-24) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||