A year of falling back in love with Making/Electronics on Raspberry Pi and Arduino

The 80s

As I have mentioned many many times, my adventure with computers began properly in late 1982 with my parents getting me a ZX Spectrum. I went from BASIC to Forth to Z80 Assembler over a few years and loved it all. Ok, to be fair, 90% of that time was spent playing Jet Set Willy.

2013-06-15 10.55.55

But I also had a strong interest in electronics. I’d tried a few times to learn from books in the local library but most of them were still about valves! I got (and still have) “20 Simple Electronics Projects for the ZX81 and ZX Spectrum” around ’84/’85 but I still struggled.

Maplin

Then I discovered the Maplin catalogue in the local newsagent and was entranced. I ordered various bits plus a multimeter and soldering iron from them and tried to build a Kempston-compatible joystick interface. That never worked. In fact the only real things I succeeded in doing were to upgrade the 16K Spectrum to 48K, to move it into a new keyboard case and to replace the power jack and add a reset button.

2013-06-15 11.07.56

Electronics in College

When it came time to pick my college course in ’86, I initially looked into Computer Science in UCD/DCU/UL but the syllabuses back then were still full of Cobol, RPG (not the cool version of this acronym) and mainframes. Yuck! The Electronic Engineering syllabuses, in contrast, looked amazing. Analogue and digital electronics, programming, microwaves, bio-medical engineering, physics, chemistry, maths. Yum!

First Principles

So I enjoyed my 4 year degree in UCD and 2 year DSP Masters. Loved some subjects. Hated others. And sadly, electronics in general was one of the hates. I could blame the all-time worst lecturer on the planet for my detestation of analogue electronics. But it was really the entire UCD attitude of teaching the core principles without any practical understanding/feel/intuition that never worked for me. Our “practicals” were a joke of rushed setups and even more rushed reports. Zero actual understanding. If you want to freak out any ex-UCD Elec Engineer, just show them a circuit diagram with a transistor and inductor or ask them to turn on an oscilloscope.

transistor

I still think that way of teaching is wrong. The standard response from lecturers of the time was that if you wanted to do practical hands-on stuff, you should go to DIT, which they looked down their noses at. Or become a technician. Perhaps if they looked at Irish Universities pathetic record at being the source of great engineering innovations/patents/products, they’d think again about their sense of superiority. Metrics.

Solving Problems

On a positive note, the main benefit you get from an Engineering degree of this type is a strong approach to problem solving. You find yourself automatically breaking big challenges into smaller ones, you accept nothing at face value, you come up with models of how things work and then you validate them. If they don’t validate, the model is wrong, not the real world.

So the fact that the vast majority of UCD Engineers don’t end up working in engineering is possibly a good thing. That mindset is invaluable in most walks of life. Unfortunately Irish politics is the one area that could really benefit from it and has almost no engineering presence.

By the time I’d finished UCD, I was a software guy through and through. I’d learned C in 4th year and did all of my Masters using it. I was far more interested in the software development than any of the mathematical algorithms it was implementing. I never wanted to touch anything to do with electronics again.

The 90s

I spent the next 11 years as an Embedded Software developer working very closely with IC designers and board designers. Whilst I loved being near the hardware, I never wanted to do anything with implementing it. And as for analogue electronics. Shudder.

In parallel to that, I loved anything to do with the internet and was doing a huge amount of stuff there at home and as a sideline in my real job. I ended up switching to that career-wise with the great Embedded Collapse of 2001-2003 (aka the tech crash). I’ve had enormous fun over the past 10 years building Enterprise and non-Enterprise software. There has never been a dull day. In fact I haven’t been bored a working day in my life since my first job in 1992.

The Web

Tools/Languages/Platforms/OSes like Python, Linux, Django, JS, Node, Android, and PhoneGap are not just insanely powerful, they enable you to be shockingly efficient. It still amazes now  that I can come up with a vague idea one morning and have it built, deployed and live on the web that afternoon.

Whilst I loved the past few years of Twitter/Facebook/SoLoMo/etc, nothing really new seemed to be happening there. The world of purely-online had become stale and repetitive. However the online+realworld was only just beginning.

Sugru

The first hint to me that I was getting into a Making mindset was Sugru. Not only is it an utterly brilliant product but the culture that Jane and James have built around it is really something special. Sugru could easily have been another DIY shop staple beside the epoxy resin that the odd person might buy. Instead it’s something I can mention to a group of my wife’s old school friends in a pub in Wicklow and they know exactly what it is and how useful it is.

