diff --git a/_posts/2018-01-07-pcb-reflow-oven.md b/_posts/2018-01-07-pcb-reflow-oven.md new file mode 100644 index 0000000..769acb5 --- /dev/null +++ b/_posts/2018-01-07-pcb-reflow-oven.md @@ -0,0 +1,46 @@ +--- +title: PCB Reflow Oven +date: 2018-01-07 +categories: projects +excerpt: Repurposing a toaster oven that's older than I am to help out with reflow soldering. +header: + teaser: /assets/img/2018/reflow-done.jpg + +gallery: + - image_path: /assets/img/2018/reflow-done.jpg + - image_path: /assets/img/2018/reflow-innards.jpg +--- + +Written 8-29-19 + +One of the tools that I learned about while diving into SMD was a reflow oven. It’s basically a programmable oven that’s useful for soldering because it can bring a board through the optimal temperature curve. Moreover, I would also end up using it for properly desoldering components and trying to anneal 3D printed parts. + +After we bought a new toaster oven, I was finally free to use the old one for my own project. Taking it apart, I admired the 20 year old construction that still worked perfectly even to this day. Well, I actually gutted the machine so technically the old electronics are not working anymore. + +{% include figure image_path="/assets/img/2018/reflow-teardown.jpg" %} + +## Hardware + +Surprisingly, I didn’t really take any pictures of my build process, so I’ll just describe some of the main things I considered while building the reflow oven. + +First, I needed to figure out how to mount the thermocouple. Since the oven would probably get up to around 250°C, that ruled out pretty much any plastic I had easy access to. I also didn’t know about Kapton tape at the time. Rummaging through my metal parts bin, I eventually had the idea of using a piece of an aluminum arrow to extend into the oven chamber. To mount it to the sheet metal chassis of the oven, I used a die to thread one end and two nuts on opposing sides to hold it in place. + +{% include figure image_path="/assets/img/2018/reflow-thermocouple.jpg" %} + +Next was the electronics. I took a zero crossing detector design I found online in order to help do PWM control of the AC voltage later. Since the oven was rated at about 1500W, I used two TRIACs, one for each heating element. Of course, I used some optoisolators to connect them to the microcontroller. At the time the Atmega328P-PU was my goto chip so I used it. Lastly, I used an Apple USB charger to power the all of the 5v logic. + +For a user interface, I decided to use a standard 16×2 LCD module along with some metal switches I got from Adafruit. What’s pretty cool is that I machined the cutout for the LCD using my CNC mill which I operated remotely by hand. The thermoset used in the oven was very fun to machine. + +After soldering all the components to a perfboard and fitting everything into the side panel of the oven, I ended up with this. + +{% include gallery %} + +## Software + +With the hardware functional, I started writing the code. The first step was controlling the heating elements to achieve a target temperature. Although I hooked up both heating elements separately, in the code I considered them as one because maintaining an even chamber temperature needed multiple thermocouples. Since I was using a zero crossing detector, I tried implementing AC phase control to control the heaters. It didn’t work particularly well, so I switched to just letting a certain percentage of half waves pass. Heaters have a slow response time so this method is ok. After figuring out how to control the heaters, I added a PID loop to finish it up. Tuning that loop, however, was another challenge altogether, but after a lot of trial and error I got a respectable response time and overshoot. + +Next up was the user interface. This was the most time consuming part of the entire project. I didn’t really know about structs, so I used multiple 2D arrays to store the profiles. Also, I could’ve moved a lot of code to a separate file to make everything cleaner. Still, I ended up with a working product that has a relatively simple user interface. I made adding custom profiles relatively straightforward and made sure to support ramping and waiting to reach a target temp. + +My code can be found [here](https://gist.github.com/dragonlock2/6ffff3bab0b6ffeb1ea236e82348d606). + +The oven ended up working perfectly! You can see its use in some of my later posts. diff --git a/_posts/2018-04-01-how-to-get-into-uc-berkeley.md b/_posts/2018-04-01-how-to-get-into-uc-berkeley.md new file mode 100644 index 0000000..5c4cf8f --- /dev/null +++ b/_posts/2018-04-01-how-to-get-into-uc-berkeley.md @@ -0,0 +1,30 @@ +--- +title: How To Get Into UC Berkeley +date: 2018-04-01 +categories: other +excerpt: A half-joking but totally true recount of how I got into UC Berkeley. +header: + teaser: /assets/img/2018/uc-berks.jpg +--- + +Written 9-1-19 + +a.k.a. How To Get Rejected From MIT, CalTech, and Stanford. + +This is actually going to be a half-joking but totally true retelling of how I got into UC Berkeley. + +1. Go to Troy High School. +2. Only have one extracurricular: Science Olympiad. Literally put all of your free time into this extracurricular. +3. Put off college apps until the last minute, a.k.a. Thanksgiving break, but only because you were working on SciOly. +4. Spend 4 hours on the UC app, literally. +5. Spend 1 hour proofreading, but not changing anything. +6. Submit and wait for acceptance letters. Go back to working on SciOly in the meantime. + 1. Make sure you apply for EECS. +7. Get accepted early with a Regents interview. +8. Fail the interview, from my point of view. +9. Still get Regents. Profit. +10. Watch all your friends get into Ivy Leagues and private schools, but realizing UC Berkeley, #1 Public University, is better than all of them. + +**Real talk:** UC Berkeley was my safety, but it ended up being the best thing that ever happened to me. For real this is an incredible school. I wouldn’t trade it for the world. The people, the culture, just everything, it’s all amazing. In all honesty, I did spend over a week on each of my private school apps but didn’t get in. Sometimes life just has a funny way of placing you where you’re meant to be. Just follow your passion and keep doing what you love to do and everything will work out. + +Click [here](/assets/pdf/UC-App.pdf) for a pdf of my UC essays. diff --git a/_posts/2018-04-06-hidden-qr-code-in-3d-printed-card.md b/_posts/2018-04-06-hidden-qr-code-in-3d-printed-card.md new file mode 100644 index 0000000..549d535 --- /dev/null +++ b/_posts/2018-04-06-hidden-qr-code-in-3d-printed-card.md @@ -0,0 +1,26 @@ +--- +title: Embedded 3D Printed Hidden QR Code +date: 2018-04-06 +categories: projects other +excerpt: Instead of studying for a math test, I spent a week coming up with the nerdiest promposal I could. +header: + teaser: /assets/img/2018/promposal-two.jpg + +gallery: + - image_path: /assets/img/2018/promposal-light.jpg + - image_path: /assets/img/2018/promposal-two.jpg +--- + +Written 8-30-19 + +During the latter half of my senior year of high school with senioritis kicking in hard, I decided to spend a week figuring out a promposal. I could have been stereotypical and made a poster, but that’s not my personality. I also could’ve been studying for a math test coming up, but who needs to study anyway? At first, I wanted to try making a POV display using my broken v1 lightsaber and spinning it by hand, but that proved a little hard to see on camera. Talking to my friend about puzzles, I had the idea of using a QR code. Of course, I couldn’t just print it out on paper. Since I was making a puzzle, it made sense to make finding the QR code a puzzle too. + +First I had to figure out how robust a QR code was. There’s redundancy so a good portion of the code can be damaged but still be readable. Also, the colors can be inverted and the whole code rotated and it’ll still read. Moreover, colors don’t matter much they just have to have a good contrast with each other. The most important factor I had to account for ended up being contrast. + +Initially my idea for embedding a QR code in a credit card form factor was to print two layers, paint the QR side black, and then glue them together. This didn’t work well and wasn’t durable. Then I tried getting everything to work in one print. After a couple test prints and optimizations, I ended up with a QR code of acceptable quality embedded. The top and bottom are solid, but there’s air gaps in the middle that represent the QR code. + +{% include figure image_path="/assets/img/2018/promposal-cad-1.jpg" %} + +Scanning the QR code reliably was another issue I had to deal with. When looking from an angle or even straight on if it’s dark enough, the QR code is not noticeable. However, when I shined light through it, the QR code appears. Because the contrast isn’t quite high enough, it’s hard to scan with a standard QR code scanner. After much trial and error, I found out that if you put the card against a bright light, take a picture, and crank the contrast to the maximum, then the picture is scannable. Sometimes if the light is particularly bright, such as in sunlight, the card is scannable normally. + +{% include gallery %} diff --git a/assets/img/2018/promposal-cad-1.jpg b/assets/img/2018/promposal-cad-1.jpg new file mode 100644 index 0000000..4383c73 Binary files /dev/null and b/assets/img/2018/promposal-cad-1.jpg differ diff --git a/assets/img/2018/promposal-light.jpg b/assets/img/2018/promposal-light.jpg new file mode 100644 index 0000000..731b133 Binary files /dev/null and b/assets/img/2018/promposal-light.jpg differ diff --git a/assets/img/2018/promposal-two.jpg b/assets/img/2018/promposal-two.jpg new file mode 100644 index 0000000..67dce1d Binary files /dev/null and b/assets/img/2018/promposal-two.jpg differ diff --git a/assets/img/2018/reflow-done.jpg b/assets/img/2018/reflow-done.jpg new file mode 100644 index 0000000..0bc4a0a Binary files /dev/null and b/assets/img/2018/reflow-done.jpg differ diff --git a/assets/img/2018/reflow-innards.jpg b/assets/img/2018/reflow-innards.jpg new file mode 100644 index 0000000..37ca2b8 Binary files /dev/null and b/assets/img/2018/reflow-innards.jpg differ diff --git a/assets/img/2018/reflow-teardown.jpg b/assets/img/2018/reflow-teardown.jpg new file mode 100644 index 0000000..5c55aea Binary files /dev/null and b/assets/img/2018/reflow-teardown.jpg differ diff --git a/assets/img/2018/reflow-thermocouple.jpg b/assets/img/2018/reflow-thermocouple.jpg new file mode 100644 index 0000000..51a8001 Binary files /dev/null and b/assets/img/2018/reflow-thermocouple.jpg differ diff --git a/assets/img/2018/uc-berks.jpg b/assets/img/2018/uc-berks.jpg new file mode 100644 index 0000000..6b878fe Binary files /dev/null and b/assets/img/2018/uc-berks.jpg differ diff --git a/assets/pdf/UC-App.pdf b/assets/pdf/UC-App.pdf new file mode 100644 index 0000000..86b8a7d Binary files /dev/null and b/assets/pdf/UC-App.pdf differ