The Things are coming…

Recently, I attended #offcamp – a barcamp style discussion around open data which was organised by @bcs_isleofman and free to attend.

The morning sessions were OK and it was good to see that some thought is being given to making data open and available, especially data that has been collected by governments and already paid for by the public.

However, what really caught my attention was the crowd sourcing of data using sensors and the Internet of Things. I hadn’t realised that the problem of expensive telecoms links for remote IoT devices is beginning to be solved by new RF chipsets based on spread spectrum techniques similar to those used in QRP amateur radio experiments.

Sadly most of these RF technologies are proprietary, but that doesn’t mean that the infrastructure built with them has to be. A group of people from Amsterdam have built The Things Network which is an open movement with the aim of providing free and open communications for IoT devices around the world.

Given my interest in radio and electronics, together with the open philosophy of building something free for community use, I knew that I wanted to get involved with this. So, I’ve established an Isle of Man community with the aim of getting our very own Things Network established here.

Guerrilla Wifi?

This week, I tried some different firmware on the ESP8266 modules that I have. I flashed a version of NodeMCU which allows Lua scripts (and other files) to be uploaded.

By using this software: https://github.com/reischle/CaptiveIntraweb I was able to turn the ESP8266 into a wifi access point which serves a static site, regardless of what web address the end user tries to reach.

Given the small size and modest power requirements, this would be great for announcing things to a wide audience by placing an ESP8266 in a busy area, and choosing an ‘inviting’ SSID for people to connect to.

I’ll leave it up to you to decide whether to use this for marketing, advertising or political activism…

RFID Business Cards

I was lucky enough to get some vouchers for Amazon for my birthday recently. I bought some things I needed, but then had a couple of pounds left on the voucher. I decided to ‘waste’ this on some MiFare Classic 1K RFID cards.

These can be formatted to the NDEF standard, which means that many devices (although usually phones in everyday use) will understand the data payload and know what to do with it.

I used a trusty Arduino Uno together with a PN532 RFID chip to write a URL onto the cards. Now anyone with an RFID enabled phone can scan the cards and instantly be taken to a website with more info about me.

I like to think of it as an RFID business card!

Adventures with the ESP8266

I first saw an ESP8266 board at OggCamp as part of a central heating control project. Recently, I’ve been researching a project for CodeClub that needs to control devices remotely over some kind of radio link and so I thought it was time to get to grips with these devices.

They turned up in the post with absolutely no documentation whatsoever. A quick search with Google images hinted at a pinout, and so I tentatively applied 3.3 volts (from an Arduino Uno) to what should be Vcc and GND and was reassured by an LED lighting up on the board.

I then realised that I didn’t have a 3.3V serial I/O device to attach the ESP8266 to a computer for programming. The Arduino UNO has a serial interface, but it’s at 5 volt logic levels. I ordered a USB to serial board based on the FTDI chip, and waited…

Finally I was all set. FTDI interface attached to laptop, and with the help of some crocodile clips and breadboard, I had everything hooked up.

Nothing worked.

Hmm. After half an hour of checking connections and fiddling with baud rates in the serial console, I finally realised that there is a pin labelled ‘CH_PD’ which needs pulling up to Vcc to bring the chip out of a powered down state!

I had blinky lights and setting the baud rate to 115200 produced readable text from the ESP8266 on my screen. Yay! Sadly, I couldn’t get the device to accept any commands until I realised that it needs both a carriage return and a linefeed character after each instruction.

So now I had success in that my laptop was talking to the ESP8266, and that it was talking back. The next step was to replace the stock firmware (which is based on the old Haynes AT commands for modems) with something more flexible.

I opted to use the Arduino IDE, as I’m already familiar with the C style code it uses. Adding the ESP8266 using the IDE’s board manager, and pasting in this url: http://arduino.esp8266.com/stable/package_esp8266com_index.json was pretty easy. Great work, community!

Finally, I found a nice piece of example code which I copied and pasted. I edited the WiFi config details, and also changed the GPIO pin number (as my ESP8266 only has two!) and then compiled and uploaded. You have to ground GPIO 0 pin when applying power to ESP8266 to get it ready to accept new firmware. This worked first time. Yay!