I still find myself every day looking for things that could do with a bit of Sugru to improve/fix them. I live by The Fixer’s Manifesto. Check out my patent-pending Sugru Wall Fingers.

2013-06-15 11.10.01

Arduino

It was April 2012 when the Raspberry Pi went up for pre-order that I started reading and thinking and realising I had tons of things I wanted to do which only made sense when you did online+hardware. Over April and May I had some sort of Damascene conversion and got completely buzzed about making things. I subscribed to MAKE magazine. I got my old electronics books out of the attic and then, exactly 12 months ago, I ordered an Arduino Starter Kit.

timehop

And wow, what a 12 months that Starter Kit kicked-off. I’ve gone from a simple kit along with a soldering iron and multimeter to a desk covered in modules, wires, interfaces, sensors and microcontrollers.

In fact I still use the kit every day. Here’s something I put together in 10 mins before I went to bed the other night. It’s an €8 DHT22 Temperature and Humidity Sensor with a cloned €4 Nokia 5110 mobile phone screen. The code is just a quick hack of two Adafruit examples from their libraries. Two modules, one resistor and an Arduino. That’s all.

2013-05-23 10.25.45

Open Source Hardware

And this is the huge difference from my college days – modules. In the past year I have put together idea after idea, project after project and I’ve only needed to use Ohm’s Law once. I’ve also used a circuit simulator once for old times sake. The flood of cheap parts available online from China with a worldwide community of Open Source and Open Hardware enthusiasts means that you can prototype almost anything with a minimum of electronics knowledge. The only things you need are inquisitiveness, patience and a basic ability to think things through logically.

The real heroes for me are companies like Sparkfun, Adafruit and of course the amazing Arduino group. They blend learning, fun, Open Source and a commercial sensibility brilliantly. Long may they prosper.

Raspberry Pi

As for the Raspberry Pi, I think its most important impact has been to mainstream all of this. I’m pretty sure a lot of people are starting with RPi, getting into the whole Making community and then learning about Arduino and all of the other OSH projects out there. Heck, even most of the people who just use them for XBMC have to install a Linux based OS on an SD card to get started. That in itself may trigger further interest.

Whilst we can all criticise many aspects of the RPi design (USB, SD card location etc), it doesn’t matter. The fact that it exists and enables people to be creative is what matters. Every day I see new wonderfully crazy projects built using the Raspberry Pi. These would never have happened without it. Sure there are other cheap single board computers out there that people could have used, but they just didn’t know about them. Awareness + Ideas is leading to incredible ingenuity.

One of my big challenges has been working out the best approach to reporting data online. The device that does this will need Wifi, not wired Ethernet and the numbers just never add up when I do it with Arduino. The obvious solution is a Raspberry Pi Model-A with a cheap USB Wifi dongle.

2013-06-05 07.32.44

This gives me plenty of welly for running Node or Python and can interface easily with an Arduino. But I’m still worried about that SD card dangling off the end. Most of the problems we’ve had with RPi (apart from the USB horrors) have been related to either the SD card refusing to stay well-seated or it getting corrupted by reboots (usually caused by the aforementioned USB horror). The Beaglebone Black’s use of on-board eMMC looks a lot more stable by comparison but the Google Group doesn’t give me confidence that it is ready for primetime quite yet.

RC Cars

We’re also just getting into RC cars in our house. After years of the kids getting generic toy-shop RC cars which see one day’s use and are then discarded when the batteries run out, we now come up with ideas all the time and give them a lash on the iRacer or the ZL-4.

2013-06-15 11.11.34

Halloween

My 9yo daughter came up with a completely insane idea for her halloween costume last week (this child thinks ahead!). It will involve wearables, servos and lots of arts/crafts. It will also scare the living daylights out of children and adults alike.

Her 7yo brother announced he wants to do a hockey mask and chainsaw. I’m still trying to figure out how Jason got so into mainstream culture that a 7yo knows about him. We immediately came up with a way of doing it that won’t offend too many people.

Wearables

I love seeing all of the activity around wearables from the likes of Adafruit and it really catches the kids’ eyes too. I need to put in an order for a Flora or Lilypad soon and try some things out.

1405_LRG

Health and The Internet of Things

The whole area of Health and the Internet of Things (IoT or IOT) is where my head is at a lot of the time in the past few months. Everything I have been doing around sensors obviously falls into the IOT category. I’m also making a simple set of devices that fit into the home automation category but will also have a web-site and API involved.

