loading
Picture of Complete Circuit Board Lab & POV Business Card
Introduction
_______________________________________________________________________

Though there are many Instructables on some aspect of how to make circuit boards, this one is different. It's an instructable on how to make the things you need to make circuit boards, specifically, a flamboyant business card toy. Over the past six months I have set up fairly complete printed circuit board fabrication lab in my apartment, cheaply and safely, and I intend to cover all aspects of the process, from start to finish. Some of it you may have seen before, but here it is all in one place, with references.


All in all, I had to design and build an airtight etch tank out of laser cut acrylic, an SMD vacuum pickup tool, a reflow oven and temperature controller, refine the toner transfer process with a modified laminator, build a custom programming jig, and of course design, program and build from scratch every aspect of the thing I did all this for in the first place: my business card. In the end it was well worth the time to have the ability to make circuit boards appear in my hands in an evening.
 

The Business Card
_______________________________________________________________________


The POV Business Card uses the classic persistence of vision  optical illusion to flash your name and number in midair as you wave the card. Based on the PIC12F508, an 8-pin 6 I/O ultra-low cost microcontroller, it is entirely surface mount and extremely thin- it uses PCB laminate that is as thin as a standard business card. And at roughly $2 apiece in parts, depending on how good you are at sourcing components, they are cheap enough to hand out (to the right people).

But why go to all this trouble simply to make something to give away to someone I just met? Why not just have them printed up in an afternoon for less than 10 bucks at Kinko's? Why, because I want  a card that would not get thrown out. A card that would embody exactly what I do, instead of clumsily trying to sum it up in an clever job title. A card that would get me places.


The Scenario
______________________________________________________________________
 

Picture the following scenario, if you will: you have just met someone who you need to know. In actual fact, they need to know you. Having exchanged introductions, "The Man," complete with dark suit and power tie, casually hands you his cloned, company-issue business card.

"Here's my card," he grins, knowing that you will impressed by his Ownership Of Card, or at least his Power Over Someone Who Owns An Embossing Machine .

Probably he expects to see you to scribble your number on a torn scrap of paper. But when you reach into your pocket and pull out your card certainly he doesn't expect to see... your name glowing in midair, floating before his very eyes!

"It's called persistence of vision," you say, as you hand him your card. "I make these in my basement. From scratch."

 You didn't even need to say another word; anything more would just be gloating. You can see the look in his eyes; he's already sold.


"Look at that subtle off-white coloring. The tasteful thickness of it. Oh my God, it even has a watermark."
-
Patrick Bateman, American Psycho



Disclaimer: I should note here that this Instructable involves a lot of things that could be dangerous if done without caution and informed planning, including fire hazards, risk of electrocution in various horrible ways, handling of nasty chemicals, and very toxic fumes. This one really has it all, folks. So be safe! 
 
1-40 of 112Next »
klee27x4 days ago

It's been 4 years. I wonder if your solvent welded tank is still leakproof? And can I ask why you suggest silicone must not be used in direct contact with CuCl2?

jermncoco made it!4 months ago
Here's mine
temp_937473868.jpg
jermncoco4 months ago
I have a typo in the code, the second command in Iter2 should be movwf 13h
jermncoco4 months ago
One more thing, if you add or subtract values from the Tables for your own version, don't forget to modify the jump values accordingly
jermncoco4 months ago

I rewrote the code from scratch in Assembly. I don't know how to properly share it, so if this is incorrect, I sincerely apologize. It didn't keep the format for the comments

If you keep the schematic in the same order, the hex values for output are as follows:

GP2 [ ] (Top LED) 04h

GP1 [ ] (Second Down) 02h

GP0 [ ] (Middle) 01h

GP4 [ ] (Fourth Down) 10h

GP5 [ ] (Bottom LED) 20h

Simply add them together to get your pattern :-)

; Code for POV Business Card
; Set up for the PIC12F508
; ASM source line config statements
; This SetUp works for both the '508 and 16F84A

__config 3FFAh ;_CP_OFF & _PWRTE_OFF & _WDT_OFF & _RC_OSC

org 0
movlw 08h ; Put 0000 1000 into W
movwf 06 ; Load Tris file. Make GP3 input. Others output

