Fingerjointer.

  • I needed a user interface to enter the board width, the pin width, the cut width, a tolerance factor and later a Phrase (more about this later).
  • TI CC3200 Simplelink Launchpad :  Everything you need to create a web server.
  • I started with the web pages in the out of box example in the CC3200 Simplelink Launchpad sdk and edited them with Notepad++.   The c code was developed and debugged in TI’s Code Composer Studio (an Eclipse environment).   The code, the web pages, style sheets etc. were downloaded into the Launchpad using TI’s CCS Uniflash tool.
  • For a motor controller I used TI’s BOOST-DRV8711 shield board.
  • This shield had user examples for using it with TI’s MSP430G processors.   I used those examples to get the correct parameters for this application.
  • The BOOST-DRV was not pinned out for the CC3200 Simplelink Launchpad so I had to modify the I/Os.
  • I was much more familiar with the MSP430 programming so I was a bit surprised how much different this ARM based controller was.  The pin configuration and I/O were not nearly as friendly with the CC3200.  TI provided web based configuration tools that helped a lot.
  • The BOOST-DRV8711 is set up using a SPI interface.  After struggling for a while to get one of their drivers to work (it was much more complicated than I needed) I gave up and bit banged one.
  • So that I was not debugging this code on the tablesaw I developed the cutting algorithm in MS Excel using Visual Basic and “cell graphics”.  
  • I loaded parameters into the CC3200 through the web interface and computed a two dimension array that contained the number of steps in one column and whether to advance into the blade or not in the other column.   I created separate arrays for the pins and columns because the tolerance factor would modify the pins only.  The tolerance factor is used to make the joint looser or tighter to accommodate things like runout on the saw blade.
  • The “cutting engine” software operated off those arrays.
  • When I got this done it was so much fun I decided to make the tool cut Morse code if you entered a phrase.  When you enter the phrase the UI then displays how wide your board needs to be.  
  • I did not do the tolerance factor for the Morse code because I used 1 sawblade width for the dits and 2 blade widths (minus the epsilon for blade overlap) for the dahs.   I seems to work fine. 
  • I originally built this to be attached to the top of my tablesaw but quickly found out that I needed something to cut boards with so I found a table saw for $20 on Craigslist that someone had made from parts of a universal woodworking machine.   I rehacked this hack for my purposes.  I lowered the saw top to make it a workable height and I reversed the saw blade and motor rotation so I could face the fixture toward me.
  • My son owns an industrial recycling business (http://stores.ebay.com/Mega-Salvage) so most of the hardware, air cylinders, stepper motor, leadscrew etc came from there.  This definitely could be value engineered.  Also:  https://twitter.com/MegaSalvage
  • In the photo of the circuit board there is a board in the very bottom that contains a regulator and some drivers for the relays and air solenoids.
  • The three lights on the light tower:
    • Green: Power is on
    • Yellow: Blinks when link is established between the server and the browser.
    • Red: On when you manually throw the switch that arms the saw for cutting.  (the saw motor is powered through a relay.  This is a safety feature.
  • Things I had to learn:
    • It had been a long time since I had done HTML:  Back in 1995 when I used vi for an editor.
    • I had not used Javescripts before.
  • Next:
    • Proportional joints where you enter the width of the board and the number of pins and it calculates the rest.
    • How about some mathematical functions?
    • Create the cutting array externally...
Read more »