In a far-too-long-term project I’m working on, I tried to reverse engineer a commercial product’s wireless communications protocol. Of course I failed. So I ripped out the electronics from the device, soldered together an Arduino-compatible board, added a wireless module, loaded up the VirtualWire library and had my own protocol running perfectly with an hour or two of work.

Finally I have just ordered a board for health sensing that should be great fun and provide me with some useful Quantified Self (QS) data too.

You Getting Started

If you are interested in getting into electronics, I can’t stress enough how easy it is to get started. Buy yourself an Arduino Starter Kit here, here, here, here, or here, do all the projects in it and you’ll be ready to take on anything after that :-)

2013-06-15 10.35.01

Next

Honestly if you’d told me a year ago that I’d be doing this much “stuff” in Making, I’d have laughed at you, but there is just so much potential for trying ideas out that I don’t think I’ll ever stop. And you just know my next big milestone is a 3D printer, and laser cutter, and and and………….

My first stab at silicone mould making to cast an RC car suspension part

Regular readers will know that I’m a huge fan of the Dagu Arexx i-racer RC car. It’s cheap, light, fast, uses Bluetooth, has a removable shell and is perfect for n00b families like us who have never really done the RC thing properly.

Unfortunately after some over-exhuberant use recently, we broke a part of the suspension on one of the front wheels. Over the space of a few weeks I tried everything to fix it without success. That included:

  1. Trying to hand-mould thermo-plastic onto the remaining suspension member to rebuild the broken bit. It refused to stick
  2. Supergluing pieces of metal onto the remaining suspension member. They fell off.
  3. Soldering metal and wire onto the wheel hub to completely replace the remaining suspension member. This worked but was so loose and bendy that the car just drove around in circles.

2013-06-07 20.47.48

In the back of my mind I started justifying the cost of a 3D printer even tho I knew they were unsuitable for things that small.

I had pretty much given up when I read a post on Hack A Day about a guy creating new gears for his RC helicopter using silicone moulds and polyurethane resin.

The last time I tried to mould something was when I was about 12 and my sister got one of those castle-making kits where you had to make each “tile” from plastercast in green moulds first and then glue them together. Infuriating thing. What was that called? Can’t figure it out from Google.

But this guy’s approach looked perfect and appeared to make a strong item.

So I ordered some GP-325 RTV Silicone Mould Making Rubber and A2000L Easycast Polyurethane resin from a UK seller on eBay recently and it arrived last week.

I really wasn’t sure how to approach it so I just got stuck in. I removed the matching suspension part from the other wheel and put it in a plastic cup. I then mixed the two parts of the silicone as instructed and poured it over. Due to a rubbish kitchen electronic scales I wasn’t sure if the mix was correct so I let it dry for 24 hrs.

I popped the dry rubber out of the cup and could see the outline of the piece. I gently cut in with a blade and was shocked when the piece came out with no aggro and left behind a really impressive impression. The fact that the central hole was moulded perfectly too was the big surprise.

Phase two was less straightforward. I mixed the polyurethane and poured it into the mould. Despite tapping and squeezing etc, what came out an hour later was pretty stunted. I obviously had big issues with air pockets. So I cut away a bit at the top of the mould to make it easier for air to get out and the mixture to get in.

The second one was better but still not right. More rubber cutting ensued.

2013-06-08 18.00.11

The third mix was all wrong and never set.

Fourth time’s a charm and I got a “perfect” copy of the original. Obviously with lots of extra bits which I had to cut away.

moulds

I gave it about 16 hrs to cure, just in case.

2013-06-08 01.00.05

A tiny amount of trimming and it fit perfectly.

wheels

I’m genuinely stunned. I didn’t really expect a great result here but I got exactly what I needed. This method is amazing and so bloody easy.

2013-06-08 12.38.25

On the downside, I am concerned about the strength of the cast. Particularly the vertical bit which is what broke in the original too. I’m tempted to do another cast where I run a thin wire in the correct place to add some robustness. Having the mould means I can make as many of these as I like.

Is there any retail outlet in Cork/Dublin that sells the materials to do this kind of moulding? It’d be great to talk to someone who has done lots of it before about improving strength and flexibility and playing with the mix ratios.

I’ll update this when I’ve had a chance to test the car out properly.

What does this inside of a dead Fitbit One look like? This:

