__ __ __ ___ / // /__ _____/ /__ ___ _ / _ \___ ___ __ / _ / _ `/ __/ '_/ / _ `/ / // / _ `/ // / /_//_/\_,_/\__/_/\_\ \_,_/ /____/\_,_/\_, / retro edition /___/Now optimized for embedded devices!!
| About | Successes | Retrocomputing guide | Email Hackaday |

We have been featuring some home made capacitors this week, and [Mike] wrote in to share his with us. While rolled capacitors are nice, they can be somewhat difficult to construct and grow to unwieldy sizes as capacitance and voltages increase. His solution is to stack the layers up using plastic plates.
In this forum post he explains that using disposable plastic plates and tinfoil you’re able to quickly make a capacitor, that for him was valued at around 12.2nF, using eleven layers . Applying pressure to the stack capacitance grew to about 14nF, though he is having a bit of trouble holding it with just glue.
Testing was conducted with high voltages charging the capacitor up, then its leads were shorted for a nice spark and a good pop. Definitely fun for the next family cook out, though we don’t know how some left over potato salad goo would effect the end results.

Microchip’s TC74 is an inexpensive digital temperature sensor with a simple I2C interface. It has a resolution of 1 degree Celsius, and a range of -40 to +125 degrees. This is an easy way to add temperature measurement to a project without an analog to digital converter. We’ll show you how to use the TC74 below.
The TC74 comes in five pin through-hole and surface mount packages, see the TC74 datasheet (PDF). We couldn’t find a Cadsoft Eagle footprint for any version of this part, if you know of one please link to it in the comments.

Different versions of the TC74 are calibrated for specific voltages, but all work from 2.7-5volts. The TC74A5 we used is most accurate when operating at 5volts, but we powered it from a 3.3volt supply. The I2C connection needs 2 pull-up resistors to hold the bus high (R1, R2), 2K-10K should work. C1 is a 0.1uF decoupling capacitor.
We used the Bus Pirate universal serial interface in I2C mode to test drive the TC74, but the same principals apply to any microcontroller. We powered the TC74 from the Bus Pirate’s 3.3volt supply, and used the on-board pull-up resistors to hold the I2C bus high.
| Command | Value |
| Select temperature register | 0×00 |
| Select configuration register | 0×01 |
The TC74′s write address is 0x9a, and the read address 0x9b. It has two, one-byte registers. Register address 0 holds the temperature reading, register 1 holds the configuration settings.
Configuration register
Bit 6 of the configuration register is 0 at power-on, and changes to 1 when the first valid temperature reading is available. Bit 7 is writable, and puts the TC74 in a power saving standby mode. Reading the register involves two steps: use a partial write command to select the register, then use the read command to retrieve the value.
I2C>{0x9a 1}
210 I2C START CONDITION
220 I2C WRITE: 0x9A GOT ACK: YES <–write address
220 I2C WRITE: 0×01 GOT ACK: YES <–select config register
240 I2C STOP CONDITION
First, we select the configuration register with a partial write command. This doesn’t actually write a value, it selects the register to read and write. { creates the I2C start condition, followed by the TC74 write address (0x9a) and the select configuration register command (0×01). } issues the I2C stop condition and ends the transaction.
Now we can read the contents of the register.
I2C>{0x9b r}
210 I2C START CONDITION
220 I2C WRITE: 0x9B GOT ACK: YES <–read address
230 I2C READ: 0×40 <– register value (01000000)
240 I2C STOP CONDITION
I2C>
The read address (0x9b) returns the one byte register value (r). The configuration register value, 0×40 or 01000000, shows that the device is out of standby (bit 7=0), and a valid temperature reading is available (bit 6=1).
The TC74 has a low-power standby mode. Enable it by writing 1 to bit 7 of the configuration register.
I2C>{0x9a 1 0b10000000}
210 I2C START CONDITION
220 I2C WRITE: 0x9A GOT ACK: YES <–write address
220 I2C WRITE: 0×01 GOT ACK: YES <–select config register
220 I2C WRITE: 0×80 GOT ACK: YES <–value to write (01000000)
240 I2C STOP CONDITION
I2C>
The register is written with single three-byte command. First we send the write address (0x9a), followed by the register to select (0×01), and finally the value to write (0×80). Only bit 7 of the configuration register is writable, the values of bits 6-0 are ignored.
Read the register again to verify that the command worked.
I2C>{0x9a 1}{0x9b r}
210 I2C START CONDITION <–first command sets register
220 I2C WRITE: 0x9A GOT ACK: YES <–write address
220 I2C WRITE: 0×01 GOT ACK: YES <–config register (1)
240 I2C STOP CONDITION <–end first command
210 I2C START CONDITION <–begin second command
220 I2C WRITE: 0x9B GOT ACK: YES <–read address
230 I2C READ: 0×80 <– register value (10000000)
240 I2C STOP CONDITION <–end second command
I2C>
The register value, 10000000, now shows that the device is in standby (bit 7=1). Notice that bit 6 is now 0, no temperature data is available.
Clear bit 7 to exit standby, then wait for bit 6 to return to 1 before reading the temperature register.
I2C>{0x9a 1 0b00000000}
210 I2C START CONDITION
220 I2C WRITE: 0x9A GOT ACK: YES <–write address
220 I2C WRITE: 0×01 GOT ACK: YES<–select config register
220 I2C WRITE: 0×00 GOT ACK: YES<–value to write (00000000)
240 I2C STOP CONDITION
I2C>
Temperature data is ready when the configuration register value returns to 0×40 (01000000).
Temperature
The temperature register is read in two steps. First, a partial write command selects the temperature register (0), then a read sequence returns the contents.
I2C>{0x9a 0}{0x9b r}
210 I2C START CONDITION
220 I2C WRITE: 0x9A GOT ACK: YES <–write address
220 I2C WRITE: 0×00 GOT ACK: YES <–select temperature register
240 I2C STOP CONDITION
210 I2C START CONDITION
220 I2C WRITE: 0x9B GOT ACK: YES <–read address
230 I2C READ: 0×18 <–grab one byte
240 I2C STOP CONDITION
I2C>
The temperature is an integer value of degrees Celsius, negative numbers are represented as a twos complement. Positive values from 0 to 127 degrees Celsius are simply represented by that value. Negative temperatures have bit 7 set, and range from -1 to -65 (255-128), see table 4.4 on page 8 of the datasheet. The hexadecimal value 0×18 is equal to 24 in decimal, so the temperature reading is 24C (75F).
Like this post? Check out the parts posts you may have missed.