Table1 addwf 02,1 ; Create jump for Table1
retlw 08h ; End of Table in Reverse, Doesn't output anything
retlw 30h ; going Forward
retlw 20h
retlw 37h ; J
retlw 00h ; Space
retlw 37h
retlw 25h
retlw 25h ; E
retlw 00h ; Space
retlw 37h
retlw 05h
retlw 27h ; R
retlw 00h ; Space
retlw 37h
retlw 25h
retlw 25h ; E
retlw 00h ; Space
retlw 37h
retlw 01h
retlw 37h ; M
retlw 00h ; Space
retlw 06h
retlw 01h
retlw 37h ; Y
retlw 00h ; Space
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw 0FFh ; End of Table

Table2 addwf 02,1 ; Create jump for Table
retlw 08h ; End of Table in Reverse, doesn't output anything
retlw __h ; going Forward
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw 24h
retlw 37h
retlw 20h ; 1
retlw 00h ; Space
retlw 37h
retlw 21h
retlw 31h ; 6
retlw 00h ; Space
retlw 25h
retlw 25h
retlw 37h ; 3
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw 37h
retlw 24h
retlw 37h ; 0
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw __h
retlw __h
retlw __h ; Omitted
retlw 00h ; Space
retlw 0FFh ; End of Table

Delay movlw 2Ah
movwf 0Dh
DelA decfsz 0Ch,1 ; Delay of 40,000 cycles
goto DelA ; Allows the entire name or phone number to be
decfsz 0Dh,1 ; displayed over a 2 sec wave. Play around with
goto DelA ; it for different timing
retlw 00h ; Adjusted in main part for different timing

Iter1 incf 10h,1 ; Increment table entry
movf 10h,0 ; Then put jump value into W
call Table1
xorlw 0FFh ; If end of table
btfss 03,2 ; Bit 2 of file 3 will be Set, won't output value
movwf 06h ; Output Table value to LEDs
btfsc 03,2 ; If bit 2 of file 3 set, with automatically return
retlw 00h
call Delay ; Pauses long enough to see it
decfsz 11h,1 ; Iteration, decrement file 11h
goto Iter1
decfsz 12h,1 ; Second part of iteration, decrement file 12h
goto Iter1 ; Not totally necessary but didn't want to mess
retlw 00h ; up file order lol

Iter2 movlw 32h ; Put last space jump value into W
movlw 13h
Sub2 movf 13h,0 ; Load value of file 13 into W for Table jump
call Table1
xorlw 08h ; If end of table
btfss 03,2 ; Bit 2 of file 3 will be Set, won't output value
movwf 06h ; Output Table value to LEDs
btfsc 03,2 ; Bit 2 of file 3 will be Set, will return
retlw 00h
decf 13h,1 ; Decrement down Table
call Delay ; Pauses long enough to see it
decfsz 14h,1 ; Iteration, decrement file 14h
goto Sub2
decfsz 15h,1 ; Second part of iteration, decrement file 15h
goto Sub2 ; Once again not totally necessary
retlw 00h

Iter3 incf 16h,1 ; Increment table entry
movf 16h,0 ; Put jump value into W
call Table2
xorlw 0FFh ; If end of table
btfss 03,2 ; Bit 2 of file 3 will be Set, won't output value
movwf 06h ; Output Table value to LEDs
btfsc 03,2 ; Bit 2 of file 3 will be Set, will return
retlw 00h
call Delay
decfsz 17h,1 ; Iteration, decrement file 17h
goto Iter3
decfsz 18h,1 ; Second part of iteration, decrement file 18h
goto Iter3
retlw 00h

Iter4 movlw 29h ; Put last space jump value into W
movwf 19h
Sub4 movf 19h,0 ; Load value of file 19h for Table jump
call Table2
xorlw 08h ; If end of table
btfss 03,2 ; Bit 2 of file 3 will be Set, won't output value
movwf 06h ; Output Table value to LEDs
btfsc 03,2 ; Bit 2 of file 3 will be Set, will return
retlw 00h
decf 19h,1 ; then decrement table entry
call Delay
decfsz 1Ah,1 ; Iteration, decrement file 1Ah
goto Sub4
decfsz 1Bh,1 ; Second part of iteration, decrement file 1Bh
goto Sub4
retlw 00h

