I originally saw a demo of the Vodafone K3770 Mobile broadband dongle given by Ashley Mills of Vodafone at IoT London Meetup 9. In the demo the mbed was receiving SMS and outputting them to a printer. Shortly after this I got myself a Vodafone K3770 dongle and started to see what I could do with it. At the time the library was still in a beta state so any feedback was welcomed by the team developing it. Eventually the library was released as an official mbed library.
I had previously done projects with a number of 8×32 LED matrix displays with Arduino and had a code base to work with that could then be ported to the mbed platform. The idea of receiving SMS and displaying them on a scrolling message display sounded like an interesting project to use the mobile broadband dongle with. I had also started using the service IFTTT so the idea of being able to automate messages from weather reports to FourSquare checkins while still being able to receive and display other messages was being formed.
The prototype was built on stripboard and consisted of the mbed module, a USB socket, voltage regulator and of course 4 8×32 LED matrix displays giving a total message area of 8×128 pixels. I opted for the horizontal format as this lends itself better to long scrolling messages. Alternative configurations include 16×64 which could give a moving display and a static display to include date/time display.
Mounting the displays
I had a number of reclaimed oak floorboards that I had bought for a woodworking project and thought that mounting the displays in an oak panel would give a combination of old and new things. The oak would also match the furniture in the house so make the display more acceptable as a piece of furniture. The plank was planed and a cutout made using a router. The rear was also recessed to receive the displays.
The software has a number of features:
- Query Network for its phone number
- Display initial message showing its number
- A number of SMS command words are recognised to perform simple actions (e.g. Retrieve balance)
The code is available from my mbeed page ready to import into your own mbed.
Designing a PCB
In order to learn how to use EagleCAD for schematic and PCB design I decided to use this project as a learning exercise with the intention of having a number of boards made.
The production files were sent to Seeedstudio using their 2 layer Fusion PCB service. This is a relatively cheap way to have a minimum of 10 boards manufactured. The downside is that it takes a number of weeks for the boards to arrive in the UK form China.
Building first PCB
After just over 2 weeks, the PCBs arrived in all their green glory.
The new board was connected up to the displays and the first problem was noticed, the displays were in the wrong order. Checking the PCB I had drawn the schematic with the different select lines going to different digital outputs on the mbed. This is an easy fix in the code and within minutes it was displaying scrolling messages properly.
The printer port hasn’t yet been tested
A couple of people had noted that the copper layer covered the area where the dongle was connected, this could affect the signal being received. The other issue is that if the USB socket is soldered in correctly then the dongle is too fat to be able to fit. This was temporarily solved by raising the connector at an angle but this would put strain on the soldered joints.
Both of these issues can be fixed by altering the shape of the board so there is a cutout where the dongle is.
Mount the board on back of display
- Test printer port
- Update PCB with cutout for dongle
- Add licensing details
- Release schematics, parts list and all build files