| # The Handy Board FAQ The Handy Board This page answers some common questions and problems regarding the Handy Board. ### Hardware Why was the Handy Board designed? What is the difference between the Handy Board and the 6.270 Board? How can I choose between the Handy Board and the Mini Board? What is the difference between the L293D and L293B motor driver chips? Can I substitute L293B's for the L293D's? How do I convert a standard DC motor to work with LEGO Technic? How can I use motors other than 9 volts with the Handy Board? How can I get more power out of the Handy Board's motor outputs? Does the Handy Board have any digital outputs? Please explain the Handy Board's battery charging system. My Handy Board's battery won't charge. What are the specifications of the Handy Board's DC adapter?. I'm measuring the voltage on my adapter, and it says 18 volts. Is this normal? What kind of RS-232 cable do I use to connect from my computer to the Handy Board Interface/Charger? What kind of telephone/RJ11 cable do I use to connect from my Interface/Charger Board to the Handy Board? The R11 on my Interface/Charger board is smoking hot and is turning black! What is wrong? I want to save money. Should I buy the parts myself to build the Handy Board? ### Software What is the correct value of the CONFIG register? How do I use EEPROM? How do I read and write to the serial line from an Interactive C program? IC won't load my ICB files. I keep getting a message that says "-POWER GLITCH-" on the Handy Board LCD screen. I plan to use a compiler other than Interactive C with the Handy Board. What is the memory map of the Handy Board 6811 system? I can't get any of the downloaders to work on my fast Windows 95 machine. What is wrong?!@#!! ### Debugging This section should help debug problems when Handy Boards fail. One of the motor outputs has stopped working. When I turn the Handy Board off, the BATT and PWR LEDs stay on! ### Other What software did you use to create the Handy Board and this web site? ### Why was the Handy Board designed? There were several considerations motivating the development of the Handy Board. More powerful than the Mini Board. For those not familiar with the Mini Board, it's a minimalist 6811 design with just the 6811 chip, a pair of motor drivers, and a lot of sensor/motor headers. The Mini Board is great for little projects, and it's a wonderful “getting started” board because it's so easy to use, but it just doesn't have much headroom. The maximum of 2048 bytes of memory in the 6811 chip doesn't leave much room for sophisticated programs or friendly (read: interactive) development systems. Less complex than the 6.270 Board. The 6.270 Board is a great board for the next step up in complexity from the Mini Board. Indeed, the Handy Board borrows heavily from the 6.270 board design; their feature sets are nearly identical. But the Handy Board simplifies and re-thinks some of the choices made on the 6.270 to make it a more useful overall package. For example, the Handy Board is quite functional without an expansion board (it has several more analog inputs and the user knob on the main board). The Handy Board fits into a commercial plastic enclosure, and runs from an single, integral rechargeable battery. Finally, the Handy Board is more compact and uses fewer components. Designed from readily available components. Those of us who use Motorola CPUs undoubtedly have a love/hate relationship with the company. They make great microcontrollers, but just when you've completed your design you learn that the particular variant of the 6811 you used won't be available for the next six, eight, or maybe twelve months. While the Handy Board is based on a Motorola 6811 product, it uses the readily available 52-pin series of 6811s. These can be found dirt cheap in surplus these days and (hopefully) will not become a supply problem. Robotics textbook in the works. I've signed a contract with Benjamin/Cummings (a subsidiary of Addison-Wesley) to create a robotics text for an introductory undergrad engineering design course. The projects in the text will be based on the Handy Board robot controller design. ### What is the difference between the Handy Board and the 6.270 Board? First, the similarities: socketed 52-pin 6811 32K battery-backed static RAM digital input latch digital output latch driving two L293 chips 14-pin LCD interface two user pushbuttons powered/polarized individual sensor connectors 40 kHz IR output drive one servo motor output The differences, first from a pro-Handy Board point of view: single battery powers CPU and motors; recharge circuitry for the battery built into the Handy board; battery fits into commercial enclosure sized to fit the HB. 7 of the 8 analog inputs broken out to sensor headers; eighth is wired to a user trimpot (can be used to scroll through messages on the LCD screen). (On the 6.270, you need the exp board to get the knob and have only 4 on-board analog input headers on the main board.) on-board IR receiver interprets signals from household remotes or other robots separate serial interface board uses off-the-shelf serial cables (no custom cable wiring like the 6.270), and incidentally recharges the HB's battery whenever it's plugged in. everything fits into a convenient hand-held package; smaller than the 6.270 board. supplied by independent distributors at very favorable prices; blank boards also available at reasonable cost even in unit quantities. complete web site has lots of technical data; the HB will be the technology foundation of university textbook I am writing so (hopefully) there will be lots of them around and lots of people using them. Put more baldly, I am specifically encouraging migration from the 6.270 Board to the Handy Board. And now, the differences from a pro-6.270 point of view: separate CPU and motor batteries allow more flexibility in choice of motors and their battery. on-board RS-232 serial driver obviates need for external interface board. adjustment trimpot for LCD screen contrast (Handy Board has hard-wired default contrast setting). motor-current sensing circuit for each of the four DC motor outputs. IR output oscillator keyed from 6811 E clock is more stable than the Handy Board's RC circuit. well-documented in the 6.270 Robot Builder's Guide. 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 ### 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://el.www.media.mit.edu/groups/el/projects/handy-board. ### What is the difference between the L293D and L293B motor driver chips? Can I substitute L293B's for the 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. ### 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 Chapter 1 of the 6.270 Robot Builder's Guide for detailed instructions. ### 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 the schematic and some 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 printed circuit board artwork, and the parts placement diagram. ### 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: Plug-in replacements, which plug into the socket of the L293D chip. See Chuck McManis' H-Bridge Circuit, or systems supplied by Ben Wirz Electronics. Electronic Speed Controllers, which plug into a servo motor output (see the Handy Board servo solution) and control a high-amperage DC motor. Chuck McManis has a PIC-based Speed Controller. See also Wirz Electronics, and Tower Hobbies, which carries dozens of commercially available ESC solutions. ### 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. Finally, 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)`. ### Please explain the Handy Board's battery charging system. The Handy Board provides three ways to charge its internal battery: Adapter plugged directly into the HB. Just plug the adapter into the power jack on the HB, and the yellow ``CHARGE'' LED on the HB will light. This is a trickle-charge mode, which means that (1) the Handy Board will fully charge in about 12 to 14 hours, and (2) the HB may be left in this mode indefinitely. Adapter plugged into the Serial Interface/Battery Charger board; HB connected via telephone wire; ``NORMAL CHARGE'' mode selected. The yellow ``CHARGE'' LED on the interface board will light. This is a trickle-charge mode, which means that (1) the Handy Board will fully charge in about 12 to 14 hours, and (2) the HB may be left in this mode indefinitely. Adapter plugged into the Serial Interface/Battery Charger board; HB connected via telephone wire; ``ZAP CHARGE'' mode selected. The yellow ``CHARGE'' LED on the interface board will not light. The ZAP CHARGE will fully charge the HB's battery in just 3 hours, after which time the battery will become warm and it should be removed from charge or placed into either of the two trickle-charge modes. When using one of the trickle-charge modes, the Handy Board itself should be turned off so that the charge current goes toward charging the battery and not simply running the board. In Zap charge, there is enough charge current to operate the board and charge the batteries at the same time (assuming that the board is not driving motors or other external loads). ### My Handy Board's battery won't charge. The problem may be an adapter with too low voltage. The Handy Board requires an adapter rated for 12 volt output (with 300 to 500 mA current capability). When measured with a volt meter, this type of adapter will indicate 16 to 18 volts when not connected to anything. If the adapter being used only measures 12 to 14 volts unloaded, it is not adequate. It is also possible to experience power-related problems if the power adapter is rated for too much current. Users have reported trouble with adapters rated at 1000 milliamps; what happens is that the adapter is unable to provide enough voltage because it is more concerned with delivering enough amperage. ### What are the specifications of the Handy Board's DC adapter? The specifications of the Handy Board's DC adapter are as follows: 12 volt, 500 mA DC output 2.1 mm inside, 5.5 mm outside diameter barrel-type plug center conductor negative 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 information The 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: 12 volt, 500 mA AC output (same power plug). When plugged into the Serial Interface/Battery Charger board, this adapter works just like the standard one. When plugged into the Handy Board directly, however, the battery will charge at one-half of normal trickle-charge rate. This is a reasonable substitution if the recommended DC adapter is hard to locate. 12 volt, 500 mA DC output, center positive power plug. When plugged into the Serial Interface/Battery Charger board, this adapter works just like the standard one. This adapter is not capable of charging the battery when plugged directly into the Handy Board, however. ### 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. ### 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.:
PC DB-25 male | HB interface DB-25 female
pin 2 (transmit) | pin 2 (receive)
pin 3 (receive) | pin 3 (transmit)
pin 7 (ground) | pin 7 (ground)
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:
PC DB-9 male | HB interface DB-25 female
pin 3 (transmit) | pin 2 (receive)
pin 2 (receive) | pin 3 (transmit)
pin 5 (ground) | pin 7 (ground)
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. ### 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!'' immediately below. (That's what happens if you use the wrong kind!) ### 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 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. ### 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. ### 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 > instructions have no effect on the EEPROM memory. I write into the > locations, then peek and don't get what I read in. It stays the same as > what I loaded in via the PCBUG11 program. Is this a configuration error? 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. ### 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 at http://www.ai.mit.edu/people/rsargent/ic/serialio.html were written for the 6.270 board, but are directly applicable for the Handy Board running Interactive C. ### 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. ### 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. ### I plan to use 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:
Device | Location | Notes
6811 internal RAM | `$0000-$00ff` (A1 chip) `$0000-$01ff` (E1 chip) | Built-in
6811 control registers | `$1000-$103f` | Built-in
Expansion I/O Bank 0 | `$4000-$4fff` | Memory reads in this range enable the Y1 latch selector, present on the HB Expansion Bus. Memory writes in this range enable the Y0 selector on the Expansion Bus. No devices are present on a stock Handy Board.
Expansion I/O Bank 1 | `$5000-$5fff` | Reads enable Y3; writes enable Y2. See explanation above.
Expansion I/O Bank 2 | `$6000-$6fff` | Reads enable Y5; writes enable Y4. See explanation above.
Digital inputs | `$7000-$7fff` | The digital inputs consist of the two switches and sensor ports 10 through 15. A memory read from anywhere in this range returns the value of the digital input byte.
Motor outputs | `$7000-$7fff` | A memory write to anywhere in this range controls the motor outputs. The low four bits are motor direction, and the high four bits are motor enable (1=on).
External RAM | `$8000-$ffff` | The 32K of battery-backed memory is mapped to the upper 32K block of the 6811 address space.
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`). Special Mode allows the 6811 to switch back and forth between expanded mode operation---the mode in which the external RAM is active---and single-chip mode. The Handy Board uses the single-chip mode to communicate with the LCD screen, which cannot “talk” at the normal rate of the peripheral bus. 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. ### I can't get any of the downloaders to work on my fast Windows 95 machine. What is wrong?!@#!! For presently unknown reasons, some fast Pentiums have trouble running the downloaders properly. Here are some suggestions that many Handy Board users have found helpful: When using dl.exe, run it in a full-screen DOS mode. (This may also be necessary when using the freeware DOS version of Interactive C.) In the advanced serial port options, change the setting for receive buffer and transmit buffer to the lowest value possible (min). (Thanks, JANBOSEP@aol.com!) ### 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. ### 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. ### 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. Much of my creative work is done on my home machine, a Motorola StarMax 4000/160. I have 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, running on the Media Lab's Unix boxen, 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. For converting my PCB CAD files into GIFs, I use an arcane combination of software. DesignWorks outputs schematic files as PICTs, but the only program I have found that can load them while preserving the color information is ClarisDraw 1.0. Then I copy the schematic to the Mac clipboard and load it into Photoshop, which works just fine. To get GIFs of the printed circuit board drawings, I print them as PostScript files, and then rasterize them using Mac GhostScript 2.5.2 beta 3, a freeware PostScript interpreter. Then I load the bits into Photoshop for final tweaking.

Top | Fred Martin / MIT Media Laboratory / fredm@media.mit.edu / Thu Apr 2 03:35:48 1998