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.
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.
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.
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
GitHub Repository Link
Received the 10 boards from Seeed Studio. Checked to make sure there where no shorts on the power and ground planes and everything looks good. Next week I will start assembling the boards.
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.
Everything on the board is now routed. Need to add an AD7991YRJZ-0500RL7 (4-channel 12bit ADC), power connector for the solenoids, and servo external power connector. Then I need to go back and fix all the silkscreen problems and add labels to the connectors.
Another day another update on REV 0 of Tommy. Nearing the end. Just have to route the connections for the DMD port and the I/O connection for add on boards.
Getting really close to finishing Rev 0 of the Tommy board. Just have a few random things to route. going to try to get it done by this weekend.
Been working on this for awhile now. Layout of the board is almost done. Currently 5″x7″ on a 4 layer PCB.
Lots of I/O and other goodies. More information soon.
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.