After my Fitbit One took a swim in a full washing machine cycle, it died. Many attempts with rice and pampers and warm air over a few days failed to bring it back. The utterly fantastic customer support people in Fitbit then offered me a free replacement! The only tiny downside is that they don’t deliver to Ireland so I needed to use a Parcel Motel address. It just arrived yesterday so I thought I may as well have a look inside the dead one.

It’s bloody well glued together so it took a while. I could instantly see that there was no hope that it would have recovered. Horrible green corrosion on many places on the motherboard.

2013-06-07 17.08.52

The main CPU/MCU is a ST Microelectonics ARM M3 (STM32L151QCH6) running at 32 MHz with 256KB flash. Same one as the Nike Fuelband, interestingly enough. I figure its built-in USB interface is a real selling point.

The LiPo battery is the smallest I’ve ever seen and I hope I can salvage it. Also the tiny buzzer motor might be usable somewhere.

2013-06-07 17.08.41

The Nordic Semiconductor nRF8001 IC is very interesting. It’s a full-blown single-chip Bluetooth 4.0 BLE (Low Energy) solution. I’ve been looking around for hobbyist BLE chips/dev-boards recently but they are too expensive. I’d love to see BLE used in home automation setups.

Our experience with tracking down a lost Fitbit inside the house using BLE sync from my phone to my wife’s Fitbit has made me a big fan of the technology! It would never ever have been found without being able to send alarms and triangulating in on where the lost device was. I eventually found it behind the lining inside a travel case in the airing cupboard after it had fallen from my wife’s armband in the middle of the night as she grabbed new bedclothes for one of the children. The last time something went missing in the airing cupboard, we lost a Nintendo DS for a year.

I’d love to see the next Fitbit have all the functionality of the One but also be 100% waterproof. Maybe simple capacitive touch instead of a button? That and the fact that the sleep timer has zero intelligence around auto-turn-off are the only criticisms I can make of an otherwise brilliant device. The recent update allows it to sync directly with my SGS4 so travelling will no longer be a “dark period” for up-to-date tracking.

Do yourself a favour, buy one and shock yourself when you realise just how inactive you really are.

 

Is the €10 Lidl Soldering Iron worth it? I think so.

I grabbed one of the Lidl Soldering Iron Kits yesterday in Dungarvan. Video below with my thoughts. Apologies for some of the stuff being off camera.

Overall, at €10 it is totally worth a punt if you don’t have an iron already.

Regarding the non-standard tips, it turns out there are compatible replacements out there. This seller on eBay has some. Also, Farnell do them for €1.15 each, but with the usual proviso that it’s a minimum €20 order with them, so you’ll need to find some other stuff to buy on the site. Shouldn’t be hard :-)

Maybe next time around, Lidl could go with standard tips, dump the “burning tips” and include some parts to do a simple project.

As I mentioned in the video, a huge part of my DIY and electronics gear comes from Lidl and Aldi. I think there is a real opportunity for one/both of them to do a lot more in the Maker area. An Arduino Start Kit for maybe €19.99 would fly out the door once word-of-mouth got started. I predict a 3D Printer “Thursday Special Offer” sometime around 2016.

Connecting an Arduino to Raspberry Pi for the best of both worlds

Rather than struggle with the very basic unprotected IO pins on the Raspberry Pi and the lack of real-time performance in Linux, the ideal setup for many real-world-interfacing projects is Raspberry Pi + Arduino.

After pricing a multitude of combinations of microcontroller boards and Wifi adapters, I found that the Raspberry Pi + USB Wifi + Arduino is the absolute best value for money if you need both wireless internet access and easy sensor data handling. (Note: I’ll be investigating the Beaglebone Black soon to see how it compares).

2013-06-05 07.32.44

There are four basic ways to connect Arduino to Raspberry Pi:

  1. Buy an add-on board like the Gertboard which has an Arduino compatible IC on it. Pricey.
  2. Plug a standard Arduino like an Uno or Nano into the USB port of the RPi. This is by far the easiest method and minimises wiring and hassle. However it requires the more expensive Arduinos.
  3. Use a USB to Serial adapter with a cheaper/smaller Arduino like a Pro Mini or a self-made Shrimp. This is the best DIY option and has the same advantage of method 2 that you can power the Arduino/Shrimp from USB. For a Model B RPi, I’d recommend this route.
  4. Use the Serial Pins on the Raspberry Pi to connect to a cheaper/smaller Aruduino like a Pro Mini or a self-made Shrimp. This is theoretically the cheapest method but by far the most hassle. This is also the best method if you are using the cheaper Raspberry Pi Model A and its single USB port is being used for Wifi.

