If people just designed things right to begin with… #2

I am normally relatively compassionate. Well, I am if you haven’t done anything that displeases me. So I prefer not to harm anything unless I have to. For example, if I can step over a trail of ants to avoid hurting them, I will. However if you’re a little ant bastard who is crawling all over my chicken wing just because I put down my plate at the picnic for half a second, you can expect a pretty stern talking to.
So when we moved into our house, I did my best to remain mouse-free without having to get nasty: keep food in sealed containers, don’t leave any friendly hiding places, etc. In fact, when I first started seeing signs of mice (chewed packets, and poo, all the poo), I just tried to hide the food chase them out. When this failed, and the mouse poo started spreading into more areas, and I started hearing mice scratching around in the pantry… while I slept… well, the mice were no longer on my christmas card list.
I didn’t want to put down poison, because then I have poisoned mouse corpses laying around (I have kids and dogs, and there is plenty of native wildlife outside my house which may like to eat a slow moving mouse if they ventured outside the house). Also, poisoning sounds slow and painful; a trap is quick, over before the mouse knows what’s happening.

So I went for traps. However, the traps didn’t work! I kept finding mousetraps with no bait on them. I tried a number of attractants, none of them caught the mouse. They all got eaten, but the trap didn’t trigger. I tried:

  • Cheese
  • Peanut butter
  • Ham
  • Raspberry liquorice
  • Mouse attractant paste from Bunnings

The baits got eaten, but the trap didn’t trigger, the mouse wasn’t pushing on the lever hard enough while eating. That’s why I tried the liquorice, I could wedge it under the catch on the lever (this worked once, but that’s it). I straightened the retaining rod, and even used some PTFE sleeve to reduce friction. The problem is that in order to get the required activation force so low that the mouse would trigger it, the trap because so sensitive that I couldn’t set it. It’s a very fine line to walk.

So what’s the solution? If the activation force needs to be above a certain threshold to be useful, then the mouse needs to push harder. How do we convince the mouse to push harder? Well, have a look at this:

I designed an 3D printed small cages that slide onto the trigger plate, into which you place some cheese. If you’re feeling keen, also smear some attractant paste into the gaps in the cage.

This meant that the mouse tried to squeeze it’s nose through the bars of the cage, triggering it. These worked really well, and after just half a dozen uses, we appear to be mouse free! I can see why the original traps weren’t working, because our mice were tiny, so small I could barely feel the weight of it in my hand.

I don’t feel good about killing the mice, but they had to go.

The design for the cage is here, and should fit most standard 50 cent mouse traps (the design opening is to fit 10 mm wide x 1mm thick mousetrap levers):


I hope this helps your rodent problems!


Thermistor Readings & Thermistor Tables for RepRap 3D Printers

Today I’m talking about measuring temperatures using thermistors. In particular, this will

This blog topic is an old one, and I did all the hard work some time ago, but I decided to document it in order to meet my self-imposed Quota of one blog post per week.

Your basic thermistor circuit is a voltage divider, as shown below:

thermistor voltage divider

Rs is a known pull-up resistor, and Rt is a thermistor (in this case, a Negative Temperature Coefficient thermistor or NTC). A known voltage is applied (Vin), the voltage measured (Vout) varies with changes in the resistance of Rt.


For Marlin, there is a standard “Oversampling” factor n. I haven’t researched this in depth, but common sense suggests that the firmware will measure the voltage from the thermistor n times. It will then add these numbers up and divide by n. This avoids the temperature bouncing up and down as the voltage fluctuates slightly.

Now you have to calculate the temperature based on the resistance of the thermistor. Unfortunately, the maths is a bit of a pain (unless you’re into that kind of thing, which I kind of am), if you want to go from Voltage to Resistance, then from Resistance to Temperature. And the last thing you want is to slow down your 3D printer by making it do unnecessary calculations multiple times per second. It’s much easier to go Temperature -> Resistance -> Voltage. 3D printer firmware like Marlin uses thermistor tables, which are pre-generated arrays of voltage readings and associated temperatures. The firmware then simply interpolates between these data points for measured voltages. Simple enough?

