tag:blogger.com,1999:blog-68025351592738143802024-03-13T03:58:41.964-07:00Thoughts of a nerdapexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-6802535159273814380.post-85190923696738630422012-01-24T10:13:00.000-08:002012-01-24T10:13:10.038-08:00Get HTML in C#In many situations, I needed to fetch a simple HTML (or other type) document over the HTTP protocol in C#. So here is my final solution to the problem, that mostly will work!<br />
Sometimes it'll give you a hard time, because some websites don't like the Header, but it's great to fetch "real" HTML from a simple server. <br />
<br />
<br />
Usings:<br />
using System.Net;<br />
using System.IO;<br />
<br />
Code:<br />
String getHtml(String URL)<br />
{<br />
string result = "";<br />
try<br />
{<br />
// Get HTML data<br />
WebClient client = new WebClient();<br />
Stream data = client.OpenRead(URL);<br />
StreamReader reader = new StreamReader(data);<br />
string str = "";<br />
str = reader.ReadLine();<br />
<br />
while (str != null)<br />
{<br />
result += str;<br />
str = reader.ReadLine();<br />
}<br />
data.Close();<br />
}<br />
catch (WebException exp)<br />
{<br />
return exp.Message;<br />
}<br />
return result;<br />
}apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-64461776163272436562012-01-14T13:33:00.000-08:002012-01-14T13:33:59.600-08:00System engineering the life, the universe and everything!ATTENTION: This post was written in a phase of general anger and disagreement with a normal person. If you consider yourself easy to be offended, maybe you shouldn't read the text below...<br />
<br />
Hi!<br />
As you might have experienced, it is quite easy to tell apart "nerds" from "normal people" by just comparing their sight on life, the universe and everything.<br />
A simple explanation to the rather extremous views of some would be that they think too much about software and to less about real life, but in reality, nerds only use their knowledge on software and logic structures to understand their surroundings.<br />
It might no be true for everyone, but the further you go into logic structures, the more likely you will recognize them in the real life. Many thing just demand you to think about them. Take for example the placement of a banana in a fridge. A normal person would just stuff it somewhere, where enough space is free, but I would place it in the highest point available, because too low temperatures would destroy the flavor of the fruit. What might be seen as an exaggerated and overcomplicated use of thermal physics (cold air goes downwards), is for people like me just a milisecond of thought. Also other situations in everyday life like conversation are handled like this. Why do I instantly have an opinion on mostly everything I get to know? Well, because I can't help but seeing it as a logic process.<br />
Why do I hate DMTF tones? Because they are not in harmony.<br />
Many people would think about this and come to the conclusion, that I see everything as a scientific problem, but that is not true.<br />
I live my life as I do without feeling like solving equations and stuff.<br />
I am able to do these thing without noticing and because I don't have to think about everything I do (it is done in the background and it does not take hours) I can live more satisfied than someone thinking about simple questions all the time.<br />
This can sometimes lead to problems as some people aren't able to talk about other things than their limited problems.<br />
I don't like complaining about what is existing. I like DOING CHANGE things.<br />
Same thing applies to our politicians. Oh god, we have a decrease in tax income. Oh my god, our roads are getting broken. While a normal nerd would just come up with a soulition these people just keep on complaining.<br />
Here in Germany, you can see nerds getting into politics and I'm sure you can see it in other places too, but politics is not enough. We need to convince other people to stop coplaining and start DOING.<br />
If you come to the conclusion, that there is a problem with your life, then get solving it and don't waste time complaining.<br />
That is the reason, why we act differently!apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com2tag:blogger.com,1999:blog-6802535159273814380.post-38878129504310686332012-01-07T19:04:00.001-08:002012-01-07T19:04:16.346-08:00Laser pointers and video games<div><p>Hi again,<br>
in the last week i had a couple of interesting discussions about laser pointers. Since most of these discussions were with video game fans, this is what this post will be about. <br>
In many first person shooters, you are able to mount a laser pointer on your weapon. They then create a red beam of light which helps you aim.<br>
Now one game that allows this is the FPS Crysis. A youtube walkthrougher named Majorslackvideos (if you like video games, be sure to check out his channel) mentioned, that in real life, enemies would be able to see your laser pointer. That is true for real life red laser pointers, but these would be incredibly hard to see, since they do not create a beam in the air at such low power. Anyway, you could use them with a scope to get a red dot like sight.<br>
Then he mentioned infrared and this is in fact a way to get a game-like laser pointer. Infrared light is invisible to the human eye (or can you see your tv remote), but extremely bright to night vision devices since they rely on the infrared radiation of the environment as image source.<br>
In Crysis, you play a supersoldier with a highly developed nanosuit and one of the implemented features is in fact a night vision device. <br>
With a infrared laser, you would create a very bright point on the image. Now use modern image<br>
processing techniques and overlay the brightest point on the image with the live-action feed. Voila, you've got a laser pointer thats only visible to you and night vision viewers. If you mount a second bright IR light source on your weapon and now draw a line between the two brightest points then you get exactly the look and feel from the game.<br>
So why did we talk about this?<br>
Well, using the laser pointer gives perfect aim to every weapon in the game and this is not fair.<br>
So for future use, we agreed on only using the laser pointer in Nightvision mode, which decreases the level of detail you are able to see. A highly scientific experiment later, we were quite happy with this solution. Now we only need to write a mod that auto-switches to night-vision mode, if you use the laser pointer.<br>
I hoped you liked this post.<br>
Apexys</p>
</div>apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-90085302144735619452011-09-01T11:08:00.000-07:002011-09-01T11:09:14.434-07:00ASCS PART 1: A simple computing systemHi!<br />
<br />
Computers are one of the most important parts of our every day life.<br />
Not only that we actively use them to do things like communicate, entertain,<br />
educate or blog, as I am currently doing, they also control the transport of goods,<br />
they help emergency teams to rescue people in danger and do a lot more.<br />
<br />
But what would happen, if, someday in the future, our economy will break?<br />
No more cheap parts from China, no more cheap microprocessors, no more cheap computers.<br />
We would definitely have a really big problem.<br />
<br />
But not only the possible breakdown of the economic system is a reason for me to do this project.<br />
I also want to learn, how a processor REALLY works.<br />
Yes, it uses logic gates, it uses a synchronous design and so on.<br />
But how would I build a computer, if I were to do so my self?<br />
<br />
This is, what this series of blogs will be about.<br />
It is definitely planned as a long-time project,<br />
so I will interrupt the series for updates on other projects.<br />
<br />
So, what will this first blog be about?<br />
Well, we need to define, what the computer will be able to do.<br />
I will restrict this on only the instructions and the main build.<br />
<br />
So, what will our system look like?<br />
Mostly like this:<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-inQ-Ktu8L-w/Tl_JUagA-sI/AAAAAAAAAG8/203SMx2x-44/s1600/CPU+Design.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/-inQ-Ktu8L-w/Tl_JUagA-sI/AAAAAAAAAG8/203SMx2x-44/s320/CPU+Design.png" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Simple and easy.<br />
<br />
So, now we just need the mentioned 16 instructions mentioned in the ALU.<br />
Guess what the next blog will be about.<br />
<br />
<br />
<br />
apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-17652017445047966512011-08-11T10:18:00.000-07:002011-08-11T10:18:18.216-07:00A simple 3x5 binary font generatorHi!<br />
<br />
In my LED-matrix-project, I needed some kind of possibility to display text.<br />
Since the flash memory of an AVR, especially from the ATTiny series, is somewhat limited,<br />
I had to find a good way to store the characters without using up to much of the space.<br />
After a small discussion on <a href="http://www.mikrocontroller.net/topic/228293#2300183">www.mikrocontroller.net</a>, I had everything I needed to make it.<br />
Well, everything but the font.<br />
As recommended, I'm using a 16-bit mono-color font, which means, I'm storing all the information needed in just two bytes. This makes it a bit hard to understand by just looking at the binary, so I wrote a small program<br />
to generate the chars for me.<br />
<br />
Using this and a routine from the forum-user "Peter Dannegger", I can now display the characters on the matrix. Here is the function, which is meant to be used together with the code I posted earlier:<br />
<br />
<span style="background-color: #444444;"><span style="background-color: #0b5394;"><span style="background-color: #444444;"><span style="color: cyan;">void</span></span></span></span><span style="background-color: #444444;"> writeSign(<span style="color: cyan;">uint8_t</span> px, <span style="color: cyan;">uint8_t</span> py, <span style="color: cyan;">uint16_t</span> pattern, <span style="color: cyan;">uint8_t</span> color){</span><br />
<span style="background-color: #444444;"> <span style="color: cyan;"> for</span> (<span style="color: cyan;">int</span> x = 0; x < 3; x++) {<br />
<span style="color: cyan;">for</span> (<span style="color: cyan;">int</span> y = 0; y < 5; y++) {<br />
<span style="color: cyan;">if</span> (pattern & 1) <span style="color: lime;">// LSB first</span><br />
ht1632_plot(px +x, py +y, color);<br />
<span style="color: cyan;">else</span><br />
ht1632_plot(px +x, py +y, BLACK); <br />
pattern >>= 1; <span style="color: lime;">// next bit</span><br />
}<br />
}<br />
}</span><br />
<br />
<br />
You can download the program to generate the 16-bit fonts here:<br />
<a href="http://sourceforge.net/projects/binaryfontmaker/">http://sourceforge.net/projects/binaryfontmaker/</a><br />
<br />
Apexysapexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-34993112546703371232011-08-10T08:10:00.000-07:002011-08-10T08:10:03.706-07:00DE-DP14211 LED-matrixHi!<br />
I've been looking quite a while for cheap LED matrices now and I finally found some.<br />
SureElectronics has some really good ones, in all variants you could want.<br />
Finally, I bought two <a href="http://www.sureelectronics.net/goods.php?id=1122">DE-DP14211</a> matrices.<br />
Featuring a 32x16 tricolor LED matrix, 4-bit PWM dimming and a SPI-like interface, they only cost about 25€ per item.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://www.sureelectronics.net/images/201005/1273500029355930334.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://www.sureelectronics.net/images/201005/1273500029355930334.jpg" width="320" /></a></div><br />
<br />
<br />
<br />
Well, I bought them without reading the datasheet, because what was named SPI-like was different enough from normal SPI, that you couldn't use the AVRs hardware SPI to control these devices.<br />
<br />
After googling the misery, I found an <a href="http://www.arduino.cc/playground/Main/HT1632C">Arduino library</a> that could control the matrix.<br />
Now, since I'm not using the Arduino bootloader, I had to change a few things.<br />
<br />
First of all, you need to pick the functions, you need.<br />
In my case, I only wanted the parts to be able to set or delete a pixel.<br />
So what did I need?<br />
<br />
First of all, go through the compiler definitions.<br />
We won't use the <span style="font-family: "Courier New", "Courier", monospace;">DEBUGPRINT</span> function, so don't copy it.<br />
Here is what you need:<br />
<br />
<br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><span style="color: lime;">/*</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><span style="color: lime;">* commands written to the chip consist of a 3 bit "ID", followed by</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><span style="color: lime;">* either 9 bits of "Command code" or 7 bits of address + 4 bits of data.</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><span style="color: lime;">*/</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_ID_CMD 4 <span style="color: lime;">/* ID = 100 - Commands */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_ID_RD 6 <span style="color: lime;">/* ID = 110 - Read RAM */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_ID_WR 5 <span style="color: lime;">/* ID = 101 - Write RAM */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_SYSDIS 0x00 <span style="color: lime;">/* CMD= 0000-0000-x Turn off oscil */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_SYSON 0x01 <span style="color: lime;">/* CMD= 0000-0001-x Enable system oscil */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_LEDOFF 0x02 <span style="color: lime;">/* CMD= 0000-0010-x LED duty cycle gen off */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_LEDON 0x03 <span style="color: lime;">/* CMD= 0000-0011-x LEDs ON */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_BLOFF 0x08 <span style="color: lime;">/* CMD= 0000-1000-x Blink ON */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_BLON 0x09 <span style="color: lime;">/* CMD= 0000-1001-x Blink Off */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_SLVMD 0x10 <span style="color: lime;">/* CMD= 0001-0xxx-x Slave Mode */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_MSTMD 0x18 <span style="color: lime;">/* CMD= 0001-10xx-x Use on-chip clock */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_EXTCLK 0x1C <span style="color: lime;">/* CMD= 0001-11xx-x Use external clock */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_COMS00 0x20 <span style="color: lime;">/* CMD= 0010-ABxx-x commons options */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_COMS01 0x24 <span style="color: lime;">/* CMD= 0010-ABxx-x commons options */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_COMS10 0x28 <span style="color: lime;">/* CMD= 0010-ABxx-x commons options */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_COMS11 0x2C <span style="color: lime;">/* CMD= 0010-ABxx-x commons options */</span></span></span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define HT1632_CMD_PWM 0xA0 <span style="color: lime;">/* CMD= 101x-PPPP-x PWM duty cycle */</span></span></span></span></span><br />
<span style="background-color: #444444;"><br />
</span><br />
<span style="color: lime;"><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">// Dual 3216 LED Matrix</span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">// If you have only one set these to:</span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">// X_MAX=31</span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">// Y_MAX=15</span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">// CHIP_MAX=4</span></span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define X_MAX 63<span style="color: lime;"> // 0 based X</span></span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define Y_MAX 15 <span style="color: lime;">// 0 based Y</span></span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define CHIP_MAX 4*2 <span style="color: lime;">// Number of HT1632C Chips</span></span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"> <span style="color: lime;">// 4 each board * 2 boards</span></span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><span style="color: lime;">// possible values for a pixel;</span></span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define BLACK 0</span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define GREEN 1</span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define RED 2</span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define ORANGE 3 </span></span></span></span><br />
<span style="background-color: #444444;"><br />
</span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #f3f3f3;"><span style="background-color: white;"><span style="background-color: #444444;">#define calcBit(y) (8>>(y&3)) </span></span></span></span><br />
<span style="background-color: #444444;"><br />
</span><br />
<span style="background-color: #444444;"><br />
</span><br />
<span style="background-color: #444444;"><br />
</span><br />
<span style="font-family: inherit;">Next is the variable definition:</span><br />
<span style="color: lime;"><span style="font-family: inherit;"><span style="background-color: #444444;"> </span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">/*</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> * Set these constants to the values of the pins connected to the SureElectronics Module</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> */</span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> static const byte ht1632_data = 53; <span style="color: lime;">// Data pin (pin 7)</span></span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> static const byte ht1632_clk = 52; <span style="color: lime;">// Data pin (pin 2)</span></span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> static const byte ht1632_wrclk = 51; <span style="color: lime;">// Write clock pin (pin 5)</span></span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> static const byte ht1632_cs = 50; <span style="color: lime;">// Chip Select (pin 1)</span></span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span><span style="color: lime;"><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">// The should be a common GND.</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> // The module with all LEDs like draws about 200mA,</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> // which makes it PROBABLY powerable via Arduino +5V</span></span></span><br />
<span style="color: lime;"><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">//(Apexys comment: The module will draw up to 1.5 Amps with all LEDs on,</span></span></span><br />
<span style="color: lime;"><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">// so forget about powering it with an Arduino and get it a good </span></span></span><br />
<span style="color: lime;"><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">// switching PSU!) </span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> </span></span><span style="color: lime;"><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">/*</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> * we keep a copy of the display controller contents so that we can</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> * know which bits are on without having to (slowly) read the device.</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> * Note that we only use the low four bits of the shadow ram, since</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> * we're shadowing 4-bit memory. This makes things faster, but we</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> * COULD do something with the other half of our bytes !</span><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> */</span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;"><br />
</span><span style="background-color: #444444;"> byte ht1632_shadowram[63][CHIP_MAX] = {0};</span></span><br />
<br />
<span style="font-family: inherit;">Followed by the functions</span><br />
<br />
<span style="font-family: "Courier New", "Courier", monospace;"> <span style="background-color: #444444;">void OutputCLK_Pulse(void)<span style="color: lime;"> //Output a clock pulse</span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">void ht1632_chipselect(int select) <span style="color: lime;">//Select a chip</span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">void ht1632_writebits (byte bits, byte firstbit) <span style="color: lime;">//Write bits on SPI</span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">static void ht1632_sendcmd (byte chipNo, byte command) <span style="color: lime;">Send Command</span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">static void ht1632_senddata (byte chipNo, byte address, byte data) <span style="color: lime;">//Data</span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">void ht1632_clear() <span style="color: lime;">//Clear Display</span></span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;"> </span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">byte xyToIndex(byte x, byte y) <span style="color: lime;">//Get RAM position for a pixel</span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;"> int get_pixel(byte x, byte y) <span style="color: lime;">//Get a pixel's color at a position</span> </span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;"> void ht1632_plot (byte x, byte y, byte color) <span style="color: lime;">//Set a pixel</span></span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="background-color: #444444;">static void ht1632_initialize() <span style="color: lime;">//Init the display</span> </span></span><br />
<br />
<br />
<span style="font-family: inherit;">Now, simply replace </span><span style="font-family: "Courier New", "Courier", monospace;">byte</span><span style="font-family: inherit;"> with </span><span style="font-family: "Courier New", "Courier", monospace;">uint8_t</span><span style="font-family: inherit;">.</span><br />
<span style="font-family: inherit;">Two last things are to do: You need to define four pins of any port as output and you need </span><span style="font-family: inherit;"> a function to replace the </span><span style="font-family: "Courier New", "Courier", monospace;">digitalWrite</span><span style="font-family: inherit;"> function of the Arduino library. Here it is:</span><br />
<br />
<span style="background-color: #444444;"><span style="font-family: "Courier New", "Courier", monospace;"><span style="color: lime;">//Replace the Arduinos digitalWrite() function</span></span></span><br />
<span style="background-color: #444444;"><span style="font-family: "Courier New", "Courier", monospace;">void digitalWrite(uint8_t port, uint8_t value){<br />
switch(port){<br />
case 0:{<br />
if(value){<br />
PORTC |= (1<<PC0);<br />
}<br />
else{<br />
PORTC &= ~(1<<PC0);<br />
}<br />
}<br />
break;<br />
case 1:{<br />
if(value){<br />
PORTC |= (1<<PC1);<br />
}<br />
else{<br />
PORTC &= ~(1<<PC1);<br />
}<br />
}<br />
break;<br />
case 2:{<br />
if(value){<br />
PORTC |= (1<<PC2);<br />
}<br />
else{<br />
PORTC &= ~(1<<PC2);<br />
}<br />
}<br />
break;<br />
case 3:{<br />
if(value){<br />
PORTC |= (1<<PC3);<br />
}<br />
else{<br />
PORTC &= ~(1<<PC3);<br />
}<br />
}<br />
break;<br />
}<br />
}</span></span><br />
<br />
<span style="font-family: inherit;">Now simply change the </span><span style="font-family: "Courier New", "Courier", monospace;">static const byte</span><span style="font-family: inherit;"> for the port values to something like</span><br />
<br />
<span style="background-color: #444444;"><span style="font-family: "Courier New", "Courier", monospace;">#define ht1632_cs 0<br />
#define ht1632_clk 1<br />
#define ht1632_wrclk 2<br />
#define ht1632_data 3</span></span><span style="font-family: inherit;"><br />
<br />
And add a statement like</span><br />
<br />
<span style="background-color: #444444;"><span style="font-family: "Courier New", "Courier", monospace;">#define LOW 0<br />
#define HIGH 1 </span></span><br />
<br />
<span style="font-family: inherit;">And your done!</span><br />
<br />
<span style="font-family: inherit;">Now you can set a pixel with </span><span style="font-family: "Courier New", "Courier", monospace;">ht1632_plot(x,y,color)</span><span style="font-family: inherit;"> and you can clear the matrix by calling</span><br />
<span style="font-family: "Courier New", "Courier", monospace;">ht1632_clear()</span><span style="font-family: inherit;">.</span><br />
<br />
<span style="font-family: inherit;">Now, back to development!</span><br />
<br />
<span style="font-family: inherit;">Apexys </span>apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-39850371227746352452011-05-15T11:10:00.000-07:002011-05-15T11:10:17.141-07:00The iron sulfide thermiteHi!<br />
This is the second one of my promised series of blog post!<br />
It's about a little experiment I did some weeks ago.<br />
I wanted to cover iron stick with liquid iron sulfide, <br />
so I could bring a nice layer of sulfur on some copper in an electrolysis.<br />
To have some fun, I added the thermite process to the sulfurisation.<br />
Here is how it looked like:<br />
<object height="349" width="425"><param name="movie" value="http://www.youtube.com/v/h4y2f7LiNas?fs=1&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/h4y2f7LiNas?fs=1&hl=en_US" type="application/x-shockwave-flash" width="425" height="349" allowscriptaccess="always" allowfullscreen="true"></embed></object><br />
<br />
Well, quite impressive.<br />
I didn't use the iron sulfide, but gave it to my friend C3H5N3O9 so he could make his copper-sulfur-plate.<br />
I hope you liked this non-electronics-related experiment.<br />
<br />
Apexysapexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com2tag:blogger.com,1999:blog-6802535159273814380.post-49007526052030126612011-05-14T14:42:00.000-07:002011-05-14T14:42:36.296-07:00The 555 inductance meter enhanced editionI know it's been a long time since my last blog post, but I had to decrease the level of entropy on my lab desk.<br />
Anyway, I managed to get some projects done, so I can blog them in the next weeks!<br />
Here is the first one: An improved version of my 555 inductance meter!<br />
At virtually no cost (at least if you have some basic parts on stock), you can improve the performance under different serial resistances of the measured inductors.<br />
You just have to add a second NE555 and a few resistors.<br />
The mayor problem of the old version is the rather big output change when the serial resistance changes.<br />
If you have a too big serial resistance, the amplitude of the LC-oscillators flattens out and you aren't measuring the frequency any more. You'll get readings like this:<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-dE0lJe6RRuc/Tc71NNlRH3I/AAAAAAAAAG4/8mXCiBcK8eQ/s1600/Old+Version.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="202" src="http://4.bp.blogspot.com/-dE0lJe6RRuc/Tc71NNlRH3I/AAAAAAAAAG4/8mXCiBcK8eQ/s400/Old+Version.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
I simulated these waveforms by stepping the serial resistance from 0.1 ohm (green line on the bottom) to 10 ohm (pink line on the top). The steps are 1 ohm each.<br />
<br />
If you now amplify the sine wave to a rail-to-rail rectangle by using a comparator or a schmitt-trigger, you can use this signal as a basis for the low-passed output.<br />
Here is the new schematic:<img border="0" height="324" src="http://3.bp.blogspot.com/-PKR-kcDa83I/Tc71MItnZgI/AAAAAAAAAGw/SnV7iSEhqCw/s640/Schematics.png" width="640" /><br />
<br />
The output of this version looks like this:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-J8xjcBaid7s/Tc71MkpbNAI/AAAAAAAAAG0/rXWPao4xmtY/s1600/New+Version.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="326" src="http://2.bp.blogspot.com/-J8xjcBaid7s/Tc71MkpbNAI/AAAAAAAAAG0/rXWPao4xmtY/s640/New+Version.png" width="640" /></a></div><br />
In reality, my inductors had serial resistance from 0.01 to about 3 ohm.<br />
The new version is really better at differing between resistance and inductance,<br />
so at a cost of about 2€ for the basic design and additional 1€ for the improvement,<br />
it might be the cheapest inductance meter out there!<br />
Build yourself one I you don't have one, you won't regret it!<br />
<br />
Apexysapexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com1tag:blogger.com,1999:blog-6802535159273814380.post-74259151339727355132011-03-25T14:14:00.000-07:002011-03-25T14:14:57.260-07:00Two important C# code snippetsHi everyone!<br />
And this time especially the AX-team of our little contest!<br />
<br />
Here are the two last APXD-snippets in C# :<br />
<br />
Converting from a String like '10001000' to an int (this would be 136):<br />
<br />
<span style="font-family: "Courier New", "Courier", monospace;">int getint(String bin) {<br />
int result = 0;<br />
for(int i = 0; i< 8; i++){<br />
if(bin[i] == '1'){<br />
result +=(int) Math.Pow (2,7-i);<br />
}<br />
}<br />
return result;<br />
}</span><br />
<br />
<br />
Converting from an int like 136 to the binary-String:<br />
<br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;">String getbin(int input) {</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> String result = "";</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> int ax;</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> for (int i = 0; i < 8; i++) {</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> ax = (int)Math.Pow(2, 7 - i);</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> if (input >= ax) {</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> result += "1";</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> input -=ax;</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> }</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> else {</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> result += "0";</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> } </span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> }</span></span><br />
<span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> return result;</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"><br />
</span></span><span style="font-family: "Courier New", "Courier", monospace;"><span style="font-size: small;"> }</span></span><br />
<br />
<br />
That's all for the moment!<br />
Have a good weekend!<br />
<br />
apexysapexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-6936768205155202682011-03-07T11:22:00.000-08:002011-03-07T11:22:48.176-08:00Overdrive and distortionHi!<br />
<br />
Whilst doing audio stuff, at some point I got to the point, where I wanted to modify the sound of my instrument.<br />
There are two mayor types of distorting an instrument: overdrive and distortion.<br />
<br />
Overdrive is the older sound.<br />
Back when there were people building amplifiers out of glass valves and operating with high voltages,<br />
the amplifiers couldn't handle all the voltages over the input range.<br />
This meant, starting at a certain point, the signal would start to clip.<br />
Add some harmonic signals and some white noise,<br />
which both are characteristic for tube amplifiers, and you get overdrive.<br />
Personally, I don't really like overdrive.<br />
It sounds too dirty and noisy,<br />
but in some settings and genres like hard rock, it sounds really great.<br />
The easiest way to get a mean overdrive this days is to use opamps.<br />
Simply configure one as a non-inverting-amplifier with rather high amplification factor and use high input voltages.<br />
For best retro-sound, use a JFET one (as the TL072). But even the LM324 will work.<br />
Here is a schematic for an overdrive with an opamp per channel:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh5.googleusercontent.com/-9Atb7WgMn1s/TXUtPIxrgiI/AAAAAAAAAE0/bkXh_u5uSIg/s1600/overdrive.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="201" src="https://lh5.googleusercontent.com/-9Atb7WgMn1s/TXUtPIxrgiI/AAAAAAAAAE0/bkXh_u5uSIg/s400/overdrive.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
And this is, how the signal looks like:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh3.googleusercontent.com/-rNNDMnYq85w/TXUtPWGgI_I/AAAAAAAAAE4/_MSkUp4zMQM/s1600/overdrive_sim.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="202" src="https://lh3.googleusercontent.com/-rNNDMnYq85w/TXUtPWGgI_I/AAAAAAAAAE4/_MSkUp4zMQM/s400/overdrive_sim.png" width="400" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div>Now to the other possibility of generating a sound effect by simply clipping it: distortion.<br />
Distortion means that you generate the clipping effect in a much more controllable way, means by diodes.<br />
Diodes have a U/I curve with a kink at normally around 0.8V. This means, they start leading when signals higher than this kink are applied.<br />
An easy way to use this kink for distortion is the following schematic:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh6.googleusercontent.com/-wro6fpYCaPw/TXUuR9Hhe0I/AAAAAAAAAE8/x5njw1Txg_0/s1600/distortion.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="323" src="https://lh6.googleusercontent.com/-wro6fpYCaPw/TXUuR9Hhe0I/AAAAAAAAAE8/x5njw1Txg_0/s640/distortion.png" width="640" /></a></div>And again an example of the waveform.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh3.googleusercontent.com/-DQq2B3r_12o/TXUuSTMckwI/AAAAAAAAAFA/tJQirxhIGEk/s1600/distortion_sim.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="323" src="https://lh3.googleusercontent.com/-DQq2B3r_12o/TXUuSTMckwI/AAAAAAAAAFA/tJQirxhIGEk/s640/distortion_sim.png" width="640" /></a></div><br />
In this example, I wanted very strong distortion.<br />
With the distortion-type distortion (not the overdrive one), there is an easier approach to this.<br />
Just use the opamp as an schmitt-trigger:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh4.googleusercontent.com/-ktQdEJty-Ek/TXUuSr74EgI/AAAAAAAAAFE/6DqqT2Cys7Y/s1600/distortion_simple.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="323" src="https://lh4.googleusercontent.com/-ktQdEJty-Ek/TXUuSr74EgI/AAAAAAAAAFE/6DqqT2Cys7Y/s640/distortion_simple.png" width="640" /></a></div><br />
Notice the small difference in the waveform, compared to the solution with the diode:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh6.googleusercontent.com/-Ltm9r-LGmkg/TXUuTGvw6II/AAAAAAAAAFI/nXLAxqN60Hw/s1600/distortion_simple_sim.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="323" src="https://lh6.googleusercontent.com/-Ltm9r-LGmkg/TXUuTGvw6II/AAAAAAAAAFI/nXLAxqN60Hw/s640/distortion_simple_sim.png" width="640" /></a></div><br />
This was my small walkthrough through these kinds of distortion systems.<br />
Thank you for reading and until next time!<br />
<br />
apexysapexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com1tag:blogger.com,1999:blog-6802535159273814380.post-70014681507305050602011-02-27T11:48:00.000-08:002011-02-27T12:05:29.691-08:00The NE556 based ThereminThis is my second entry for the 555 contest.<br />
<br />
It is the famous instrument, the theremin in a 556-based version.<br />
I had to overclock the timer to about 4Mhz and it works!<br />
This is pretty cool since the timer has a maximum frequency of about 200kHz.<br />
This is the schematic:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh4.googleusercontent.com/-H55vtasJjrA/TWqksUcEjTI/AAAAAAAAAEY/W0o9OoerNE8/s1600/Schematic.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="131" src="https://lh4.googleusercontent.com/-H55vtasJjrA/TWqksUcEjTI/AAAAAAAAAEY/W0o9OoerNE8/s400/Schematic.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The two 555 cores of the NE556 work both as rectangle oszillators.<br />
The frequency of the second one is altered by my body frequency.<br />
Now both signals are mixed in the middle and amplified via Q1.<br />
An earplug makes it hearable.<br />
<br />
This is what the signal looks like:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh5.googleusercontent.com/-omcZu8u3eC0/TWqkufJtFoI/AAAAAAAAAEc/wqgXnVU4uW8/s1600/SimulatedOutput.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="202" src="https://lh5.googleusercontent.com/-omcZu8u3eC0/TWqkufJtFoI/AAAAAAAAAEc/wqgXnVU4uW8/s400/SimulatedOutput.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
It is basically HF with some NF modulated on it. AM. Like in the radio.<br />
In LTSpiceIV, you can simulate a sound output and play it in real life!<br />
Simply add the SPICE directive <i>.wave C:\waveout.wav 16 44100 V(n010)</i> to your simulation file.<br />
What it does is:<br />
It generates a .wav-file with 16 bit resolution and 44,1kHz samplerate in C:\waveout.wav that sounds exactly like the voltage on node 10.<br />
<a href="https://docs.google.com/leaf?id=0B6zQQBlszFOyZGJmNDYyNjMtZGZjOS00M2VhLWJkZDItM2Y5MDFjMTZhZDY0&hl=en&authkey=COiiocwN">Here</a> is a sound example of this schematic.<br />
<br />
Now, I etched a DCB in my standard procedure.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh4.googleusercontent.com/-jzqpaY2SWrQ/TWqlDcXsU1I/AAAAAAAAAEg/Yeo26QYEnWo/s1600/board+etched.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="202" src="https://lh4.googleusercontent.com/-jzqpaY2SWrQ/TWqlDcXsU1I/AAAAAAAAAEg/Yeo26QYEnWo/s320/board+etched.jpg" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The lower pad left is the pad to put your hand on. Then move the other hand over the big upper ground plane.<br />
Resistors were the first parts to be populated.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh3.googleusercontent.com/-PL7i5XSCD8c/TWqlXncuI1I/AAAAAAAAAEk/FJWNMp1ldIU/s1600/board_resistors.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="201" src="https://lh3.googleusercontent.com/-PL7i5XSCD8c/TWqlXncuI1I/AAAAAAAAAEk/FJWNMp1ldIU/s320/board_resistors.jpg" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Now the timing caps followed.<br />
At first, I wanted to use 1206 54pF caps but they didn't fit. Well, the dangers of a self drawn board I assume. As a replacement, two 20pF caps in 0805 on every side came to the rescue.<br />
The two bars on the right side act as a cap bench. I do this on lot of my circuits: First I just solder in a 100nF ceramic capacitor and if it is not sufficient, I solder in other caps. In this particular case, I soldered in quite a few caps. Starting from the upper border: 270pF x2, 100nF x2, 800nF x2, 1µF.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh5.googleusercontent.com/-RiaaGoISfkQ/TWqlo0XTFlI/AAAAAAAAAEo/HaCqoVPYxr4/s1600/board_capacitors.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="207" src="https://lh5.googleusercontent.com/-RiaaGoISfkQ/TWqlo0XTFlI/AAAAAAAAAEo/HaCqoVPYxr4/s320/board_capacitors.jpg" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
After having done this, some silicon followed:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh5.googleusercontent.com/-U2gR9cGFR98/TWql7FFeHII/AAAAAAAAAEs/B9jZW5efUn4/s1600/board_si.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="212" src="https://lh5.googleusercontent.com/-U2gR9cGFR98/TWql7FFeHII/AAAAAAAAAEs/B9jZW5efUn4/s320/board_si.jpg" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Then the NE556 and some other stuff and it's all ready to use!<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://lh4.googleusercontent.com/-Z4tmbud9GEM/TWqmMkKrzmI/AAAAAAAAAEw/yKQnzpiNrKM/s1600/board_full.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="173" src="https://lh4.googleusercontent.com/-Z4tmbud9GEM/TWqmMkKrzmI/AAAAAAAAAEw/yKQnzpiNrKM/s400/board_full.jpg" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
It is really difficult to play specified tones on this thing.<br />
I end up most of the times getting WEEEH-UUUUH-WEEEEH-UUUUUH sounds.<br />
But hey, it works!<br />
Here is a prove:<br />
<br />
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/-WyM_AzVu3o?hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-WyM_AzVu3o?hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
<br />
What do you think of it?<br />
As usual, you can download the simulation file <a href="https://docs.google.com/document/d/16ZjABhq5PHL4OBqv9b_H37npRYUZ08aLPxADV9Z6sbA/edit?hl=en&authkey=CNbFsoII">here</a>.<br />
<br />
Apexysapexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com1tag:blogger.com,1999:blog-6802535159273814380.post-43627557532484892262011-02-23T09:07:00.000-08:002011-02-23T09:11:51.737-08:00The NE555 based inductivty meterHi!<br />
This blog is about my new inductivity meter based on a NE555.<br />
For my experiments with switch mode converters, I needed a simple way to compare inductivities of coils.<br />
Since I don't have a multimeter which can do inductivity measurement (but I have a really great multimeter, more infos perhaps in the next blog), I decided to build one.<br />
<br />
And this is the schematic of it:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-9deMtg15gII/TWUxY4fFCyI/AAAAAAAAAEE/_IGYFi2HHNg/s1600/schematic.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="210" src="http://3.bp.blogspot.com/-9deMtg15gII/TWUxY4fFCyI/AAAAAAAAAEE/_IGYFi2HHNg/s400/schematic.png" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
A NE555 works in its most simple rectangle osciallation configuration.<br />
In this mode, the duty-cycle should be around 50%, but this depends on the load on pin 3.<br />
Over the amplifying transistor Q1 the AC is given on an LC circuit.<br />
It oscillates a freqency given by the equation:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-X4p7klea6w8/TWUzge5xECI/AAAAAAAAAEQ/nwq3Er_IyII/s1600/lc_equation.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="140" src="http://1.bp.blogspot.com/-X4p7klea6w8/TWUzge5xECI/AAAAAAAAAEQ/nwq3Er_IyII/s200/lc_equation.png" width="200" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
This oscillating waves are amplified by Q2 and frequency is converted into a voltage by the RC-network of C3 and the ampmeter.<br />
Due to the capacity of both C3 and C2 being constant, the current through the ampmeter is defined by the inductivity.<br />
Here is a simulated image of what should happen:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-hfkqIEyQTfY/TWUwvyUXd6I/AAAAAAAAAD4/eXJumjdW_Cc/s1600/output.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="337" src="http://4.bp.blogspot.com/-hfkqIEyQTfY/TWUwvyUXd6I/AAAAAAAAAD4/eXJumjdW_Cc/s640/output.png" width="640" /></a></div>Green is 100µH, blue 200µH, red 300µH and so on.<br />
Here is a more entertaining version of it:<br />
<div class="separator" style="clear: both; text-align: center;"><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/yk08gh8OFAI?hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/yk08gh8OFAI?hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></div><br />
Well, that's the concept, let's go to the build!<br />
Here is a image of the DPB (Drawn Circuit Board):<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-mEewxxTGL8Q/TWUuB1sHVFI/AAAAAAAAADM/BM_y_eDf37c/s1600/board_layout.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="350" src="http://1.bp.blogspot.com/-mEewxxTGL8Q/TWUuB1sHVFI/AAAAAAAAADM/BM_y_eDf37c/s640/board_layout.jpg" width="640" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-_ZPLlWYF0RU/TWUvjJMMWwI/AAAAAAAAADc/hDJGnhiACTk/s1600/board_written.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="348" src="http://4.bp.blogspot.com/-_ZPLlWYF0RU/TWUvjJMMWwI/AAAAAAAAADc/hDJGnhiACTk/s640/board_written.jpg" width="640" /></a><a href="http://4.bp.blogspot.com/-_ZPLlWYF0RU/TWUvjJMMWwI/AAAAAAAAADc/hDJGnhiACTk/s1600/board_written.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br />
</a></div>I had to make a capacitor bench out of the one capacitor because my supplier didn't have ceramic 10µF caps. Electrolytic capacitors are a pain in the ass and should only be used to stabilize the power supply.<br />
After drawing this to a piece of copper-cladded FR4 board material, I dried it using a diy-hotplate: the glass cover of a halogen desk lamp.<br />
Now I heated up the etching solution (Sodium persulfate):<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-M5V25VCgpB0/TWUukXOLpaI/AAAAAAAAADY/1AUqYCVAa88/s1600/cooking.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/-M5V25VCgpB0/TWUukXOLpaI/AAAAAAAAADY/1AUqYCVAa88/s320/cooking.jpg" width="268" /></a></div> It is the most easy way to do a board fast and with diy-methods. No big technical machinery, just a gas flame and an erlenmeyer flask.<br />
Maybe I should have cleaned it before taking this image, but it's clean from the inside.<br />
You can easily determine when the liquid is hot enough:<br />
It starts to have a small layer of steam on it.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/-E_Lmhe5481U/TWUwRjaO_0I/AAAAAAAAADo/RGLywRxgVo4/s1600/etching.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="400" src="http://1.bp.blogspot.com/-E_Lmhe5481U/TWUwRjaO_0I/AAAAAAAAADo/RGLywRxgVo4/s400/etching.jpg" width="242" /></a></div>Here is a image of the board in the etching bath.<br />
I takes about an hour on room temperature and about 20 minutes with the heating procedure.<br />
<br />
After all the unwanted copper dissolved, I took it out of it's bath and it looked like this:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/-fwLck9zu5kw/TWUv6AvLt9I/AAAAAAAAADk/AqcRq0vDAk4/s1600/etched.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="167" src="http://3.bp.blogspot.com/-fwLck9zu5kw/TWUv6AvLt9I/AAAAAAAAADk/AqcRq0vDAk4/s320/etched.jpg" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Now I used ethanol to wash of the ink.<br />
Acetone helped me at the edges:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-0cERRFc0S3w/TWUuXPBO3GI/AAAAAAAAADU/TshaeugHHeE/s1600/cleaned.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="168" src="http://4.bp.blogspot.com/-0cERRFc0S3w/TWUuXPBO3GI/AAAAAAAAADU/TshaeugHHeE/s320/cleaned.jpg" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Well, time to get it populated!<br />
If you are using lead-free solder, you should tin it first.<br />
Since I'm using lead-containing solder,I had no problem soldering everything on:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-vKHr6t9lpjU/TWUxEQvErEI/AAAAAAAAAD8/GcwkGFyKCCY/s1600/populated.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="300" src="http://4.bp.blogspot.com/-vKHr6t9lpjU/TWUxEQvErEI/AAAAAAAAAD8/GcwkGFyKCCY/s400/populated.jpg" width="400" /></a><a href="http://4.bp.blogspot.com/-vKHr6t9lpjU/TWUxEQvErEI/AAAAAAAAAD8/GcwkGFyKCCY/s1600/populated.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br />
</a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
The "thing" that's holding it is a third hand.<br />
I think it is in fact the most helpful object whilst soldering.<br />
If you don't have one, get one!<br />
I "recycled" an old analog multimeter to get a nice µA-meter:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-aBxgCwTUxDk/TWUwu5gZjQI/AAAAAAAAAD0/x6hEJHleYlo/s1600/meter.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-aBxgCwTUxDk/TWUwu5gZjQI/AAAAAAAAAD0/x6hEJHleYlo/s320/meter.jpg" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
So, this is how it looks like with everything on it: <br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/-F9bWuPpWY8Y/TWUxYMgqOXI/AAAAAAAAAEA/vBjO4D1YSj0/s1600/ready.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="480" src="http://4.bp.blogspot.com/-F9bWuPpWY8Y/TWUxYMgqOXI/AAAAAAAAAEA/vBjO4D1YSj0/s640/ready.jpg" width="640" /></a></div>Now, testing time!<br />
<br />
<object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/PxVmkd5yD6Q?hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/PxVmkd5yD6Q?hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br />
The inductivity used is this one:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/-uzNi3chl0pw/TWUwWEpm9MI/AAAAAAAAADs/lvwe6a8SpsE/s1600/inductivity.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="142" src="http://2.bp.blogspot.com/-uzNi3chl0pw/TWUwWEpm9MI/AAAAAAAAADs/lvwe6a8SpsE/s320/inductivity.jpg" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
How do you like it?<br />
I think it's a cool little gadget, saving time and money!<br />
You can download the LTSpice file <a href="https://docs.google.com/document/d/1YzZr0sghmHA4KkRC9wKOImFhqRQ0-DttxzYOVVBNqUo/edit?hl=en&authkey=CPjlubAN">here</a>.<br />
Have a good time!<br />
apexysapexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com6tag:blogger.com,1999:blog-6802535159273814380.post-64334724454140917832011-01-31T11:26:00.000-08:002011-01-31T11:26:52.519-08:00Epad 10.2 review<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">Hi there!</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">it's time to review my newest gadget: the Android Epad 10.2"</span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"><br />
</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">As the name says, it is a iPad-clone with a slightly bigger screen (10.2") and running Android 2.1.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">Here is a image of how it looks like in the commercial:</span><br />
<div style="text-align: left;"></div><div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/_0-YJjJmvHSw/TUcBl1UJKNI/AAAAAAAAACo/Jb9wBAQtWJg/s1600/Apadcommerial.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"><br />
</span></a><a href="http://1.bp.blogspot.com/_0-YJjJmvHSw/TUcBl1UJKNI/AAAAAAAAACo/Jb9wBAQtWJg/s1600/Apadcommerial.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="http://2.bp.blogspot.com/_0-YJjJmvHSw/TUcIRlm3mvI/AAAAAAAAADA/_6X3xNqD0NY/s320/Apadcommerialcrop.jpg" width="301" /><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"></span></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">And here is another image of it, take with my digital camera:</span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span><br />
<div style="text-align: left;"><a href="http://2.bp.blogspot.com/_0-YJjJmvHSw/TUcCgdLkTlI/AAAAAAAAACs/5LYhNWtNygA/s1600/SDC10819.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/_0-YJjJmvHSw/TUcCgdLkTlI/AAAAAAAAACs/5LYhNWtNygA/s320/SDC10819.JPG" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_0-YJjJmvHSw/TUcCgdLkTlI/AAAAAAAAACs/5LYhNWtNygA/s1600/SDC10819.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"><br />
</span></a></div><br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">It is pretty hard to get it on camera, but this is, how the home screen looks like.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The Epad has a 1GHz ARM processor like the iPad, but it has a resistive touchscreen with 1024x600 pixels resolution, but </span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">unlike the iPad, it can be used with a pen or gloves.</span><br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> Here are some photos of the interfaces:</span><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_0-YJjJmvHSw/TUcEolDzAcI/AAAAAAAAAC0/p7UTFR2IuTQ/s1600/Front+VCC.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="26" src="http://2.bp.blogspot.com/_0-YJjJmvHSw/TUcEolDzAcI/AAAAAAAAAC0/p7UTFR2IuTQ/s400/Front+VCC.jpg" width="400" /></a></div><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TUcEtMkzfXI/AAAAAAAAAC4/8EIt6l-9HxE/s1600/Side+TF.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="30" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TUcEtMkzfXI/AAAAAAAAAC4/8EIt6l-9HxE/s400/Side+TF.jpg" width="400" /></a></div><br />
<br />
<br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The internet connectivity is done via WiFi or an external USB surf stick.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">It has two gigabytes of internal NAND flash and can use TransFlash aka µSD cards.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The PC data connection is done with a mini-USB cable, here called OTG.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">You can charge the internal LiIon accumulator by applying 9VDC to the DC-terminal or simply using the included charger.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">I was surprised by the rather high audio quality of the 3.5 mm output, even though the internal speakers are crap. </span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">You can connect it to a LAN with the included adapter, which looks like this:</span><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/_0-YJjJmvHSw/TUcGyYHyIHI/AAAAAAAAAC8/XYQFq9H6uZc/s1600/LAN+adapter.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="93" src="http://1.bp.blogspot.com/_0-YJjJmvHSw/TUcGyYHyIHI/AAAAAAAAAC8/XYQFq9H6uZc/s320/LAN+adapter.jpg" width="320" /></a><a href="http://1.bp.blogspot.com/_0-YJjJmvHSw/TUcGyYHyIHI/AAAAAAAAAC8/XYQFq9H6uZc/s1600/LAN+adapter.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br />
</a></div><br />
<br />
<br />
<br />
<br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"><br />
</span><br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The operating system is Android 2.1.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">I like it, being small and fast.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">It loads almost every website, even though it can't do every kind of script.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">You can use it to view videos on YouTube, to watch DVDs (even via an external USB DVD drive!) or blogging on BlogSpot, as I'm doing now.</span><br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The virtual keyboard is a bit hard to use (You have to leave your hand some milimeters above the touchscreen and pull down the fingers separately), but you can use an USB keyboard.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">If you want to exchange data without using a mini-USB cable, just do it using a µSD card. </span><br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">Some applications </span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">some exist in the Android Market, some </span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">you have to code on your own.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">But hey, the Android SDK is free, so ain't it a great platform for mobile hacking?</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">I just need a compiler that runs directly on it.</span><br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">You can pick these tablets up on ebay for about 200€ for a brand-new one or find it for the same price in other internet stores.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">Finally, I would say, it's really a great gadget with much functionality for low price.</span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"></span><br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> I hope you liked this review!</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">/apexys/01312011/1921 </span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span>apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com1tag:blogger.com,1999:blog-6802535159273814380.post-78100501992412184712011-01-23T08:24:00.000-08:002011-01-23T08:24:09.617-08:00AVRTimerCalculator - JAVA-versionHi!<br />
Here comes the requested JAVA-version of the AVRTimerCalculator.<br />
<div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TTxVkxSfzYI/AAAAAAAAACk/NekusSwIg7Q/s1600/ATC_JAVA_Screenshot.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TTxVkxSfzYI/AAAAAAAAACk/NekusSwIg7Q/s1600/ATC_JAVA_Screenshot.png" /></a></div><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TTxVGTXXbMI/AAAAAAAAACg/j604SbFN5R4/s1600/ATC_Java.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><br />
</a><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
You can download it <a href="https://sourceforge.net/projects/avrtimer/files/ATC%202.0%20%28Java%29/">here</a>.<br />
Share and enjoy ;-)<br />
/apexys/01232011/1622apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-25416525490268532142011-01-20T07:20:00.000-08:002011-01-20T07:21:03.162-08:00AVRTimerCalculatorHi!<br />
This time it's a small piece of software, I've written to simplify the programming of timers in an AVR.<br />
Many people, especially beginners or people who come from the Arduino corner dislike the timers due to their complexity. But it's really not that hard.<br />
With a scientific calculator and a sheet of paper, you can easily set them.<br />
And now I wrote this program, which replaces calculator and paper!<br />
It looks like this:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TThSaDrG4QI/AAAAAAAAACc/Iy27f-Xk3zs/s1600/AVRTimerCalculator.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TThSaDrG4QI/AAAAAAAAACc/Iy27f-Xk3zs/s1600/AVRTimerCalculator.png" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
It was written in VisualBasic, even though I like C# better.<br />
I used VisualBasicExpressEdition to design the form.<br />
You can download the source code and compiled program <a href="https://sourceforge.net/projects/avrtimer/files/">here</a>.<br />
/apexys/01202011/1521apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-39986611198864190992011-01-19T08:14:00.000-08:002011-01-20T07:21:47.912-08:00My first self-programmed computer gamesHere is a small, but fine compilation of my first self programmed computer games.<br />
All of them are done in Visual Basic .NET.<br />
I was 12 years old when I did them!<br />
<br />
1. Hübbie Shooter<br />
A small, but for a first game quite good game.<br />
All you have to do is to "shoot" the flying birds with your mouse.<br />
It uses about 50 different PictureBoxes which are made visible and invisible by a timer. Sorry, but this game is just available in German.<br />
Here is a screenshot:<img border="0" height="362" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TTcJmpDHGtI/AAAAAAAAACY/NpaiQGiRqZw/s640/HuebbieShooterMoved.jpg" width="640" /><br />
<br />
Download it here: <a href="https://sourceforge.net/projects/hbbieshooter/files/">https://sourceforge.net/projects/hbbieshooter/files/ </a><br />
<br />
2. Go!<br />
Go is a Space Invaders clone.<br />
You are the blue box and must shoot the red box.<br />
Left shift is the "laser cannon" and left ctrl is the "guided missile".<br />
This was my first game that used a non static surface.<br />
It might not look so nice as Hübbie Shooter, but its much more fun!<br />
Look:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TTcJXfsJGPI/AAAAAAAAACM/_NZLYN6mAbc/s1600/H%25C3%25BCbbieShooterMoved.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="478" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TTcJgaCCu1I/AAAAAAAAACU/N8DNjG4dPgI/s640/Go%2521.jpg" width="640" /></a></div><br />
<br />
Download here: <a href="https://sourceforge.net/projects/go-space-inv/files/">https://sourceforge.net/projects/go-space-inv/files/</a><br />
<br />
Well, this was my short trip to my oldest self-programmed computer games.<br />
Hope you enjoyed it!<br />
/apexys/01192011/1614apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-87170465904960530642011-01-13T07:39:00.000-08:002011-02-25T08:03:06.417-08:00Soft blinker with a NE555And again a circuit with my favourite IC: the NE555!<br />
Here is my version of the soft blinker:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TS8Yzfl7_dI/AAAAAAAAACE/J05SMO0t1FI/s1600/Softblink.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="338" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TS8Yzfl7_dI/AAAAAAAAACE/J05SMO0t1FI/s640/Softblink.png" width="640" /></a><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TS8Yzfl7_dI/AAAAAAAAACE/J05SMO0t1FI/s1600/Softblink.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"> </a></div>You see right, there is no preresistor for the LED, due to the extremly high base resistor of the transistor!<br />
Here is how much current flows through the LED:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://1.bp.blogspot.com/_0-YJjJmvHSw/TS8Y0Dy9IVI/AAAAAAAAACI/OE93ErSn8Js/s1600/SoftblinkPlot.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="142" src="http://1.bp.blogspot.com/_0-YJjJmvHSw/TS8Y0Dy9IVI/AAAAAAAAACI/OE93ErSn8Js/s640/SoftblinkPlot.png" width="640" /> </a><a href="http://1.bp.blogspot.com/_0-YJjJmvHSw/TS8Y0Dy9IVI/AAAAAAAAACI/OE93ErSn8Js/s1600/SoftblinkPlot.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"> </a></div> The current is between 2 and 5 milliamps, so you could also connect an npn-transistor to drive whole arrays with it.<br />
It is not a sine wave, but a sawtooth.<br />
But hey, it's a soft blinker with a NE555!<br />
Here is a video I took of my prototype.<br />
<br />
<object height="385" width="480"><param name="movie" value="http://www.youtube.com/v/BL9DY-v0iVw?fs=1&hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/BL9DY-v0iVw?fs=1&hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="480" height="385"></embed></object><br />
<br />
/apexys/01132011/1540apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-11415777971014612032011-01-07T04:53:00.000-08:002011-01-07T04:53:08.477-08:00Full adder with relaysWhile playing around with 150 relays, I built a full adder.<br />
I managed to get it down to 9 relays (closing type) and some diodes.<br />
Here is the schematic:<br />
<div style="text-align: left;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TScK-uzeSSI/AAAAAAAAAB8/xZuU3A1xaGE/s1600/FullAdderWithRelays.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="368" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TScK-uzeSSI/AAAAAAAAAB8/xZuU3A1xaGE/s640/FullAdderWithRelays.jpg" width="640" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Please note that relay 6 is just a drawing error, due to the diode near the closer of relay 8 it's unnecessary.<br />
The Resistors are all 1k, which seems to be an appropriate value for my 24V/2.7kOhms relays, but maybe you need to change it depending on your relays.<br />
The diode near the sum output might be useless, but I need more time to test it.<br />
This all is not tested yet, it's just an idea I wanted to share.<br />
<br />
/apexys/01072011/1253apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-23639667811796899482011-01-05T08:44:00.000-08:002011-01-05T08:44:39.078-08:00Piezo problemsIn my piezo fluid analyzer,<br />
I used the piezo-stripe uncoated.<br />
It seems like a small layer of metal is peeled off by the ultrasonic vibrations.<br />
After half an hour in cream soap, a brown isolating layer had been exposed.<br />
I think I'll try a thin coating around the piezo stripe.<br />
<br />
/apexys/01052011/1644apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-48369158784923758852011-01-02T11:40:00.000-08:002011-01-02T11:40:53.596-08:00NE555-based fluid analyzerHere comes my newest experiment:<br />
A NE555 based analyzer for fluids.<br />
It's basic task is to differ between different types of fluids like water, cream soap and so on based on their viscosity.<br />
The basic idea is the following:<br />
I encapsulate some liquid in a box with some kind of slider like this:<img border="0" height="240" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TSDNF7B6yeI/AAAAAAAAABs/-YoI12xvnwQ/s320/Fluidbox.png" width="320" /><br />
If I move the Slider like this<br />
<img border="0" height="240" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TSDNYjLOQ-I/AAAAAAAAABw/KMqWmiXUc0g/s320/Fluidmove.png" width="320" /><br />
the fluid would move like that:<br />
<div style="text-align: left;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TSDOFReFP7I/AAAAAAAAAB0/05qeE9DqAAE/s1600/Fluid3.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TSDOFReFP7I/AAAAAAAAAB0/05qeE9DqAAE/s320/Fluid3.png" width="320" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
So if I use a constant velocity to move the slider,<br />
I'll have to use a differing force based on the friction, which is defined by the viscosity.<br />
<br />
Now my idea was to use a piezo stripe and a constant frequency.<br />
The piezo would be the slider and the constant frequency would have the effect of a constant velocity.<br />
<br />
Gone through all this, I built a small circuit with the NE555, a piezo stripe which I cut from a piezo speaker and a plastic box.<br />
Here is the schematic:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TSDPhEMQwMI/AAAAAAAAAB4/kB0mNRg0Ye0/s1600/PiezoOSC.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="326" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TSDPhEMQwMI/AAAAAAAAAB4/kB0mNRg0Ye0/s640/PiezoOSC.png" width="640" /></a></div><br />
<br />
<br />
<br />
I used one multimeter to measure the current through the piezo and another one to measure the system voltage.<br />
The voltage defines the strength that the slider moves with.<br />
Here is some data:<br />
<br />
<table border="1"><tbody>
<tr><th>Tested object</th><th>Current(5V)</th><th>Current(10V)</th></tr>
<tr><td>Water</td><td>9mA</td><td>22mA</td></tr>
<tr><td>Ethanol</td><td>7mA</td><td>18mA</td></tr>
<tr><td>Cream Soap</td><td>10mA</td><td>30mA</td></tr>
</tbody></table>All aquired at 19°C room temperature. with a 1.8 x 4 cm piezo stripe.<br />
<br />
You can see easily the differences in viscosity between the fluid.<br />
Ethanol has a rather high viscosity, so it takes little strength to move the slider.<br />
Cream Soap is - like the name says - a cream and has a rather low viscosity.<br />
<br />
How could I use this thing?<br />
Well, in this configuration, it can differ between cream soap and water.<br />
It's not everything, but hey, a proof of concept.<br />
If you calibrate it and build a mechanical more stable version, you could use it to make automatic quality controls on your cream soap or such.<br />
You could build one in SMT into a glass to measure if it contains beer or cola (or cream soap ;-).<br />
Let's see what future will give us...<br />
<br />
/apexys/01022011/1940apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-36639205635230691192011-01-01T12:35:00.000-08:002011-01-01T12:35:48.795-08:00Physics experimentsHi and a happy new year.<br />
My blog 2.0 goes into the new year with some experiments.<br />
It's nice and calm in the time between the years, so don't expect big thing.<br />
I'll rather do some experimenting with some physic things like densitiy, light spectrums, ...<br />
The first thing will be the viscosity analyzer.<br />
<br />
Well, then a happy new year!<br />
\apexys\toan\01012011\2035apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com1tag:blogger.com,1999:blog-6802535159273814380.post-21672497032952341212010-12-06T10:38:00.000-08:002010-12-06T10:45:09.596-08:00Binary picture-frame clock<div class="separator" style="clear: both; text-align: center;"></div><br />
Hi altogether!<br />
After seeing quite a few <a href="http://hackaday.com/category/clock-hacks/">clock projects on hackaday.com</a>, I decided to make my own.<br />
And here it is: The binary picture-frame clock!<br />
<br />
<br />
<div style="text-align: left;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0Xqx_W3uI/AAAAAAAAABM/1WtoMP0rpAg/s1600/binclock_lighted_flash_mirror.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="300" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0Xqx_W3uI/AAAAAAAAABM/1WtoMP0rpAg/s400/binclock_lighted_flash_mirror.JPG" width="400" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
Now, how did it build it?<br />
The first thing was to make an idea and a prototype.<br />
I used an <a href="http://www.atmel.com/dyn/resources/prod_documents/doc2486.pdf">ATMEGA-8</a> as main part and layed out the rest around it.<br />
I needed six LEDs for the minutes and the seconds (2^7 = 64 so just one factor under it to get up to 60)<br />
and five LEDs for the hours.<br />
Coming together with buttons, a light sensor for night dimming and the clock crystal,<br />
filled nearly all the pins of the microcontroller.<br />
Here is the schematic:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0iC3Fo3FI/AAAAAAAAABc/NGJoi01_9zw/s1600/Schematic.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="356" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0iC3Fo3FI/AAAAAAAAABc/NGJoi01_9zw/s640/Schematic.png" width="640" /></a></div><br />
I did this in <a href="http://kicad.sourceforge.net/wiki/index.php/Main_Page">KiCad</a>, its free and quite good.<br />
Laying out a one sided PCB saved me a of of cost, and left the possibility to make it quite flat to fit in the frame. The frame is a cheap IKEA picture frame for like ten euro.<img border="0" height="462" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0iFD-n_dI/AAAAAAAAABk/KFM98A1HYCQ/s640/InnerLayout.png" width="640" /><br />
<br />
<div style="text-align: left;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0iFD-n_dI/AAAAAAAAABk/KFM98A1HYCQ/s1600/InnerLayout.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"></a></div>One of the advantages of KiCad is it provides a rendered 3D-image of a circuit board. Here it is:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0iECjr25I/AAAAAAAAABg/DCkchsmcemc/s1600/Render.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="374" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0iECjr25I/AAAAAAAAABg/DCkchsmcemc/s640/Render.png" width="640" /></a></div>Now, I ordered the PCB and the parts. Two long weeks of waiting followed, then the assembly part started!<br />
Here is the PCB after soldering some resistors in:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0Xek2BJDI/AAAAAAAAAA0/MD2bNPABy-M/s1600/binclock_board.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="480" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0Xek2BJDI/AAAAAAAAAA0/MD2bNPABy-M/s640/binclock_board.JPG" width="640" /></a></div>The resistors, LEDs, caps and the crystal were pretty easy to solder. Use a good, branded soldering iron and 0.5 mm solder wire. For hobby use, lead is fully acceptable because it flows to the pads on its own.<br />
The TQFP microcontroller was really hard to solder.<br />
In my first atttempt, I didn't get the contacts on MOSI and SCK right,<br />
but after microwaving the board for three seconds (no joke!), everything worked well!<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0XhSTVrtI/AAAAAAAAAA4/6_6Qg6fcV70/s1600/binclock_board_full.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="480" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0XhSTVrtI/AAAAAAAAAA4/6_6Qg6fcV70/s640/binclock_board_full.JPG" width="640" /></a></div><br />
<br />
Now the mechanical treatment of the of the picture frame followed.<br />
I drilled holes and expanded them until the small switches fitted in.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0XkQF-53I/AAAAAAAAABA/a_WwLd1_crQ/s1600/binclock_drilled.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="116" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0XkQF-53I/AAAAAAAAABA/a_WwLd1_crQ/s200/binclock_drilled.JPG" width="200" /></a></div><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
After also drilling holes for the power supply,<br />
I fitted the board into the frame. The three buttons for time setting flew just around.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_0-YJjJmvHSw/TP0Xw2d9PmI/AAAAAAAAABU/w51ekk1MTvk/s1600/binclock_unwired.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="480" src="http://2.bp.blogspot.com/_0-YJjJmvHSw/TP0Xw2d9PmI/AAAAAAAAABU/w51ekk1MTvk/s640/binclock_unwired.JPG" width="640" /></a></div>With a lot of hot glue (a sacrifice for the science ;-) all was in place and ready!<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0XzXSVs9I/AAAAAAAAABY/JPHUAGz8m9U/s1600/binclock_wiring_backside.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="480" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0XzXSVs9I/AAAAAAAAABY/JPHUAGz8m9U/s640/binclock_wiring_backside.JPG" width="640" /></a></div>The power supply is a 2W capacitor power supply with a european plug.<br />
Now coding started. For AVRs, I recommend the AVR studio with the GCC plugin!<br />
I use the 16-bit timer 1 to generate a secondary pulse out of the core frequency of 32.768 kHz.<br />
The clock counters aren't any special, three registers for hours, minutes and seconds.<br />
I used the ADC, and this is kind of special because it is claimed in the datasheet that the ADC just works in frequencies higher than 50 kHz. Due to the reason I only use the MSB for checking the brightness, it works really well!<br />
I do software PWM to get one tenth of the brightness of the LEDs in dark surroundings.<br />
The last part was to put all in place and then it was ready.<br />
Here are some pictures:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0Xmgfi-HI/AAAAAAAAABE/JkEQNT5Nyes/s1600/binclock_fram_fits.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0Xmgfi-HI/AAAAAAAAABE/JkEQNT5Nyes/s320/binclock_fram_fits.JPG" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_0-YJjJmvHSw/TP0Xom6FOuI/AAAAAAAAABI/B0TQ0wToJx0/s1600/binclock_lighted_flash.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/_0-YJjJmvHSw/TP0Xom6FOuI/AAAAAAAAABI/B0TQ0wToJx0/s320/binclock_lighted_flash.JPG" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><a href="http://2.bp.blogspot.com/_0-YJjJmvHSw/TP0XtqtEYsI/AAAAAAAAABQ/hvUc0QAr920/s1600/binclock_lighted_without_flash.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/_0-YJjJmvHSw/TP0XtqtEYsI/AAAAAAAAABQ/hvUc0QAr920/s320/binclock_lighted_without_flash.JPG" width="320" /></a></div>It is pretty hard to get it on camera. Either you get the bright flash or the LEDs disturbing the image.<br />
The best image was captured when I got my fingers in front of the flash:<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0Xqx_W3uI/AAAAAAAAABM/1WtoMP0rpAg/s1600/binclock_lighted_flash_mirror.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TP0Xqx_W3uI/AAAAAAAAABM/1WtoMP0rpAg/s320/binclock_lighted_flash_mirror.JPG" width="320" /></a></div>I hope you like it!<br />
Here are the links:<br />
<a href="https://docs.google.com/leaf?id=0B6zQQBlszFOyZjE2OTQ2ZTUtY2Y5Yy00MWE5LWE0ZDAtNDYzYzk2NjU3NjMx&sort=name&layout=list&num=50">Schematics</a><br />
<a href="https://docs.google.com/leaf?id=0B6zQQBlszFOyZjQzYzUxNzktNDc3Yy00YmI1LWFlNDUtMzViZjUwOTUxN2Yw&sort=name&layout=list&num=50">Layout</a><br />
<a href="https://docs.google.com/leaf?id=0B6zQQBlszFOyNzg5YjY4MjMtNDJlZS00NWQ0LWE5MTUtMWVlZDVhN2YzMTkz&sort=name&layout=list&num=50">Code</a><br />
<a href="https://docs.google.com/leaf?id=0B6zQQBlszFOyMmU1MDNkOTgtY2QxNS00ZmIxLTlmYjEtM2M5MzM3ZmRmNjM4&sort=name&layout=list&num=50">HEX-file</a><br />
<br />
Look in again!<br />
\apexys\toan\12062010\1844apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-78997083823095745472010-11-21T11:12:00.000-08:002010-11-21T11:14:28.306-08:00How to get schematics out of circuitsAfter my last blog, the hacked amp, I was asked by quite a few people how I got the schematics.<br />
In this blog, I'll try to give a deeper look on reverse engineering circuit boards.<br />
<br />
So if you have a old crappy electronic device and you take out the PCBs, what is first?<br />
You look for the datasheeets for all the chips on there.<br />
I didn't knew I was holding an amp in my hand when I was looking at the board.<br />
I thought it was kind of an digital to analog converter with low output power.<br />
But I googled for the datasheets and found the MS6038 datasheet.<br />
After I found it was a small amplifier, I thought, hey this would be rather useful in my workshop.<br />
By accident, there were no piezos on the mainboards but normal 8 ohm speakers.<br />
So I pulled out the the pin assignment table from the datasheet<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img border="0" height="145" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TOllZ42GUlI/AAAAAAAAAAo/t1oqo3ZMICs/s400/datasheet.png" style="margin-left: auto; margin-right: auto;" width="400" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pin configuration out of the datasheet</td></tr>
</tbody></table>Like you can see, it ain't very different to the pin assignment of a dual operational amplifier.<br />
Now, you could look at the application unit in the datasheet, but it isn't necessary the same as on your PCB.<br />
And what I did, was that I took a photo of the board and used a image manipulator like GIMP or Paint.NET<br />
to assign pin names.<br />
<br />
<br />
<br />
<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><img border="0" height="236" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TOlmtdCVkII/AAAAAAAAAAs/r4aCV1_vZ6U/s400/pinassignment.jpg" style="margin-left: auto; margin-right: auto;" width="400" /></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Pin configuration in the circuit</td></tr>
</tbody></table><br />
<br />
<br />
<br />
<br />
<br />
When I was done, I added names and descriptions for the rest of the PCB.<br />
<img border="0" height="480" src="http://1.bp.blogspot.com/_0-YJjJmvHSw/TOloaM48sRI/AAAAAAAAAAw/JDUgRSy9YmA/s640/full+assignment.jpg" width="640" /><br />
<br />
<br />
I found the places where I soldered the VCC and GND(Vss) cables by following the tracks, scraping off the solder-mask at a position where I had enough space to solder it and checking it with my multimeter in continuity test mode. The old socket for the headphone plug had three solder points. I metered them all to get the ground point.<br />
<br />
I knew there were electrolytic capacitors in the signal way so I couldn't test it.<br />
But if you have a two-channel amplifier, it is pretty sure you will have a two-channel output.<br />
<br />
Now I looked on the trimmer circuitry. It has only two outgoing wires and they even had tinned test points on them. A little step under the yellow text you can see my first trial to get contact to the tracks, but I had problems with shorting them out to ground.<br />
<br />
The last step was soldering cables to all the points I figured out and testing it.<br />
I used a square wave generator built of three parts: a 555-timer, an one-kiloohm-resistor and a 100nF capacitor. It generates a signal around 700Hz and allowed me to test the amps functionality with my oscilliscope.<br />
You needn't do that, I just wanted to see the level of volume raising.<br />
The output volume is about 140 percent of the input.<br />
<br />
Then I wondered why I didn't destroy the amp due to my eight-ohm-speakers<br />
while my amp was designed for 32 ohms.<br />
As I metered the resistance of the output, I found it being at 24 ohms. 8 + 24 = 32, so everything was okay!<br />
<br />
<br />
So now you know my procedure of refactoring a PCB.<br />
Whats next?<br />
Try it out yourself.<br />
<br />
And I have something coming up built with the cd-tray.<br />
<br />
\apexys\toan\11212010\1912apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-44255615906525122392010-11-18T12:37:00.000-08:002010-11-18T12:47:52.742-08:00How to get a really cheap stereo amplifier<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">I've been looking for a really cheap amplifier for my workshop,</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">so I can hear music over my MP3-player whilst building stuff.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">I got my hands on some old computers and tried to use only them as part source,</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">and here it is: The zero-cost amplifier!</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"><br />
</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">It is build of a CD-drive with headphone output.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The first thing I had to do was searching the amplifier circuit on the front panel board.</span><br />
<br />
<br />
<img border="0" height="156" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TOWF5SLBK5I/AAAAAAAAAAQ/6BxOFuDM74Q/s400/blend.jpg" style="margin-left: auto; margin-right: auto;" width="400" /><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody>
<tr><td style="text-align: center;"></td></tr>
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span>
<tr align="center"><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The front panel board without the end position switch</span></td></tr>
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span></tbody></table><div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TOWF5SLBK5I/AAAAAAAAAAQ/6BxOFuDM74Q/s1600/blend.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"><br />
</span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span></a><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TOWF5SLBK5I/AAAAAAAAAAQ/6BxOFuDM74Q/s1600/blend.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span></a></div><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">It was very clear to me that the amplifier is where the potentiometer sits.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">It's on the left half.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"><br />
</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The next thing was finding the chips datasheet.</span><br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span>
<tr><td style="text-align: center;"><img border="0" height="240" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TOWF-wvKvaI/AAAAAAAAAAY/_7PA2esQvNo/s320/circuit.jpg" style="margin-left: auto; margin-right: auto;" width="320" /></td></tr>
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The amplifier circuit with the MS6038</span></td></tr>
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span></tbody></table><div class="separator" style="clear: both; text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TOWF-wvKvaI/AAAAAAAAAAY/_7PA2esQvNo/s1600/circuit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span></a><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TOWF-wvKvaI/AAAAAAAAAAY/_7PA2esQvNo/s1600/circuit.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span></a></div><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">The </span><a href="http://pdf1.alldatasheet.com/datasheet-pdf/view/145267/MOSA/MS6308.html"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">MS6038</span></a><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> datasheet says its a Class AB Headphone amplifier.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">It looks like an opamp and it's also that easy to use.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">Now I cut it from the rest of the front panel board and desoldered the 3.5 mm terminal.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">After this I pulled wires from the circuit to this terminal and to two external speakers I got from old PCs.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">I used a mobile phone charger with 230V input and 5V output as voltage source,</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">but you can also use any other kind of power supply from 2.7 to 5.5 volts.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">Finally, I built a small free air circuit to make use of the busy LED.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">It contains of a capacitor with 3.3µF and some resistors to make it glim when the amp is in "standby" and light when music plays.</span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">I got all this parts out of my toolbox, so they were "free" to.</span><br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://3.bp.blogspot.com/_0-YJjJmvHSw/TOWQVlhHhCI/AAAAAAAAAAk/l3ucquZCLLY/s1600/glim_and_light.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="240" src="http://3.bp.blogspot.com/_0-YJjJmvHSw/TOWQVlhHhCI/AAAAAAAAAAk/l3ucquZCLLY/s320/glim_and_light.jpg" width="320" /></a></div><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"><br />
</span><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">I found out that this kind of circuit is very likely to be in all kind of cd players.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">Here is a photo of an portable CD-player.</span><br />
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"><tbody><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span>
<tr><td style="text-align: center;"><a href="http://4.bp.blogspot.com/_0-YJjJmvHSw/TOWGIqSxuoI/AAAAAAAAAAg/wGeGQL0WsZA/s1600/other_circuit.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="240" src="http://4.bp.blogspot.com/_0-YJjJmvHSw/TOWGIqSxuoI/AAAAAAAAAAg/wGeGQL0WsZA/s320/other_circuit.jpg" width="320" /></a></td></tr>
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">Alternative circuit out of a portable CD-player </span><br />
<div align="left"><br />
</div><div align="left"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"><br />
</span></div><div align="left"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span></div></td></tr>
</tbody></table><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<div align="left"><br />
</div><div align="left"><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">If you once need such an amplifier, you know how you get one for zero cost!</span><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;"> </span></div><span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">If I have updates, I'll post them in this blog, so keep looking.</span><br />
<span style="font-family: "Helvetica Neue", "Arial", "Helvetica", sans-serif;">\apexys\toan\11182010\2033</span>apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0tag:blogger.com,1999:blog-6802535159273814380.post-90760998086342006902010-11-16T06:37:00.000-08:002010-11-18T12:52:20.677-08:00How to rescue AVRs with wrong fuse bitsIt can really be hard to rescue AVRs with wrong fuse settings without a HV-programmer.<br />
But there are a few ways to do it.<br />
In todays blog, I'll show a few of them to you.<br />
<br />
The first thing to try out is providing an external clock at the XTAL1-pin.<br />
The clock frequency has to be higher than one kilohertz and lower than something about 16 Megahertz.<br />
This is a rather big frequency spectrum, so there are many possibilities getting such.<br />
Anything from the simply NE555 oscillator with only two external parts over the calibration clock of a oscilloscope to a crystal oscillator will do the job.<br />
Try to implement a pin-like place to apply it on your board if you design a PCB.<br />
It helps.<br />
<br />
Still not running?<br />
So try out the second option: Get out your old parallel programmer and connect VCC, GND, RESET, MISO, MOSI, SCK and XTAL1.<br />
The programmer will deliver a clock perfect optimized on the programming speed.<br />
Try also slow-ISP or slightly higher voltages.<br />
<br />
If nothing has worked yet, solder wires to all pins and build up a high-voltage programmer (if you don't already have one) like the AVRdoper (<a href="http://www.obdev.at/products/vusb/avrdoper.html">http://www.obdev.at/products/vusb/avrdoper.html</a>).<br />
<br />
Hope your controller works now!<br />
/apexys/toan/1115/1415apexyshttp://www.blogger.com/profile/02068524309764873565noreply@blogger.com0