Finger Board logo

Frequently Asked Questions (FAQ)

How do I interface relays and other devices to the Finger Board?
We have provided interface circuits on our web page in PDF format to do this.

LED does not light up on power up?
LED D1 is not a power on indicator. The LED may not light up during first initialization of the board. Once proper communications is established, it will indicate when download mode is in effect. It goes off when in download mode.

I have problems communicating to the board using Interactive C in Windows?
Make sure LED D1 is properly installed. If it is in backwards, it will not allow proper communications. On faster Pentium machines, software communications has been a known problem with the older DOS based version of "Interactive C", try going to full screen mode. If this does not work then boot up your PC in full DOS mode. You can also use a Windows downloader version by Vadim Gerasimov, hbdl.exe, to download the PCODE. We recommend using the new 32bit Windows version of Interactive C by Newton Labs if you are still having communication problems. For users who have the Communications board separated from the CPU board, the ribbon cable length connecting them should be less than a foot. The serial cable connecting the PC to the Communications board can be 15ft or less.

Note: We have noticed that LED D1 can cause too much drain on PD1 giving communications problems. This is due to some of the LED's drawing more current than the 2ma given on the specification sheet. To verify this, remove R7 or the LED D1. Both are actually not needed for Finger Board II to work, but provides an indication when bootstrap is done.

Here's a suggestion from JANBOSEP@aol.com that may help in getting the DOS version of IC to run under Windows95.
"In the advanced serial port options, change the setting for receive buffer and transmit buffer to the lowest value possible (min)."

How do I get FB into download mode? IC can sometimes be difficult to sync. Try running IC in dos only mode. To get the kernel loaded into the FB board you need to hold both buttons down and then release the reset button before releasing the download button. This will load the bootloader. If you can get past this stage, everything else should be fine. You will need to do a reset once the kernel is loaded. IC will then come up on your LCD display. From here you should be able to download your programs.

When applying power, the Finger board does not reset and run the program in memory.
Some versions of the 32K Dallas battery backed memory module exhibit a power-on reset problem when used with the Finger Board. To fix the problem, install a 10uF tantalum capacitor in C13 on the PCB. C13 is located by the 5v regulator. Check the polarity of the cap before soldering. The capacitor will increase the delay time of the MC34064 reset chip and give the Dallas memory module more time to initialize.

Note: Using the new Dallas DS1233 reset chip no longer gives us memory initialization or reset problems.

Iím having problems running it off of 4 AA cells?
The onboard 7805 voltage regulator should ideally be running with a input of 6.3 volts or greater. You might be experiencing low power resets, try 5 cells or higher voltage for reliability. If you must run off of 4 cells, a low drop out regulator can be substituted for the standard 5 volt one, but this limits the maximum current draw to less than 100ma. Here's a schematic showing how to replace the standard 7805 voltage regulator on the Finger Board with a Low Drop Out version. Schematic is in Adobe Acrobat PDF.

Can I use other compilers and programs?
Other compilers can be used but you must be aware of the reset vector location. Because the 68HC11 is in "Special Test Mode", it is located at addresss $BFFE:BFFF. Read the "M68HC11 Reference Manual" by Motorola for a better description. You can also use DL.EXE (found in Interactive C) to download compiled S19 records to the Finger Board. There are other C compilers for the 68HC11 that can be used, Small C, ICC11, and GCC. For BASIC programs, use SBasic by Karl Lunt. Karl also has written a version of FORTH for the HC11 called tiny4th. Two very good interactive debuggers are NoICE by John Hartman and PCbug (Pcbug342.exe) by Motorola. A good bootloader is Hcload by Sylvain Bissonnette. The one we have found to be very reliable is DL68hc11 by Wilfried Markenstein. Motorola also has a freeware assembler, as11. All of the above programs can be found on the Net.

The Finger Board II now has the option to set the reset vector to location $FFFE:FFFF with jumper JP18 (MODB).

