 Okay. I hope everyone can hear me. My name is Frans Grøder. I'm from the Netherlands. I live in Groningen. I work for the KVI. It's a particle accelerator, but in my spare time I work on this nice open source project. It's called USB PIG PROC. It's an open source USB PIG programmer. Before I tell you what USB PIG PROC is, I should first explain what a PIG really is. A PIG, you write it PIC, is a microcontroller made by microchip. And a microcontroller is actually a small processor, but it is embedded in one chip together with some flash, some memory, and some other functions like IO, but can be, they can have serial ports, analog to digital converters, and things like that. Well, where do you find those microcontrollers? You can find them, for example, in a remote control, which I have here, but you can find them in a telephone, but in almost every digital device, and some of them can be PIGs. USB PIG PROC is an interface to write your embedded software, which needs to run on a microprocessor into the PIG device. And it consists of three components. One is the hardware, which, well, you see it here. This is the bottom side, but the top side, you see it here. Well, it's actually this big. You probably can't see it from behind. And I also still have my first one. The hardware is also built around a PIG microcontroller, so it needs firmware. So that's also a component. And there is also a computer program to write your compiled program into the microcontroller. The key features of USB PIG PROC, well, I wouldn't be here if it wasn't open source, but it is also open hardware. So the hardware design is freely available, and there's even a different design, which is easier to make by yourself. Because this one, you will have to, well, be a little bit practiced in soldiering. Well, as the name already implies, it uses USB. It's a compact design, but the nice thing is that it doesn't need any external power supply to operate. Well, USB can, as you know, give a lot of power, like 100 mA by five volts. And that's enough to power the USB PIG PROC, but also the target processor that you want to program. And even some surrounding components. The interface is cheap. Well, I'll talk about that. And it supports many devices. For example, the 10F device is 12F, 16F, 18F. There's, well, I think over 100 devices now supported. So these are just series and a lot more are coming. And, well, I'm really putting too much time in this. So I think I can say it's actively developed. There are three developers now actively busy with the project. Well, you can buy this interface for $20, of 20 euros. But you can make it, you can build one yourself. You can add your own PCB and make one for, well, maybe less than 10 euros. Why would you use USB PIG PROC? Because there are many other programmers available. For example, Microchip has their own programmer. It's called ICD2. They have more, but this is a common one. It's not only a programmer, but also an insurer debugger. But, well, as you can see, it's $60. And, well, the firmware of it and even the hardware are not open source. There are some open source tools available to communicate with it, but I have not found them very stable. There's also another cheap alternative available, which you can also make yourself. It's called the JDM programmer. This one is a serial programmer. And, well, does your laptop still have one? Well, mine doesn't. And for most of the serial ports, you will need an external power supply. You can, well, they say on their website that you can use it with a power that your serial port supplies, but on some ports it works, on some computers it won't. And it is very slow. So it's cheap, but I wouldn't prefer this one. Let's talk about what the hardware looks like. It's a very simple design. I wanted to keep it as cheap as possible. It's built around a PIC 18F2550. This is a PIC microcontroller which has native USB support. So you just need to write firmware in order to communicate through USB. There's no external chip needed or whatever. And what you see here, there's a 5-fold to 12-fold pump. To program this PIC microcontroller, you need a 12-fold programming voltage. And there's a pump with just a couple of diodes and some capacitors which is controlled by the main controller to pump the 5-fold from the USB port up to 12-fold for the programming voltage. Besides that, you see some status leds to jumpers connected to those pins, a programming header and you will need to connect the cable to the target device. For those who are interested in it, you probably can't read the text, but this is the whole schematic. You see the voltage pump here. This is the 5-fold and there's some diodes. And those two pins are toggled in order to create a higher voltage and some transistors to switch the programming voltage. These are the status leds, a USB connector and the programming interface. Really, that's it. The hardware has been designed using a key card. That's a fully open source PCB suite which is, well, as you can see, very rich featured. You can design boards up to 16 layers and it has a rich library and a very unusual function, but nice for presentations like this. It even has a 3D viewer. The firmware of the USB pick proc is based on the microchip USB framework. This is just a bundle of source code with some examples which you can compile and you can write it into your microcontroller and it will have some basic USB functionality like bulk read and writes and you can just continue using that framework and, well, make your own tasks in it. There's one little problem with this one. It is an open source framework, but I would have preferred to use a GPL framework. There are some of them on the internet, but I haven't managed to get my code compatible with the GPL framework. We'll work on that later. It is also compiled with a microchip compiler which is a closed source compiler. I'm working on porting the code to a small device C compiler which is a GCC-based compiler. The main tasks of the firmware are to communicate with the PC application, of course. The PC application loads some data, compiles firmware and it just sends it in strings to the firmware or to the hardware. But all the programming algorithms are implemented in the firmware. So the serial signals in order to program the target board are really implemented all in the firmware and the PC software is kept very simple. This is because it is faster to implement it in a real-time microcontroller, faster than on a PC. A small task is to control the voltage pump of the controller. The PC software is unlike the other big programmers you find on the internet. Really cross-platform, so it works on Linux, Mac OS X and Windows. And this is thanks to the WXWidgets library and the PUSB. Those two libraries are both cross-platform. Of course, the software communicates with the USB PIGPROC hardware but also with the PIGDAM bootloader which is a bootloader which is a piece of firmware which is loaded in the hardware and you have to program that once. And once it's in there, you can just upgrade the firmware through USB. And you can also, USB PIGPROC can communicate with any device which has loaded, the PIGDAM bootloader. Well, nice things about Open Source Software is that you can see that people actually use it because they start translating your software. The main language is English but, well, actually the first translation I got was Arabic, surprisingly enough, but it has now been translated into Greek, Spanish, French, Dutch by myself, a Punjabi even. I didn't even know the language and Portuguese. I want to thank some people. The main developer, that's me, so I want to give some credits to myself as well. Somewhere over there, right in the back, is Jan-Paul Posma. He has written the bootloader implementation in the PC software. But he has also made the application Macintosh compatible. Two or three months ago, Francesco Montorgi, someone from Italy, joined the club of developers and he did a lot of GUI improvements and he made the application multi-threaded. Francesco is also working on WXWidgets. I also want to thank the translators, Christian, Jim, Patrick, Hadi, Karnbojit and Fabio. I couldn't have done the project without PIGLUB, so I want to thank Nikolas and also Kikat. It's very important, so I want to thank Champierre for this nice project. We're also important. Coffee has been provided by Arno van der Vecht when I was developing lately. So, do you have any questions? I still have two minutes. Yes? Could you talk a bit louder? I'm sorry, I really can't understand you. Okay. Well, I could have done that. Actually, that was my first plan. But the problem is that serial ports are rather slow to control the lines if you really want to make a direct programmer like that. Or do you mean that you want to communicate with FTDI chip to a PIG in order to program? Well, why would you? Because the PIG that I used already has USB. Okay. Well, yes, I could have implemented something like that, but I just didn't. Well, we can discuss that later, maybe. It's a long story. Anyone else? Yes? Well, the released version is very unstable, but there's some snapshots and they're getting better all the time. But it's pretty poor still. Sorry? Yeah, that's why I'm not using it yet. Thank you.