A few people have expressed an interest in my r2_control system, so I thought I’d do a post about how it works, and what it needs.
At the core is a Raspberry Pi 3B+. This runs the main code, and also any programs to interface controls (PS3, Web, Instant Messenger). It also acts as a wifi hotspot.
From this Pi you can add a Sabertooth 2×32 and Syren 10 via USBSerial to allow control of those using packet serial communications. A python library for which I have written to make things easier.
Recently, a GPIO option has been added to the core code so that you can trigger relays and other switched items directly from pins on the Pi. I use this to trigger the relays that break the connections to the foot motors and dome motor.
Lastly, an i2c connection is available for communicating with various other boards such as the Adafruit 16 Channel PWM controllers, RSeries lights, ReelTwo system, etc.
A basic system to have simple control over a droid with no opening panels and no triggering of dome light sequences can be had with just:
1 x Raspberry Pi 3B+
1 x Sabertooth 2×32
1 x Syren 10
1 x USB FTDI (For USB interface to Syren 10)
1 x PS3 controller (Or PSMove)
Whatever dome lights you wish, eg TeeCees.
Power distribution (Fuses, power switch, etc.)
2 x Drive motors (eg. 100W Scooter)
1 x Dome motor (eg. pittman)
You can run the Pi from the BEC built into the Sabertooth if you wish, but I do recommend at least a 2A buck converter on its own fuse.
If you want to run any servos, you can add the Adafruit PWM controllers onto the i2c bus, up to 6 can be added by configuring the address jumpers. One in the body and one in the dome is usually enough.
This system can of course be added to. Relay control over the motors, light sequence triggers, and other gadgets such as smoke machines.
The current state of PSI displays from the club are either simple TeeCees ones, or the VADER boards. I’ve had a couple of the VADER boards in R2 for a while, but recently I’ve had issues with some of the LEDs failing. Unfortunately, as these are WS2812 addressable LEDs which means when one fails then you can’t communicate with any further down the line. They are also all surface mounted, so not exactly easy to replace, especially as they are so closely spaced. On top of this, they are not open source so I have been unable to do any fun stuff with i2c triggers.
I wanted to build some PSIs from off the shelf parts and allow it to do some more interesting effects. After a lot of hunting, I finally found some i2c addressable 8×8 RGB Matrix displays from Seeed Studios. Couple one of these with an Arduino Pro Mini, and you have a relatively cheap PSI using standard components.
Arduino Pro Mini (https://coolcomponents.co.uk/products/arduino-pro-mini-328-5v-16mhz)
Header pins for the arduino (not necessary)
Not really much to the circuit, just using the pro mini i2c pins to talk to the rest of R2’s i2c bus, and then software i2c on another couple of pins to talk to the display. This has to be done as the displays have a fixed i2c address of 0x65, so only one can be on the bus at once. This also allows the rendering of the display to be offloaded onto the arduino.
The display comes with a short cable which you can cut the end off and solder directly to the pro mini if you wish.
Currently, when powered on the display will just do the standard left/right swipe of two colours (all configured in the arduino code). Also, two functions have been added to either pulse a heart or do a random pattern to simulate a malfunction. Others may be added at a later date, feel free to suggest ideas!
The heart doesn’t really show up too well through the diffuser, but it still looks like a pulsing pattern, so I’m happy with that.
The random malfunction will take an integer number of cycles and randomly turn pixels on to a random colour on each cycle. The number of pixels that are on will slowly reduce to zero. Ten cycles is about 1 second
To trigger these effects, you send an i2c command to the address defined in the arduino code (typically 0x06 or 0x07) with either H or M as the first character, and then a number of cycles (1-255).
I have implemented this into my r2_control software, which allows me to script actions together. The plan is to do something like trigger the malfunction sound, set the PSIs to malfunction mode for enough cycles to cover the sound, and also flap all the panels in a pseudo random way.
I have a set of Ultimate PSI Housings from IA-Parts, which hold both the standard teecees boards, and the vader ones. To fit the square peg (rgb matrix) into a round hole, I knocked up a very simple 3d print.
This clips in nicely to the PSI housings, however you may have to do your own system.
I’m actually quite pleased with these. Its really hard to find a densely packed RGB matrix as an off the shelf product. After much searching this was only one I could find. Its by no means as nice as the custom VADER boards (and I know others in the community are working on their own), but it does work and looks a lot better than the TeeCees ones (IMHO).
Not only that, its cheap too at about £25 per PSI (not including any costs for making the mount, but in my case that was a few pence for a 3d print)
Next step is to figure out some more fancy things I can do with it, and maybe add a selector jumper so that you don’t need to change the code between the front and rear PSIs. I may also do a custom board to connect it all together in a neater form factor.
After a busy, busy May, June has been a bit more relaxing. May was filled with events, not just with R2, and pretty much drained my (and R2’s) batteries.
Got a few events coming up on the buildup to the big R2UK event in August, and a list of ideas for R2.
Until recently I was considering building another droid (as well as BB8), but with recent occurrences in my non-R2 life I’ve decided against it and have gone into a bit of a money saving mode. So, what does that mean? It means actually doing all the upgrades to R2 that I’ve been planning for ages and have all the kit for, but never got round to doing!
I at least want to get the front HP twitching, and have done a quick model to mount the servos on and printed it out. Just need to work out the linkage ideas that will survive the little darlings pulling at it at every opportunity. These should run off the same system as the HP lights, and have i2c control
Modularise the code
Currently, adding new devices (lights, servos, etc.) involves writing a library and including that in the main code. I’d like to see if I can make each device a module which can be enabled and adds the commands dynamically to the REST API. Not sure how to do this yet, but part of the reason for doing my own control system was to learn some more difficult aspects of coding.
I want to actually utilise the REST API a bit more. One thought is a wifi knock or capacitive sensor installed in the dome that connects to R2’s hotspot to detect hands or whatever and play a sound via the API.
General brain improvements
After the Legoland event, I had to totally replace (and upgrade) R2’s brain. However, I only did the bare install and didn’t set up the extras in him such as the wifi hotspot, etc. I want to get this working properly to make debugging a lot easier.
Another device for the dome, something to generate a load of smoke and that can be triggered via the API. This way I should be able to do a script to flap panels, play a sound, and release some smoke.
Theres loads of other general improvements to be made too, minor repairs and such like. I’ve also got a new set of foot shells to put on which should make swapping and maintaining the drives a lot easier than it is now.
Yes, I know I said I’m not going to build another droid. By that I meant astromech. I’ll finish off BB8’s dome at some point, with some electronics in the eyes which I’ve already got. Got ideas to extend the normal setup of electronics to make him more dynamic.
My other thought was to produce a MSE droid. Something a bit fun and a lot cheaper than a full sized astromech. I also want to add features to it that I’ve not seen on other droids such as smoke, opening doors, maybe even a bit of AI for automated roving? Still 100% on the drawing board, and plenty of other non-astromech/droid related projects to do around the house, but it is something I’d like to do.
A lot easier to transport too. 😉
Apart from all that, got other Starfury events to help out at, and that nasty thing called Real Work to do to keep the money coming in.
There are many options for a battery to power an astromech, from the tried and tested Sealed Lead-Acid, to the latest LiFePO4. This article will look at utilising the very common 18650 cells. These are used in power tools, laptops, even Tesla cars.
WARNING, this article will talk about opening old packs, harvesting their cells, soldering cells, spot welding cells, and lots of other things that could be quite dangerous.
Lithium cells of any type can heat up or burst into flames if mistreated. Only attempt the things in this article if you are entirely comfortable with any possible outcomes. Do other research, read other articles, the author accepts no responsibility for any injuries or death from the instructions given.
18650 refers to the size of the cells, 18mm x 65mm. They generally have a capacity between 1500 and 3500mAh. If you see anything saying 4000mAh or above, chances are its a scam. There are a lot of cells branded ultrafire that claim over 6000mAh capacity which is a total lie. Voltage ranges from 4.2v when full, to 3.2v when empty. These cells use Lithium-Ion technology, which is a lot safer than the Lithium Polymer that is used in many radio control devices. The drawbacks are that it has a much lower discharge rate. LiFePO4 are even safer, but are also more expensive. Li-Ion seems to be a middle ground, which is why it is used in so many places.
Generally, these cells are arranged in series/parallel to get the desired voltage and capacity. For example, a 24V battery is made of 6 cells in series. Extra capacity is added by putting more cells in parallel, so that if you use cells with 2500mAh capacity and want a 24V battery with 10Ah capacity, then you will use 4 rows of 6 cells, commonly written as 6s4p.
The current drain allowed on a battery is usually 1C, or 1*<capacity>, so in the same example 6s4p battery, you can have a maximum drain current of 10A. Doubling the battery up to be a 6s8p will give you 20Ah and a 20A potential drain. 1C is the safe limit using recycled cells. If you are using brand new cells then you may be able to get a higher current draw by checking the datasheet. For example a NCR18650B can draw 2C and a NCR18650PF can go up to 3C.
As mentioned above, 18650 cells are used in many places, and can generally be recycled. The best place I have found for second hand cells is from laptops or power tools. These battery packs can be cracked open and the cells removed. It is quite a labour intensive task, but saves a lot of money. You can pick up job lots of second hand cells from eBay, tho this is getting more expensive as more people are harvesting cells this way.
You have to force the two halves of the battery case apart, usually with a screwdriver or similar flat sharp object, and then separate the cells from the circuitry and cabling inside. Always wear heavy gloves, and take extra care when using a lot of force. Its easy to slip and damage yourself or the batteries. Also make sure to take care not to use the cells as a fulcrum as this will also damage the cell. Basically, be careful and take your time.
The drawback is that each cell is of unknown capacity and life, some cells may even be totally dead. They could already have been through a few thousand cycles. Each cell needs its capacity testing with a charger/tester such as the Opus BT-C3400. Of course, if you can ask friends and family for donations of old laptop batteries, you can save even more money. I managed to get a lot donated for free. Despite the drawbacks and amount of work required, you can end up with a battery for next to nothing that would cost a lot if you bought a ready made one. For example, I built a 24V 25Ah (approx) 6s11p for around £50 of cells, plus a few other bits.
The other option is to buy brand new cells in bulk. Either from Chinese sites such as aliexpress.com, or from other sites closer to home such as eu.nkon.nl. Chinese ones are generally a little cheaper, but you do have a long lead time and the risk they are counterfeit. A typical cell such as the NCR18650B (high capacity/average discharge rate) or NCR18650PF (medium capacity/high discharge rate) can be bought for approx £3 a cell.
As well as the actual cells, there are a couple of other essentials. These are cell spacers, which clip into various configurations to hold the cells in place, and allow air flow around them. You’ll also need nickel strip to connect all the cells together. Both of these items can be bought from aliexpress.com in bulk. If you are buying brand new batteries from NKON, they also sell nickel strips for a decent price when bought in batches of 10m.
Lastly, you’ll need battery connectors and a balance lead. The battery connector can be anything you wish, as long as it will take the current. The balance lead is a connector so you can make sure that all the series cells are at the same voltage. This is important so you don’t let one cell run down lower than the others, which will potentially damage the cell, and maybe the whole battery. You need one for the correct size of battery (eg, a 6s battery will need a 7 wire balance lead) which can be got again from aliexpress.com or ebay.
Constructing the battery
Once you have enough cells together, and all the other items, time for construction. The general process is:
Sort the batteries into parallel sets with the same total capacity. The idea is to have them well balanced before you even start. You can use a site such as repackr.com to help with that
Clip the cell spacers together in the required layout (eg 6×12 for a 6s12p), then lay the cells out. Each parallel set should be the same orientation (eg, negative to the top), but alternate them as you fill in the series set.
Once you have all the batteries in place, clip the top of the frame into place
Now its time to connect the parallel sets up. Using either a soldering iron, or a spot welder, connect strips along all the parallel sets. These are the ones that are all the same way up. What this does is create the capacity for battery pack. Be careful if soldering, don’t allow too much heat to build up on the cell, do it as quick as possible. You can get spot welders from aliexpress.com for around £200 that will do the job a lot better.
You can also get a device that will give you a full readout, just from plugging the balance connector in. They are only a few pounds from places like ebay. They will let you view the total voltage, each parallel set voltage, and also the max/min/dif between the cells.
For the initial charge you will need to use a decent balance charger, such as an imax B6. These are generally for lipo batteries, used in radio controlled quad copters or planes. The benefit of a charger like this is that it will balance the cells out and has lots of monitoring and protection built in. Follow the instructions in the charger manual closely.
Once charged, leave your pack for a while, even a month, testing the voltages periodically. If you have a dead cell, then it can manifest as one of the parallel sets slowly loosing charge. When this happens, you’ll have to dismantle the battery and retest all the cells.
If you have the time, you can also do a full discharge test with the charger on the battery to get an accurate reading of its capacity. This will take a long time if you’ve made a big battery, depending on the charger you use. If you aren’t overly bothered about an accurate capacity test, just run the battery in the droid (or whatever other use) and monitor the voltage. Don’t let the voltage go down below 3*<number in series> (eg, a 6s should never be let to dip below 18v). To prolong the life of the battery, don’t even let it go that far. Full charge/discharge cycles are the worst case for wear on them, and will shorten the lifespan. I recommend discharging it to around 40-50%, at least on the first try.
After the first discharge, check the balance of the cells again. Ideally there should be little difference between them in a fully functional battery pack. If there is significant difference (IMHO, 0.1v between the highest and lowest voltage) then you may have a bad cell somewhere. Do another balanced charge and discharge cycle and see if the same cell has troubles. If it does, rip it apart and try again.
If the battery remains balanced, then you can actually use a none balance charger (cheaper, and usually higher current for rapid charging) for most charge cycles. Tho make sure it is balanced occasionally and no harm in doing a slow balanced charge once in a while.
Using 18650 cells gives you great flexibility in not only the size (voltage and Ah), but also the shape. This example has shown creating standard blocks, but with some creativity you can make a battery that follows a certain shape (ie, follows the outer curve of an R2 unit’s interior). If you want to make use of recycled cells, then this is a very cheap option to get some very high capacity batteries built. Even buying brand new cells will still save you a lot of money.
For example, I’m currently building a 6s12p pack using NCR18650B cells. I’m getting these for approx £3 a cell. That makes the total cost of cells £216, which gets me a 24V/40Ah capacity battery in a fairly small form factor that can give out nearly 80A (my droid barely pulls 10A at full speed!). I doubt I could fit enough SLA batteries in my droid to get that, and a similar capacity of LiFePO4 would set me back about £800. Even taking into account the cost of a spot welder (which can be used many times of course) its double the price.
One thing I haven’t covered in this article is a BMS. This is a Battery Management System makes sure nothing is going wrong with it, and will cut off the output when the battery gets too low. I’m still researching these myself, and will possibly mess with them on my next pack. IMHO, if you are keeping an eye on the battery voltage during use and doing periodic balance tests and charges, then a BMS is not necessary.
Also note that capacity of the cells will drop over time, depending on number of cycles, how deeply they were charged/discharged, and how rapidly they were discharged. Take care of the battery, and it will last longer, drain it constantly at high current and it will be dead within a few hundred cycles.
It seems that xmas and new year is when all the part runs start. At least that is what it feels like to me, for all the parts I want.There has been a sudden rush in ordering things for R2 which means I nearly have everything I need to get him put together and mobile. The one part I’m still missing is the outer ankles, which I am hoping will be on a run soon. The last few cosmetic pieces I need are due soon too, such as utility arms and LDP. Progress whilst waiting for these parts has not been too bad, but I do keep coming across problems to work around. I guess that is the fun part tho.
On the electronics front, I managed to (I think) blow up my amplifier. I still need to hook it all up again and test it. I’ve a feeling that the switch I’ve got for main power isn’t rated high enough for the current that is going through. I’ve also decided to change the layout of everything, and install an actual touch screen inside R2 for the Raspberry Pi. This will give me the ability to control certain aspects of the software, and also at a pinch I can plug a usb keyboard and mouse in to do onsite programming whilst away at a convention or such like. I’m also currently waiting a Raspberry Pi v3 which will give R2’s brain a bit of a boost. Overall design hasn’t changed much, it’ll still all be controlled via i2c, but will also have wifi and 3g internet connectivity, turning R2 into a wireless hotspot! I will have to see how much the aluminium body affects the signal, but can always put an external antenna somewhere.
I have more or less got the legs finished, and have done a test fit! Must say, they are looking rather good. All the parts slot nicely together and are pretty solid. Of course, I still have the problem of a lot of the screws and bolts being imperial (We’re part of the rebel alliance, don’t want any of that imperial rubbish!) rather than metric, so getting hold of replacements can be tough. This is more of a problem seeing as I’ve had some of these parts for quite a while and not only been moved around the office in the old house, but have moved to the new house and gone in and out of the garage, so some of the fastenings have been misplaced along the way.
I also decided to get one of the nice new hydro formed domes that are available. I was never too keen on the existing one that I had, and the new domes come with the mounting ring to fasten it to the body which meant one less thing I had to fabricate. A lot of the tutorials on the forums are geared around these domes too. Not only did I get a new dome, but I figured whilst I was doing that, I’d also upgrade all the things to go in the dome. This meant getting the ultimate hinges, aluminium holoprojectors, aluminium logic surrounds, aluminium eye, and even the fancy PSI holders. All this together gives me a pretty much top of the range dome for R2. It also means I can do a quick and dirty rebuild of the old dome at some point and create a different astromech.
Which brings me more or less up to date. The dome is nearly finished, I just need to put a few final touches to it and tidy up the cabling inside. I even got the dome servos all hooked up and took a short video. I need to replace the arms on the servos with something a bit longer to get a bit more throw on them, but overall I’m pretty pleased.
Next step is to get to work on the body. I’ve got some of the ultimate hinges and have some installed already. Just need to fit the servos to them. I also need to trim down my data panel to fit it into the breadpan, but that shouldn’t be too much trouble. The one part I’m having issues with is the charge bay breadpan, it just doesn’t want to fit in properly. I may have to resort to some pretty hefty modifications on it.
I’ve given myself a deadline of June to get him mobile, but that depends on when part runs happen. Fingers crossed the outer ankle run starts soon.
Its been a long time since an update, but we moved house at the start of the year and things have been hectic. At least, thats my excuse and I’m sticking to it! I have been making progress with R2 in the last couple of months, doing a lot of work on his brain for starters, and painting various parts.
Code wise, there has been a couple of fairly drastic rewrites since my last update. The interface is a REST API, which sends commands to various modules as before. I’ve added a scripting module now, so that scripts or loops can be initiated such as random sounds, or a dance routine. The servo module had to have a major rewrite too as I discovered that I could only control one servo at once and had to wait for that to finish before another command could be sent. That wasn’t much good! I’ve also written the first of the actual controller interfaces (not counting a simple web one for testing), R2 can now be controlled from a PS3 controller. Button combos are read in from a csv file to trigger certain effects or scripts. Lastly, R2 now has a voice, and can play any mp3 stored in a directory, including selecting random ones from a list of types. Next step is to get either the Pi or the A la mode Arduino to control the speed controllers. I don’t want to run them off the Adafruit i2c servo controller for safety, I’d rather drive them directly and have some form of watchdog to make sure R2 doesn’t go on a rampage. All the code is still available on GitHub under my user, dpoulson
The PDU also needed a rethink, not least of all because of the amount of current it needed. The setup now has feeds directly to the speed controllers, with relays on the output from them to the motors so I can break the circuit if needs be. These relays will automatically turn off if the battery is disconnected so that any pushing of R2 will not feedback into the speed controllers and fry them. The relays will also be controlled from GPIO pins on the Raspberry Pi so I can disconnect them via an API call. I’ll also have an input for a kill switch that will have to be permanently on if any of the motors are to be powered, possibly using a transmitter in a replica droid caller or hilt of a light saber. I’ve a base idea for the new relay controls:
The relays I’ve found are Omron G4A-1EA, which have the benefit of the switched load being on spade connectors on the top, rather than through PCB traces, which when I did the calculations would need to be massive to support the potential current running through them. This allows me to make a simple PCB with the controller circuit, and hook the 24V battery up to it to power the coils. If the battery is removed, the coils turn off and the circuits are broken. No fried speed controllers.
The 24V connection will probably go through the fuse box I’ve installed, with a hefty fuse. The makers of the speed controllers don’t actually recommend a fuse but I’ve seen a few comments saying a 60+A fuse can’t be a bad idea, just in case!
The battery will connect directly to the center contacts of a DPDT switch, with the fuse box on one side, and the charger connection on the other. This will allow charging the batteries without taking them out of the droid. Not sure if this is best practice or not, needs more research. Currently they are just a pair of 12V SLA batteries that I had, connected in series to give the full 24V.
I’m hoping to get some time either this weekend or next, to hook up the motors, speed controllers, and battery, to test them out and get an idea of potential current draw. They’ll be controlled with a standard RC transmitter/receiver for now. If I can get the legs onto R2 he may even be drivable by xmas.
So, finally got some time on a weekend with nice weather to get outside with the inner dome and my Dremel. Whilst the dome set I got had a laser cut outer dome, the inner one was totally uncut. The aluminium domes come as an inner and outer to allow you to have the indent around each of the panels, and also lets you have a nice lip if you have the panels opening, which is something I want. Of course, this means lots of holes to cut. Any panels that are going to open have to be cut out, as well as all the holes for the lights and holo projectors (HP).
To start off with, all the holes were marked using the laser cut outer dome as a template. HP and light holes were to be the same size as the outer ones, but the opening panels need more of a lip. A tip I learnt from reading other builder’s logs was to use a large washer, and to put the marker pen in the center, then roll it around the edge of the opening. This gives you pretty much a perfect size for the lip. Next comes the scary part.
Cutting the dome! These things aren’t exactly cheap, and even worse they’re quite hard to come by, having to wait for runs to be done of them by the guys in the states. But, its got to be done so I got the Dremel and a whole bunch of fibreglass reinforced cutting discs for it. I needed a lot as the wear down extremely quickly. I went through over two dozen of them just on the dome. Thankfully I got plenty.
I found the easiest way to do it neatly was to do the large part of the cutting with the dremel, at least enough to make a cut a few cm long so that I could get the hacksaw into the hole. The hacksaw made a much cleaner cut with more control. The Dremel had a habit of biting in and running off a bit, which made some of the fine cuts a bit difficult. By far the hardest bits to do were the circles for which I ended up making a load of straight cuts through the center to form a star pattern, then gradually cut each of the prongs off. Once I had the main parts cut I attached all the cuts with a large file to take it to the lines I had drawn.
It took a good few hours to get through everything, but it was worth it. The holes are still a little rough and still need some sanding down with wet and dry. Also the circular holes all need to be made a little bigger. They were originally marked up to be the same size as the outer dome holes, but ideally they need to be at least a few mm bigger, especially the HPs. Another tip that I’ve found on the net is using a glass wine bottle to help with the sanding of the circular holes. Wrapping some wet and dry around the neck, you can sand in a circular motion to get an even hole.
Still left to do are the rear PSI holes, in both the inner and outer domes. It is the one outer hole that wasn’t pre-cut, so I need to be extra careful with the outer part. The current run of laser cut domes are a lot nicer, with the inner and outer ones laser cut and all just about ready to just polish and paint. Also, I think I’ve been fairly lucky with this dome, as a lot of people report having to cut the inner dome in half to get the inner and outer to fit together properly.
Once the last PSI holes are cut I’ll be ready to bind the two domes together permanently, which is another scary one way step. I’m making sure I’ve as much done with them separate as possible to avoid damaging the outer dome with a slip of the Dremel. I still couldn’t resist having a test fit of the two domes and inserting some of the lighting. It looks pretty good.
Next main steps once its all bonded is to install the main radar eye which I’m hoping to bolt on to make it removable, and then I have to source a load of hinges which seem to be either very expensive, or hard to find.
All in all, a good weekend of work. I would’ve like to do more but due to losing an hour due to the clocks changing, an early morning call from work, and Mother’s Day, I didn’t have much time on the Sunday to do much. Fingers crossed for nice weather again next week to finish off the Dremel work outside. I might also make a start on the skins too.
So, I seem to be building R2 in the reverse of how most people build their versions. Whilst I started with the dome due to finding a good deal, I’ve spent most of my time working on his internals and very little on the actual physical droid. Since my last post back in August regarding R2’s brain, I’ve done a lot of work on how everything will tie together to do the control. My current working idea is to have an i2c bus running throughout as R2’s central nervous system both sending out commands, and receiving feedback.
The main control is still going to be a Raspberry Pi as this gives me much more range to do some interesting things later such as voice recognition, as well as letting me experiment with lots of different ways to actually control R2. I’m still thinking of using a PS3 controller as input, but also thinking of using a wii nunchuck is possible as a much smaller one to control simple operations.
The Pi will be linked via i2c to the various modules such as the servo controllers mentioned in my last post, with one in the dome and one in the body, and also to the lighting systems with Arduinos programmed to receive the signals to trigger various effects. I’m using BHD‘s Arduino code for the TeeCees lights in the dome at the moment, with just minor changes to accept the i2c signals. I may write something at a later date to do more dynamic light displays such as free form text messages to scroll across the RLD, but for now this is more than adequate.
Communication between the spinning dome and body will be through a 6 wire slip ring connector. 2 wires will be enough for the data signal, and then I will pair up the others to provide the power. I’ll probably have to go for two separate 5V supplies to the dome, one for electronics and one for servos as there will more than likely be a lot of noise coming over the servo power lines as they move.
Power for all the electronics will come from a simple USB battery pack, which in turn will be plugged into the power distribution board I have designed. The PDU will take in a raw input from the sealed lead acid battery (or batteries) and produce clean 5v and 12v outputs, as well as a raw output direct to the speed controllers. The PDU also incorporates a few other features such as connectors for volt/amp meters that will be behind a panel on the front of R2, a voltage divider to allow the charge bay lights to function as a crude charge display for the batteries, and also a relay cut off for recharging R2. The last means that I can safely plug R2 into the charger (via an XLR connector), which will pull power going to the rest of the circuits. Lastly, there is the main power switch to kill power from the battery. There is a diode across the switch however which should allow any charge coming from the speed controllers to go back into the battery. This is a feature of the speed controllers to allow regenerative breaking.
The clean 12v will be used to power the audio amplifier. What is R2 without a few beeps and whistles?
I’m just waiting on the PCBs to come back from OSHPark, so I can try them out. Hopefully I managed to get most of it right and I haven’t seriously miscalculated the current draw from the batteries. I don’t want any tracks melting off the board!
Code wise, I’ve done quite a drastic rewrite of the controlling software to make it much more object oriented. Each different module (servos, audio, lights, etc.) is a module with a command keyword associated with it. This means adding new modules (LCD screen, extra lighting, drinks dispenser…) should be easy and just a case of creating a config file and possibly a class file if its a new type of module. All the code is available at github, along with the schematics and board diagrams of the PDU. The PDU is also available to get direct from OSHPark.
Fingers crossed I may be getting a few parts to build the actual droid with soon, including the feet, which means I now have to figure out a drive system for him. Mechanics isn’t exactly my strong suit, so should be interesting. 🙂
Alright, so maybe a bit of a corny title, but I couldn’t resist.
So, at the end of May we had a trip to Milton Keynes for Collectomania. Besides meeting and getting autographs from Robert Llewellyn and Chris Judge, the other highlight was all the R2d2 droids that were running around. There was a whole collection of different astromech droids in varying states of the build process. Once I got home, and of course mentioned it to she who must be obeyed, I started looking at just how difficult these things were to build.
Initially I joined the main R2 builders club, which also has a yahoo group with lots of useful files and blueprints.The benefit of building an R2 over most other large props is the fact that there is such a large community of people who have already found most of the pitfalls. They also do runs of parts that might be beyond another builder’s skills or too expensive to produce in single units. Unfortunately, most of the talk and production is very America centric, but thankfully there is a very active UK builders group which I quickly signed up for.
After a few weeks of reading (and more reading) the forums I decided I would take the plunge. Mostly I will be keeping a picture log on Facebook and Google+, but will also write up occasionally on here.
I thought I’d first start with what I know, electronics. There are a set of PCBs available that handle all the dome lighting and runs from a single Arduino Pro Micro which gives a lot of power and flexibility. So, with the PCBs ordered, I jumped to eBay to get the rest of the components. Obviously, a lot of LEDs were needed so they were first, I needed a pro micro to run the system, and the other main component were MAX7219 chips. Now, if I was to source the chips from the UK they would have been in the order of £9 each. eBay had them for a tenth of that price. These were pretty certainly cheap knock offs, but for that price I could order way more than needed and suffer a few DOA chips.
Of course, it wasn’t that straight forward. I didn’t realise just how close the LEDs were packed on the PCBs which meant I needed flangeless LEDs. Needless to say when I received the LEDs from eBay they had a flange on the dome which meant they would not fit. Hunting around in the forums, I found a possible source of LEDs from China that were definitely flangeless. So, re-order and wait.
Whilst I was waiting for the parts to turn up I hit a bit of luck. Probably the hardest main part to make myself was the dome. There are lots of different options for these, from aluminium to styrene or fibreglass. The runs for these are fairly infrequent, especially if you want a certain type of dome. I’d initially ruled out building my droid in aluminium due to cost and the fact I’ve never worked with metal before, but someone on the UK builders Facebook group mentioned they had a dome and a set of body skins available in aluminium. It was too good an opportunity to miss, so I bit the bullet and bought them. A couple of days later they turned up!
This was scary, this was starting to be a large commitment. It is fun tho, so lets carry on!