What is the clock speed of the 68HC11?
The crystal clock is 8Mhz, but is divided down to 2Mhz by the HC11 internally.

Can I use 4x20 or 2x20 LCD displays?
When using Interactive C, Finger Board supports a 16x2 line LCD display. If other types of displays are to be used, the LCD display routine may need to be modified. The public domain version of Interactive C has pcode source code that can be modified. It is written in assembly.

Charles Hacker has written a assembly code LCD print routine that can be used for the Finger Board.

The Finger Board uses LCD's with the Hitachi chip set HD44100 and HD44780. Some of the older LCD displays require a -5volt bias and will not work. If the version of the LCD contains a single row header, 1 X 14, connect the pins in the same pattern as on JP2. Pin 1 on LCD connects to pin 1 on JP2 etc.

This is the pin assignment of the LCD.
Pin 1 - gnd
Pin 2 - 5volts
Pin 3 - gnd (contrast pin, ground for highest contrast)
Pin 4 - RS (register select)
Pin 5 - R/W (read/write)
Pin 6 - enable
Pin 7 - db0 (data bus)
Pin 8 - db1
Pin 9 - db2
Pin 10 - db3
Pin 11 - db4
Pin 12 - db5
Pin 13 - db6
Pin 14 - db7

Can I add more than 32K SRAM?
It is possible by stacking memory on top of the current memory chip. Address mapping will need to be worked out for the memory chip select. A much simpler approach is to use serial EEPROM with the available I/O or the SPI port. We have written a application note, EAS-AN001, with software code showing how.

Can I use the SPI port to hook up a 12 bit A/D or D/A?
There are SPI compatible serial acquisition chips available from Maxim and Analog Devices. Check their web page for more info. We will be posting a schematic in the near future.

Can I put more than one device on the SPI port?
The SPI can handle multiple devices. One of the Port A I/O pins may have to be dedicated as a chip select. If you have added the expanded I/O circuitry using JP9, one of these pins can be used as the chip select. See our Finger Board Help file for more info on using JP9.

Which version of the pcode do I load when using Interactive C?
The "Rug Warrior" version of the pcode (pcode_rw.s19) will need to be used for the Finger Board. The "Handy Board" version of the pcode looks for either the stop or start push-button switches before it begins.Schematics are available on our web page showing how to add these buttons. The public domain "Rug Warrior" version of Interactive C can be downloaded from MIT at
ftp://cherupakha.media.mit.edu/pub/projects/6270/interactive-c

Use the boot loader program DL.EXE to send the pcode to the Finger Board. DL.EXE can be found in the above Interactive C distribution. If the Finger Board is connected to COM1, the following command will upload the pcode. Set the Finger Board to download mode by pressing S1 and resetting the CPU.

C:\dl pcode_rw.s19 -port com1

Other boot loaders can also be used with the Finger Board.

UPDATE. We have a version of the Handyboard pcode, pcode_fb.s19, that has been modified so it will run on the Finger Board. The Start button routine was removed so programs will autostart when the processor is reset. The LCDbusy routine also removed so the Finger Board can run without a LCD display. This version of the pcode also includes the Smooth PWM motor drivers. For use with the Smooth PWM version of the lib_hb.c library. To save the s19 file, right click on your browser and do a "Save Target As..."