Start bcf 03,2 ; Clear Bit 2 of file 3
btfss 06,4 ; If GP3 = 0
call Iter1 ; then call Iter1 for forward name
btfsc 06,4 ; If GP3 = 1
call Iter2 ; then call Iter2 for backward name
movlw 7Dh ; Load new timing value for delay
movwf 0Ch
call DelA
bcf 03,2 ; Clear Bit 2 of file 3
btfss 06,4 ; If GP3 = 0
call Iter3 ; then call Iter3 for forward number
btfsc 06,4 ; If GP3 = 1
call Iter4 ; then call Iter4 for backward number
movlw 7Dh ; Load new timing value for delay
movwf 0Ch
call DelA
goto Start
End

syedhamzahasan10 months ago

Most detailed instructable on POV. Thanks!

muscleflex1 year ago

still no video?

Fayezslim2 years ago
Plz upload the hex file for downloading it plz
AMB_22 years ago
There are controllers specially designed to transform domestic ovens into reflow ovens, you can find them in n_electronics (www.nelectronics.org), adafruit (www.adafruit.com) or drotek (www.drotek.fr).
sponges (author)  AMB_22 years ago
Saw those! Mine was an order of magnitude cheaper, though.
danm_daniel2 years ago
definitely the most comprehensive instructable ever
Really Cool! Complete end to end home based production! Well impressed. I think everyone have some that they can take away, even if they do not do home production. Well done!
cstewart0002 years ago
Wow man, great instructable!!!
Hey,

First of all, amazing -ible!

Just curious as to where you sourced the bubbler wand; whether a standard pet shop aquarium wand will do or if you need something a bit more robust! Also, would there be anything stopping you from drilling a row of holes in a standard acrylic tube and chemically welding that in directly instead?

again, great instructable!

thanks!

C.
sponges (author)  Young91Francis2 years ago
Hey thanks!

I got that online, but I wouldn't recommend it. The acid embrittled the bubble wand I had pretty rapidly. Acrylic rod would would work great, certainly better. We just need aeration, so lots of fine holes drilled in a tube would be perfect. Good idea actually, I hadn't thought of that.
Hmm, I guess concentrated acid isn't a very popular substrate for aquarium fish ; -)

I wonder if there is a non insidiously tedious way of drilling lots of tiny holes in acrylic round rod. Could it be done on a laser cuter with a small enough kerf somehow (I don't have much experience with them) ?
sponges (author)  Young91Francis2 years ago
A drill press and a vice would do it better and faster.
maeth3 years ago
May I suggest to use Liquid Tin instead of Tinnit.

I have found it much much easier to use, no mixing or heating needed.
Works faster too.
It is more expensive though, but has lasted me a while.

Great work, I am actually making a similar POV to teach others to make PCBs on their own.
sponges (author)  maeth3 years ago
That's a good tip. Tinnit has problems with oxidation, though it may be my neutralization procedure that is the problem, and not the plating composition itself.

Thanks and good luck!
I have been using an electric skillet set to 350-375 and just moving the boards off to a bit of wood as soon as the solder paste all melts. I think as long as your components sink heat at about the same rate that is an easier approach. I did have problems with some boards with large-ish surface mount caps. The LEDs might have melted before the caps were soldered. I solve that problem by using the hot plate in two passes.

Do you think there is a danger with my method of cooling too fast and having some ill effect? It sure is easier.
sponges (author)  dustinandrews4 years ago
The ideal reflow lasts peaks only for a few seconds. Take a look at the reflow curve in step 11. Of course there's a danger; theoretically and practically, the lifetime of the components will be compromised. The question is, by how much, and is it worth your time?

If you are making a thousand of something to tight tolerances, then the failure rate and inconsistency are unacceptable, and it's worth the time. If you are making 10 of a thing, and have the time to QA every one, then the skillet is probably easier. If it works, it works.

My setup is probably overkill for most home SMD projects. I'd even say it was overkill for my projects. :) As it's been said before, overkill is a way of life.
That is just plain cool.
I find a zip top bag with a needle hole in the corner works great for applying solder paste. If you do big runs, a stencil probably saves time. For a few boards at a time I think I spent less total time and effort with the "icing" method. A suitably sized needle on a syringe is also said to work well.
Dkauf02084 years ago
Hey vey nice project... just a question, why you set the Option Register to "0b01000111" ?
I took a look at the 12F508 Datasheet, but didn't get it.

Thanks & Congrats !
sponges (author)  Dkauf02084 years ago
in the Pic12F508/509/16f505, you want page 24, section 4.5. The option register sets up the internal timer and "wake up on pin change" functions. They are useful functions, but not used in this application. In this case, these settings are mostly there just to disable those features.
all right then... thanks for your quick response !!

Cheers,
sponges (author)  Dkauf02084 years ago
p.s. thank you :)
Taoiseach4 years ago
I live in Ireland, and, for the most part, we don't have Toaster Ovens (Actually, when I saw the picture, I thought it was a Microwave, which could have ended badly). Could you recommend an equivalent appliance I could use? Cheers.
Hey, Argos do actually sell toaster ovens (search on their website), although they only go up to 230C (allegedly - the picture actually shows 400F as the max, so may not even be 230C). I am quite interested in picking up a cheap toaster oven for some SMT work, if you have found anything workable in Ireland please let me know!
sponges (author)  Taoiseach4 years ago
That's a weird question! I have no idea what the equivalent is over there. Lots of things would work; it just needs a metal enclosure and some kind of heating element. The risk is always how safe you could make something that heats to up to 300 C. What we call a toaster oven is capable of that just as a matter of course, and so is very safe.