So, taking my phone and sticking in the IP address which the ESP8266 had been assigned (by DHCP) produced a simple web page with an ‘on’ and ‘off’ button. I attached an LED and resistor to the GPIO pin on the ESP8266 and felt a great sense of achievement as I was able to turn this on using the menu on my phone. I also checked from a browser on my laptop which worked well too.

So, concept proved. I really like the ESP8266. Cheap, easy to program and with enough power to be totally self-contained for small Internet of Things projects.

Digital Voice in Amateur Radio

Analogue signals are great in that they are simple enough to generate and demodulate, but they suffer in that the signal quality degrades when sent over a noisy radio link. With radio voice systems, this is heard as pops, crackle, hiss etc. and the problem gradually gets worse as signals get weaker. Human ears do a remarkably good job of dealing with noise but it can get tiring when listening for long periods.

Way back in 1948, Claude Shannon proposed that digital coding systems can be designed in such a way that error-free transmission can occur even through a very noisy channel. My first encounter with amateur radio using error-correction was operating AMTOR in forward error correction mode on the HF bands, from the station of G3IUB at the University of Birmingham in the early 1990s. The station consisted of a Trio TS-520S transceiver (yes, valves!) coupled to an AEA PK-232 terminal node controller, with an amber screen serial terminal made by Wyse. It was actually quite impressive to watch the text on the serial terminal edit itself, so that rogue characters got corrected as more data came in over the air.

Although I’ve been a radio amateur for decades all of my voice transmissions have always been carried by analogue radio signals, modulated by various combinations of phase, frequency and amplitude. However, the increase in computing power and falling costs over time have now put digital voice modulation schemes within reach of the radio amateur.

Recently, several competing amateur radio digital voice systems have come into existence. Sadly, they are largely proprietary and do not interoperate. After all, there is just one radio manufacturer behind each closed protocol. This goes against the spirit of amateur radio (which in my mind is the original open-hardware movement) and it shouldn’t be necessary to buy a specific type of transceiver from one specific manufacturer just to operate in a specific mode.

In 2005, the European Telecommunications Standards Institute (ETSI) ratified a specification for a digital voice modulation scheme. This has been adopted by PMR radio manufacturers and is growing in popularity throughout the world as a new PMR radio standard. Although the voice codec used is proprietary, the specification itself is open and so it lends itself to easy investigation by radio amateurs.

So, I have decided to jump on this particular band wagon. As well as the usual PMR manufacturers, there are now a range of Chinese manufacturers producing DMR compatible equipment very cheaply. I managed to source an MD-380 hand-held radio from TYT, with a drop-in charger, two antennas and a hands-free microphone all for less than £100, including delivery to the Isle of Man.

First impressions are that the codec is somewhat brutal. Everyone sounds somewhat robotic, but once you’ve got used to that the audio is very intelligible. Unlike analogue FM, there is no hiss. No background crackle. None of the multi-path ‘flutter’ you get on stations in moving vehicles. A very strong FM signal probably sounds better than DMR but for hand-portable radios strong signals are rare. Listening to perfect audio from DMR in weak fringe areas is much better than struggling to pull a voice out from the noise you’d hear on FM.

You also get other value-added features with the DMR protocol that you don’t get with analogue FM. Each radio has an unique identity, so you can match that up to a user’s call sign and have your radio display the call sign of the person you’re listening to. That’s great if your memory is as bad as mine, and it takes some of the stress out of mobile operating. Also, DMR was designed with repeater infrastructure in mind which means that roaming between coverage areas is seamless, with no need to fiddle with your radio while driving. DMR is also a time-division multiplex system which means that two separate conversations can occur simultaneously in one 12.5 kHz wide radio channel. You can also see the received signal strength from the repeater at the same time as you’re transmitting into it!

Of course being digital, sending data between repeaters via the internet is easy and so a worldwide network of linked repeaters has sprung up. This means that noise-free global communication is now possible from one hand-held transceiver to another. Thanks to the hard work (and deep pockets) of two local amateurs, we have two linked DMR repeaters on the Isle of Man.