A few months ago; I bit the bullet and got myself a Techshop.ws membership for the Austin/RoundRock location. While not cheap; I expect to make good use of the money spent.
For those that don’t know what Techshop is… in short it’s a “gym-membership” type of place which has over $500k in high tech machinery which the hobbyist can use once they’ve taken the required safety courses. Austin has a Waterjet, 2 shop bot CNC machines, mills, laser cutters, cnc sewing machines, tig/mig/welders, sand and powdercoating , etc.
My first course was Shopbot CNC … Last month I completed Waterjet.
This means I’m now able to use either of these machines.
For the last couple of years; I’ve been wanting to do my own pinball table. Those that know me… will already know the subject matter in question.
About two months ago; I settled on a plan.
Create a Star Trek: Mirror Universe pinball table.
The plan; Scan in a 1979 Bally Star Trek pinball table. Mirror it. And customize it for the mirror universe.
After: (click the picture to get a larger higher rez on flickr)
Yeap; that’s right… the shooter lane will be on the left side (evil grin) and will have a negative feel. What has been done:
Re-colored the playfield; fixed worn areas (in computer). Then flipped the playfield.
“vectorized” nearly all aspects of the PF.
removed “reversed” text and replaced with Star Trek: series font.
USS becomes I.S.S. Enterprise.
Space Station K0 becomes Battle Station K0
Transporting people become their “mirrored universe” counterparts complete with sashes and skin.
Spelling “bally” becomes “Terra” (Terra meaning Earth. Short for “Terran Empire”; the mirror universe’s “federation”)
Removed same player shoots again language; opting for “shoot again” text over insert.
Drop Target Special becomes Terran Empire logo.
colorized planet with purple glow like the re-mastered series from cbs. Not sure I like it… may go back to original look.
You’ll note that I’ve removed all the switch lanes from the design. The plan is to design a set of hall effect pcbs which replicate functionality without slots in the PF.
I also did the inital CAD work on getting a CNC-ready Playfield.
My next step is to see if I can source some inserts from Pinball Resource. I’ll need to do this before I commit to keeping the same sized inserts as on the original.
I’m curious how Kevin O’Connor would have approached a project like this.
I’ve also been in touch with Kevin at www.tavco.net ; unfortunately – the printer purchased by the Austin / RoundRock Techshop is only 24in wide… and the 4mil pressure sensitive adhesive film I wanted to use only comes in 36inch widths. The only material that comes in 24inch is a non-adhesive roll; meaning I’d have to find some kind of adhesive to attach the graphics to the PF.
Kevin did put me in contact with a local printing company: http://www.aclaustin.com/
whom may have a large format printer which can print directly to the Playfield; which should make it easier to create as I won’t have to “register” and “line up” the graphics to the inserts/table.
For the last couple of months; I’ve been working on a redesign of the willams printer kit for my Star Trek: The Next Generation pinball. Much of the work as been in the Complex Programmable Logic Device (CPLD) which is in 256BGA form. Why a CPLD? Long term I intend to replace the Intel 8251A USART (which is becoming increasingly difficult to find and expensive) with a “soft IP” core. The only pseudo-free 8251A core I could find was by ALTERA. They allow free use of that IP; but only as long as you put it in an Altera device. I’m ok with that; but to be honest, I really do not like the company. My first tech-support request was “refused” because I wouldn’t provide them with a company or university name. I’m a hobbyist for crying out loud; support your damn products or bite me. If I had any other choice I’d go with another CPLD/FPGA company for this reason alone. But I digress…
This is a 1mm pitch BGA – needed it because the whole design requires logic blocks which only come in bga form factors. 🙁
I was forced to go to a 4 layer PCB to get the smaller 13mil drill sizes for “escape routing” the bga signals. I designed the pinout of the BGA to mainly use the outside peripheral pins of the bga. Pinouts were made to make for easier routing to U3 (Ti’s 74LVCH16T245), U2 (Ti’s 74LVC4245A), and U6 (FTDI’s FT232RQ) chips.
The design used the Ti 245s to translate between the MaxV’s VCCIO of 3.3V and the WPC/USARTs system voltage of 5Vs. Linear 1.8V and 3.3V LDOs from Ti drive the MaxV VCCINT (1.8V) and VCCIO (3.3V) pins. 3.3V also drives the other support chips; the UART->USB (FT232RQ) and the RS232 charge pump (U5/MAX3242UI). Logic in the CPLD controls “enables” to the MAX3243 from the USB chip; so that if a laptop/computer is plugged into the usb (J710U); the rs232 port at J710 is “off”.
This leaves a question; Why have the i8251A device onboard. This is a debug feature. Given I’ve never done a CPLD or FPGA design before; I’m thinking it may not work “right out of the shoot”… so I’m providing myself with a short term verification feature; where I can prove a real 8251 works … but there is a bug in the IP core (or my implementation of it). Long term; my goal is to de-pop U1 and U2 to reduce bom costs once the design is proven functional.
The top layer board will look something like this:
When installing in the pinball machine; one would disconnect the main cpu ribbon cable and plug it into J701B. The connect a short “jumper” ribbon cable from the cpu board to this board via J710A.
I got to be honest; the bga on the board is very scary. $20 a piece… and BGAs aren’t really known for their ease in the DIY workshop. But; it’ll be fun to see how pcb assembly goes.
I hope to order the PCB shortly… then be “waiting” for the batch pcb service to pool with others. I may quote with PCBFabExpress.com as they seem to have very reasonably priced 4 layer boards with a quick (compared to batchpcb, 5 day turn).
Next step after ordering boards and BOM for assembly; is to get back to the visual pinmame source code in order to begin “simulating” the printer kit from a software prospective. Long term; I want to test the ROM hacks to dump the high scores via serial port and the Serial kit. Once I’ve tested the roms in pinmame; then I can commit them to the real machine. I did have some success compiling pinmame from source; but for some reason I get an assertion about filetypes when running the compiled images.
I’d also like a benchtop WMS debug system… thought about using a P-Roc – but not sure if close enough to the original WMS board to be compatible with the WMS printer kit.
Madaracs on the KLOV forums was kind enough to loan me his Sega Captain’s Chair CoinBox for measurement of the dimensions. With his coinbox I was able to modify the preliminary plans I had posted to my Captain’s Chair Restoration.
Almost a year ago I posted in my Star Trek Captains’ Chair worklog that I intended to modernize a old XY Pattern Generator design on the interwebs. Many of the guys on VectorList provided valuable insight into the interworkings of the circuit… and provided many layers of helpful advice.
The result was a working prototype board from BatchPCB.com as a dual sided board. Surface Mount ( yes; I can hear the screams of horror ) as I wanted to minimize PCB size and thereby cost.
There were several key learnings that I’ve noted while building, debugging, and using the Vector Pattern Generator. These learning were as follows and have been incorprated into the FabB design:
The clock generator circuit (3.578MHz xtal) and U1ABC was not “locking”. This was due to the buffered logic of the newer 74HC* logic. Some research on the internet indicated I needed a 150pf cap from pin1 U1A to ground to allow the clock generator to exite enough to lock.
The -12V buck converting power supply wasn’t outputing the correct voltage. It’d start out at ~11V…. the drop to ~5V over several minutes. On my debugged board; shorting R26 (10meg ohm) allows the -12V to become rock steady at -11.8V. Unsure here; the Maxim EE sim was very specific on the 10meg ohm value… but the maxim datasheet indicated two modes for VL to operate in. So for now will error on the practical side.
The 5V regulator did not have enough copper to heatsink to. FAB B has a large 5V copper heatsink built into the board for the linear regulator. For my prototype; I thermal epoxied a small heatsink from a old motherboard onto the top of the regulator to give it some thermal sink.
The Linear POT datasheet was missing details regarding the LED side of the POT. One hole was off and was moved to match the device.
I also included the following “Nice to Haves” into the FabB design:
Retrofitted EPROM sockets to enable A11 for a 27C32 eprom(s)… allowing for more user designed test patterns. NOTE: A11 is hardwired to high to match 2716 eproms configurations. No clock/decode is provided for A11. Future FabC work if a solution can be found.
At this time you can use either 2716 or 2732 eproms in this design.
Renamed topside adj pots to indicate X and Y.
Converted to 3pin jumpers so the jumpers can be mechanically sound when output swing is not shorted.
The Bill Of Materials (BOM) of the board is available from Digikey for $75.51 (as of this post).
A bom is included with the schematics PDF above, but An XLS file with the digikey part numbers with the complete package of the materials above as a single download: XYpatternFabB_pkg.ZIP You will need to source your own 2716 or 2732 EPROMs as Digikey does not carry them. You’ll also need to source your own 14-16VDC wallwort … you may already have a donor in your parts bin leftover from a defunct piece of equipment.
ROM images for the EPROMs can be downloaded from several sources. Hint: Do a search for XY ROM images .zip in Google.
Use the ROM images as-is for 2716 EPROMs. For 2732 EPROMs; just dup the roms using the following dos commands (as an example):
copy /B X.BIN+X.BIN x32.bin
/B is important as it tells copy that the files are binary, not ASCII files.
The Author is still using the FabA prototype; he has not yet built FabB so YMMV. The changes from FabA were relatively simple; so building these should be a low risk.
The active components (switches, linear pot, adjustment pots, jumpers, and video connector) are all populated on the reverse side. This will allow me to put the board on standoffs and a acrylic top on the device to protect it from dust/flying multimeter/scope probes.
The board is still quite big even with the surface mount components measuring 5.1×3.9in tall. By far the largest parts on the board are the EPROMs… maybe one day I’ll figure out how to move the EPROMS into a single EEPROM device and surface mount it.
So; what does the Fab A prototype look like?
Click to see higher rez pictures
This is the primary side; which faces the workbench in normal operation.
This is the secondary side. It becomes the “top” of the unit so the user can adjust settings and the like.
Please Note: This implementation is not perfect… there are some issues with the vector generation that I haven’t been able to debug. The imperfection does not really limit the functionality; as you can easily converge and debug a vector monitor with the vectors. I am hopeful someone can help me debug the issues so we can release a better project long term.
Overall the generator worked quite well as I was able to get my ElectroHome G08 monitor converged.
I can’t explain the center vectors… nor why the lines become squiggly. They don’t move; it’s always that way.
Strange that the site pattern doesn’t seem to suffer from odd vectors.
As you can see; the generator works well enough to converge a vector monitor…
At this point I’m not sure if the odd vectors / none straight vectors are the result of a software problem (EPROM images) or a hardware problem.
It’s possible the software isn’t reacting well with the faster hardware (HC logic, better opamps); but unsure.
Things I still need to do [if I ever find the time]:
check the +12V portion of the buck converter. Right now I’m using the backup +12V linear regulator (U9).
Create an enclosure to house the unit.
Figure out how to clock A11 to enable full 2732 support; thereby more test patterns.
iPhones are rather picky about supporting non-Quicktime video files… as a result my EdiMax IC-7000PTn ip security camera’s motion notification emails weren’t viewable on the device… instead; I’d have to try and remember the external url to the camera and view live. After spending a weekend in Atlantic City for my Mom’s 60th b’day… and getting these useless notifications; I decided to do something about it.
At first; I tried to hack the security camera’s firmware… To complicated with to much risk; as EdiMax doesn’t provide sourcecode for the device… and none seems to have spend a large amount of time on this specific model.
Since I have my IP camera set to dump security motion files onto my LG NAS via FTP, I figured I might as well use the ARM cpu to convert these files using ffmpeg 0.11 and the x264 library to convert the files to a iPhone friendly format. It was a trick to install the x264 library; so please see this post for notes on how I did it. I have root /ssh access to the NAS; unsure if the stock firmware has this so see this post for pointers to the firmware I used. The NAS should have the other prerequisites already installed, but in-case I’ll try to list them all here:
I’ve decided to release the conversion script to the Interwebs via the MIT License for anyone to use. I’d appreciate a talkback/”thank you comment” below if you’ve used it. You can download the script here:
The script is fairly well commented so you should be able to modify it as needed. For the most part; the implementation specific variables are near the top of the script. The Must Change are as follows:
Location of the source videos to convert; typically a “dropbox” ftp-ed in from your camera
Backup location of the videos after conversion.
original files are saved for later review
file extention for the source videos.
Used to detect new files from “old”.
file extention for the converted videos.
Almost always “mp4” as to be compatible with iPhone.
External URL for your IP camera.
Can Specify :port in url for non-80 applications.
Typically a dynamic dns service.
Internal URL for your IP camera.
Can Specify :port in url for non-80 applications.
Used when your inside your home’s network.
Other interesting variables – change may be required
FileSystem location for the ffmpeg binary.
Use which ffmpeg to find it.
holds ffmpeg commandline options for trans-coding to iPhone format.
Could theoreticly be used to trans-code to other smartphone formats.
FileSystem location for the qt-faststart binary.
Used to reverse Quicktime(iPhone) metadata so video is played immediately instead of downloading.
Use which qt-faststart to find it.
FileSystem location for the uuencode binary.
Used to base64 encode the video files for MIME attachment.
Use which uuencode to find it.
Set to 0 to keep emails near 1screen on iPhone.
if non-root or non LG NAS; you may need to hard code this to the destination email address to send the notification to
if non-root or non LG NAS; you may need to hard code this ON for smtp authorization
if non-root or non LG NAS; you may need to hard code this a username for smtp authorization
This var is near the end of script
if non-root or non LG NAS; you may need to hard code this a password for smtp authorization
This var is near the end of script
number of days the converted files will remain in sourcelocation
number of days the orginal files will remain in backlocation
The script is designed to be run as root via crontab. The Author runs it every minute during daylight hours- this may change when/if he gets additional cameras with night vision. The current version of the script is designed to ensure no other encodings are running – ie more than one instance of iPhone.sh via job control (pgrep). The original video files are backed up to a specific folder and the script makes sure that directory exists.
When sending email using sSMTP; the script will timeout after 90seconds and kill the sSMTP app. You may want to increase this time if you have long videos or a slow Internet connection.
That’s about it… of course, YMMV – but this works very well on my systems and iPhone4. I can get multiple video attachments in a single email; each viewable on my iPhone from the email message.
As an example; here’s a screenshot of the email received on an iPhone4:
V1.1 improvements include a “backup” retiring system thanks to MikeS (a reporter at Hackaday.com) and Hackaday commenter gerphy. Their input included the find commands with some extra sauce to include variables for sourceage and backage.
Feedback is welcome – but all comments are screened by myself to prevent comment “spam”.
Trying to compile the x264 library (x264-snapshot-20120805-2245-stable) for the ARM926 in my LG NAS. Running ./configure seems to give a binary which won’t link with ffmpeg. Config.log in ffmpeg gives the following errors:
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../libx264.so: undefined reference to `d26′
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../libx264.so: undefined reference to `d22′
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../libx264.so: undefined reference to `d2′
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../libx264.so: undefined reference to `d20′
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../libx264.so: undefined reference to `d24′
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../libx264.so: undefined reference to `d0′
/usr/lib/gcc/arm-linux-gnueabi/4.3.2/../../../libx264.so: undefined reference to `q1′
collect2: ld returned 1 exit status
ERROR: libx264 not found
Here’s some random notes I used to make it work:
The .configure for x264 seems to default to cortex9 w/ Neon FPU… not present in my LGNAS. Run configure with the following options:
Where did I get arm926ej-s ? cat /proc/cpuinfo
According to this post; the LGNAS CPU (Marvell “Kirkwood”) does not have VFP support (would be listed as vfp under “Features” in cpuinfo) therefore do not specify a -mfpu= in the CFLAGS.
there is a Star Trek: The Original Series Arcade setup to collect quarters for the Dell Children’s Hospital. Machines On location:
1979 Bally Star Trek
1991 Data East Star Trek
1993 Sega Star Trek video arcade machine
After some personal health issues; tonight I finally got around to doing final count of the quarters. The Summer of 1982 Charity Arcade made $146 in quarters. That amount was submitted tonight (7/9/2012) to the Dell Children’s Medical Center of Central Texas – Area of Greatest Need via their online donation process.
Thanks go out to the RITZ Alamo Drafthouse Team for making the Star Trek Charity Arcade such an awesome success – this wouldn’t have been possible without their support.
I knew this was going to happen; When I first got the wood shell for my Sega Star Trek Captain’s Chair – Someone had already ripped several of the Leg Leveler T-Nuts from the wooden bottom. I figured – hey; can’t be a real problem so I epoxied in some new T-Nuts and went off to Texas Pinball Fest ’12 . Needless to say; three of the T-nuts didn’t make it back to Austin. Call it carelessness; or whatever, but I had to fix this.
When I first saw the original t-nut design; I thought it was stupid. The tnuts won’t hold… and neither will those two massive staples the put over the Tnut. If the nut can be pulled; so will the staples. Besides; it’s not like the sell those big staple guns at Harbor Freight or any home improvement store.
I whipped out Corel Draw and laid out some simple plates to “improve” the design. My goal is to make the t-nuts resistant to torque forces while keep the plates simple. Here’s my solution to help keep the T-nuts in place.
The first three items were sourced from Lowes – but nearly any home improvement store should carry these items. The Staples were sourced from Harbor Freight for a previous restoration project. The T-nuts from Mcmaster Carr for the original Sega Star Trek restoration.
The design I came up with is as follows:
I cut the poplar sheet to fit to 24″ length so it would fit on my Laser table. Ran the Laser cutter at 50% power, 1.6 speed, 250 pulses per inch (ppi) to cut on the red lines. The Etches were vector engraved at 40%, 10 speed, 500ppi. Was it necessary to laser cut – heck no, but if you have the equipment; why not use it? Took two passes to cut through the 1/4″ poplar at these power levels.
You can download a full package ZIP file from: Leg Leveler Plate Package
which contains the Corel Draw file and measurements in PDF form.
After Laser cutting; I had these nice plates. Since the wood on the bottom of my Chair was fairly beaten up in a couple of cases; I needed to secure the TNuts with more than just a hammer. I mixed the 5 minute Epoxy per directions at 50/50 ratio and coated the inside of prongs with the epoxy; then hammered in place. I coated the nut with more epoxy in an attempt to secure it better to the wood. Here’s an example of what I did to a friends dedicated Upright Star Trek machine which had simular issues:
In this picture; some wood filler was used to help secure some missing wood from where the tnuts were ripped out. Be sure not get any epoxy in the threads of the tnut… one way to do this is to run a old leg lever into the hole while the epoxy is setting.
The epoxy sets in 5minutes; but takes a minimum of 1hr to reach some strength; so I let the epoxied Tnut set for an hour and played some Star Trek Pinball.
The plate will be installed with the arrow facing the outside edge of the machine. For the Captain Chair; the orientation of the arrow doesn’t matter as the tnuts are far enough inside the machine to not matter. For the Dedicated upright machines; the Arrow side is 0.1inch shorter; so it will not overhang the front of your machine.
After the hour; I dampened the base of the machine and the plate with some water per directions on the Gorilla Glue packaging. I used the White version; because it cures in about 30-60minutes. I put a spiral pattern on the wood plate and stapled it in place with the 1/4″ crown staples. The Staples provide the clamping pressure while the glue sets.
For the first 5 or so minutes; watch the foaming action. Clean up any over spill of the foam – particularly in the hole near the tnut. After about 5minutes the foaming should stop and you run that same used/scrape leg lever into the threads to keep the hole accessible for your new leg bolt when completed. I used a large blade of the screw driver to scoop out the foam. I put about about 4 staples in an X pattern outside the 1 inch etch hole; which represents the metal Tnut which you don’t want to try to drive a staple into. 😉
I put about 10-15 staples in the plate after initial orientation check – these staples may seem excessive; but I want to secure the wood plate to the bottom of the machine and provide a good even clamping pressure for the gorilla glue to dry. As the package says “Strength of the bond line improves with better clamping.”
Wait about 1hr for the gorilla glue to strength… At this point you can gently set the machine back on it’s legs. If you can wait at least 24hrs before any excessive moves – this will allow both the epoxy and the gorilla glue to reach full strength.
Oh; and don’t forget your new leg levers:
This plate should be nearly in-destructible; which could prove a problem if the tnut ever needs to be removed. Not sure why that would need to happen – comments / suggestions?
Spent Saturday Evening working the kinks out of my Data East Star Trek 25th pinball machine. When I got it to TPF’12; I started having some issues. These issues needed to be resolved before I take them to the Star Trek: Wrath of Khan showing over the week of June 3rd. While at the Summer of 1982 showing; the machines will collect quarters for a local charity.
Rather than post here; I decided to donate my findings to the PinWiki for other pinheads to use later.
The secondary transformer connector 2F2 was burned; Needed to source a replacement. Created section 3.4.1 Burned Connectors. Complete with burned example pics from my machine.