PulseBox Image

Table of contents

Problems

 

 

Last-modified: 5.22.1998

 

 

 

Table of contents:

 

 

 

 

 

Copyright:

This manual and the PulseBox described in it are copyrighted by Andreas Kaenner with all rights reserved. No part of this publication or the PulseBox may be used in a commercial product without the prior written permission of Andreas Kaenner.

 

Warranty:

IN NO EVENT SHALL ANDREAS KAENNER BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS AND DAMAGED HARDWARE, ARISING OUT OF THE USE OF THIS HARDWARE AND SOFTWARE AND ITS DOCUMENTATION, EVEN IF ANDREAS KAENNER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

ANDREAS KAENNER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE FITNESS FOR A PARTICULAR PURPOSE. THE HARDWARE AND SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND ANDREAS KAENNER HAS NO OBLIGATIONS TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.

 

What it is :

Those of you who had the pleasure to see a BeBox in action (or are the happy owner of one of these collector items) know those fancy "blinken lights". They're not only a tremendous help while developing your application on BeOS , but also exeedingly cool. Ever wanted to show off yor MP Mac clone or PC to your friends, but had to open up the case to show the dual board (granted, that's cool in it's own :-)?

 

Specifications:

  • Microprocessor controlled.
  • 5V, 150mA
  • Supports the RS232-serial (PC) as well as the RS422-serial (MAC) port.
  • You need only one cable to connect the PBox to your computer (see the pictures)!
  • 16 LEDs per row. Two rows are supported.
  • You can split up the rows into 2x8 LEDs. With this option you are able to show four various data streams.
  • The configuration program "PulseBox Setup" uses cpu-time equal to the Be supplied Pulse (5%), but is in addition adjustable roughly from 3% - 7% of cpu usage (compared on a BeBox).
  • Fully documented serial-data-format. There is no need for a shared Library.

 

Some pictures:

 

 

 

How to build your own PulseBox:

What you need:

  • Some experience in soldering.
  • Circuit board
  • The PIC 16C84 with PBox-firmware
  • casing specific parts, see "Special parts"
  • Unstabilized power source with 6.0V-7.5V (300mA)
  • Standard electronic parts listed below:

 

Circuit diagram:

 

Circuit board : (platine.pdf ; in the PulseBox folder)

 

Special parts :

 

1. the Light-Rows

2. Casing:

3. test-tube:

 

4. Rubber:

5. Port-Adapter:

 

 

The "PulseBox Setup" program:

PPC + x86: (see the "PBox PPC" or "PBox x86" folder)

PulseBox Setup Window

It's a stand-alone program. If you start it with a double-click the 'PulseBox Setup' window appears. If you start it from a terminal nothing seems to happen, but the program is still there, doing its job. The only chance to get rid of it, is to click the "Stop & Quit" button.

Play around with it and you will see how it works. There is nothing much to say about it. Best of all: It 's freeware and you can use it if you don't have the PulseBox itself.

I've tested this software extensively, but there may be features I've overlooked. Let me know if you encounter any problems, or if there are features you'd like added.

email: Andreas Kaenner

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Serial data-format:

Example:

// allocate a BSerialPort-object:

BSerialPort* port = new BSerialPort;
port->SetFlowControl(0);
port->SetDataBits(B_DATA_BITS_8);
port->SetStopBits(B_STOP_BITS_1);
port->SetDataRate(B_9600_BPS);
port->SetParityMode(B_NO_PARITY);

// open the connection:
port->Open("serial1");

// If you want to know which ports are actually
// supported on your machine have a look at
// "/dev/ports/".



//=========================================================
// High-Speed-Mode:


. . .

char data[2];
data[0]=0;
data[1]=0;

char anz = 16; // some example values
char anz2 = 5;
data[1]=anz | anz2 << 4; //

// send data to the PulseBox:
port->Write(&data,2);

. . .

//=========================================================
// ComplexMode:
// Note that in complex-mode the data[1] - data[4]
// values will be interpretet as bit-patterns!


char data[5];
data[0]=1;

// calculate data for the left row:
if(left.split) calcRow8(data[1], data[2], LEFT_ROW);
else calcRow16(data[1], data[2], LEFT_ROW);

// calculate data for the right row:
if(right.split) calcRow8(data[3], data[4], RIGHT_ROW);
else calcRow16(data[3], data[4], RIGHT_ROW);

// send data to the PulseBox:
port->Write(&data,5);

. . .

 

Firmware:

I'm using the PIC16C84, because it's cheap and it's popular.You will find more
information about it in the PIC folder comming with the PulsePox distribution.

 

Problems:

If you should have any problems, feel free to contact me:

email: Andreas Kaenner