-
1Modify the Card Design
Make sure you replace the text and graphics on the silk screen on both the front and back of the card with your own!
-
2Get your PCB Made:
If you are using my files, then the board is panelized with 4 cards each. Make sure you order enough cards to hand out. Unstuffed cards are really cool to hand out too... I may have a batch that I got wrong... Just saying.
If you are using EasyEDA, export the gerber files and choose a PCB fab of your choice.
The settings I have my cards manufactured with are:
via PCBWay- Dimensions: 180 x 114 mm
- Layers: 2 layers
- Thickness: 1.0mm
- Layers: 2
- Material: FR-4
- FR4-TG: TG 150-160
- Thickness: 1.0
- Solder Mask: Matte Black (Your choice though, matte black is a fingerprint magnet.)
- Silk Screen: White - That's my choice, be artistic! I'm not artistic. Don't be like me.
- Surface Finish: HASL with genuine lead!
- Request the product number on the tooling strips/rails of each panelized set.
- Order a stencil for the top too.
- Existing fiducials I get lasered through.
via jlcpcb- Material: FR4
- Layers: 2
- Panel by Customer
- Delivery Format: Panel by Customer
- PCB Color: (I use black, but it's your choice. )
- PCB Thickness: 1
- Surface Finish: HASL (with lead!)
- Stencil: Order one for the top only.
- Fiducials: Etched Through (This can change depending on your equipment)
- Engrave Text: Yes (That way I can keep track of what is what. Optional depending on your equipment)
-
3Order components.
See enclosed BOM for the the best places to order from. I updated the most recent with current parts in stock from DigiKey.
-
4Solder components to the top (front).
This can be tricky. The components are small. When I order cards, I have a SMD solder stencil made for the top of the card only. The card has been designed for a pick and place machine, but I use tweezers, a magnifying glass + lots of patience. I do have a small reflow oven that makes the final bit somewhat simpler. I often do some hand touch up after reflowing too.
First, I place the panelized board and SMD stencil in a jig and add solder paste. Manufacturers have machines for this. I don't. I use a plastic squeegee (an old credit card will do) and a home made jig. Get the alignment dead on before applying the solder paste. There are videos on YouTube that do a good job showing this step.
Once I have the solder paste on my board, I use a tweezers, a magnifying table lamp, and a 3d printed bin to place the parts on the board. Take your time. Remember, this is the top of the board only that you are working on now.
I use an incredibly cheap but modified reflow oven to melt the solder paste, then I inspect the cards. You can also do this with a hot air rework station, but be careful of the joystick. It does not take heat to well.
I commonly have to add (way too much) flux to some components and touch up things with an iron. I swear I'll get this right one day, but for now the package I am using for the ATTiny85 is a pain. It looks cool, so for me its worth it. I mentioned this earlier, but if you have to touch up the joystick, be careful. It's not forgiving if you get it too hot or use the wrong flux.
-
5Compile and Upload to your card
Do this before you attach the OLED.
Install and set up Arduino IDE.
Install ATTinyCore for board support @ https://github.com/SpenceKonde/ATTinyCore
Add the ssd1306xled library to your Arduino IDE.
Use the included TinyDriver.h file. Overwrite the one in the games zip file.
Compile the program. I use Tiny Missile as a starting point. It's the easiest to compile. Depending on your version or Arduino IDE and library files, mileage may vary.
Note: The TinyDriver.h I provide should also work for the rest of the family of programs from tinyjoypad.com
Use an Ardiuno as an ISP connected to the header on the card to upload the program. Use the example sketch in Arduino IDE to set it up. I use a nano wired to a 6 pin header. It's pretty simple to set up. I do this before I attach the screen to make sure the cards can at least function enough to warrant me attaching the screen, battery, and speaker.
Before you program the card, set up Arduino IDE:
Install ATTinyCore and SSD1306Xled.
Use the following settings to program your board:
Board: "ATTiny25/45/85 (no bootloader)"
Clock Source (only set on bootload): "16 MHz (PLL)"
mills()/micros(): disabled (saves flash)Errata:
You should actually burn a bootloader first to set the clock speed of the ATTiny85. It'll get overwritten when you program it with the game. If you forget and the cards runs *really* slow when it's finished, go back and burn a bootloader. Then send the game to the card again. -
6Solder Components to the Back, Test & Finish
The back is simple enough to hand solder.
Add a lot of flux, and pre-tin the pads on the back of the card.Use a little solder for the speaker and the screen header. Use lots of solder for the battery holder. Clean the board, then add fresh flux. The more the merrier.
Again, add way too much paste flux to the screen header and align the pins on the screen to the card. You can use the holes on both to get close, but do this carefully. Place the screen, add still more flux on top, check alignment again and drag solder the pads on the screen with your iron. I don't add additional solder when I do this.
Attach the speaker and battery holder too.
Once all parts are installed, test it. Fix any issues, clean it up and use a good double sided tape to attach the screen to the front of the card. I use a small piece of thin 3M VHB. I bought a few sheets on Amazon and cut small pieces to fit from them.The button for the top of the joystick is included, 3d print some and use them to save you finger. Depending on your printer you may need a *tiny* amount of ca glue to hold it to the joystick. Too much and the joystick gets glued in place. I add glue with a pin.
I test it with a bench battery, then put it in an anti-static bag with a new one. I install the battery when I hand out the card.
Clean it again, add a fresh cr2032 battery, put a little kapton tape over the exposed solder on the screen connector and you are done!Most common bugs that show in testing:
- The pins on the ATTiny85 are not connected. - Causes various issues, put a *lot* of flux around the IC and run an iron around it.
- The Joystick doesn't work / only works in a few directions. - Check that the pins on the joystick are soldered correctly. Same repair as the IC.
- The screen is not aligned to the pins. - This will cause issues from a blank screen to the card simply not responding. Rework the screen.
Note: With all batteries, you get what you pay for. In this case you don't need to pay much. Amazon has some decent ones in bulk that last a while with these cards.
-
7
-
8Profit!
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.