<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Electronics on Colin O'Flynn</title><link>https://colinoflynn.com/category/electronics/</link><description>Recent content in Electronics on Colin O'Flynn</description><generator>Hugo</generator><language>en-ca</language><lastBuildDate>Sun, 11 May 2025 13:09:53 +0000</lastBuildDate><atom:link href="https://colinoflynn.com/category/electronics/index.xml" rel="self" type="application/rss+xml"/><item><title>Announcing my "Small Scale Electronics Production" Book</title><link>https://colinoflynn.com/2025/05/announcing-my-small-scale-electronics-production-book/</link><pubDate>Sun, 11 May 2025 13:09:53 +0000</pubDate><guid>https://colinoflynn.com/2025/05/announcing-my-small-scale-electronics-production-book/</guid><description>&lt;p&gt;During the pandemic I started a project I long wanted to do, which is to write down many of my lessons learned around building a hardware business. While this has now taken much longer than planned, I&amp;rsquo;m approaching a (hopeful) end of the draft process over the next couple of months. In combination with my Amp Hour discussion with Chris Gammel, I thought it was a good time to &amp;ldquo;officially&amp;rdquo; announce this!&lt;/p&gt;</description></item><item><title>My 2003 Low Cost SMD Soldering Guide</title><link>https://colinoflynn.com/2025/01/my-2003-low-cost-smd-soldering-guide/</link><pubDate>Wed, 15 Jan 2025 12:03:46 +0000</pubDate><guid>https://colinoflynn.com/2025/01/my-2003-low-cost-smd-soldering-guide/</guid><description>&lt;p&gt;&lt;!-- wp:paragraph --&gt;&lt;br /&gt;
&lt;p&gt;Back in 2003, I wrote a guide for&lt;a href="https://avrfreaks.net/"&gt; AVRFreaks.net&lt;/a&gt; about low-cost SMD soldering. I had never mirrored this to my website, but recently needed a more permanent link to it for a PCB introduction lecture.&lt;/p&gt;&lt;br /&gt;
&lt;!-- /wp:paragraph --&gt;&lt;/p&gt;
&lt;p&gt;&lt;!-- wp:paragraph --&gt;&lt;br /&gt;
&lt;p&gt;The information may no longer be the most current (22+ years later!), but I wanted to keep an official mirror of it on my website. You can find it inline below:&lt;/p&gt;</description></item><item><title>Intel LGA1700 (12th/13th gen, i9 3900k) Top Resistors/Capacitors</title><link>https://colinoflynn.com/2023/03/intel-lga1700-12th-13th-gen-i9-3900k-top-resistors-capacitors/</link><pubDate>Thu, 16 Mar 2023 01:46:06 +0000</pubDate><guid>https://colinoflynn.com/2023/03/intel-lga1700-12th-13th-gen-i9-3900k-top-resistors-capacitors/</guid><description>&lt;p&gt;If you&amp;rsquo;re a bit careless with your CPU (especially if e.g., delidding it) you can knock these resistors off the topside. From measuring a known-good device (but without removing them) I measured the following values as a reference:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://colinoflynn.com/wp-content/uploads/2023/03/image.png"&gt;&lt;img src="https://colinoflynn.com/wp-content/uploads/2023/03/image.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;i9 13900K image source: techpowerup.com&lt;/p&gt;
&lt;p&gt;These all appear to be 0402 sized resistors.&lt;/p&gt;
&lt;p&gt;If you do damage them, the &lt;em&gt;best&lt;/em&gt; source would be another 12th/13th gen device, as they look to be identical. You could find a used/defective low-performance device and use that to get resistors/capacitors.&lt;/p&gt;</description></item><item><title>Analog Discover Pro Teardown</title><link>https://colinoflynn.com/2021/04/analog-discover-pro-teardown/</link><pubDate>Sat, 17 Apr 2021 16:14:13 +0000</pubDate><guid>https://colinoflynn.com/2021/04/analog-discover-pro-teardown/</guid><description>&lt;p&gt;NOTE: This was going to be a twitter thread but &lt;a href="https://twitter.com/TwitterSupport/status/1383436102577442835"&gt;twitter was down&lt;/a&gt;? So this is a lazy blog post&amp;hellip;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://cdn11.bigcommerce.com/s-7gavg/images/stencil/1280x1280/products/666/5589/ADP3450-Obl-1000__34474.1611688929.png?c=2" alt="Analog Discovery Pro 3000 Series: Portable High Resolution Mixed Signal Oscilloscopes - Digilent"&gt;&lt;/p&gt;
&lt;p&gt;Analog Discovery Pro (from Digilent Website)&lt;/p&gt;
&lt;p&gt;Anyone used to Digilent would expect this to be based on Zynq or similar - the fact the device has USB + ethernet ports makes it a pretty much sure thing! Taking the screws off the bottom gives us this view:&lt;/p&gt;</description></item><item><title>MeatBag PnP - Simple Pick-n-Place</title><link>https://colinoflynn.com/2017/11/meatbag-pnp-simple-pick-n-place/</link><pubDate>Wed, 29 Nov 2017 15:26:28 +0000</pubDate><guid>https://colinoflynn.com/2017/11/meatbag-pnp-simple-pick-n-place/</guid><description>&lt;p&gt;Have you ever hand-built a PCB prototype with lots of parts? If so you'll know the annoyance of hand-building something from a big stack of Digi-Key parts. Having to Ctrl-F the part value in the design, and dealing with hits on both top &amp;amp; bottom side. Instead I'm introducing &lt;a href="https://github.com/colinoflynn/MeatBagPnP"&gt;Meat-Bag Pick-n-Place&lt;/a&gt;, which helps you the human meatbag become a PnP machine! Here's a photo of it running:&lt;/p&gt;
&lt;p&gt;&lt;a href="https://colinoflynn.com/wp-content/uploads/2017/11/meatbag_example_topbot.png"&gt;&lt;img class="alignnone size-large wp-image-780" src="https://colinoflynn.com/wp-content/uploads/2017/11/meatbag_example_topbot-1024x349.png" alt="" width="660" height="225" /&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>A Low-Cost X-Y Scanner using 3D Printer</title><link>https://colinoflynn.com/2016/06/a-low-cost-x-y-scanner-using-3d-printer/</link><pubDate>Thu, 30 Jun 2016 12:25:52 +0000</pubDate><guid>https://colinoflynn.com/2016/06/a-low-cost-x-y-scanner-using-3d-printer/</guid><description>&lt;p&gt;This summer, our summer intern &lt;a href="https://twitter.com/Kynitt"&gt;Greg d'Eon&lt;/a&gt; made a quick project to build a X-Y Scanner from a 3D printer (by 'quick', I mean it took him less than 2 days!). You can &lt;a href="http://github.com/newaetech/xy-scanner"&gt;see the source code up on GitHub&lt;/a&gt;. Anyway, 3D printers are very nice as they have fairly high resolution and fairly low cost. Here's a quick video:&lt;/p&gt;
&lt;div class="embed embed--video"&gt;&lt;iframe src="https://www.youtube-nocookie.com/embed/YSGBKyzUIsw" title="YouTube video" loading="lazy" allowfullscreen frameborder="0"&gt;&lt;/iframe&gt;&lt;/div&gt;
&lt;p&gt;We're using it to measure EM emissions frequencies over a PCB, but you could also use this for side-channel emissions, or fault injection. While the resolution might not be high enough for getting at specific features on a chip surface, it can still be used for general positioning.&lt;/p&gt;</description></item><item><title>Low-Cost SMD Soldering Setup</title><link>https://colinoflynn.com/2015/10/low-cost-smd-soldering-setup/</link><pubDate>Thu, 22 Oct 2015 20:06:04 +0000</pubDate><guid>https://colinoflynn.com/2015/10/low-cost-smd-soldering-setup/</guid><description>&lt;p&gt;The following blog post shows some details of my SMD soldering process. This was based on a larger video I did (linked below) showing the entire soldering process.&lt;br /&gt;
&lt;h2&gt;Video of Soldering Setup&lt;/h2&gt;&lt;br /&gt;
The following shows me soldering a complete board with BGA device.&lt;/p&gt;
&lt;iframe src="https://www.youtube.com/embed/-DMYJmB4naA" width="1280" height="720" frameborder="0" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;
&lt;h2&gt;Equipment Used&lt;/h2&gt;
In the above video, there are several pieces of equipment used. The following shows you some of the important ones.
&lt;h3&gt;Reflow Oven&lt;/h3&gt;
I'm using a T962A reflow oven. I recommend this over the T962, which is a smaller version. The T962A has 3 heat lamps so has a more even heat distribution. Be aware you can't use the full surface area - about the middle half I find is successful, but depends a little on complexity of the PCB.
&lt;p&gt;I specifically purchased mine from&lt;a href="http://www.aliexpress.com/item/T-962A-Infrared-IC-Heater-Reflow-Solder-Oven-Machine-1500-W-300-x-320-mm/1718945274.html"&gt; this seller on AliExpress&lt;/a&gt;, check other sellers as prices change over time. You might turn it on quickly to confirm it works, but before doing much there are some &lt;span style="text-decoration: underline;"&gt;important&lt;/span&gt; fixes:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
	&lt;li&gt;Removing masking tape, replace with Kapton (Polymide) tape. See&lt;a href="http://www.instructables.com/id/T962A-SMD-Reflow-Oven-FixHack/"&gt; instructables post&lt;/a&gt; for details.&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;Fixing missing ground connections. Some versions have poor grounding between the outer (metal!) case and the wall plug. See the&lt;a href="https://github.com/UnifiedEngineering/T-962-improvements/wiki/Hardware-variants"&gt; wiki page for a photo of this fix&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;Updating the firmware and adding a cold-junction sensor. This is the most complex task, and requires soldering a DS18B20 to the mainboard, then using a USB-Serial adapter to reflash the firmware. See the front page of the &lt;a href="https://github.com/UnifiedEngineering/T-962-improvements"&gt;T962-Improvements Github Repo&lt;/a&gt;, which has links to the required soldering. There is also an optional fix to reduce the very noisy small fan.&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;h3&gt;Fume Hood&lt;/h3&gt;&lt;br /&gt;