MIT researchers have devised something they call the Solar Concentrator which is to be placed on top of existing solar cells. Its purpose is to separate the visible and infrared spectra of light by absorbing the visible spectrum and routing the energy to specialized cells. They claim this could lead to doubling the panel’s efficiency and greatly reducing costs.
We have seen many promising advances to solar panel efficiency in the past few years, but what is special about this one is the amazingly simple and cheap technique. Essentially, all the team has done is coat a piece of glass with simple organic dyes. After the organic molecules absorb the visible light, they remit the energy to the sides of the glass where it can be routed to their specific cells. The process is more efficient because the dye absorbs the light rather than something expensive like silicon. That means less silicon, and thus a better price range. Also, the fact that this material is just a piece of glass also opens up the possibility of solar windows.

While [Oryx] is down with social media like Facebook and Twitter, there are times when he wants to share things with people he is hanging out with in the real world. Sure, he could always email his friends links to the latest video of a cat doing something totally hilarious, but he wanted something a bit more tangible.
He had a small thermal printer from SparkFun kicking around, and thought it would be the ideal medium for sharing things with others. He sat down and put together a bit of code that allows him to interface the printer with his computer, generating QR codes from his web browser with the simple click of a button. Now, when he wants to pass something along to a friend, he can quickly print out a label bearing both a QR code and URL for easy access later on.
All in all it’s an interesting idea, though we would be curious to see what would happen if we handed our non-techie friends a printed QR code.

[Johnny Chung Lee] put together a system that is perfect at playing Guitar Hero. He’s using the PlayStation 2 version and, as you can see above he’s combined a controller connector and a Teensy microcontroller board to communicate with the console using its native SPI protocol. This custom guitar controller receives its signals via USB from a computer that is monitoring the video from the console and calculating the controller signals necessary for perfect gameplay. [Johnny] wrote an OpenCV program that monitors the video, removes the perspective from the virtual fretboard, and analyzes color and speed of the notes coming down the screen.
As you can see after the break it works like a charm. It’s fun from a programming standpoint, but if you want a hack you can actually play maybe you should build your own Banjo Hero.