Test BS2 to DHB-10 Communication

Test BASIC Stamp to DHB-10 Communication

This next program asks the DHB-10 for its hardware and firmware versions, and displays the results in your Debug Terminal.  Here is what you’ll see if your BS2 communicates successfully with the DHB-10 (left) alongside one of the messages you might see if communication fails (right).

  • Make sure your programming cable is connected, the Arlo’s Main power is on, and the BOE’s power switch is set to 1.
  • Turn on the Arlo’s Motors power.
  • Verify that the DHB-10’s indicator lights blink on/off orange once every second.  If not, go back to the Arlo Assembly Tutorial and start checking wiring connections.
  • Open and run Test BOE and DHB-10 Communication.bs2.
    • If the Debug Terminal displays an error message, recheck the cables connecting the BOE servo ports to the DHB-10’s Ch1 and Ch2 ports. Also, make sure you set the Arlo’s Motors rocker switch to on.
    • If the Debug Terminal displays the hardware and firmware versions, make a note of the firmware version, and then proceed to the Test Motor Connections section.
' Arlo - Test BOE and DHB-10 Communication.bs2
' Run this program to verify that your BOE and DHB-10 are communicating.
' Should display:
'      Hardware
'      HWVER = 1
'      Firmware
'      VER = 10

' If it instead displays:
'     "ERROR, no reply from DHB..."
' It means there is a wiring problem.

' {$STAMP BS2}
' {$PBASIC 2.5}

val VAR Word
n   VAR Byte                                  ' Stores index of serial exchange

FREQOUT 4, 2000, 3000                         ' Beep -> program starting
DEBUG "Program running...", CR, CR            ' Display program running

n = 1                                         ' First exchange
DEBUG "PACE 1", CR                            ' Set serial pace for BS2
SEROUT 13, 32800, ["PACE 1", CR]              ' Set serial pace for BS2
SERIN  13, 32800, 50, ERR, [WAIT(CR)]         ' Get DHB-10's confirmation

n = 2                                         ' Second exchange
DEBUG "STORE PACE", CR, CR                    ' Display storing serial pace
SEROUT 13, 32800, ["STORE PACE", CR]          ' Remember serial pace settings
SERIN  13, 32800, 50, ERR, [WAIT(CR)]         ' Get DHB-10's confirmation

n = 3                                         ' Third exchange
DEBUG "Hardware", CR                          ' Display hardware heading
SEROUT 13, 32800, ["HWVER", CR]               ' Request hardware version
SERIN  13, 32800, 50, ERR, [DEC val]          ' Get DHB-10's reply
DEBUG "HWVER = ", DEC val, CR, CR             ' Display version

n = 4                                         ' Fourth exchange
DEBUG "Firmware", CR                          ' Display firmware heading
SEROUT 13, 32800, ["VER", CR]                 ' Request firmware version
SERIN  13, 32800, 50, ERR, [DEC val]          ' Get DHB-10's reply
DEBUG "VER = ", DEC val, CR                   ' Display version

END                                           ' End program

ERR:                                          ' Error routine
 DEBUG "ERROR, no reply from DHB-10.", CR    ' Error message
 DEBUG "n = ", DEC n                         ' Index of exchange that failed
 END                                         ' End program