I didn’t say it was pretty.
These little GSM modules and similar models pop up very cheaply on eBay, usually removed from old equipment and they are a great way to add text message (SMS) functionality to a project for very little money. I actually got this one for free and it doesn’t get much better than that.
They can do a lot more than just text messaging too, including GPRS data, phone calls, fax and supports phone books stored on the SIM and additional hardware such as a speaker, microphone, keypad and status LEDs, it even has a couple of GPIO pins. You could easily create your own Arduino based mobile phone with one of these if you were so inclined. I’m just going to be using it for SMS for the moment.
Other than the WMOi3 and an Arduino of some sort you will also need a 50 pin connector and an antenna with an MMCX connector, I’m using this one.
The data connector is a 50 way male header with a fine 1.27 pitch, mine came with a short female to female ribbon cable so I got one of these 50pin male headers and soldered wires for power and rx/tx to that, fiddly but doable and then liberally covered it in hot glue. I also brought out wires for CTS and RTS but they aren’t being used here.
The WMOi3 needs a 5V supply of at least 1A according to the datasheet (at risk of “serious dysfunctions” otherwise) so you can’t connect it to your Arduino 5V output. In practice it can use as little as 9mA when idle but during TX bursts at 2W it can apparently use anything from 810mA to as much as 1A.
Continue reading SMS with the Wavecom WMOi3 GSM Modem and Arduino
Turns out digital watches are a pretty neat idea after all…
Another Kickstarter project that I backed early last year was the Pebble E-Paper Watch for iPhone and Android, it was phenomenally successful, raising an amazing $10 million even though it only had a goal of $100,000. It has been over 10 years since I’ve worn a watch but I knew as soon as I saw the Pebble that I had to have one. It has been a long time coming though, I backed it on 24th April 2012 and at the time the estimated delivery date was September 2012 but I didn’t actually get it in my hands until the 4th of April 2013, almost 12 months on from backing it.
The Pebble Android app runs on my HTC One X which connects to the Pebble over Bluetooth, as standard it relays emails, text messages and the caller ID of incoming calls to the Pebble’s e-paper screen accompanied by a vibration to alert me. The built in music control app allows you to play/pause tracks playing on the phone as well as skip backwards and forwards with a display of the artist and track name, there is also a facility for alarms independent of the connected phone. The screen is easily readable even in very bright daylight thanks to that e-paper screen and when it’s too dark tapping the watch or flicking your wrist turns the backlight on for a few seconds.
To control it there are four buttons, a back button on the left and up, down and select on the right, below the back button is the charging connection which uses a neat magnetic connection to the USB charge lead so it just pops on, using this proprietary connector instead of a standard micro USB socket does mean you need the specific cable for it (and spares aren’t yet available so look after it) but it does allow Pebble to be waterproof. Battery life is said to be 5-7 days, I’m currently 5 days in and it’s still going strong so that seems accurate, it’s had a lot of use as you’d expect as well. They say you can expect a 5-10% hit on your phone battery life due to having the Bluetooth connected all the time but in my case it seems to have been more than compensated for by less screen on time on my phone.
Oh, and it tells the time too, it comes with three different watch faces preloaded and more are available in the Pebble app, you can then switch between them by using the up and down buttons. I like the one that tells you the time in nice big words like “three fifty nine” as shown in the picture above.
Continue reading Pebble, the E-Paper Smartwatch
OSWIN with ethernet and RFM12B and XRF radios
OSWIN is the only slightly contrived acronym for my new Arduino compatible Open Source Wireless IoT Node based on the ATmega1284P AVR microcontroller.
I blogged about using the ATmega1284P with the WIZ820io ethernet module last year and was subsequently sent two prototypes based on the same combo to evaluate, the MAX1284 and the Air Sensor Hub. For the last 6 months I’ve been running the MAX1284 prototype as a replacement for my Nanode emoncms gateway, uploading data from my TinyTX sensors to my emoncms installation and it has been rock solid. Inspired by this and with another $10 Seeed Studio PCB voucher burning a hole in my pocket I decided what the world needed was yet another open source Arduino compatible.
If nothing else this will now allow me to point people asking what I am currently using on the receiving end of the TinyTX sensors towards something they can duplicate for themselves and as it has all the standard Arduino features and more it can also be used as an “Arduino on steroids”. The extra resources will certainly come in handy in many projects, including use with some of the RAM heavy GLCD displays and it would help with the RAM problems I ran into with my Nanode based IR web remote control. As well as being Arduino shield compatible and having options for the RFM12B transceiver and ethernet module there is also an Xbee compatible socket allowing use of Xbee or Ciseco XRF radios or a wi-fi version can be created by fitting a Roving Networks RN-XV.
Continue reading Introducing OSWIN, the Open Source Wireless IoT Node
TinyTX3 fitted with a DS18B20 temperature sensor
Since I put the files for the first PCB version of my TinyTX wireless sensor node online in June I’ve heard from people around the world who have had their own boards made which is really encouraging, especially as it was my first PCB design and was mainly done just to learn how to use the Eagle CAD design package (I wish I’d seen these great tutorial videos when I started, it would have saved a lot of time). There is obviously a big demand for this sort of thing.
Like the earlier stripboard versions the first PCB version was designed purely for use with the DS18B20 temperature sensor but if you’ve been following the TinyTX progress you will know that I’ve since found lots of other uses for it. Having only 2 of the ATtiny I/O pins being available was starting to become limiting though so I wanted to do a respin with additional pads for some of the unused I/O pins and I also took the opportunity to fix the tight clearance between the power connections and the RFM12B, improve some of the layout and add spaces for decoupling capacitors on the ATtiny and RFM12B, I’ve not had any problems without them on the previous version or on the original stripboard design but it is good practice to have them so we might as well have the option of fitting them if required.
The biggest change is at the top where I’ve added space for 6 I/O pins plus ground and Vcc (Row 1) and instead of a fixed space for a pull up resistor I’ve added two rows of standard 2.54mm spaced holes, one row (Row 2) connected to the header row and one unconnected row (Row 3) which will allow for many more configurations. The IO pins are labelled with the equivalent of the Arduino digital pins as used in arduino-tiny, it looks a little odd as the numbers aren’t consecutive but I didn’t think it made sense to do it any other way. Continue reading TinyTX3 Wireless Sensor Board
The sensor egg
Way back in March 2012 I backed my first Kickstarter project, the Air Quality Egg from Wicked Device, a project to build a community-led air quality sensing network. It has been a long time coming but despite Royal Mail’s best efforts it has finally arrived.
From the Air Quality Egg website: “A community-led air quality sensing network that gives people a way to participate in the conversation about air quality. The Air Quality Egg is a sensor system designed to allow anyone to collect very high resolution readings of NO2 and CO concentrations outside of their home. These two gases are the most indicative elements related to urban air pollution that are sense-able by inexpensive, DIY sensors.”
The kit comes as two identical looking ‘eggs’, one goes outside and contains the sensors for NO2 (nitrogen dioxide) and CO (carbon monoxide) as well as temperature and humidity, the other is the base station that plugs into your network or router to connect to the internet. The main boards inside both eggs are SMT variations of our old friend the Nanode with the sensor unit also containing a custom designed shield containing the sensors along with sockets that allow additional sensors such as a dust sensor to be added. Once set up the base station relays the data from the various sensors to a customised version of the cosm.com platform at airqualityegg.com
The project came in for some criticism for being late to deliver (not at all unusual on Kickstarter), it was originally estimated for delivery in July 2012 and the kits didn’t actually start shipping until January 2013 and communication along the way wasn’t as good as it could have been, with irregular updates often spread across several sources. It did get a bit better towards the end though and the important thing is that they got there in the end, something that can’t be said of all Kickstarter projects.
So what’s it like? Continue reading Air Quality Egg – Community air quality monitoring
Note to self, don’t put silkscreen text over vias you plonker!
I’m still waiting for the PCBs for the latest revision of my TinyTX board to arrive but these breakout boards for the RFM12B transceiver which I actually ordered on the same day ended up getting sent a few days ahead of it for some reason, maybe it is because I went for a red solder mask for the TinyTX3.
The RFM12B is the radio module I use in the TinyTX, it’s also used in JeeNodes, OpenEnergyMonitor, Nanode, WiNode and the Air Quality Egg to name a few, it’s a very handy little board but it’s a pain to use on a breadboard or with stripboard, I decided I’d had enough of soldering little bits of wire to them so I thought I would get some proper breakout boards made.
Continue reading RFM12B Breakout Board
Like many people I bought a couple of the Stellaris Launchpads when they were on offer at $4.99 each including shipping, and I imagine I am not alone in having stashed them away and done nothing with them. I’ve recently become aware of two things that have changed this, firstly the Energia Arduino compatible IDE I mentioned here which allows me to use the Stellaris as an Arduino alike without having to learn a new IDE and secondly SLLogicLogger which allows you to use the Stellaris as a 10MHz 8 channel SUMP compatible logic analyser.
All you need is the Stellaris, the SLLogicLogger firmware, the Logic Sniffer OLS client and some way to load the firmware onto the Stellaris, I used the multi-platform toolset lm4tools.
Continue reading Using the Stellaris Launchpad as a Logic Analyser
For those times when you need something a bit a bit different to the usual Arduino fare, whether it’s something smaller or something more powerful but you still want to retain the familiar Arduino IDE there are quite a few options. As well as the usual microprocessors used with the official Arduinos you can easily add other “cores” to the Arduino IDE to allow use of many of the ATtiny microcontrollers (as used with my TinyTX boards or TinyPCRemote) or other more powerful Atmel processors like the ATmega1284P.
Over the last few months I’ve also acquired a couple of development boards that use much more powerful ARM Cortex-M4 based processors and at the other end of the scale, the tiny Digispark that uses an ATtiny85 with a nifty bootloader that allows it be programmed directly over V-USB.
One thing to bear in mind with these different architectures is that while the basic things will usually work without change, more complicated things such as libraries that use registers or directly address I/O pins will require (sometimes major) changes in order to function.
Continue reading Arduino Compatible Boards
The guys at OpenEnergyMonitor were kind enough to send me a prototype of their new RFM12Pi board a few weeks ago, this handy little kit allows our favourite low power radio board to be connected to the immensely popular Raspberry Pi. This makes setting up a tiny little server for receiving data from the OEM emonTX or my own TinyTX sensor boards very easy and negates the need for a separate internet gateway device such as a NanodeRF. If you want a local back end solution rather than a remote server it’s ideal.
While everyone else was struggling with interrupt issues when trying to get the RFM12B to work directly with the Pi, Martin went instead for the simple method of using an ATtiny84 to receive the data from the RF module and then spit it out to the Pi’s UART. A PHP script on the Pi then receives this, correctly formats it and sends it on to emoncms. Simple but effective and allows the tried and tested JeeLib RF12 library to be used on the ATtiny.
The board comes as a kit which shouldn’t take more than 10 minutes to put together and then just plugs onto the GPIO headers of the Raspberry Pi. Assuming you already have the Raspbian Linux distro installed on your Pi all you need to do is install emoncms (+ Apache, PHP and MySQL if not already installed), the PECL PHP serial module and the Raspberry Pi emoncms Module and you will be receiving data from your nodes in no time. Follow the complete setup instructions here.
Continue reading Using Raspberry Pi as a base station for TinyTX
Here’s a cheap way to build your own fully customisable infrared PC remote control. If you already have a suitable infrared remote control going spare you can build one of these for under £4, it will allow you to use most infrared remote controls to issue keyboard commands (single characters or a string) on your PC. Using a surplus remote control it could be used as a cheap media centre remote control with XBMC etc. or would be great for causing some mischief by covertly taking control of someone’s computer. I’ve tested it on several Linux and Windows boxes and one Mac and it has worked fine on them all so far.
At the heart is an 8 pin ATtiny85 microcontroller running at 16MHz using the internal oscillator with a Vishay TSOP31238 IR sensor handling the IR reception and USB implemented with V-USB. Each remote control button can trigger a single keyboard character or series if characters as well as meta keys such as shift and alt.
I couldn’t find any guides for using V-USB on the ATtiny85 under the Arduino environment so have detailed what I did in full here. Other than changing the default PIND, pin and timer settings the key seems to be that when using the internal oscillator like I am here it needs to be calibrated for each individual chip as the timing for USB is so critical.
Continue reading TinyPCRemote – An ATtiny85 Based Infrared PC remote control