I built a fume hood out of the following:&lt;br /&gt;
&lt;ul&gt;&lt;br /&gt;
	&lt;li&gt;2x4's for frame.&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;Thick plastic drop-sheet.&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;Powerful vent booster fan with variable speed control.&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;Active charcoal oven range hood filter (mounted in top of fume hood).&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;Active charcoal filter for car cabin (mounted in cardboard box used as exhaust).&lt;/li&gt;&lt;br /&gt;
&lt;/ul&gt;&lt;br /&gt;
You can also improve one out of a range hood from an oven. See video for general fume hood construction.&lt;br /&gt;
&lt;h3&gt;Manual Pick-n-Place&lt;/h3&gt;&lt;br /&gt;
&lt;h3&gt;&lt;a href="http://programmablelogicinpractice.com/wp-content/uploads/2015/10/FIG4.jpg"&gt;&lt;img class="alignnone wp-image-270" src="http://programmablelogicinpractice.com/wp-content/uploads/2015/10/FIG4-300x262.jpg" alt="FIG4" width="378" height="330" /&gt;&lt;/a&gt;&lt;/h3&gt;&lt;br /&gt;
This requires three things:&lt;br /&gt;
&lt;ol&gt;&lt;br /&gt;
	&lt;li&gt;Vacuum pump, which you can make from a Tetra Whisper pump (see &lt;a href="http://www.instructables.com/id/Vacuum-Pump-from-Aquarium-Air-Pump/"&gt;instructables link&lt;/a&gt;). Get some of the nice silicon tubing at the same time (like $3 from Amazon).&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;Syringe with hole drilled into body. You can get syringes (don't need the pointy bit!) from pharmacy, or order from Newark/Digikey. When you cover the hole, you force the vacuum through the tip, picking up the part. Release your finger from the hole to drop the part. See the above video for details.&lt;/li&gt;&lt;br /&gt;
	&lt;li&gt;The tips for pick and place, which are "Luer Lock" needles bent slightly (for small parts) or commercially available tips (for larger parts).&lt;/li&gt;&lt;br /&gt;
&lt;/ol&gt;&lt;br /&gt;
The tips are the only somewhat tricky thing. I had a good selection from a previous SMD picker tool, something like this kit for example (which is Chip Quick Inc. part #&lt;a href="http://www.digikey.ca/product-detail/en/V8910/V8910-ND/1974025"&gt;V8910&lt;/a&gt;). These tips are actually the same "Luer Lock" that fits into syringes, check E-Bay for cheaper kits:&lt;/p&gt;</description></item><item><title>ESC SV 2015 - USSSSSB: Talking USB From Python</title><link>https://colinoflynn.com/2015/06/esc-sv-2015-usssssb-talking-usb-from-python/</link><pubDate>Tue, 09 Jun 2015 01:51:57 +0000</pubDate><guid>https://colinoflynn.com/2015/06/esc-sv-2015-usssssb-talking-usb-from-python/</guid><description>&lt;p&gt;At ESC 2015 SV I gave a talk on using USB From Python,&lt;a href="http://www.embeddedconf.com/silicon_valley/scheduler/session/usssssb-talking-usb-from-python"&gt; see the talk description here&lt;/a&gt;. This blog post is serving as a placeholder to allow me to update links to software used during the live demo.&lt;/p&gt;
&lt;p&gt;For SuperCon 2015, there is a &lt;a href="https://hackaday.io/project/8251-usssssb-talking-usb-from-python-supercon-2015"&gt;Project Page&lt;/a&gt; with these details too. You can also ask questions on the project page.&lt;br /&gt;
&lt;h3&gt;Download Slides&lt;/h3&gt;&lt;br /&gt;
There is two versions of the slides. Use the SuperCon slides, but I left a copy of the ESC ones here in case you wanted the original for some reason.&lt;/p&gt;</description></item><item><title>Experiments with Seek Thermal Camera</title><link>https://colinoflynn.com/2015/05/experiments-with-seek-thermal-camera/</link><pubDate>Sat, 23 May 2015 20:14:47 +0000</pubDate><guid>https://colinoflynn.com/2015/05/experiments-with-seek-thermal-camera/</guid><description>&lt;p&gt;A while back I got a Seek thermal camera, as I wanted to use it for measuring electronics component temperatures. As part of a course I&amp;rsquo;m teaching at Dal, I did a few experiments I wanted to post here. These photos were taken with a macro lense, shown here:
&lt;a href="https://colinoflynn.com/wp-content/uploads/2015/05/seeker.jpg"&gt;&lt;img src="https://colinoflynn.com/wp-content/uploads/2015/05/seeker.jpg" alt="seeker"&gt;&lt;/a&gt;
To get that lens, I purchased a &lt;a href="http://www.ebay.ca/itm/181473583647"&gt;20mm diameter ZnSe Lens with 50.8mm/2&amp;quot; focus&lt;/a&gt; off E-Bay for about $20. I ended up getting both a 100mm and 50mm focal length to try both. Then you need a holder, which I used one I found on &lt;a href="http://www.thingiverse.com/thing:525605"&gt;Thingiverse&lt;/a&gt;. If printing again I&amp;rsquo;d try to enlarge the size of the space for the lens - I had to use a knife and &lt;em&gt;considerably&lt;/em&gt; carve the inside step down. In fact I&amp;rsquo;d remove the middle &amp;lsquo;ridge&amp;rsquo; which holds the lens in, and instead epoxy it.&lt;/p&gt;</description></item><item><title>USB Inrush Testing</title><link>https://colinoflynn.com/2015/03/usb-inrush-testing/</link><pubDate>Mon, 02 Mar 2015 23:51:31 +0000</pubDate><guid>https://colinoflynn.com/2015/03/usb-inrush-testing/</guid><description>&lt;p&gt;The USB spec has limits on the &amp;lsquo;inrush current&amp;rsquo;, which is designed to prevent you from having 2000uF of capacitance that must be suddenly charged when your board is plugged into the USB port.
The limit works out to around &lt;a href="http://www.testusb.com/inrush_issue.htm"&gt;10uF of capacitance&lt;/a&gt; . Your board might have much much more - so you&amp;rsquo;ll have to switch portions of your board on later with FETs as a soft-start.
For the ChipWhisperer-Lite, I naturally switch the FPGA + analog circuitry as to meet the 2.5 mA suspend current. Thus I only have to ensure the 3.3V supply for the SAM3U2C meets the inrush limits, which is a fairly easy task. This blog post describes how I did this testing.
The official &lt;a href="http://www.usb.org/developers/docs/wireless_documents/USB-IFTestProc1_3.pdf"&gt;USB Test Specs&lt;/a&gt; for inrush current testing describe the use of the Tektronix TCP202 which is $2000, and I don&amp;rsquo;t think I&amp;rsquo;d use again a lot. Thus I&amp;rsquo;m describing my cheaper/easier method.
First, I used a &lt;a href="http://store.newae.com/differential-probe-assembled-tested/"&gt;differential probe&lt;/a&gt; (part of the ChipWhisperer project, so you can see schematics) to measure the current across a 0.22 ohm shunt resistor. The value was selected as I happened to have one around&amp;hellip; you might want a smaller value (0.1 ohm say) even, as the voltage drop across this will reduce the voltage to your device. The differential probe has enough gain to give your scope a fairly clean signal. This shows my test board, where the differential probe is plugged into a simple 2-pin header:
&lt;a href="https://colinoflynn.com/wp-content/uploads/2015/03/P1080537.jpg"&gt;&lt;img src="https://colinoflynn.com/wp-content/uploads/2015/03/P1080537.jpg" alt="P1080537"&gt;&lt;/a&gt;
From the bottom, you can see where I cut the USB shield to bring the +5V line through the shunt:
&lt;a href="https://colinoflynn.com/wp-content/uploads/2015/03/P1080538.jpg"&gt;&lt;img src="https://colinoflynn.com/wp-content/uploads/2015/03/P1080538.jpg" alt="P1080538"&gt;&lt;/a&gt;
To calibrate the shunt + gain from the diff-probe, I just used some test loads, where I measure the current flowing through them with a DMM. You can then figure out the equation for converting the scope measurement to a current in amps.
&lt;a href="https://colinoflynn.com/wp-content/uploads/2015/03/P1080539.jpg"&gt;&lt;img src="https://colinoflynn.com/wp-content/uploads/2015/03/P1080539.jpg" alt="P1080539"&gt;&lt;/a&gt;
Finally, we plug in our actual board. Here I&amp;rsquo;ve plugged in the ChipWhisperer-Lite prototype. The following figure shows the measurement after I&amp;rsquo;ve used a math channel in PicoScope to convert the voltage to a current measurement, and I&amp;rsquo;ve annotated where some of these spikes come from:&lt;a href="https://colinoflynn.com/wp-content/uploads/2015/03/usb_power.png"&gt;&lt;img src="https://colinoflynn.com/wp-content/uploads/2015/03/usb_power.png" alt="usb_power"&gt;&lt;/a&gt;
Saving the data, we can run through the &lt;a href="http://www.usb.org/developers/tools/usb20_tools/USBET20_1_20_00_Installer.zip"&gt;USB Electrical Analysis Tool 2.0&lt;/a&gt; to get a test result. The USB-IF tool assumes your scope saves the files with time in seconds and current in amps. The PicoScope .csv files have time in miliseconds, so you need to import the file into Excel, divide the column by 1000, and save the file again. Finally you should get something like this:
&lt;a href="https://colinoflynn.com/wp-content/uploads/2015/03/compliance_results.png"&gt;&lt;img src="https://colinoflynn.com/wp-content/uploads/2015/03/compliance_results.png" alt="compliance_results"&gt;&lt;/a&gt;
Note the inrush charge is &amp;gt; 50mC, but there is an automatic waiver for anything &amp;lt; 150 mC. While the system would be OK due to the waiver, I would prefer to avoid exceeding the 50 mC limit. In this case there&amp;rsquo;s an easy solution - I can delay the USB enumeration slightly from processor power-on, which limits the inrush to only the charging of the capacitors (which is done by ~15mS). This results in about 47 mC. This means I&amp;rsquo;ve got about 100 mC of headroom before I exceed the official limits!
This extra headroom is needed in case of differences due to my use of the shunt for example.
In addition, I should be adjusting the soft-start FET gate resistor to reduce the size of that huge soft-start spike. Ideally the capacitor charging shouldn&amp;rsquo;t draw more than the 500mA I claim when I enumerate, so that&amp;rsquo;s a little out of spec as-is! If I don&amp;rsquo;t want to change hardware I could consider using PWM on the FET gate even&amp;hellip;&lt;/p&gt;</description></item><item><title>Driver Signing Notes</title><link>https://colinoflynn.com/2015/01/driver-signing-notes/</link><pubDate>Fri, 09 Jan 2015 00:02:03 +0000</pubDate><guid>https://colinoflynn.com/2015/01/driver-signing-notes/</guid><description>&lt;p&gt;I recently wanted to sign some drivers to avoid requiring users of my ChipWhisperer device to do the usual bypass-signature deal. The end result is a sweet sweet screen like this when install the drivers:
&lt;a href="https://colinoflynn.com/wp-content/uploads/2015/01/usbsig.png"&gt;&lt;img src="https://colinoflynn.com/wp-content/uploads/2015/01/usbsig.png" alt="usbsig"&gt;&lt;/a&gt;
If you are in this situation, I wanted to add some of my own notes into the mix.
David Grayson has an awesome guide which I mostly followed, available at &lt;a href="http://www.davidegrayson.com/signing" title="http://www.davidegrayson.com/signing"&gt;http://www.davidegrayson.com/signing&lt;/a&gt;.
The steps I followed (again from his guide basically) are:&lt;/p&gt;</description></item><item><title>SMD Solder Paste Stencil Creation with Silhouette Cameo</title><link>https://colinoflynn.com/2014/11/smd-solder-paste-stencil-creation-with-silhouette-cameo/</link><pubDate>Fri, 21 Nov 2014 01:03:00 +0000</pubDate><guid>https://colinoflynn.com/2014/11/smd-solder-paste-stencil-creation-with-silhouette-cameo/</guid><description>&lt;p&gt;I made some additional details in a long YouTube movie:&lt;/p&gt;
&lt;iframe src="//www.youtube.com/embed/KqFHNe6nWpE?" width="425" height="350" frameborder="0"&gt;&lt;/iframe&gt;
&lt;p&gt;This is far from the first blog post on this, but I wanted to write down exactly what I did to get this working on Windows 7, 64-bit with as little fussing as possible.&lt;/p&gt;
&lt;p&gt;1. Buy &lt;a class="wiki external" href="http://www.amazon.com/Silhouette-Cameo-Starter-Kit-Bundle/dp/B007R83VKE/?t=n0fa0-20" target="_blank" rel="external nofollow noopener"&gt;Silhouette Cameo [NOTE: The v1 I used is no longer available. I've heard the V2 with latest firmware does work OK]&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;2. Decide on material. I originally used the &lt;a class="wiki external" href="http://www.amazon.com/Apollo-Write-On-Transparency-Inches-VWO100C-BE/dp/B001GXD2A0/?t=n0fa0-20" target="_blank" rel="external nofollow noopener"&gt;Transparency Film&lt;/a&gt; but it's a little thick, so instead ended up finding that you can buy &lt;a class="wiki external" href="http://www.deserres.ca/en-ca/products/arts-graphiques/acetates-et-polyester/matte-drawing-film/111/GDRAWF/" target="_blank" rel="external nofollow noopener"&gt;3 Mil drafting file individually&lt;/a&gt; from art stores.&lt;/p&gt;</description></item><item><title>Hackaday Project and Latest Circuit Cellar Columns</title><link>https://colinoflynn.com/2014/10/hackaday-project-latest-circuit-cellar-columns/</link><pubDate>Wed, 15 Oct 2014 23:33:00 +0000</pubDate><guid>https://colinoflynn.com/2014/10/hackaday-project-latest-circuit-cellar-columns/</guid><description>&lt;p&gt;I had entered my side channel analysis project called &lt;a href="ChipWhisperer.com"&gt;ChipWhisperer&lt;/a&gt; into the Hackaday Prize. I&amp;rsquo;m honoured to have been &lt;a href="http://hackaday.com/2014/10/13/announcing-the-five-finalists-for-the-hackaday-prize/"&gt;selected as one of five finalists&lt;/a&gt;! This means lots more work getting everything ready, but should be exciting.
Since my last post, I&amp;rsquo;ve also published a few more columns in Circuit Cellar. If you aren&amp;rsquo;t familiar with my Programmable Logic in Practice column, I post some details of it on my &lt;a href="http://programmablelogicinpractice.com"&gt;dedicated website&lt;/a&gt;. I just posted a video for the Dec 2014 column which includes some experiments with metastability on the Xilinx FPGA. Fun times!&lt;/p&gt;</description></item><item><title>EELive! (ESC) Conference Slides + Programs</title><link>https://colinoflynn.com/2014/04/eelive-esc-conference-slides-programs/</link><pubDate>Tue, 01 Apr 2014 18:19:00 +0000</pubDate><guid>https://colinoflynn.com/2014/04/eelive-esc-conference-slides-programs/</guid><description>&lt;p&gt;See my presentation at EELive? If so you can download the slides from:
&lt;a href="http://www.newae.com/files/ThinkFastFPGADesignUsing_OFlynn.pdf"&gt;http://www.newae.com/files/ThinkFastFPGADesignUsing_OFlynn.pdf&lt;/a&gt;
And the ISE + Vivado HLS Project from:
&lt;a href="http://www.newae.com/files/ThinkFast_FPGA_Files.zip"&gt;http://www.newae.com/files/ThinkFast_FPGA_Files.zip&lt;/a&gt;.
You can also check out additional details at the &lt;a href="http://programmablelogicinpractice.com/?p=87"&gt;Programmable Logic in Practice&lt;/a&gt; post, which includes videos + examples of other uses of HLS.&lt;/p&gt;</description></item><item><title>Selecting an Oscilloscope</title><link>https://colinoflynn.com/2014/02/selecting-an-oscilloscope/</link><pubDate>Thu, 06 Feb 2014 20:31:00 +0000</pubDate><guid>https://colinoflynn.com/2014/02/selecting-an-oscilloscope/</guid><description>&lt;p&gt;Check it out - my &lt;a href="http://circuitcellar.com/cc-blog/evaluating-oscilloscopes-part-1/"&gt;blog post on Circuit Cellar on selecting an oscilloscope&lt;/a&gt; is live. It&amp;rsquo;s full of 4 parts, so check back every week on the CC website for the next part&lt;/p&gt;</description></item><item><title>Making a USB-HID Keyboard Encoder Board for PicoScope</title><link>https://colinoflynn.com/2014/01/making-a-usb-hid-keyboard-encoder-board-for-picoscope/</link><pubDate>Sun, 05 Jan 2014 01:46:00 +0000</pubDate><guid>https://colinoflynn.com/2014/01/making-a-usb-hid-keyboard-encoder-board-for-picoscope/</guid><description>&lt;p&gt;Ever wanted to control something from a knobby-looking USB peripheral? In this example I wanted to control the PicoScope software from a bunch of encoders mounted on a USB peripheral:&lt;br /&gt;
&lt;img class="regImage pluginImg93" src="https://colinoflynn.com/oldsite/tiki-download_file.php?fileId=93&amp;amp;display" alt="Image" width="500" height="231" /&gt;&lt;/p&gt;
&lt;p&gt;</description></item><item><title>Making a Simple Scope Probe Holder</title><link>https://colinoflynn.com/2014/01/making-a-simple-scope-probe-holder/</link><pubDate>Sun, 05 Jan 2014 01:38:00 +0000</pubDate><guid>https://colinoflynn.com/2014/01/making-a-simple-scope-probe-holder/</guid><description>&lt;p&gt;Interested in a low-cost method of holding a scope probe securely against your PCB board? For this to work you'll need a scope probe with a spring-loaded tip. I came up with this idea since the PS6000 series scope I was using from PicoScope comes with such probes. The end result looks like this:&lt;br /&gt;
&lt;img class="regImage pluginImg" src="https://colinoflynn.com/oldsite/tiki-download_file.php?fileId=90&amp;amp;display" alt="Image" /&gt;&lt;/p&gt;
&lt;p&gt;</description></item><item><title>Split Ground Plane: Example of failing high-speed signals</title><link>https://colinoflynn.com/2013/04/split-ground-plane-example-of-failing-high-speed-signals/</link><pubDate>Sat, 06 Apr 2013 01:16:00 +0000</pubDate><guid>https://colinoflynn.com/2013/04/split-ground-plane-example-of-failing-high-speed-signals/</guid><description>&lt;p&gt;&lt;img src="https://colinoflynn.com/oldsiteasd/tiki-download_file.php?fileId=76&amp;amp;display&amp;amp;max=600" alt="Image"&gt;
I&amp;rsquo;ve got a SASEBO-W board, which has a FPGA &amp;amp; a FT2232H for high-speed USB comms. I was seeing errors on the high-speed USB device, and couldn&amp;rsquo;t figure out why:
&lt;img src="https://colinoflynn.com/oldsiteasd/tiki-download_file.php?fileId=70&amp;amp;display&amp;amp;x=600&amp;amp;y=156" alt="Image"&gt;&lt;/p&gt;
&lt;h1 id="power-split"&gt;Power Split&lt;/h1&gt;
&lt;p&gt;The SASEBO-W is a multi-purpose board including a Xilinx LX150 Spartan 6 FPGA and a FTDI FT2232H USB interface. One use of the board is for measuring the power consumption of the FPGA and using that power consumption to perform power analysis attacks. I believe for this reason the ground planes are split, to facilitate making those measurements.
This split plane is joined through a common-mode choke. To use the high-speed USB interface it requires passing signals across a split in the plane – something very undesirable. The following figure shows what the ground currents for these signals would be. The signals are running on a 60 MHz clock if using the fastest available FT2232H mode.
&lt;img src="https://colinoflynn.com/oldsiteasd/tiki-download_file.php?fileId=71&amp;amp;display&amp;amp;x=600&amp;amp;y=655" alt="Image"&gt;
A measurement of the potential difference between the two planes (done at CN3) shows the following figure. This is due to the 60 MHz clock being driven from the FT2232H to the FPGA, there was no data being transferred in this image.
&lt;img src="https://colinoflynn.com/oldsiteasd/tiki-download_file.php?fileId=72&amp;amp;display" alt="Image"&gt;
Note that the FPGA I/O interface is 2.5V, meaning that signals being sent from the FPGA to the FT2232H will already have a reduced amplitude compared to the 3.3V I/O voltage. There should be enough headroom in practice such this interface works OK, and the FPGA has 3.3V tolerant I/Os.
The following figure shows a data bus line measured at the FT2232H in blue, the horizontal markers are set at 2.0V and 0.8V respectively, which are the limits for logic High/Low at the FT2232H. Note that due to this ground noise the signal is degraded to the point of crossing this threshold!
&lt;img src="https://colinoflynn.com/oldsiteasd/tiki-download_file.php?fileId=73&amp;amp;display" alt="Image"&gt;
If we mount a jumper on CN3 this shorts the two ground planes together. This isn’t an ideal low-impedance path, but it will make an improvement. In the above figure the yellow line is with this jumper mounted.
The following figure shows the voltage difference between the two planes with such a jumper mounted. Compare to the earlier figure where the peak-to-peak voltage was almost 500mV!
&lt;img src="https://colinoflynn.com/oldsiteasd/tiki-download_file.php?fileId=74&amp;amp;display" alt="Image"&gt;
Monitoring both the ground difference and bus lines show when the line switch there is still some extra noise contributed – the green line below (NB: note scale differs from above figure) shows a still fair amount of bounce during the transition, but in practice the USB communication seems reliable between the FT2232H and the FPGA.
&lt;img src="https://colinoflynn.com/oldsiteasd/tiki-download_file.php?fileId=75&amp;amp;display" alt="Image"&gt;
So, that&amp;rsquo;s why you cannot cross high-speed traces across split planes!&lt;/p&gt;</description></item><item><title>Bed of Nails Test Bed</title><link>https://colinoflynn.com/2013/03/bed-of-nails-test-bed/</link><pubDate>Sat, 02 Mar 2013 12:22:00 +0000</pubDate><guid>https://colinoflynn.com/2013/03/bed-of-nails-test-bed/</guid><description>&lt;p&gt;This is the final product, it can hold a PCB for testing without needing to have soldered any pins to it:
&lt;img src="https://colinoflynn.com/oldsite/tiki-download_file.php?fileId=59&amp;amp;display" alt="Image"&gt;
And without the PCB mounted:
&lt;img src="https://colinoflynn.com/oldsite/tiki-download_file.php?fileId=60&amp;amp;display" alt="Image"&gt;
I got parts from ebay seller &amp;ldquo;pingf123&amp;rdquo;. Parts used were:
&amp;ldquo;4 Edge Latches for Phototype Test Fixture PCB ICT&amp;rdquo;
&amp;ldquo;20 Chisel Spring Loaded Pogo Pin&amp;rdquo;
&amp;ldquo;spring loaded guide pin for prototype fixture PCB&amp;rdquo;
Here are a few of them spread out:
&lt;img src="https://colinoflynn.com/oldsite/tiki-download_file.php?fileId=61&amp;amp;display" alt="Image"&gt;
The bottom PCB was drilled &amp;amp; bolts threaded into it (I didn&amp;rsquo;t have proper taps, but with PCB you are able to thread holes w/o them if you are forceful). The top PCB is drilled to allow the pogo pins to fit through. Getting the height of the pogo pins correct is critical, so this method let me test the height easily. When the height was correct you just screw the bolts through the top PCB to lock it all together.
&lt;img src="https://colinoflynn.com/oldsite/tiki-download_file.php?fileId=62&amp;amp;display" alt="Image"&gt;
Soldering the pins in one row at a time. Once this was done I soldered the male headers on the bottom side, and put a lot of epoxy on it. Be careful not to get epoxy anywhere that is supposed to move!
&lt;img src="https://colinoflynn.com/oldsite/tiki-download_file.php?fileId=63&amp;amp;display" alt="Image"&gt;&lt;/p&gt;</description></item><item><title>JCOP</title><link>https://colinoflynn.com/2013/03/jcop/</link><pubDate>Fri, 01 Mar 2013 11:23:00 +0000</pubDate><guid>https://colinoflynn.com/2013/03/jcop/</guid><description>&lt;p&gt;I recently bought some Smart Cards from [[http://www.smartcardsource.com/contents/en-ca/d9_JCOP-NXP-cards.html and has some comments/issues getting them up and running. They were NXP JCOP Cards, J2A040.&lt;/p&gt;
&lt;h2 id="round-1-gp-shell-and-card-personalization"&gt;Round 1: GP Shell and Card Personalization&lt;/h2&gt;
&lt;p&gt;I was using GPShell for my initial tests, you can download from [[http://sourceforge.net/projects/globalplatform/files/|Here. There is a good [[http://sourceforge.net/p/globalplatform/wiki/Home/|Wiki too.
The first test was attempting to list all the things already on the card. The results were less than satisfactory:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;C:\&amp;gt;GPShell-1.4.4&amp;gt;GPShell.exe listgp211.txt
mode_211
enable_trace
establish_context
card_connect -readerNumber 1
select -AID a000000003000000
Command -&amp;gt; 00A4040008A000000003000000
Wrapped command -&amp;gt; 00A4040008A000000003000000
Response &amp;lt;- 6A82
select_application() returns 0x80216A82 (6A82: The application to be selected could not be found.)
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As it turns out you need to have the cards personalized (or fused) before you can use them. With GP 2.1.1 you can check this with the following script:&lt;/p&gt;</description></item></channel></rss>