I won’t go into the details of 1 since I haven’t done it. 2 and 3 are plug n play and require no instructions. 4 is the awkward one, so here are some notes to save you the hassle I went through.

The basic steps are identical to those described here. In hardware terms You connect the 3.3V/GND/TX/RX pins on the Raspberry Pi via a level converter to 5V/GND/RX/TX pins on an Arduino. Alternatively you buy a 3.3V Arduino and avoid the need for a level converter. I powered the Arduino separately to avoid overloading the RPi pins (this seems to be causing intermittent issues with RPi booting tho).

RPi software changes involve commenting out this line in /etc/inittab with a #

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

and removing the following parts of the one line in /boot/cmdline.txt

console=ttyAMA0,115200 kgdboc=ttyAMA0,115200

You also need to create a link to the serial port so that the Arduino IDE recognises it:

sudo ln -s /dev/ttyAMA0 /dev/ttyUSB9

That last step has to be done after every reboot. I should find a way to make it permanent.

Unfortunately this still isn’t enough to be able to program the Arduino from the IDE running on the RPi. We need to be able to toggle the reset pin on the Arduino to initiate programming. Normally that’s done by the USB-Serial adapters or the USB-Serial chip on the more expensive Arduinos. To do this in our setup requires following the instructions here where one of the Arduino tools is wrapped in a script which does the pin toggling at exactly the right moment. In summary:

  1. Connect Pin 11 (GPIO 17) of the RPi to the DTR Pin on the Arduino Pro Mini via the level converter
  2. Run the following commands to download and configure avrdude-rpi:
sudo apt-get update
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
wget https://raw.github.com/deanmao/avrdude-rpi/master/autoreset
wget https://raw.github.com/deanmao/avrdude-rpi/master/avrdude-autoreset
sudo cp autoreset /usr/bin
sudo cp avrdude-autoreset /usr/bin
sudo mv /usr/bin/avrdude /usr/bin/avrdude-original
sudo ln -s /usr/bin/avrdude-autoreset /usr/bin/avrdude
sudo chmod 755 /usr/bin/avrdude-autoreset
sudo chmod 755 /usr/bin/autoreset

I was getting a warning about “Channel already in use” from /usr/bin/autoreset so I added this to the end of the file:

GPIO.cleanup()

Note you must run the Arduino IDE as root from now on. i.e. in LXTerminal:

sudo arduino

If you haven’t already, reboot the RPi to make the earlier steps kick in. You should now be able to program whatever you like on to the Arduino using the IDE running on the Raspberry Pi. I even have this running headless by connecting to the RPi across the network using the Windows Remote Desktop Connection tool.

2013-06-05-084448_1920x1080_scrot

Any questions, pop them in the comments.

Replacing a broken Samsung Google Nexus S screen – a total doddle.

My Dad put a big crack is his Nexus S screen a good while back so I promptly ordered a replacement from eBay. I finally got the chance to fit it this morning and was thrilled that I didn’t manage to completely screw it up.

2013-06-01 12.38.10

A few useful notes:

  1. There are two major types of Nexus S. His is an i9023 
  2. Apparently there are also two different types of i9023 screen which are not interchangeable. Luckily the one I ordered just worked.
  3. It’s really easy to take the phone apart
    1. Pop the back off
    2. Remove a few screws
    3. Remove the inside back, popping off the snap-connectors as you go
    4. Be careful popping out the buzzer
  4. You remove the screen+digitizer module by applying lots of heat with a hairdryer. Use a plastic knife or plastic phone tool to apply leverage from the side and work your way around. Eventually it’ll separate.

This video shows how to do it for the other Nexus S model but the steps seem almost identical.

The only bit that had me worried was the adhesive. It was pretty much ruined by taking the screen off. I went to the local DIY store an bought a selection of double sided tapes and contact adhesives.

I the end I used some ALDI thin-ish double-sized foam tape to connect the top and bottom parts where the earpiece and buttons are. I then used simple Unibond no-thickness double-sided tape to cover the back of the screen. Together they joined the screen to the main body of the phone perfectly.

Then it was just a quick reverse process of clicking back on the connectors and putting screws in. It worked perfectly first time. And I had no parts left over!

 

