 Sorry, all the spilling air is there. Okay, so Paul is... I'll talk about that. So there we go, that's me. I'm Paul, a VK1 Alpha Tango PAPA. Licensed recently after Kim and Josh last year at Perth encouraged me to go for a license at the Open Radio Miniconf. Got that in April, then upgraded to Advanced in August. It's been a bit of fun. So what do you do with... What do you call an amateur radio transceiver? You know, I've chosen to define it as a collection of components that receding transmits and covers one or more of the amateur bands in CWAM or SSB, one of those. Any object to that definition? At least one of, plus extras, yeah. And what makes it open? So, you know, TAPA Open Hardware License for the hardware bits, GPL software, and you want it for the schematics, the layouts and everything, or what? And because of the state of things, I am just saying, yeah, they try, because it's difficult. So what do you combine now? This is the main one, the Open HPSDR. It's a pretty serious kit. It's a TAPA project. It's been around for a while now, I think, but it's all open. So all the boards, parts, you know, schematics and the software to run it is all open source. They have a few different designs, you know, from 10 watts up to 100 and various ADC capabilities. And you can actually buy them through Apache Labs, an Indian company, pretty expensive, and it requires PC software to actually do anything useful. And that's what the commercial version looks like, which is, you know, a nice box as opposed to this thing. The next one is the 10TEC Rebel. It's an open source QRP thing, about 200 bucks for a built unit. Yeah, five watts and CW only, so no good for folks like me who don't understand Morse. It is standalone and don't need a PC for it. Yeah, no license I could find, but they do provide schematics and layouts in equal format. And the firmware for the chip kit Arduino thingo is provided. So with that, the community has added some bits. There's a frequency display. You can hook an LCD up to it and it shows you what frequency you're on, which is not standard on this thing. Autogain control and things like that. And 10TEC have announced the Patriot, which is an SSB one, but I've not heard anything about that since the Dayton in September. They merged with Alpha Amplifiers at the same time and I think they might have just got swallowed up and that's it. There may not be anything more out of that. This is the SDR Cube. It's a bit of an older one, I believe. It's a single band with a soft rock internal. I'll talk about those in a bit. They're reasonably cheap, but low output. It is all open in various Tapper and other licenses. And yeah, standalone box. It seems to be a pretty cool idea. That's kind of it at the moment for what you can actually buy. The next one you can buy, but it's a little bit different. And this is the future. The microcontroller SDR stuff. You get a cheap microcontroller, usually the STM32s these days, which you can do a lot of SDR on chip and not have to worry about all the rest of the hard bits of radio. And David Rose talking a lot more about that on Thursday. So go and see him. So this one is the MCHF, Chris Monca out of England, I think. It's fully open, except for one bit, the layouts. So he's selling boards to fund it. Yeah, it's STM32 there with knobs on, so you don't need a PC for five watts HF only. Yeah, no layouts. You can buy the boards, and it's a kit. So you have to put it together, and there's lots of even smaller SMD parts than you were building today. About 150 bucks worth of components there. And yeah, it's new and funky with the 3D printed enclosure, which you can see there. You don't have to do the 3D printed one. There are, I think there's CNC router files for it as well, so you can make a metal one. And so, yeah, that is actually it for what I found that you can buy right now. That's it for OpenRadios. There's a few coming soon, except for OpenQRP, which I only discovered yesterday, so I haven't researched that. Now, I think it's a CW board again out at Canada. QRP, obviously low power output. This is my favorite, the portable SDR. It's come out of the Hackaday Challenge. SDR, software defined radio. The idea is you have an analog to digital converter at your antenna, and everything else is done in software. It's not quite like that, but that's the idea. So, yeah, he built this for the Hackaday Prize, got third place, and sat-nogs one, which is another pretty cool amateur project, satellite ground stations. Yeah, this one is 5 watts HF and 2 meters, and it has a GPS chip on it as well, so you can do APRS and other fun things like that, which is the Amateur Radio Packet Reporting System. I think it's what it stands for. It's a 9600 board modem over FM audio. It's a bit convoluted, but the hardware is cheap and easy. Yeah, it's designed to be tinkered with, so he's laid out the board in a sensible way so you can put your probes in and do fun stuff and add-on bits if you want to. They're fully open in all of it. You can recreate it from the bits he's given us. And version two is nearly ready, and again, will be a kit with lots of tiny little parts. I mean, this board, yeah, it fits in the palm of your hand. It's that small. There's the white box project, which is Chris Tester and Bruce Perrin's out of Algaram. I think Chris is doing the work, and Bruce is saying how awesome it is, as Bruce likes to do. Yeah, SDR, it's a low-power FPGA-like thing, which I don't quite follow. I think it uses static RAM instead of DRAM, so it uses a lot less battery. It's VHF, UHF only, fully open, but dual-license so that Algaram can create appliances from it, I think is the idea. And it is more like a dev kit for an SDR than a transceiver, a fully working amateur transceiver. So the idea is you build the next version of the bau-fing handheld out of it that can do whatever you like. Yeah, he's probably had an update in the ham radio now, videos from the Tapper DCC, but I haven't watched him yet. There's the UDRX 440. It's a 25-watt, 70-centimeter, 433 MHz and up. $395, it was supposed to be released in Q4 last year, but they didn't. I think it's getting close. They had some issues with the RF power amplifiers. That's all open firmware I could find, and they say it's open, but I couldn't find the source, and I haven't heard anything else about it. It's a web-based thing, so you plug it into a network, point your web browser to it, and you've got a 70-centimeter SDR, which you can do all sorts of fun stuff with. There's these things, the SDR exciters, they're not really what I call amateur radio transceivers, but they do do what I said in the first slide. They're exciters because they're 100 milliwatts or less. They're very low power, kind of like the board we built today. You really need to have filtering for input and output on them and amplifiers to get any useful signal out of them. The Hack RF is pretty good. It's fully open, you can replicate it, and people have about $300 worth of stuff in that. The UHF SDR from WB6DHW is... Yeah, it's kind of like the one we've built today, but for a higher band, it's a similar level of performance. The Blade RF, it has various licenses for it. The boards and schematics are completely closed, you can't get them, but all the FPGA code, the host software and the libraries to communicate with it are all open. And then there's the USRP, which I forget what that stands for, but it's a really high quality SDR. It's been around for 15 years or so, and the newer versions are getting cheaper. They're down to sort of $600, but you can pay tens of thousands of dollars to these guys, and they'll give you awesome things that can sample all of HF at once at massive sample rates. Yeah, it needs gigabit, or 10 gig, I think, for the really expensive stuff. So there's the Softrock, which is a very similar idea to what we've built today. In fact, it's the same mixing arrangement. Yeah, exactly the same idea, different chips, and it also does transmit, you feed it baseband IQ, and it transmits that. But it's not quite open. It's a bit open, so you can get the schematics, but not the layouts. The control software was windows-based stuff that someone has cloned, and there is an open clone for that. But there's no source provided for the firmware, and you have to reverse engineer it or use their binary blob, if that's what you want. I think that was all I found, so there you go, there's my talk. Slides are available, and there are links for everything at the end. Questions? No, excellent. My question is, do you have a favourite one of the ones you've shown us? Yeah, the portable SDR, that's my favourite, I want one. Do you have any of them? I have a Blade RF, but that's it. I was going to build a soft rock, but then I thought, I'll build an open radio, that's much better. So why did you pick that one? Because it's all open, and the guy's actually built one. I've seen it working. Is that an actual screen on the front? That is a TFT, some sort of module, LCD thing, that plugs in over the SCL bus. Bob? The question is, some of the early ones don't need a computer. This one, it has a USB interface, but it's got all the ADC stuff built in. So you don't need to do the ADC on your computer. Audio, you get audio out of it. Similarly with this one, you get audio out of that. These guys, you get baseband IQ at some sample rate. Lots. Lots for these ones. For the soft rock, you just get baseband IQ audio. And then you do your sampling and DSP stuff on the computer. Some of them have the soundboard built into the box itself. Some use computer soundboards. Yes, some do use a soundboard on the computer, and some have it built in. That's basically it. A soundboard though is not necessarily a PC sound card. It can be a high sample rate ADC. And what's going across that link? What's going across the 10gb of 1gb link for the USRP is the sampled IQ. So you get one sample of i, then q, iq, iq, like that. So the ADC is in the box? In the box. Yeah. And the sound gets the same? Yeah. I mean these little TV dongles are similar. You get two megabits a second of IQ data. And you've got to process that with your DSP stuff, which I don't really understand, but I'm getting there. All right, that looks like it. Thank you very much. So I was just going to wave around some... Can you put on the lapel mic so we can record? But I actually have a talk. Do we have 15 mics? Yeah. Absolutely. Cool. Can you just open that? Yeah, take your lamina off, because that'll usually rub against the mic. Sure. Okay, that's it. One, two. How's that? Oh, we'll wait. One, two. Is that good? Oh. One, two. How's that? Sounding good? Great. Okay, so I'm Paul Campbell. I've been building open source hardware projects since the mid-90s. We didn't have a name for it back then. My original stuff doesn't say open source because we didn't have a name. These days, I build decked hardware for household phones. And before that, I built cables at top boxes. I had a... This is a project. I actually gave this talk at OSDC in Auckland last year. Apologize if you saw it before. I'm going to speed through it because it's intended to be longer. Plus, there's a big section at the end label demo, and I didn't actually come with a demo. So this is an open source project that I did over the last couple of years. Basically, we've got this whole Internet of Things, and we were all promised an Internet of Things, but where is it? We don't know yet. It hasn't shown up. It should be everywhere. But to have ubiquitous hardware that everyone can use, it has to be cheap, but it needs to be programmable. And frankly, we all want it to be hackable, don't we? We want to better play with it. We don't want to have some evil people just dropping things in our house. We want to better hack on ourselves. So we came up with this new platform. It's tiny, it's cheap, it's open source, it's hardware and software, and it's all free for you to play with. It runs on 802.15.4, which is what runs under ZigBee. It's just the Mac level of stuff, so it's small and cheap. It runs on a CPU that is so small it doesn't really have ZigBee, won't even fit inside it. So we just threw it away. The circuit is really simple. It's a CC2533, which is a TI part. It needs a crystal resistor and a handful of decoupling caps. And you can program it. It has sadly an 8051 inside, for those who know what that is. I apologize. But it's cheap. It's cheap. This basically is, you know, the board is that. It's a crystal and a QFN chip, which is hard to solder, but not impossible. You all learn how to solder surface mount today. There is one resistor to set some current. There are two caps there that stay empty. Two caps on the crystal and 3D coupling caps. That's it. You can connect serial port to it. You can connect. It has built-in serial port. It has built-in I2C, lots of GPIOs. What you make it do is up to you. So the CPU, basically it's an Apple II with RF. It's tiny. It's slow. It has a 32 megahertz, which is a bit fast for an Apple II. But it's an 8-bit CPU. It has the most abysmal architecture to program with you've ever seen. You'll throw your hands up. There's 32K of flash, 4K of SRAM. You can do lots in that. You know, for those who are used to Python and crap like that, it's, you know, this is tiny. We have a C compiler and we have an assembler. There are 19 GPIOs. There are two UARTs and an SPI. There are some timers. And there's some two gigahertz RF. And there's an AES unit, so you can do crypto. So we have a tiny OS and it's really, really tiny. It's 6K, because we've only got 32K of flash. There are very, very few calls. I'm going to show you them all today. As I said, few enough to put on half a dozen slides. It has tasks. There's a threading API with tiny tasklets. They're kind of like coroutines, because there's only one stack and it's 256 bytes. And we don't really have room to do context switches. There's no MMU. Basically, all there is is a timer queue and you use schedule things. And there are callbacks. So there are just two API calls to our task. There's queue task and how long to wait. And you can say zero if you want. And you can queue a task from an interrupt. So you can just say do it at the bottom, bottom half, just like you do in the Linux kernel. And you can cancel the task off the queue. That's it. There's an application model. We split our code between the kernel and applications. And I'll explain why in a little bit, because it's kind of useful. Apps get events from the kernel and they can call into the kernel. Events arrive synchronously from tasks. So you get your events and they occur in task context rather than an interrupt context. And apps have a single routine to which the events are sent to return when you're done. The RF does just the base level Mac level stuff. You can send datagrams. There's 128 bytes and about 100 of them are available. It's unreliable because they're datagrams and they get lost. So you're responsible for sending them. Routing is up to you or to us if you want to use our very techy broadcast routing protocol. But you get to play and experiment and do cool stuff. And we do provide an optional next level packet format for people who want to do other more interesting stuff, especially crypto. The API is very simple. Turn the receiver on. Turn it off. Set the channel. It runs in the 2GIG band. So it's the 2.4GIG band. So it's running in the cracks between the Wi-Fi. And you can set the output power to some level. We actually set it really low because we're building things for Burning Man. We want to have lots and lots of badges people are wearing that talk to each other but only locally. So we actually want to get the power levels down. There's an RF send and incoming packets arrive as an event. And that's it. And when you send, you get to say, here's the data you want to send, how long it is, what crypto key you want to use or no crypto and who you want to send it to or just am I going to broadcast it to everyone? So that's all you get. We have built-in crypto. It's easy to use because we've done all the hard stuff already. It's AES128. Bad crypto on packets means you never see them. They get dropped. That means lots of people can live on the same channel and as long as you don't have the same crypto keys, you only see the packets that come from your devices. Everyone else could be talking away and you can have packets colliding and you just don't see them. They fall on the floor. So crypto is not just about keeping secrets. Crypto sums provide much better data integrity than the simple CSE sums that people use. And application-specific crypto key means, as I said, many, many different people can live on the same channel. In our case, our hardware, our physical hardware holds a cached key entry and we have numbers for our keys internally. So we're not always passing around big keys. We're just saying use key number three. And one of the event callbacks is the hardware's saying, I need key number three. I just got a packet that was encrypted with it. So the only API is set the key and you get a callback that tells you what to do it. That's it. The best coolest part is we do software update over the year. This means that you can have 500 of these in the room and if you want to change the software, you don't have to walk around the room and put the programmer on each or 500. You just have to update one and it will update all the rest. It's really cool. I get to sit in my laptop and type make push and it compiles it up and it pushes it out. One of them gets the update and then they all start twinkling around and one by one they update from each other. What we do is we basically, I think I have some explanation here, our kernels are fixed. So we have 32K of flash. We use 8K of it for our kernel and the remaining 24K is split into two apps. There's the current one and the next one. So we can do update to one while we're running another one and if we get a bad update, we don't have to update. They're crypto, they're checksum. So if we get a bad one, we throw it away. We never run. We always run the one with the highest version that has a good checksum whenever we boot. And apps are keyed by platform and type and version. So you can have five different versions of the same hardware tasked to a particular application and they'll only take updates for that particular application so they won't accidentally get someone else's update. Everyone updates to a higher version. All the software update is crypto for two reasons. One of them is that we want to get really good integrity when we're doing a software update. We don't want to end up with a room full of bricks. Another reason is we don't want someone to take over stuff and throw their own code on it. So when software update completes, you get three choices. You get to reboot, obviously. You can do a restart which doesn't really reset the hardware in quite the same way and there's a way to pass state from one version of the software to the next one so you can do a software update and have the thing not remember what it was doing beforehand. There's some very simple GPO access available. I hacked up some macros that have the same name as the Arduino pin, the Arduino macros for those who want to look at them, but, you know, that's easy. The development environment is we don't want to use TI's compiler because it's not there as it comes from a third party and it costs a large amount of money, thousands of dollars. There is a compiler called SDCC. Much of TI's code won't compile on it, but we've hacked it up so it does. We did all the hard work for you. SDCC makes crap code, frankly, but it's a C compiler. It gets you going, gets you doing stuff. Once you run out of room or you want it to be a bit faster, you nip in there and you tweak a few bits and assembler and get the stuff you want going faster. We have a family of programmers we've built for this part and a QT-based GUI to drive them that runs on a Linux and I believe has been compiled to run under Windows, but I haven't actually seen that. I'm going to give a talk on Thursday on our random number generator that's based on the same hardware and uses the same programmer because everything's... So anyway, so programmers are USB-based. Ours is tiny. I'll pass it around. I'm also going to pass... I'll talk about this in a minute. This is the programmer we use. This one is atmel-based. For those who are building hardware, I love these little connectors here, which are tag connectors. The other end costs nothing because it's just three holes and some pads on your circuit board. So the programmer is something simple and dumb. I do not recommend people do the circuit board... No, the other end, the circuit board USB connector. It was a fun experiment, but I'm not doing any of those anymore. They're not good. I don't try it. However, they're tiny. And this is all open source. That's a very crappy photo. We also have some hardware that's basically a serial gateway. It's a set of firmware that runs on one of our development boards. We're going to do this one soon, which is the same software running basically as a programmer and as a... We'll pass this one around. That's a programmer and a base station. It basically lets you inject packets out into your Internet of Things. And it runs... It uses an RPC to talk between the CC23 and the host over a serial port. This guy also can act as a programmer and also can act as a dumb serial board. There's a C++ class host side. You can write your own stuff or you can just use the stuff we have for doing software update. It's all scriptable. So you can just send these packets and do these things and make a script and say, hey, we want to send some binary that does that and here's a key and here's what you should encrypt it. And there's support for software updates so you don't actually have to write anything to do that. It's already been done. It's all on the web. You can all download it. It kind of looks like this. We have a host CPU running Linux or whatever. We have an app running talking to the serial out through a serial port to the device we have on the end. Now it's all in one board here but we can use one of the other programmers with one of our current dev systems and then lots of other nodes that you can do software update to. So five minutes. Yep, I'm almost done. So I have some real platforms. There's a development system that I talked about. I have some Blinkies we're making for Burning Man which are got two LEDs on them that will have lots of people who want to pass them around. We have a management system for local ecosanctuary and we're going to tag all the traps and they're going to form a little network every once a day and report back on which ones have gone off so the volunteers don't have to walk the entire trap line. This is our dev system. We're going to pass through this. This is our normal programming environment which is a serial port and a programmer. Talking to the dev system, that becomes a serial gateway where you can use the little card you just saw. This is the Blinky thing I just passed around which is basically two LEDs and a battery that the IDR has everyone programs them up to program their group, their tribe, their camps colors but if you spend too many times with those guys down there you'll start showing their colors. If you go off to a rave where someone has a controller they'll all bounce up and down to the music and plus they'll route so we'll be able to inject packets and colors into the entire world. Let me quick. I sort of talked about Orokanui. The IDR is they want to put traps all the way around the outside and so we can form a network once a day and just get the data back. They kind of look like this and there's all sorts of other things people are doing. As I said, I didn't bring the demo with me so I'm done. Questions? What's the current consumption? When they're idle it's one microamp. When they're transmitting it's about, depends on the power but it can be up to 60 milliamps so it really does depend. The three volt supply it actually, everything runs on three volts basically. Do you have to do that yourself? You can. That's what we're doing. The only update, is that just for the application of the kernel? That's right. So the question is the application of the software update over the year just for the application of the current announcers? Yes. The kernel part is fixed. You only need an application there or a blank board. The kernel has a number in that 6k. I'm curious about the dipole antenna on the board. The dipole antenna on the PCB antenna on your board. Do you have any comments about the resources that you create that and how it works? We haven't done a lot of analysis that does about two blocks in the open air if I hold them in the air and my son runs to the end of the street. It really does depend on where you are. In the eco-centric we're worried about bush and things getting wet and those sort of issues. It was copied from somewhere else. I didn't do it myself. Anyone else? In the eco-centric are you actually using a hop-by-hop type method because it looks like quite a big area. We haven't actually deployed it yet because I partly did this project to get some students involved and get some stuff on the resonance. I don't know who's going to do that but I'm going to enjoy who you are because I've got it knocked out. Do you have a website? Yes, I do. I sent you the... Yes, but you're out. moveacetargo.com Sorry guys, we're going to have to wrap it up there. We have a hard time limit to be out or down stairs a workshop at 5.30. They lock up at 5.30. If you have gear downstairs please go down and pack up and get out of there. We've got a little bit of tidy up to do up here. Obviously I've got a few gear down there to pack up and stuff. Thank you all for coming. There will be more updates on the openradio.net.au site as we do more software and do more stuff. Obviously during the week we're going to be available to do more software stuff. If you haven't finished your build there will be more on the chat mailing list. What else? There will be more on the chat mailing list. I can't think of anything else at the moment. Thank you for coming and let's get moving so we can get out of here. I'm thinking that we should do this probably pack up. Thank you very much.