 I'm Phil King, and it's 8-bit Redux microcontroller hacking. There's a few things I just need to say up front. I apologize if my demeanor is a little strange. My laptop sucks in more ways than I can possibly relate, so I'm actually going to be working off the same screen you're looking at. If this seems a little odd, I apologize. But to give you an idea of what's going on, who am I? I'm Phil King, and specifically I'm a hardware engineer right now who does a lot of embedded systems development. Actually I'm working on IR wireless networking at a place called NetSchools. I've also been a game developer and hardware enthusiast for at least 10 years now. And hopefully what you're going to get out of this is some of the fun that I've had with 8-bit system development. Who are you? To be getting anything particularly useful out of this, I sort of tried to develop a profile. You know the basics of electronics and electronic logic. This is why I ended up in the UberHexer track, just a prerequisite that you are at least familiar with some of the basic terms. You know how to code. Preferably in assembly language, for reasons I'm going to get to in a little more detail later, you believe that 1K is actually useful space. It is surprising how much you can do in 1K. It's surprising how few people do it anymore. As I'll get into the architecture of some specific examples, 1K is usually enough to do almost anything you want to do with an 8-bit embedded controller. Presumably you've built more software than hardware, which is hopefully why you're here to get something on my talk. And you know you could do this stuff if you could just get started. That's what I'm primarily hoping to do is direct you to get yourself set up with a small development environment, a lab, so you can play with this stuff. Basically I'll cover what are microcontrollers? How to set up your lab, how to get some parts, once you know what you want to be developing, some basic rules of thumb for building and debugging, an example project which I will just give a cursory overview of, and the traditional inspirational message that has to go to every talk. Things I won't be covering. You will not see a lot of architectural specific details. Anything that comes off a data sheet you can look up yourself and you don't need me reciting. There are literally thousands of different variations of microcontrollers and what you specifically need is going to depend on your application. I also will avoid religious arguments, which are usually tightly coupled to data sheet details. I'm not going to tell you how to write code, presumably you know that. I'm not going to tell you how to solder. I'm not going to tell you how to tell an alum from an app. If you aren't familiar with the terminology, don't give up, but I would encourage you to get some basic electronics text and just find out, just learn the vocabulary. I won't tell you how to use an O-scope and I won't tell you how to hack cell phones. These are from a different talk. Okay. Thank you. Sorry about that. So what do you find in a microcontroller? The one thing that unifies them is of course a processor core. The original 8-bit microprocessors that we're all familiar with, the Z80, the 6502 and so on, were self-contained devices that had an address and data bus and basically were unified, unified architecture processors that could do general purpose computing. Microcontrollers have taken those cores or later variants of them and embedded them on the same die with other resources. Specifically what usually denotes a microcontroller is that you will have some on board memory. And I know that it could be ROM, Flash, EE Prom. Something that's interesting is that some of the devices that are one-time programmable, which is to say they can only be programmed once, are actually erasable devices that just haven't put in a package that you can erase. Another thing you will find on microcontrollers is they generally don't have an address and data bus. They have programmable IO ports where you set port directions, you can twiddly IO pins, but all of the specific bus interactions are taking place inside the device. And then there's a library of peripherals that you'll find stuck on the most microcontrollers. The most common are U-Arts, A to D and D to A converters. So that you can do small, completely self-contained solutions. In fact, a lot of the smaller parts have an RC oscillator built into them so that you don't even need to clock them externally. You can actually set a bit when you're programming it to clock itself, usually at some nominal slower rate, but it becomes a self-contained device where you literally just add power and it twiddles the IOs to do your bidding. And why is this useful? You can create really cool, tiny little systems. It's really compelling when you have an 8-bit DIP package that's doing something that you told it to do. It's nice to create cool software projects, but there's something particularly gratifying about hardware. Ubiquity. One of my favorite comments on this was in a 1976 small computing conference at MIT, they were talking about how computers were going to become ubiquitous. But of course, there is a logical extension beyond which this will not go. For example, it's not like you need a microprocessor in every doorknob. If you've checked your door at the hotel here, there is in fact now a microprocessor in every doorknob. Low cost. Economies of scale are driving the cost of 8-bit microcontrollers into the floor, and it's great because you can buy individual parts for one to two bucks. Even the high-performance high-end 8-bit microcontrollers are seldom more than 10. And in large quantities, you will find that they replace random logic efficiently because some of the parts I've seen in super high-production quantities are as low as 40 cents a piece. You get surprisingly high performance. CMOS can go really fast, even if you're only shuffling 8 bits at a time. There's a company called Cinex, for example, that makes a 100-megahertz 8-bit microcontroller. And then simply scalability. There is a huge design space you get to play in. What do you not get? You don't get lots of memory. As I was saying, 1K of code space is a usable and fairly typical amount. This isn't to say you can't get a lot of memory. You can buy microcontrollers that have 128K of code space on them. But unless you're doing something that really needs to be moving, that really needs that large an image, you're probably missing part of the point. And so I encourage you to know your code. Beware of compiler assumptions, and then recursion versus the two-deep stack. One of the nice things about playing with the microcontrollers is you get to know about what's going on at the metal level. In the AVR microcontroller, which is one that I'm using right now, the lower end versions have a separate, it's called a Harvard architecture. So you have a separate code and data space. And the two don't meet. And they've actually implemented the stack as a third separate hardware data space. It's only three elements deep. If you try to recurse with only a three-deep stack, you're going to be in trouble. And then finally, like I said, you don't have typically a complex memory interface. A lot of microcontrollers have only a low port. If you want to get something in and out of an external memory, you actually twiddle the address and data lines manually. There are some microcontrollers that let you assign some of the ports to be a memory interface. But even in that case, they make assumptions, for example, they own the memory. In even the old 6502, you had a memory-ready indicator so that you could hold off memory accesses, which would allow you to have a DRAM subsystem or something like that. So you want to set up your lab. What are you going to need? What are you going to want? You're going to want a 128-channel logic analyzer, a 4-channel, 2-gigahertz oscilloscope, a full system ice, and universal device programmer. After you've laid out your $38,000, what do you really need? You need a digital multimeter. You can spend a lot of money on a digital multimeter. You don't have to. This is a RadioShack special. It does 90% of everything you'll ever need. It's normally, I think, $22. I got it on sale for $16. It's accurate to 5%. It tells you what voltages are. All it does is extend your senses to be able to tell are two points electrically connected together. Is there a voltage across two points? It does most of what you need at a $100 flux scope. A logic probe is just an LED on a stick that tells you the state of a pin. The reason it's useful is that you can stick an LED on a signal and figure out what the state of it is, but you're loading it. You can stick a driver in an LED on a signal and find out what the state of it is, but you can only tell as fast as you can see. Logic probes will generally be able to detect transient events. For example, if something is turning on for one millisecond every second, you're not going to see that. The logic probe will. And it's just a little chunk of logic hooked up. Maybe it's typically $15 for a cheap one. Again, you can spend a lot more, but I got a cheap $15 logic probe that does pretty much everything I need. A microcontroller starter kit is what you're going to use to develop and test your code. And I've got an example of one here. Let me show you what the hardware looks like. Unfortunately, I did not take any pictures of this to get it set up on the slides, but it is a little bored. You've got a couple of serial reports going into it. You've got some LEDs and buttons. You've got some headers so you can plug it into the outside world if you want to. And then all you do is you download your code from your development environment, which brings me to the development environment. I say a PC probably running Windows, even knowing that that will get me stoned with this audience. There are lots of good development tools that will run under Linux. And there's more coming every day for all sorts of alternate operating systems. The good ones. The truth is though that the manufacturers are selling to the commercial market and the commercial market is still pushing the Windows development tools. So double boot your machine and bring up Windows every time you need to actually use their IDE and then throw it away when you're done. Other useful stuff you'll probably want to have around. A breadboard. You can spend 20 bucks and a breadboard is just a matrix of plug points that you can drop chips into and it gives you a way of wiring things together quickly. A power supply. The great thing about this particular development board and many of them is that they are really forgiving on what you can put into them as power. They've got a regulator on here so if you feed it anywhere from 6 to 15 volts, AC or DC of any polarity, it's happy. It fixes it for you. And a oscilloscope. I jokingly mentioned the four two gigahertz four-channel oscilloscope as something you want but don't need. An oscilloscope is a useful thing and you can get them fairly cheaply or you can build your own which brings me to the home-built logic analyzer. A logic analyzer just lets you look at multiple channels. The only reason that's particularly useful is if you've got multiple data signals and you want to see what they're doing relative to one another you need to be able to capture them all at the same time. There's a ton of debugging you can do by inferring by just knowing what has to be going on because that's the way you built it but occasionally things don't work the way you built them. If you want to... Sorry, hold on. As an aside, I am used to doing this talk to a group of about 15 people at a time and it's generally a much more interactive thing which is why I'm sort of going off in all directions at once and why I'm trying desperately to cling to my slides because they are my touchstone with reality. The data books data books you can get from manufacturers can be useful but for the most part they are out of date the day they roll off the press. The web is your friend and application engineers are your friends. They will provide you the information you need to know and I would encourage you to go ahead and call up the manufacturers in order to print copies of things like the instruction set because you need to know this stuff but for specifics about parts pull down the datasheet because you'll find out that datasheets often refer to the D and F version of this part after they fixed all the preliminary bugs. And then share and enjoy you will find a vast amount of interesting cool stuff about what people are doing online. So when you're trying to get your parts the first thing to keep in mind the manufacturer's job is to sell you parts. They can be very helpful but call your thing whatever you're building a product. They build products. If you call up and say hi I'm building this thing they will hand you off to a person who handles evolving accounts or developing accounts which means you get shunted off into a backwater and they don't really take you seriously. They won't take you seriously anyway but you can mitigate that damage. Project realistic volumes which is to say don't tell them you're going to be producing two and a half billion of your project but I'm going to be doing one to five thousand this year. That leaves open that of course the volumes will be ramping up. Engineering samples are a great thing. Generally if you can try not to talk to humans. My favorite example of this is the Maxim website allows you to get Maxim's generated circuits I believe up to eight or ten devices completely off a form on their website you never have to talk to a person. You will talk to a lot of representatives the manufacturers don't generally want to interact with the customers whether they're design engineers or just people calling for general information so they keep the lower of the representatives the manufacturers representatives between you and them they usually have pointers to these on their website maintain a world at X these guys only job is to know your name and to try to get you what you need you'll be producing two and a half billion units sometime in a few years and then finally know what you want I point this out it seemed obvious but I thought I'd mention it because as I said there's a jillion different variations of every part. If you call up and say hi I want an ATML AVR microcontroller you've just narrowed it down to about a hundred and forty parts if you say I want an ATML 80, 12, 80, 90, 1200 you've narrowed it down to a family of about ten but you have to specify everything so if you don't specify something they will often provide you parts which they pick at random from whatever they have on hand just be aware of how the part numbering scheme works and try to present complete information and then finally buy what you must there's a lot of good sources for small quantity parts Digi-Key and JDR Micro devices are two of my favorite so once you've got your parts together and you've put your lab together and you've got your development board and your building how are you actually going to wire breadboards are good as I mentioned earlier for wiring things up quickly for doing small projects breadboards as I said are a matrix of interconnect where you're just plugging boards on this white bed of holes they work for relatively slow things if you are trying to do anything at 10 gigahertz I'm sorry at even 10 megahertz you will find that you have signal integrity problems put a board and wire wrap is where you take a piece of burst board and you stick the sockets in it and you wire wrap them together it's surprisingly old and surprisingly good technology a wire wrap board will be good for up to 10 megahertz application typically and then finally I mentioned the joy and agony of surface mount devices as form factor has gotten smaller on virtually everything surface mount is often the only form factor a lot of parts are available in and the only way you can really use a surface mount device is to solder it down or at least solder wires onto it it's a real pain in the butt and I would encourage you to look into surface mount breakout boards they're just boards that have a surface mount set of pads that you can stick a part on to and then bring wires out from it's useful because it means that you can then run things at much higher speeds and finally if you're actually building a system that's only got a few parts you might want to consider doing your own printed circuit board that's sort of beyond the scope of this overview but there's a lot of good tools for doing simple board layout and you can actually fabricate them by hand debugging your hardware the single greatest problem is trying to figure out what part of your system is broken since you're working in both hardware and software try to develop software modules that allow you to test the hardware first and keep everything module of later early feature creep it's a standard obvious thing that everyone forgets but get it working then get it cool design for testability put some mechanisms in your hardware and in your firmware to allow you to probe different sections of the thing as I said keep it modular and then the hierarchy of failure this is what is most likely to break you you are uniformly you the engineer are uniformly the single largest cause of failure second the tools yes tools are sometimes broken sometimes the compiler doesn't produce real code sometimes the assembler is broken but it was probably you and finally sometimes the hardware is broken but it might have been the tools but it was probably you and then I tried to come up with a list of the basic rules of thumb that come out of more years of doing this than I can actually admit pay attention to current and drive capacity if you try to run a two horsepower motor off a logic level signal you will discover that it doesn't work buttons bounce when you press a button you as a human working in the millisecond time domain see a transition from off to on in the megahertz domain that your microcontroller may be sampling this thing it sees off on off on off off on off off on off on there are simple ways to fix this but just be aware that what you think is going on is not necessarily what's really going on when in doubt add a capacitor the truth is that higher speed parts draw more and more current every time you have a switching event you have a high current high current draw and that means that all of the leads coming from your power supply are getting drained down basically you have to provide localized power for all of your parts when in doubt stick a capacitor between power and ground which brings me to the next one sometimes polarity does matter if you stick a polarized capacitor between power and ground make sure you get it right because the smell of burning tantalum is really awful and if you're holding it when you plug it in live it will explode in your fingers and it's not very pleasant if it's hot turn it off there are exceptions to this if you're building a system where you know you've got to have a heat sink on your regulator then you can expect it to get warm if it is emitting light it is probably getting too hot try to understand the switching levels of the parts you're using it used to be that logic was inherently 0 volts is low 5 volts is high the switching threshold is 2 volts for anything above 2 volts is high anything below 0.8 is low this is TTL 5 volt those assumptions no longer hold because CMOS switching levels may or may not be used a lot of the CMOS parts use TTL switching levels but just be aware of it and then 5 volt versus 3.3 logic has been slowly migrating to 3.3 volts it's very possible to build an entire 3.3 volt system now it's very possible to build lower voltage systems all of this stuff works at 5 volts one of the nice things about a lot of the microcontrollers is they work at any voltage you feed them some of the pick parts for example will work at anything between I believe 7.5 and 2.5 something like this and the great thing about that is you don't even have to hook it up to a power regulator you just run the battery into it and the battery will drop off and maybe it will slow down it will eventually fail but you can get away with a wide voltage input pay attention to timing I'm not even going to justify that with an explanation and don't let inputs float if you have an input to a system floating just tag it to a power supply or at least pull up or pull down resistor on it if you've got a signal that's just sitting there floating along it resolves to a non it may resolve to a non-logical value or it may resolve to a case where some parts of the system think it's high, some parts of the system think it's low and you end up with a really nice high current path between your voltage source and ground and that ties back into if it gets hot turn it off and then a corollary to don't leave inputs floating that a friend of mine pointed out just as I was going over my slides this morning is make sure that you are actually applying power because CMOS devices can actually occasionally sort of work by powering themselves through their own inputs this is a particularly nasty bug to chase down because it's really bizarre behavior but basically make sure you actually apply power to the parts because it may still work and you won't know why if it acts flaky an example project that I wanted to frame this in was I saw a thing on Slashdot about a really cool little logging keyboard and I thought that is a great microcontroller project I believe they call it Ghostboard, something like this but it's very few IOs you've got a serial keyboard stream coming in and going out and then I wanted to be able to log whatever was going through there so you've got slow serial flash memory you can get some really large serial flash devices they're not terribly fast to program but the great thing is you can power this whole mess of just a few parts off the keyboard port you can sniff incoming keystrokes it can act as its own keyboard and it has some concept of time and the idea was that you would have this device that would be logging keystrokes as they come through inserting keystrokes if I wanted to and there's all sorts of great applications for this some of which are are even ethical and finally the inspirational message like any project the hard part of this is getting started hopefully this is giving you some really broad overview idea of how to get started the design space you get to play in is huge there's an infinite number of things you can build and a blinking LED is an amazingly satisfying thing to recap, microcontrollers different development opportunity, easy to get started and it's a lot of fun to both learn and tinker with this stuff and if you want to get an AVR development kit and this is why I was a little aghast at the size of the audience I have five of these things and so I'm going to use this as a chance to extract feedback from anyone who wants a chance to get one of these if you could write down a name or handle what I should change about this talk because I'm hoping to do more presentations like this and if anything if you liked anything about the talk, tell me that and tell me a project you'd like to do with your kit and then in about an hour five people can pick them up at the bellhop desk and they'll have your name or handle written on them I hope that some of you are inspired this, like I said is a complete AVR development kit it's got all of the software to it's got an integrated development environment that allows you to do assembly development and it includes one instance of the AT90S 1200 part which is 1K of code space 64 bytes of RAM a three deep stack and 15 IOs and it can self-clock itself at 1 MHz and then for Q&A question number zero, what is with the jacket? since I get a lot of questions about this I had to include this this is my artwork I made these up last year I'm actually selling them this year so I'm hawking them, they're 50 bucks this is how I pay for my trip in my amusement you would be amazed how much conversation these things have generated in the last year and if you want to contact me you can reach me at pking at pkscientific.com questions yes okay a lot of my projects lately have been trying to control GU between a PC with an arbitrary set of ports for example a serial port and external devices and so mostly really low speed stuff where I'm just parsing simple commands on a serial port and then based on that controlling an external device like a small robotic arm and junk like that what else have I done recently? there's an infinite amount of fun to be had with DTMF decoders and I won't elaborate on that and then of course most of my time most of my actual time lately has been sucked up with my job which is building a protocol control engine for an infrared wireless networking system which also uses an 8-bit microcontroller that's the other thing I wanted to point out I tend to emphasize the low end of the spectrum on these parts there's a lot of really cool 8-pin parts where you've got 6 IOs power and ground and you can do some cool stuff with that if you really want to you can get 64-bit and 8-bit micros you can get microcontrollers that have much more I.O. address data bus and also I've emphasized the low end of the microcontroller spectrum but you can get much higher performance processor cores there are 64-bit microprocessor cores embedded in control systems obviously they pay more but you can do more with them yes, I have seen them I cannot think of any specific yeah if you go to EDMag.com which is EDMagazine I believe it's EDM or EE times that does an annual microcontroller roundup where they present a summary of all of the parts pardon? Hitachi SH ok he suggested the Hitachi which also supports you said supports the beginner tool set yes sure I've managed to talk much faster than I usually do as I often do and I'm nervous in front of a large group so let's use the laptop for something useful again I apologize one of the things that this is the latest version of the AVR development studio it's a fairly nice integrated development environment and this is a remarkably trivial example but it shows you the whole design fly I created a 9 byte program which let me expand everything here basically this is just a little load some data in read in the set of buttons on the AVR microcontroller board and output it to the LEDs so I use buttons to turn on LEDs by way of a microprocessor yeah there's some unnecessary steps in there anyway do you have specific questions about the development environment or oh ok a whole good sub topic C development environments there are some good C cross compilers which will give you the ability to do fairly tight code I tend to not use them simply because I like to have really low level control over my code but I'm also fairly paranoid about that the truth is if you set up the tools correctly you can do it without shooting yourself in the foot the problem is that the C compilers primary reason in life is to optimize the code in ways that you don't necessarily understand otherwise you'd be doing it by hand and to hide things in the background so it's really easy to end up with code being fluffed up or shuffled around in such a way that you end up with a much larger image than you were intending that said there are a lot of good C development environments and in fact I believe there are a lot of the GNU modules for various microcontrollers so yeah yeah GCC is there a GCC for the annual rate? okay great, I apologize so yeah if you look around you will find some of these tools a lot of the third party C development tools are also available in various demo farms for free one of the nice things about the AVR development kit is also includes a simulator I haven't set up the simulation environment to demonstrate this but it lets you do step by step simulation of your code the caveat about that is you're of course working in a simulated environment where you don't have the benefit of your external hardware so you have to assume that you now know what the stuff you've glommed on to the microcontroller is doing yes yes a good place to, the question was what's a good place to find out information about the formats of the various binary files to strip out the headers and other information so you get just the code you need for your microcontroller unfortunately I have to say I don't know it's fairly context dependent I mean the specific file formats you mentioned Elf are I am assuming well documented but I do not know specifically where you would get the how to reduce it for a microcontroller version yes in small quantities I believe the specific part I'm using here which is a 20 pin dip is about two and a half bucks so good for small projects yes am I using the AVR commercially and if so am I able to get any of them right now this is another good question ironically you can get engineering samples you can't actually buy most of them right now this leads into an aside about the electronics industry that's fairly hideous but you would think are uniformly available and infinitely cheap are actually on allocation allocation is the process by which they tell you sure we can get you that part in 58 weeks right now I have a project that is in development that may use an AVR although I'm early enough that I'm seriously concerned about the fact that the lead times are huge any other questions oh sorry yes first question in the process we know it actually comes with the starter kit one of the nice things about this particular starter kit is you've got a serial port and the development environment will generate a binary file or several different formats of binary file and then a programmer there's program code in the development environment that allows you to just directly dump it into here in this case it's a flash microcontroller so once it's programmed it's non-volatile and you can cycle the contents about a thousand times before you start to stress the flash sales oh buying microcontrollers from Motorola over the web I'm not familiar with that I have used some of the Motorola family in the past they're very good parts a lot of them are derived from architectures that you are probably already familiar with the 6800 series and so on am I that nervous thank you no there's no reason to avoid them I'm actually quite fond of the 68HC11 family which is a great 8-bit part and there's no reason not to buy them over the web one of the this starts to get into the datasheet details but there are a lot of good features the 68HC11 series in particular has a lot of different onboard peripherals available right now and so if you're looking for a rich feature set that is a good way to go yes he asks what are good books on interfacing to external peripherals stepper motors IR systems and so on I used to have a few books that I recommended although as you pointed out the things get out of date really quickly because especially state of the art in high performance high current switching transistors for example has come a long ways last few years where you used to have to go through gyrations and perhaps actually have several stages of drivers to drive even small motors you can now do it with monolithic devices what I actually encourage people to do is just surf data sheets generally find application notes that describe what you're trying to do and find data sheets to make sure that the specifications fit yes what's a good way to surf for this information I unfortunately I don't have a good sort of unified solution I'm a web minimalist I just go to google and give it a few search terms and see what pops up surprisingly often you will hit manufacturers pages or if you include a search term of application note that filters out a lot of crap any other questions yes are the microcontrollers provided with sensors do manufacturers tend to write a unified assembler that works for all of the microcontrollers in their family the question is are the microcontrollers provided are the assemblers provided with the microcontroller yes generally the assemblers are divided by family because what will happen is within a particular microcontroller family the instructions at architecture will be approximately the same there will be some instructions that aren't supported because for example that addressing mode doesn't exist in the hardware but for the most part the manufacturer will generally have a baseline assembler that they provide for example in this system you have to specify which of the AVR family you're using so that it knows if you're trying to set up the stack pointer and it doesn't have a stack pointer it will tell you you shouldn't be doing that the the cross compiler tools or cross assembler and cross compiler tools such as the GNU tools are available for a vast number of parts and those are maintained independently some of the manufacturers are actually going over to things like the GNU tool set as their baseline tool set for the most part everyone still has some third party or in-house developed assembler they like any other questions yes how to pick out an oscilloscope on ebay how to pick out an oscilloscope on ebay how to pick out an oscilloscope on ebay it depends on it depends on exactly what you're trying to do with it that the most useful thing in oscilloscope lets you see is signal versus time the second most useful thing if you have a two channel scope is seeing two signals versus each other if you're trying to pick out a good cheap used oscilloscope and you're doing microcontroller systems a bandwidth of a few tens of megahertz is going to give you anything you would want to see in terms of intentional signals I say intentional signals because the caveat is if you've got noise in a system that's for example glitching during a switch you may have very short duration spikes and you would want more bandwidth on your oscilloscope to find that are there kits that you can use to use your computer as your oscilloscope absolutely a lot of the high end oscilloscopes now are basically just a windows box stuck onto a chunk of hardware that's the oscilloscope you can go the other direction and get a sampling card that you stick into your PC at the very low end you can actually make an oscilloscope out of a good sound card you can just feed that as an audio input and sample it it will show you the waveform but again you're fairly bandwidth limited there yes could you repeat the name I know what you're talking about and I can't think of the name Fred Martin the handy board is that the 60 at HC-11 based one that is a great development board because that provides the microcontroller it's very similar to this sort of thing and it provides a breakout of the signals and a way to hook things up and I believe in circuit programming although I'm not sure you would have to search unfortunately I don't have a pointer to that ok, Fred Martin handy board web search any other questions ok, I'm going to call it quits then I will be around for a few more minutes over here if you want to drop by your commentary and tell me if you want an AVR development kit and thank you very much for listening