Wearable tech, fitness, health and the “Quantified Self”

Nice quick intro by iJustine into this entire Quantified Self area. The section about using all of the data for predictive prevention of problems really caught my attention.

I’ve obviously been into the whole SoLoMo thing since first getting my hands on an N95-8GB in 2007 and I’ve been generating lots and lots of location data since then. But location is really only step zero. It gets far more interesting the more things you measure, which is why I also tried my first fitness tracking app on the N95 back then too.

Now I spend my day with a Fitbit One connected to my t-shirt; manually entering my weight, body/visceral fat, BMI, muscle from Omron Karadascan to Google Docs; having every run/walk tracked by RunKeeper or Endomondo; and, from this week, having an array of sensors on my desk measuring temperature, humidity and light. The latter set will soon be stored live to the web. My SGS4 has a barometric pressure sensor too and will be the “base-station” for all my experiments in this area.

One bit I’m missing is heart monitoring. I have an ancient chest-strap monitor from Lidl but it has no computer interface and is very uncomfortable. iJustine showed off an Adidas smart-bra which seems to have the functionality I need. Perfect for my moobs. Now I just need to find the male equivalent (or buy one and modify it :-) ). Alternatively I could try making one with some conductive cloth and an Arduino or will I end up in DSP filter hell? A fingertip sensor like this might be fine for some scenarios but you’re hardly going to wear it 24×7. Any other suggestions?

The only way you can improve is by measuring. I think we’re in for a very interesting couple of years and I can’t wait to see what people come up with.

UPDATE 1: According to comments on the Sparkfun site, that Pulse Sensor can be used on many parts of the body, including the chest. As I haven’t found any other Open Hardware projects that do heart rate monitoring, I think I’ll take a punt on it for $25.

Remote Control implementation for an RC Car – Part 1

There are many ways you can add remote control to a project. Off the shelf modules; Bluetooth; 2.4GHz NRF24L01+ transceivers; 433MHz/434Mhz modules or even Infra-red.

remote_control

My plan with our ZL-4 el-cheapo RC car was to use an Elecfreaks Joystick Shield, an Arduino board and the NRF24L01+ modules mainly because [a] the joystick shield has a connector for one and [b] I want to use them in another potentially commercial project and thought it would be a good learning exercise. They are also stunningly cheap at €1.26, including shipping, for each transceiver.

Unfortunately I discovered that the Adafruit Motor Shield on the RC car uses up a ton of the pins on the Arduino and makes it very hard to add the NRF24L01+. In particular it uses the SPI pins which you need to talk to the NRF24L01+.

So I went with Plan B which was the 433Mhz modules. These things are fab. They work in the unregulated ISM band like most weather stations etc and, like the NRF24L01+, are gob-smackingly cheap – €1.97 for the receiver and €2.14 for the transmitter. When I see people creating really simple projects but with 2x €20+ Zigbee modules, I just don’t understand it.

The 433MHz modules main advantage relative to the NRF24L01+ is that they can cover longer distances with a properly setup aerial. The main disadvantages are that they generally need that aerial, they have a very low bit-rate and you have to deal with most of the error correction etc yourself.

What transforms these modules into something pretty spectacular is the VirtualWire library for Arduino. This takes care of all the low-level transmit/receive code and you have to do little more than the equivalent of a print statement. Just think about this. You can send any information you like over hundreds of feet using €4 worth of electronics by simply calling:

vw_send((uint8_t *)msg, strlen(msg));

No Wifi or SMS needed! Of course this is a broadcast message and anyone can pick it up but who cares.

The one thing we do have to figure out is what happens when multiple devices are broadcasting locally. Will they interfere with each other? I know VirtualWire has CRC checking but that’s not much use if every message is corrupt.

For the remote control I have created an extremely simplistic “protocol”. The transmitter sends out the following every 200ms:

XnnnnYnnnnAnBnCnDn

Where Xnnnn is the X-axis of the joystick from 0 to 1024, Ynnnn is the Y-axis of the joystick from 0 to 1024, An is button-A 0 or 1, Bn is button-B 0 or 1, Cn is button-C 0 or 1 and Dn is button-D 0 or 1.

remote_control2

We are now successfully receiving and interpreting those messages on the RC car and doing forward/reverse. The bit we have to figure out is turning, as the car doesn’t have any steering.

More updates in a few days when we crack that nut. And I’ll obviously have to add some sort of “addressing” for the scenario where more that one RC car is being controlled in the house.