You might be able to take a regular vertical toaster with side heating elements and place it on it's side. I don't know how hot those can get, but it may be close. It would need to be sealed with a door somehow. And you'd need to find out what the regular operating temperature and wattage was so you didn't exceed that and start a fire.

Also, if you don't need your design in massive quantities, you can just go over the board with a hot air soldering gun and get similar results. Even a regular pen type soldering iron works, with practice.

Just don't do anything I wouldn't do!
that sounds like a "oops - i kinda set the kitchen on fire making a business card," incident waiting to happen.

:)
sponges (author)  rthrockmorton4 years ago
I agree! This is kind of dangerous. :D
Thanks, you've been very helpful. I'll see what I can do with a regular toaster, and if not, like you said, just solder manually. Thanks!
Question:

How come you guys bake potatoes? make pizza, toast bread cheese and tomatoes, bake frozen chiken, pre-heat hotdog buns, broil a bunch of half garlic and olive oil, bake tomatoes, hot sandwich, etc?
You mean how do we? The magic of the oven grill. Same principle as the above, only attached to an oven and a hob, which would make the whole thing terribly awkward and expensive to use as a reflow solder oven. Basically, the Toaster Oven above is to the Double Oven, what the Hotplate is to the hob.
Interesting. Here in USA we can buy one oven toaster like that in hundreds of department stores, like WalMart, Target, etc. They ALL are manufactured in China and you can buy then from 10 to 40 US Dollars. If you have electric stove, probably you may have available to sell the heating elements. Here we use a coiled resistance, electrically isolated, that heat to a point (if you want) to get really red and heat the pan over it. The pan really sits over the element. There 3 or 4 sizes of those heating elements, the second size, the most common around, is for 900W, if I remember well. They feed on 220Vac. In the past I build a SMD reflow solder oven using a toaster, but I was thinking to build another from scratch, stainless steel box, thermal insulation another box inside, fans, a sliding tray for the SMD boards, may be even a metalic belt for automation. Using those stove elements is easy, just one on top, another on bottom, the PCB in middle, 20 to 30mm distant from the heaters. The oven I build 3 to 4 years ago, you may find it at http://www.ustr.net/smt/oven.htm and http://www.ustr.net/smt/ . My process is much simpler than the posted here, since I use a microcontroller already programmed with the temperature profiles and the temperature is captures from a real small circuit board inside the oven, so it is not "air temperature", is an electronic circuit board temperature. Cost much less, since all the electronic control is made with less than $10. One day I need to publish that circuit and software.
Skulldog4 years ago
cool cool now make mine to fit in my body so i wont lose it - but then again it the way it looks it would be a crime to set down.
beckettman4 years ago
I am working on my own card and encountered a problem with Hi-Tech C version 9.81. For some reason they do not have a declaration for "TRIS" in the header files. They will probably fix soon but in the meantime you just add this declaration before the main body of the code:

"volatile control unsigned char TRIS @ 0x006;"

Thanks for the instructable. Great Idea!!
sponges (author)  beckettman4 years ago
There's always something... Yes, I forgot to mention that the default device specific header files are sometimes lacking. I also had some problems when they changed their formatting on legacy devices for the PIC12F508/509 in the latest version of MPLAB. Thanks for catching that!
1-40 of 112Next »