Ahh, the light is visible at the end of the tunnel!
Check the Forum/Projects/Dice-R-Deluxe for the software in a few days
I got used to doing SMT soldering -- have to hold/tape the parts down! The solder tends to pull the device off the pad, when you move the iron. One of these days/years I want to try using solder paste and an iron, another engineer suggested it.
I also got used to reading the 'little' details in the spec sheets.
I made an assumption that a driver would drive to approx. 5V --
well - tri-state devices don't go that high - nominally 3.7V or so,
not enough for the double-LED segments in this chip!!
I had to come up with a substitute chip -- and a socket/mounting solution.
My original calculator case (from the Goodwill) wasn't wide enough for the final pcb. I went back to look for another one and came across a cable-modem !! - right thickness and had a smooth surface for a future stick-on matrix-keypad. I haven't been able to use the built-in power supply on the original PCB- darn it. It looks like there is room for a few batteries - though.
That's why I called it 'Dicer-delux' - all these options;
J15 is the 'Options' connector.
- Space for a 4x4 matrix keypad,
- I2C,
- you could dual purpose the keypad matrix for an LCD in the 4 bit mode- with some programming ;) AND there is a place for a 'backlight pot adjustment.
J14 an edge connector --2x4 right angle male header
- I have SIN/SOUT pins,
- I have an extra A/D pin [AD6 IO(22)]-- 3.3v max !!.
- There is one digital IO available [S0 or IO(2)]...{? a future event counter input??} and it is also connected to a driver chip(see J4); in case you want to add a ?? buzzer/speaker??
- The voltages are also available :: VIN, 5V, 3.3V from the Stamp - watch current usage -about 100ma, and GND.
Other
- There are two pins to be shorted for firmware uploading- ATN & GND
- There is a small RST button - might want to wire in a spare on the outside.
Programming has been FUN?!?!. I wanted to keep chip count down so I used
one chip to drive all the segments - in parallel on a buss. Then I needed
only 1 chip for the cathodes/Kathodes to enable each chip - one at a time.
The DP (datapoints) needed their own chip. Well, keeping the matrix refreshed
has been a challenge. Each display needs its segments programmmed then turn
on the Kathode (and DP if used). Needs a fast loop to avoid flicker.
And you also have to scan the SWitch inputs!!!
AARRGGHH- I could have use the LED7 pin and bussed the DPs to it , then I would
have more digital pins available & one less chip but would need a transistor for LED7!!!
[got locked into my first idea---]
I will put my program in the forum - for just the 'Basic' function - dice roller. It will have the framework for 10 modes - you get to fill it in ;- Personally I have 10 'modes' planned out...the "text" will be on the 7seg displays!
- 0 -normal display NOT AVAILABLE NOW 'further defined by mode
- 1 -"d1cE" - displays the numeric of the dice
.. future options - help yourself !!! - 2 -"-d1E-" - used to display the normal dice pattern- uses - instead of *
- 3 -"4AhTEE" for Yahtzee - hardcoded
- 4 -"A-D"
- 5 -"Ecount" event counter
- 6 - "C1oc" -- will need an I2C RTC
- 7 -"A1a.rnn" -- alarm from the RTC
- 8 -"Cntdun" -- countdown timer - like for exercising/cooking
- 9 -"TErnn" -- very BASIC terminal - with the matrix keypad
-- and an LCD display
sw1 - sw4 :: ^ v < > assign/actions with the LCD - 10 -"hEXX" '|--| ?? ACTUALLY this will have sub-modes,
-- based on the SWitch inputs/Keypad
There is a big CONST array with the patterns for one 7seg display. I use an 'index' to select the pattern/letter and then pump out the 8 bytes; one to each segment/DP. There are some comments at the end of the CONST array. [I suppose you could use a 'byte' for the letter and shift the bits to the different IO() pins - but it was beyond me at the time....]
OPERATION
DICE mode- will be prompted [??] for how many dice to roll
SW1 (far left) will V (down) the count :: SW2 will ^ (up) the count.
the Green button (suggested -- on the far right) is the Enter/Go/Roll
If you have more than 6 dice to roll - the Green LED will light indicating
as such and you will need to "Enter/Go/Roll" for the next batch.
On your last batch - another "Enter/Go/Roll" should prompt for the next
person/roll to be entered.
The MODE potentiometer is checked at the end of the main loop for that mode. Any change should take you back to the beginning to select your MODE; and will display the MODE number --and a prompt (if it has been added to the CONST array by you).
TIPS
- Solder J14 before you solder the Stamp - this is a 2x4 right angle header if you don't have vertical space; put a 1x4 RA each on top & bottom
- Try to get a PC audio or 3 wire fan cable/connector- for the MODE pot- easier to disassemble; solder the pot wires to a 3 pin male header.
- With heavy usage - you might want to solder in another/external "Enter/Go/Roll"
- Maybe an external RST switch ???
- FYI INFO - typical current @5v should be less than 200ma. Might want to add a 4.7 - 10uf cap near U1, the segment driver will be switching a lot.
- Network/phone cabling makes a fairly decent solid wire for soldering (not patch cables!)
- 7 segment display - to have the displays standing up/angled ::
use a flat blade to bend the 'bottom' pins down, [with nothing soldered to the bottom of the pcb];
lay the pcb on a flat surface and put the bent pins in the socket holes and 'tack' solder one pin
to hold them all in a row ( I taped mine together -- see the picture in Forum/Projects/Dice-R-Deluxe);
then solder the rest of the pins