Now, how do you generate these data tables? (One question I have seen a fair bit on forums is “which thermistor table should I use in Marlin?”) Well, here’s what you do:

  1. Gather as much information on your thermistor as possible:
    1. Some thermistors will be supplied with a table of R/T values: simply do a voltage divider calculation to convert the R values to measured voltages, taking into account oversampling.
    2. Some thermistors will just have a Beta value, which gives an approximation of the R/T curve.
    3. Sometimes you just won’t have any data, so you can measure three datapoints, and use these to generate a curve.
  2. Download my Thermistor Table Generator spreadsheet ( http://www.thingiverse.com/thing:103668/ ), as this will simplify the calculations. For more information, you can refer to the corresponding links below:
    1. [Refer to calculation in the above linked spreadsheet]
    2. http://en.wikipedia.org/wiki/Thermistor
    3. http://assets.newport.com/webDocuments-EN/images/AN04_Thermistor_Calibration_IX.PDF
  3. Once you have generated the table, paste it into your Temperature.h in Marlin (below is an example of where to paste it)


const short temptable_8[][2] = {

//INSERT TABLE HERE!!!!!! each row is in the format {V,T},



Now, any of the three techniques used to generate a thermistor table can be used, with varying levels of accuracy, but one point I’d like to stress is this…


Obviously it’s ideal for your thermistor to be reading perfectly accurately, but that’s not going to happen. It’s good if your thermistor is giving you reasonably accurate readings, which is what the above linked spreadsheet will achieve. But at the end of the day, you mainly need your temperature measurement to be REPEATABLE. The temperature readings need to be accurate enough to get a ballpark number, but due to the many different extruder designs, thermistor types, PLA/ABS manufacturers, and other parameters that influence extrusion from a RepRap 3D printer, the nominal printing temperatures recommended by manufacturers will always be different to the ideal measured printing temperature, which should be checked and fine-tuned for each printer and printing filament (in order to achieve maximum print quality and strength).

Your thermistor could be reading 17°C when printing in PLA, if you test the temperature and figure out that’s the temperature that you print at… you just need to adjust your printer firmware and slicing software settings to suit, then just print at 17°C.

Hope this helps a bit, read the instructions in my thermistor calculator, and the comments on the Thingiverse page.

Good luck, and happy printing.

For what do you use your 3D printer?

One question that I got asked a lot when I was building my 3D printer 2 years ago was: “Why?”

I suppose I can summarise my answers to this complex question as follows:

  • Why not?
  • It opens up new avenues for tinkering
  • It is an excuse to practise 3D modelling and mechanical design
  • I believe in investing in the future, and any money that I put into a (relatively) new technology helps it. Even though this is only a stepping stone to better versions of 3D printing and fabbing, you need to put money into those steps, because it encourages smarter people than me to improve the technology.
  • I love a sexy new machine (if you don’t understand what I mean by sexy in this context, you aren’t an engineer)

My 3D printer has become an indispensable part of my life. I don’t use it every day, but it’s comforting to know that it’s there. It was out of commission for a few weeks due to a faulty extruder heater, and I felt like I’d lost an arm.

So what do I use the 3D printer for? For making things like…

  • Pointless things/decorations (jellyfish lamp shade)
  • Household items (spray hose bracket, rod mounting bracket, tablet holder)
  • Toys (young derek’s safe, cube bot)
  • Tinkering (robotics parts)

But mostly? I use it for killing goblins.

Now before you go drawing conclusions and thinking that I’m the nerd that I am, just listen. I don’t mean that I print little dungeons & dragons figurines to use for role playing games (I WISH I had time for a D&D campaign). No, nothing as nerdy as that. Allow me to explain…

I took some time off work over a year ago, and spent about a week being really productive around the house, and then two weeks catching up on anime and video games. During this time, I got most of the way through Zelda: Skyward Sword. I didn’t get all of the way through the game before I got summoned back to work; unfortunately I just couldn’t fit it in around all the sleeping in and TV watching.

So you’re thinking that I use the printer to somehow improve my abilities with the Nintendo Wii, to help me kill goblins in the game? No, you’re wrong. Now quit interrupting or I just won’t finish the story.

At Christmas, in amongst all the usual family stuff and general sitting around sweating and complaining that no civilised man should be forced to sweat against his will, I saw that video game case sitting next to the TV… I made a decision. RIGHT, it’s time I finished this game. despite the rolling eyes and condescension that such things elicit, I told my wife that I needed to spend some time with Link, kicking some monster butt. After several hours of frustration and swearing at the Wii controllers for CLEARLY being defective, I completed the game. The ending was a little anticlimactic, and all I had to show for it was a severe case of tennis elbow. Never-the-less, it felt fantastic. I had finally finished a year old game which had been haunting me subtly since I got it.

After I finished, I went and gave my wife a hug and thanked her for being so understanding, and explained to her that while it was a small achievement, it had lifted a small weight from my mind. I felt like I had killed a little goblin that had been sitting on my shoulder. Even though it was only a small goblin, it was one less of the horde of little goblins currently residing there. Sometimes I feel like I have so many little, unimportant ideas and jobs that are just sitting there, waiting to be dealt with. I’m pretty sure that I’d be a lot happier and a bit less stressed if I could just kill most of these goblins and get on with life.

So what does this have to do with my 3D printer? There are so many of these little goblins that are simply ideas that I’ve had at some point, but never gotten around to following through on because it would take more time than it’s worth to turn them into reality. My 3D printer made it so much easier to create some of the pointless designs that I have had sitting on my mental sketchboard for months, or even years. For example:

  • Pointless fun things (e.g. Party Popper Gun, cube-bot, etc)
  • Replacement parts and homewares (e.g. Biscuit Press Locking Ring, etc)
  • Robot parts (e.g. Brackets, Housings and Clips, etc)
  • Printer parts (Spool Holder and LCD Screen Mount, etc) “a chicken is just and eggs way of making another chicken”



The 3D printer lets me kill these goblins much more easily and rapidly, getting rid of the goblins and freeing up space in my brain.

Whether I fill that space with anything useful or just cram more anime and video games into, I suppose, is another question. I think it actually just frees up brain power with which to dream up more goblins… Sigh.

Glow Egg Plus – Alpha Version

transparent shell

Now that I have a baby boy, I’m coming to terms with the fact that there are so many new baby related accessories that you need to buy. Going through this process, there are plenty of times when you ask yourself:

Why is this stuff so expensive, and why isn’t it better?

One such experience that we had was on the first day that we took our baby boy home from the hospital, in the middle of winter, and we started freaking out about temperature…

Is he going to be warm enough? How warm is warm enough? How much clothing should we wrap him in? What if the room gets colder over night? What if it gets too hot during the day? What temperature is the room meant to be anyway? How large a temperature fluctuation can a baby tolerate before we end up on A Current Affair? *Hyperventilate and pass out*

Or something along those lines.

At a friends’ house, I’d seen an item which shows (via changing colours) the temperature of the room. I decided that this seemed like the way to go, so I drove 15 minutes to a shop which I knew to have these thermometers on sale. Long and painful story short, I returned home two hours later, at about 5 p.m., with “the egg”, and while I was only $30 poorer (on sale, down from $50), I was a lot more stressed out.

Almost immediately, I got to thinking about the relatively small cost of components to make a room thermometer for the baby, and (as any engineer would) thinking about the other features that I would like this thermometer to have:

  • Battery power
  • Ability to connect additional temperature probe (i.e. to skin temperature sensor… just to be REALLY sure that the baby is warm/cool enough)
  • Adjustable temperature scale
  • Easier to turn off when the light’s annoying me and I’m sleepy
  • Basic night-light function
  • Timed nightlight, for when the baby is older, to tell baby when it’s time to wake up (i.e. “See how the light is blue? Daddy doesn’t want to hear a peep out of you until it turns yellow. UNDERSTOOD?”)
  • Replaceable outer skin; to make it more fun for the child, by making it look like their favourite animal or influential scientist (Yes, I’m talking about Tesla), instead of the basic Egg shape.

So I set about building one myself. In order to maximise the customisability of the device, I based it on an Arduino board, and went for the lowest possible cost for all components (while still being fit for purpose). Design process went along these lines:

  1. Write I/O Schedule
  2. Select control board
  3. Draw schematic
  4. Layout test circuit on breadboard
  5. Layout and solder circuit onto prototyping PCB
  6. Trim PCB and measure overall dimensions
  7. Design and 3D print circuit board holder (main unit to go inside outer shell)
  8. Design and 3D print outer shell
  9. Basic calibration of thermistor
  10. Writing the user manual

The result of this is as follows:

I/O Schedule:

  • PWM Out
    • LED 1 – Red
    • LED 1 – Green
    • LED 1 – Blue
  • Digital In
    • Button 1 – Mode Adjust Button
    • Jumper 1 – Temperature Sensing Mode
    • Jumper 2 – Sleep Timer Mode
    • Jumper 3 – Colour Cycle Nightlight Mode
    • Jumper 4 – Colour Select Nightlight Mode
    • Jumper 5 – Spare Mode
    • Jumper 6 – Spare Mode
  • Analogue In
    • Thermistor 1 – Main Thermistor
    • Thermistor 2 – Spare Thermistor
  • Power Connections
    • Vcc – Connection for regulated 5V power supply
    • RAW – Connection for 5-12V battery pack, or 5-12V regulated power supply

Board Selection:

My control board selection process was pretty straightforward. I wanted the cheapest board I could find, and needed to make sure it had sufficient I/O pins to perform the functions listed above. The cheapest board was an Arduino Pro Mini (a couple of dollars on eBay), and it has ~12 Digital I/O pins (6 capable of PWM) and 4 analogue input pins, it was more than sufficient for my purposes.

Note: Since the Arduino Pro Mini only has TTL communication provided by the ATMega chip, I also had to connect a Serial-to-TTL converter (USB to RS232 TTL) to the RX/RX/GND/VCC pins when programming the board.


I drew the following schematic in Design Spark PCB. I used to use ExpressPCB and ExpressSCH, which are very good for drawing a schematic and converting it into a PCB, but I have been trying to migrate over to Design Spark, since they offer some cool features, and in theory you can upload parts available from RS Components into your schematics. Still not convinced, but I have to give it a fair crack to see if DS can speed up the process of designing circuits.

glow egg plus schematic

Bill Of Materials:

  • Arduino Pro Mini – $5
  • RGB LED (Common Cathode) – $1
  • Thermistor: 100 kOhm (NJ28RA0104HCC, see notes below on thermistor measurement) – $1
  • 1/4W resistors: 3 x 120 Ohm, 2 x 120 kOhm – $0.20
  • 5cm x 7cm prototyping PCB – $0.2
  • 9V battery connector clip – $0.3
  • Push button (round, outer diameter ~5mm)
  • Foot switch (I used a spring return SPDT lever switch)
  • 2.54mm male header strips: 2 x 6 pin, 6 x 2 pin, 1 x 4 pin – $1
  • Female dupont wire terminators and housings: 5 x 2 pin, 2 x 4 pin – $0.2
  • Assorted length of wire

total cost: ~$9

(Costs above are approximate based on what it cost me at the time)


I’m slowly working on a PCB router (made primarily from scrounged parts from old printers, etc), but it’s still a long way off (due to previously mentioned baby taking up a lot of my time that used to be spent on recreational engineering). In the meantime, I am using cheap prototyping PCBs (PCB equivalent of a breadboard, only about $2 on eBay for a 10 pack of 5cm x 7cm boards)… Like some kind of undomesticated animal.

For more details, see the manual below.

Board markings


3D printed parts:

The printed parts are on Thingiverse.

I designed the circuit board holder to suit the circuit board and to accommodate a 9V battery, with a base that allows attachment to a variety of outer shells. It includes an opening for a small pushbutton (scrounged from a VCR) and small microswitch with a spring lever (for cutting power when the thermometer isn’t sitting on its base).

internals - right iso

internals - left iso

I designed the shell to fit the base. In terms of printability, I took a shortcut and thickened the top section of the egg shell to allow it to print without support. it needs to be printed in White or Opaque/Natural PLA/ABS. I printed in Natural ABS, because it’s what I had laying around.

transparent shell


For a copy of the Arduino code used, refer to the back of the manual below:

Thermistor Calibration:

To calibrate the thermistor, I started by calculating the theoretical value that the Arduino analogue input will measure (from 0 to 1024 for a voltage range of 0 to 5v) for the temperatures of interest for the thermometer. To get more information on this, refer to my post on Thingiverse: Thermistor Table Generator. This calculator is for generating thermistor tables for a 3D printer, but can be used for any thermistor application.

By leaving the egg connected to my computer’s USB and monitoring the serial port, I could record the analogue readings that the Arduino sent to the serial port. I compared this to the temperature measured by a commercially produced digital thermometer, I then fine-tuned the settings in my code to be more accurate.


Here’s the manual that I wrote for the thermometer.

Glow Egg Plus

(Sorry, Kate, Ara was meant to email it to you a while ago)


The Glow Egg Plus worked reasonably well. Some final tweaking would be required before I’d be 100% happy with it, but I was happy enough with the Alpha version to give it to some friends who recently had a handsome pair of twin boys. Word of the day: Polyzygotic. Polyzygotic twins (Fraternal Twins) come from two separate eggs, as opposed to Identical Twins (Monozygotic, I guess), who come from one egg which splits into two embryos.

Databullets #2 – A.R.M.S Pistol Mk. 1 – or: Something for Poland

Why something for Poland? My blog doesn’t get that many views, but I noticed a while ago that I was getting fairly regular views from Poland (the Stats page on wordpress tells you the country of origin of all views on your site), and that these views were always to my previous post about using multiple IR receivers… I have NO idea what is going on in Poland, but I figured that if they are interested in IR transmitters/receivers, they may be interested in this new post, which follows on from my previous post about Databullets.

I finally got around to completing the design for my Arduino based laser tagger, designed to work with my nerf gun toting, powerchair based robot. Here is where I posted the tagger design on Thingiverse:  http://www.thingiverse.com/thing:454862

Here’s what I intended it to look like:

concept sketchHere’s how I designed it:

Tagger Modeltagger with beamAnd here’s how it actually turned out:



Just for the hell of it, here it is in various states of undress:

skeletonskeleton with clip

with circuit board

arduino inside case

with arduino case

with screen

almost complete

Here’s a link to the latest video, showing the laser tagger being used on the robot, as well as links to the older videos:

V4: https://www.youtube.com/watch?v=wnNgmFMYZ2g

V3: https://www.youtube.com/watch?v=wdR3sbx-Y1U

V2: https://www.youtube.com/watch?v=wEyu43JD9hw

V1: https://www.youtube.com/watch?v=C08r5BpwVEs


Since the system uses infrared, which is also produced by the sun, the performance of the system is pretty bad when the receiver is in direct sunlight, but as soon as the sun is down a little it improves significantly, especially around dusk (probably REALLY good at night).

The laser tagger has a range of about 20m once the sun went down, but I’m sure that could be improved by putting higher current through the IR LED, or aligning the optics a little better.

A laser tag system based on this hardware would probably work quite well in an underground carpark, or in the office on a Friday afternoon once the boss has gone home…

Tagger Optics

tagger with beam - closeIn order for the receiver to pick up the IR signal, the signal needs to be strong enough. You can measure the strength of the beam in W/m². Those units tell us that there are two ways to get long range from your laser tagger:

  1. More power (increased W)
  2. Narrower beam (reduced m²)

Getting more power is easy. The infrared LEDs that I used (TSAL 6100) are rated for 100 mA (200 mA peak). If you want to be safe, you select your current limiting resistor for 100 mA, but since the IR protocols actually use a pulsed carrier signal, you should be able to push it higher, maybe take it to 200 mA. If you really want to get extra range, you can always crank the current right up, and have spare LEDs ready in case you blow it. Since the laser tagger uses an easily modified design, you could print some LED holder plugs so that you can swap it out mid-laser battle.

The problem with increasing power, is that (as the units of measurement suggest) the signal strength is inversely proportional to distance squared. So if you want to double the range, you have to quadruple the power. Which brings us to Narrowing the Beam.

If you think about your infrared remote, it is a bit like a torch. It doesn’t need to shine very far (only from your couch to your TV), but it has a very widely spread beam (you don’t want to have to be a sharp shooter just to change the channel). This is what your LED is like. The TSAL 6100 has an angle of half intensity of 10°. This is essentially the angle, around the centreline of the LED, that describes the cone of light put out by the LED (well, most of the light is inside this cone). See the datasheet extract below:

intensity vs angular displacementFor a laser tagger, you want a fairly narrow, straight beam of light. Not only does this make the game more interesting (taking more skill to hit a target), but it gives you greater range. To achieve this, we can use a basic convex lens. I just used a standard 40mm lens from a small magnifying glass that I got from a $2 shop. By placing the LED at the focal point of the lens, the light emitted will come out the other side of the lens parallel to the centreline of the LED and lens. This means that the beam of light is now a straight, narrow cylinder (almost) instead of a wide cone. See the image below:

Lens OpticsThe best lens for the job is one where the cone of light from your LED reaches the diameter of your lens, when the LED is placed at the focus point of the lens. This way, your lens isn’t larger than necessary (increasing the size of your tagger), and it isn’t smaller than necessary (meaning that light from the LED would miss the lens, around the edges, wasting power).

The optimal diameter of the lens is calculated like this:

D_optimal = 2*tan(angle of half intensity)*focal length

To find the focal length of the lens, just go outside on a nice sunny day. Because the light from the sun has travelled so far, the rays are coming in almost parallel. So just hold the magnifying glass over something that won’t catch fire, and adjust the height until the light is focused into a tiny point (as if you were trying to set fire to the object). Now measure the height from the point of light to the magnifying glass; This is approximately equal to the focal length. I found that the focal length of my lens was about 123mm.

Now, at 123mm, a cone with a 10° half angle will have a base circle of 43mm. This means that I’m losing a little bit of light around the edges, because the lens is only 40mm in diameter. I have a 60mm lens with a focal length of 170mm, which is just about spot on, but I chose to go with the 40mm anyway, as it would make the laser tagger SLIGHTLY less bulky, awkward and ugly.

The next step is to actually fine-tune your optics. I suggest using a tagger design that lets you move your LED in three directions relative to the lens.

Set up your gun, but us a normal red (or any other visible colour) LED, instead of infrared. Stand in a dark hallway, and turn on the LED. Aim the tagger at a nearby wall, You should be able to see a faint circle. Now move the LED in and out, to get the circle sharply focused on the wall (a nice clear, crisp outline, instead of blurred). Also move the LED left/right, up/down, to get the circle bright and well rounded (not distorted). Point the tagger at a far wall to check the focus is still good. Now lock it down. I used a crap load of super glue to fix all three directions. This is important, because you don’t want the optics to shift during play, or when you replace the coloured LED for the IR LED.

Another point to take care of once you have done the above, is to align any laser pointers that you have mounted on your tagger. Since the laser on my design is mounted just below the lens, the laser (if aligned parallel to the LED) would always shine slightly below where the IR blast is shining. To ensure that a direct hit with the laser corresponds to a direct hit with the IR, I angled the laser up slightly. At close range, the laser is in the lower half of the IR circle; at long range, the laser is in the upper half of the circle. The diagram below will (hopefully) describe the arrangement better than I can.

Lens Adjustment

tagger with beam - sideHardware

I printed the tagger on my 3D printer; you can check out the design here: http://www.thingiverse.com/thing:454862

The intention was for the tagger to be easy to modify or enhance, and to use a user friendly mounting arrangement for all parts, so that others can design bigger and better taggers, with more features, such as:

  • Ammo counter
  • Sniper rifles (higher power IR LED, more precise optics arrangement, etc)
  • Shotgun mode (wide angle, short range)
  • Individually programmed favourites buttons
  • Smartphone incorporation (using the smartphone as the controller to select ammunition types, track ammo, etc)
  • IR receiver (to make a fully incorporated laser tagger system to track health, ammunition, kills, etc, for friendly laser skirmishes)

The possibilities are endless. I just wanted to make a cheap system that could be used by others for their own purposes.


The tagger functions fairly simply. It uses an Arduino Uno as the brain of the tagger (minimum. Arduino Mega would allow for greater flexibility).

The Loop code cycles through looking for events such as

  1. The encoder changing position (increment cursor position, or change ammo type if an ammo slot is selected)
  2. Trigger pressed (fire an IR signal containing the series of ammo selected)
  3. Timer elapsed (refresh LCD screen display to show cursor position and update loaded ammo list)
  4. Favourites button pressed (load ammo combination from favourites list)

The main code features that it uses to achieve this are:

  • Quadrature encoder control (checks encoder position A and Position B at each cycle and compares to previous cycle. if different if determines which direction the encoder has turned, and calls an UP or DOWN function).
  • IR library – as discussed in my previous databullets post, I used the library by Ken Shirriff:



  • LCD library (standard with arduino software) – I still find these LCDs a little to temperamental, but they do the job, as long as your cables aren’t too long (interference can easily cause problems with the screen display)

The best way to figure it out is probably to look at my code, so here it is:

ARDUINO SKETCH FOR TAGGER (paste into Arduino, or rename to .ino):

Copy of tagger_uno_updated

ARDUINO SKETCH FOR ROBOT (paste into Arduino, or rename to .ino):

Copy of _9_1_TAG_BOT

Any questions, feel free to ask.


Here’s a copy of the schematic for the circuit board that sits between the Arduino Uno and the various switches / LCD screen / LEDs. It’s drawn up from memory, so let me know if any of it doesn’t seems right… I’m pretty sure that it’s right.


R1, R2, R3, R4, R5 – 10kOhm (pull down resistors for various switches

R6, R7 – 270 Ohm to limit base current controlling BC337 transistors.

R8 – mini potentiometer, for adjusting LCD contrast. Any rating should be fine. say 1kOhm?

R9 – 56 Ohm (or select as appropriate for your IR LED rating)

R10* – approx 72 Ohm (I had two LEDs wired in series). The reason for the asterisk is that this resistor was actually external to the circuit board, as I had a laser module wired in parallel to the muzzle flash LEDs.


Here’s a BOM for the tagger electronics, including cost:

  • Arduino Uno – $10 on ebay
  • Prototyping Breadboard (soldered type) – 20 cents on eBay
  • Rotary Encoder – 30 cents
  • Header Strips – 30 cents
  • Microswitch (trigger) – 50 cents
  • 16×4 LCD Screen (Hitachi HD44780 type) – $2.50 on eBay
  • 2x Transistors (BC337) – 20 cents (check out RS components)
  • Resistors – 5x10kOhm, 2×270 Ohm, 1×72 Ohm, 1×56 Ohm – negligible cost, you should already own some.
  • mini potentiometer – 1kOhm? – negligible cost, find whatever you have lying around.
  • LEDs – 1 x red, 1 x yellow – negligible cost, you should already own some.
  • IR LED – TSAL6100 (940nm, 100mA, 10°) – 50 cents (check out RS components)
  • Laser Diode – 50 cents

I scrounged the mini potentiometer and favourites button from an old VCR, I’m sure you can do the same with some of these parts.

The Future

My intention is to post additional parts for the A.R.M.S collection on thingiverse, such as:

  • Alternative battery packs
  • Alternative Arduino cases (i.e. for the Arduino Mega 2560)
  • Alternative handles
  • Accessory mounts compatible with Nerf Rail accessories
  • Improved LCD screen mounts
  • IR diode arrays
  • Add-ons
    • Shotgun (sliding IR led mount to put LED closer to lens, giving shorter range but wider beam)
    • Grenade launcher (under-mounted launcher that fires a ball array over-powered of IR LEDs connected to a wire, wire could be used to re-wind grenade)

And of course, I would use the same five-point screw mounting system for all of these parts, so that people can mix and match.

If people just designed things right to begin with, I wouldn’t have to fix it for them.

Having recently put in a new kitchen, it was immediately apparent to my wife that the wooden stools that we owned were not in ANY WAY suitable. For anything. Not even worth turning into kindling.

So we decided to buy some new stools/chairs. They had to have backs on them, rather than just being stools, so that we could sit comfortably in them for an extended period of time. They also had to be at the correct height for the new kitchen island (900mm high, 40mm thick benchtop), which (I discovered after experimenting with the wooden stools and a hacksaw) is exactly 650mm. Now here’s what I have since learned about chairs and stools:

  • They’re too damn expensive. Even the replicas. And expecially the “fancy” replicas (yeah. apparently that’s a thing too).
  • Most of them are far to unstable to be so expensive.
  • Most of them are far too uncomfortable to be so unstable.
  • They are all the wrong height

Despite these difficulties, we found some chairs that were comfortable, stable, and not QUITE expensive enough to make me cry a little bit when no-one else was around. but of course, they were the wrong height. It was a 70cm (-ish) Bertoia chrome “replica” chair. I say it was a replica chair, but… it still behaved like a chair when I sat on it, so I’m not exactly sure what that’s all about…

I decided that the best option was to get the right chair, and then just fix their design flaw, but cutting 55mm off the height of the chair. We bought one chair to make sure I could do this without completely wrecking the chair, and once I proved that it was fine, we bought another three.

Since I didn’t want to waste that much money, I did the following:

  • Took some careful measurements of the height to the top of the cushion where the thigh rests, and the angle of the chair legs.
  • Took the measurements again.
  • Designed a mitre block to act as a guide while cutting.
  • Printed the mitre block on my 3D printer
  • Cut the legs to the correct length.
  • Re-capped the legs.
  • Designed and printed a replacement cap for one leg that came with a broken cap.
  • Sat and went “Ahhh”.

The mitre block only needed to cut perpendicularly, since the caps only fit square to the leg. I made two blocks: one for the front legs, one for the rear legs. Realistically, I didn’t need to. The front legs, being at 81.5° to the ground, needed 55.6mm cut off. The rear legs, being at 76.5° to the ground, needed 56.6mm cut off. But, I made two different mitre blocks anyway, just for the hell of it. I made sure the hole through the blocks fit easily, but not loosely, around the leg of the chairs, and provided an open section to allow the block to be clamped to the leg of the chair. To see what the block looked like, check out the Thingiverse files.


Here are some photos of the chairs, and the process:

1 - Before


2 - jig going on

Jig going on

3 - jib clamped in place

Jig clamped in place

4 - cutting leg

Cutting the leg

7 - first chair complete

First chair complete


8 - four chairs complete

Four chairs complete

9 - chairs at correct height

Chairs at correct height


And some photos of the end cap replacement:

a - damaged end cap

Damaged end cap

b - replacement end cap

Replacement end cap – you can barely tell which one is the replacement…

c - replaced chair leg

Replaced chair leg cap

Filament Spool Holder – Another 3D printer upgrade

“A chicken is just an egg’s way of making another egg”

How true of RepRappers and our 3D printers.

Since I got my 3D printer, about half of what I’ve done with it has been upgrading or fiddling with the printer itself, slowly fixing issues, or just trying to make it easier to hit GO and let it print my creations. Don’t get me wrong, I’m not saying that any of this is in any way bad. Almost all human endeavours are aimed at just having fun, or making it easier to entertain ourselves. I find this tinkering very entertaining, and it helps exercise the Tinkerer part of my brain, which doesn’t always get the love it deserves during normal life.

Anyway, one thing that has always bugged me about my printer is the filament spool holder. When I first got the machine, it was a piece of HDPE pipe taped across the top of a box… “just to get me printing”. I won’t show a photo of this. It was embarrassing.

Then I printed some brackets to support a rod (again, HDPE pipe, because I have 25m of it under the house after plumbing up a garden tap). An improvement, as I could now put the lid on the box with some desiccant inside to keep my filament dry, but still not great. The pipe was low friction, so it turned well, but the pipe would sag, and end up with the filament roll touching the bottom of the container.


I then found some awesome, rigid plastic tube, which worked a lot better, because it didn’t sag.


The problem, aside from the extra space required on my printer bench, was the tendency for the filament to snap between the machine and the roll, if left connected for more than about a day. I suspect that this is because of the curves that the filament had to go through to get to the machine. It’s curved on the spool, curves to get horizontal out of the box, then flattens out to go horizontal, and then curves again to get into the printer. I suspect that the reversing curves just increase the stresses in the filament, and the changes in temperature in our house throughout the day cause it to finally fail.


I hope that this issue will be eliminated through my latest upgrade.


When I had been building the printer, I did forsee something like this happening, so I put in a few spare T slot nuts, since I knew that I wouldn’t be able to access the ends of the extrusion without diamantling structure… screw that. Of course, the problem is that I didn’t put ENOUGH nuts in. That’s alright, I just designed and printed some twist-in nuts, which actually worked REALLY well. Here’s the design:

See my Thingiverse page for the spool holder design, http://www.thingiverse.com/thing:260864

And you know what?

It doesn’t look half bad.