Where can I purchase the LED for the Communications board?
This is the same model used on the "Handy Board" but it may be hard to find from the usual electronic supply warehouses. Tech America (1-800-877-0072) sells a 3ma LED (model#90-1555) that can be substituted for the HLMP-1790. The resistor R7 value must be increased to 2.7K, or else the current drain from the LED will prevent communications

I'm having problems loading Acrobat PDF Files that are located on your Web Page.
Viewing PDF files requires a copy of Adobe Acrobat Reader from http://www.adobe.com. You may have to right click on the PDF links found on our page and choose "save link as" to download the PDF file directly to the hard drive. Run Acrobat Reader and load the PDF file to view it. If using Microsoft Internet Explorer, right click and choose "save target as" to download the PDF files.

What is the memory map of the Finger Board?

Memory Location

I/O Device

Notes

$0000-$00FF (A1 chip) $0000-$01FF (E1 chip)

68HC11 internal RAM

Built in.

$1000-$103F

68HC11 control registers

Built in.

$4000-$4FFF

JP9 Memory mapped I/O

Memory writes in this range enable pin 1 of JP9 expansion header.
Memory reads in this range enable pin 3 of JP9 expansion header.
When enabled, they are active low.

$5000-$5FFF

JP9 Memory mapped I/O

Memory writes in this range enable pin 5 of JP9 expansion header.
Memory reads in this range enable pin 7 of JP9 expansion header.
When enabled, they are active low.

$6000-$6FFF

JP9 Memory mapped I/O

Memory writes in this range enable pin 9 of JP9 expansion header.
Memory reads in this range enable pin 11 of JP9 expansion header.
When enabled, they are active low.

$7000-$7FFF

JP9 Memory mapped I/O

Memory writes in this range enable pin 13 of JP9 expansion header.
Memory reads in this range enable pin 15 of JP9 expansion header.
When enabled, they are active low.

$8000-$FFFF

External RAM

DS1230AB/Y Dallas 256kbit (32Kbyte) battery backed static ram. The RAM is mapped into the upper 32K block of the 68HC11 address space.

The Finger Board operates the 68HC11 in "Special Mode". This causes the interrupt vectors to be located at address $BFC0-BFFF. While operating in "Special Mode", the 68HC11 can switch back and forth between expanded mode operation and single-chip mode. Interactive C switches the 68HC11 to single-chip mode when it communicates with the LCD since the LCD module cannot communicate at the normal rate of the peripheral bus.

On power-up with S1 depressed, the 68HC11 enters "Special Bootstrap Mode". This is when the internal boot loader is used to upload a more extensive bootloader which will then load your srecord program code. After your program code has been loaded and a reset is issued, the 68HC11 enters "Special Test Mode" and will automatically jump to the program with the reset vector location stored at $BFFE:BFFF.

When using other languages, make sure to declare your interrupt vectors in the "Special Mode" range of $BFC0 to $BFFF.

The Finger Board II now has the option to set the reset vector to location $FFFE:FFFF with jumper JP18 (MODB).

For more information, please see chapter 3 of the Motorola 68HC11 reference manual.

How much free memory do I have after loading the IC pcode?
After loading the pcode, there are approximately 16320 bytes of available program space. The pcode source code can be modified and re-compiled to take up a smaller footprint in memory. Routines such as the IR and Motor PWM subroutines can be deleted if not needed for your application.

This is the approximate breakdown of the memory space. (Thanks to fredm@media.mit.edu)

User program object code + user global variables: 16320 bytes available
Runtime pcode OS: 7936 bytes
Used stack space for user processes: 6656 bytes
Used buffer for interaction process: 256 bytes
Used buffer for printing: 256 bytes used

How do I use Sbasic on the Finger Board?
Here's a couple of demo programs that can be downloaded to get you started in using SBasic.

Why do I sometimes lose my program from memory?
To keep the Finger Board as compact as possible, we did not include a onboard power switch. If you connect the Finger Board to your power supply by hand without a switch, sometimes the data in memory will get corrupted. Connecting power by hand creates a noisy power up condition due to multiple contacts. To prevent this, use a good quality external on/off switch.

What type of serial cable do I use to connect the PC to the Finger Board?
You will need to use a "straight through" type serial cable i.e. external modem cable. If your PC has a 25 pin type serial connector, you can use a 25 to 9 converter to connect to the communications board. You can also make your own cable and the pinout is as follows

DB25 TxD pin2 >>>> DB9 TxD pin 3
DB25 RxD pin3 >>>> DB9 RxD pin 2
DB25 Ground pin 7 >>>> DB9 Ground pin 5