Online Since 1995
Cribbage Board #10
Adventures / Interests
WEDDING BOARD Frequently Asked Questions (FAQ) and Other Interesting Tidbits (OIT)
Here are some answers to common questions regarding Cribbage Board #10.
This is Cribbage Board #10. As in, this is the 10th cribbage board that I have started (#11 and #12 have already been completed).
The board is titled "The Wedding Board", for 2 of the 3 boards are weddings presents to good friends. Better late than never!
Cribbage Board #10 was designed to stand the test of time. From component selection to cleanliness, everything is meant to last more than 100 years (archival quality). Those items that do not stand the test of time are well specified so that they may be replaced.
Cribbage Board #10 is an Extremely Limited Edition. Only 3 of these boards have been constructed. There are no plans to construct more.
The 3D design started in SolidWorks with the model of the RGB RCA socket. From that point on, 95% of the components were modeled in SolidWorks. This includes the PCBs (prior to layout in Protel), connectors and hardware.
Admitted, it took more than 4 years (from the date of inception) to complete this project. However, given the investment in time and money, extra care was taken at every step. Nothing was rushed and no shortcuts were taken. Keep in mind that for each board there are over two hundred hours of design/manufacture and assembly time. In fact, just the sanding and finishing process (of the wood parts) took 3 months of nightly work. In addition to all this insanity, I had a girlfriend (and managed to keep her) throughout this entire project.
Being a critical component to theme of the Wedding Board, all of the component colors were carefully considered. The colors of the RCA pegs and sockets were all intentionally chosen (In fact, the RGB connectors used on the top section are only made by one vendor.) With RGB being the basic primary colors, it seemed fitting to use these colors for the peg tracks and for the peg bodies themselves. The printed circuit boards make use of red, green and blue solder mask colors as well. Naturally since anybody (R, G or B) can win on any given day, the winning peg hole is white. The internal peg holders (programmer board and pegholder rail) are all black. All of the hardware is custom-plated nickel to match the electronics connectors. The top aluminum piece was nickel plated as well in order to reflect the light emitted by the pegs. The woods were chosen for their neutral and complementary tones, as well as for their beautiful grain patterns.
The size is of Cribbage Board #10 is a direct function of the peg size and the RCA sockets chosen. The height was a function of the sockets as well as the readily available sizes of solid Maple. Whether it is too big or too small is in the eye of the beholder. After all, isn't the "magic contained therein" more important than the size of a cribbage board?
o The peg code utilizes the EEPROM and a series of wait routines to recognize and count power cycles.
o Because EEPROMs have a limited lifetime (10,000-100,000 write cycles) they will eventually wear out.
o Because the peg counts every power cycle, it is essential that the entire EEPROM region be used in order to spread the "wear and tear" on the EEPROM. This effectively multiplies the total EEPROM lifetime by the width of the EEPROM buffer.
o The peg firmware divides the EEPROM into two circular buffers (ignoring address 0x00 due to known corruption issues with that address). The first circular buffer is a location buffer that is a fixed offset from the second circular buffer (power cycle count).
o Upon startup the firmware pages through the location buffer to find the last point of entry. The last point of entry is identified by a value cliff. The location of this cliff provides the firmware with a handle into the power cycle count buffer. The peg then stores high-value+1 at location+1 in the location buffer. This effectively moves the cliff further forward.
o With the handle into the program counter buffer, the peg performs a simple offset calculation. The data at that offset is the number of power cycles. The peg immediately increments this number and stores the new number in program-counter buffer+1. (every power ON is initially assumed to be a programming power cycle).
o Next, the peg checks to see if it has been power cycled enough and if it should change modes. If necessary, the peg will store this new mode into its mode register (also in the EEPROM).
o If the peg is left on long enough, the peg goes back into the power cycle count buffer and zeroes the running power cycle count value.
o This dual buffer array effectively increases the lifetime of the Tiny12 EEPROM by a factor of 30 (300,000 power cycles minimum). At this rate, it would take well over 2,500 games of cribbage to wear out the EEPROM.
The ATTiny12 on the programmer board uses the brown out detect feature to check the source of its reset. The firmware determines whether the source of the reset is due to power being applied (via the "Fridge Door Switch") or a reset condition (via the "Push to Program" button). Depending on the source of reset, the code branches into different conditions. In the Power On Reset condition (for instance the lid on the board has just been opened) there is no possible way that pegs were inserted and ready for programming. In this condition, the Programmer Board simply applies power to the peg sockets. In the Soft Reset (Brown Out Reset) condition, the "Push To Program" button has been pressed, generating a software reset. In this condition, the Programmer Board checks the state of the rotary switch and power cycles the peg sockets an appropriate number of times.
The programming count of 16 was determined through play testing. It is set high enough to limit accidental programming during play (due to contact bouncing), but low enough to limit the time-to-program.
The peg code was programmed in assembly using Atmel's AVRStudio 3.56 and AVRStudio 4. The firmware is loaded (via the ISP connector) onto the ATTiny12 using an AVRISP. The AVRISP handles all of the timing and communication issues for loading the on-board flash memory with the assembled program code. For miniaturization a small low-profile 6-pin connector was chosen. As a result, it was necessary to construct a special adapter to go from the peg's 2mm pitch header to the AVRISP's 0.100" header.
All of the printed circuit boards were designed by Red Byer. After modeling the interconnect requirement in Solidworks, the schematics and layout were done using Protel. Keeping with the theme of the board, there are red, green and blue solder masked boards. (The peg boards are green). In addition to their electrical role, the interconnect boards play a vital mechanical role. These interconnect boards allow for disassembly of various sections, should something go wrong with a connector. Some of the PCBs are noted below.
All of the woodworking was done by Red Byer in his workshop (i.e. garage). The bottom portion (solid maple) was thickness-planed at a local lumber store, then cut to length and match routed to the aluminum top plate. At this point it was milled out using a Bridgeport end mill over the course of a couple of long evenings. Some of the tolerances held are atypical of wood (+/- .01"). The top section is a 4 piece construction, permanently bonded with polyurethane glue prior to match-routing to the metal top plate. Following top/bottom pairing, the pieces were match-sanded to ensure an even finish.
The aluminum top was CNC machined by Stan Haladus of SH Engineering.
The nickel plating and anodization of components was done at Amex Plating. They did an amazing job nickel plating the hinged assemblies without freezing them in place.
Finding #4 stainless steel square drive screws is a nightmare. Olander Corporation in the San Francisco Bay Area is a great supplier of fastener hardware. These were chosen for the top for their visual simplicity. Elsewhere, button head hex-socket #4 are used. The design intentionally limited the number of different screw lengths and styles.
The satin lined velvet bags are custom designed from The Siren Store . The colors for the bags were chosen by the recipients.
To date, approximately 100 "pegs" have been assembled and built for various uses. It turns out that the PCB (an ATTiny12, 2x FETs, ISP socket) is incredibly useful as a miniature embedded device platform. It is relatively easy to prototype with and incredibly flexible as well. One incarnation is a peg adapted for use in an automobile 12VDC socket. Another incarnation finds itself embedded into a TiVo remote to provide a low-power (great sleep modes on the Atmel parts!) EL backlighting control.
March 3, 2008