Category Archives: REV 0

First board for Tommy stuffed!

Just finished cleaning and soldering the first board for Tommy. I managed to get the connectors that did not fit on by sanding a bit of the plastic off. The footprints where off by 0.5mm.

The only thing I am waiting for now is my PC power supply (I knew I shouldn’t have tossed those when I moved…) to test the hardware. When that is done the board is heading over to one of my friends so he can program the ASM drivers that will run the system.

After that I will order Revision 1 which has currently all the corrections to the footprints and spacing issues. Once that version is verified I will release all the design docs to open source the project. I could do so now but I would hate if someone ordered the board and it didn’t work.

Tommy Update. More soldering action!

Been hard at work soldering up the first revision of the pcb. Found some spacing issues between connectors and parts but so far all the hardware works. The PC power supply port was mirrored….dunno how that happened but it works…just on the wrong side of the board.

The 74HC595s need to be soldered on and I am still waiting on the WS2803 chips for the lighting portion.

Tommy Update

The parts for REV 0 of Tommy arrived from Mouser today. Just finished soldering the Propeller portion and it worked first try. I also updated the page for Tommy.

Tommy Pinball System Specifications

CPU:        Parallax Propeller P8X32A-Q44 clocked at 96MHz.
 
I/O:        64 Optocoupled switch inputs.
            32 Mosfets for solenoid control.
            8 Servo Connectors. 
            72 8-bit PWM LEDs. Using WS2803 chips.
            Up to 64 8-bit PWM RGB LEDs for General Illumination. Using WS2801 chips.
            4 12-bit Analog to Digital Channels.
            Standard LED DMD connector. 

Power:      Molex connector for PC PSU.
            Separate connector for Solenoid and Servo Power.

Storage:    Micro SD card slot.
            2 Mbit of SPI SRAM.
            1 Mbit of I2C EEPROM.

Additional: PCB Size is 7"x5" - 4 Layer 
            3 7-Segment numerical LED digits for debugging. 
            USB Serial built in.
            2-channel audio.
            Selectable voltage for LEDs and Servos. 
            All I/O data lines brought out for expandability. 
            Hardware watchdog that will disable solenoid power on event of CPU failure. 

Pinout for Parallax Propeller



P00: SD Card DO
P01: SD Card SCLK
P02: SD Card DI
P03: SD Card CS
P04: 74HC595 Serial Data Out
P05: 74HC165 Serial Data In
P06: Shared Data CLK
P07: Shared Data LAT
P08: DMD Data 5
P09: DMD Data 4
P10: DMD Data 3
P11: DMD Data 2
P12: DMD Data 1
P13: DMD Data 0
P14: SRAM 0 CLK
P15: SRAM 1 CLK
P16: SRAM 0 SIO0
P17: SRAM 0 SIO1
P18: SRAM 0 SIO2
P19: SRAM 0 SIO3
P20: SRAM 1 SIO0
P21: SRAM 1 SIO1
P22: SRAM 1 SIO2
P23: SRAM 1 SIO3
P24: LED Serial Data Out
P25: LED Clock
P26: Audio Left Channel
P27: Audio Right Channel
P28: i2c SCL
P29: i2c SDA
P30: RX
P31: TX



Files



GitHub Repository Link



Tommy Rev0 is complete!

Tommy__Layout_4

Just finished Rev0 of the Tommy Pinball System. I will be uploading the Eagle files after I can confirm the board works. It is a 4-Layer board so I will be using Seeedstudios new 4-layer prototyping service to order some boards. After I receive them I will allow some people to purchase at cost a fully assembled board for testing and code writing.

Next I have to design and route the “test” board for the Tommy Pinball System. These test boards plug into the sockets on the Tommy board and allow you to test code without having it wired into a pinball machine. So instead of solenoids you will have LEDs and the input boards will have switches on them.

Just Another Tommy Schematic Update #4

To add more functionality to the Propeller an ATMega168 was added to the design. The Propeller communicates via I2C (on the same bus as the EEPROMS) to the ATMega168. The ATMega168’s function is to provide dedicated servo control and analog input for the propeller. Since servos have to constantly PWM controlled the Propeller has to dedicated an entire cog to just maintain servos. Using the ATMega168 to off load this tasks frees up lot of resources for the Propeller which will allow for better animations and smoother kernel cycles.