We tried social media. It's not very sociable. This is just a corner of the internet where slightly nerdy stuff gets recorded, so we know it once happened.
Highland Miniatures create some beautiful looking Mounted Questing Knights https://www.myminifactory.com/users/Highlandsminis
The horses have plenty of decoration for painting different types of heraldry and the knights look nice and easy to paint (I'm thinking black, drybrushed silver, edge highlights in bright silver and a few little spot details would be enough to call them done!).
I hollowed and printed a couple of knights to try thing out. My default process for printing pretty much any miniature is to take the Ryan Ford character from Titan Forge (before they created their sci-fi spin-off division, Cyber Forge) and scale everything to him. I find the Cyber Forge miniatures to be just the right size for me - small enough to still qualify as 32mm "heroic" but large enough to be able to paint tiny details like eyes and facial details.
So I scaled these knights to match my preferred scale and set them running around the jousting track
Disaster! While the horses travel the track just how we want them to (facing the right way, turning around the bar at the end of each run etc) just watching the whole performance makes it look like the bar is only about five feet wide!
One of the constraints we're having to work with, is the size of the closed-loop belt we're using (we tried making our own belt and it failed under tension) and the largest size belt I've got it 610mm. We might be able to go a little bit bigger - but the other constraint we have is the size of the laser cutter we're using (which can only take sheet materials up to about 300m wide).
So even if we had a larger belt, we're not able to cut a large base for it to run along (without making our playing surface out of multiple sections and joining them together). So the obvious thing is to try to make our miniatures.... well.... more miniature.
We'll try scaling our minis down in 10% increments until we find a size we're happy with. Anything smaller than 80% or so, and we'll just have to give up on trying to paint eyes and any similar tiny little details - but that might be no bad thing either; we can just stick to knights with full-face, closed helmets!
When we first designed our "race track" for the jousting knights to move around, we picked the dimensions of a typical GW horse base as being 60mm x 35mm
This requires the distance between the horizontal arms of our track to be at least 35mm apart (assuming the knights will travel perfectly along the centre of the track. Since we need half-a-base-width for each knight, and there are two knights, it was easy enough to arrive at 35mm distance apart.
We then allowed 6mm for our "bar" between the two knights (the bar to be cut from 3mm mdf plus a few mm for any embellishments) and we quickly arrived at a minimum distance of not less than 42mm apart.
But that was assuming that the drive belt would be running through the middle of our character bases. But since we mounted the magnets on little "arms", that's no longer the case. And watching our two fake-bases travelling around the track (see previous video) they do appear to be quite a way apart from each other. Our knights are going to have to carry extra-long lances, just to reach each other, over the bar!
So I guess we're going to have to redesign the size/shape of our track, to make it "thinner" and have the horses run past each other at a closer distance....
It may not be obvious in the earlier video (our first successful test, driving two magnets across the top of a playing surface) but one of the magnets spins quite a lot, as it is dragged along by the magnet underneath (the one that is fixed to the belt).
Clearly, we don't want our knights to be spinning around like the teacups ride at a travelling funfair - we want them to face the direction they are travelling in!
So we added a second magnet, just behind each existing magnet on the belt.
The idea is that our knight miniatures will have not one, but two, magnets in their bases. To ensure our knights miniatures are placed facing the correct direction on the board, we reversed the polarity of the rear-most magnets (so if you try to place your knight facing the wrong way around, instead of attracting to the belt, the magnets in the base will repel each other, and it will be clear that the knight has not been placed correctly on the playing surface).
So now we were ready to actually try the whole thing out - to get our knights to complete one (or more) complete circuits of the track (and hopefully keep facing the right way around, throughout!).
It'll be interesting to see how two magnets a set fixed width apart (on the miniature base) work with the magnets underneath that might change the distance between them (as they travel around curves/corners on the track). I guess there's only one way to find out - build it and give it a go!
So having just a single thin sheet of acrylic to support our stepper motor and drive belt isn't good enough, and we need to add some braces to the acrylic to stop it from deflecting when the belt is under tension. What we need is some "sides" on our stepper not-yet-an-enclosure.
We had some A4 sheets of 3mm acrylic knocking around (it's been hanging about for years) so threw together some designs in Inkscape and set the old laser cutter going again
Talk about cutting it fine! We just about got everything cut from a single sheet of A4. (ok, everything bar one side piece - but we managed to squeeze an awful lot onto a single A4 sheet! We assembled the box shape and fitted the stepper motor inside
At the other end (and mostly because we couldn't be certain of exact dimensions when first designing our race track, before the continuous loop belts had arrived) we fitted the two bearings to a sliding "carriage". The carriage is fitted to the "box lid" through two long slots (and some more tapped and threaded holes directly in the acrylic carriage material). This way we can wrap the belt around the bearings and the pulley on the stepper motor, then slide the far bearings away from the motor, adding more (or less) tension to the belt, as required.
With everything installed and the bearings set to the correct distance, we gave our belt a quick test, to make sure it could rotate around the bearings freely. Everything was working well. The plastic no longer had any flex in it, the belt was perfectly horizontal, and no matter how many times we span it around and around, the belt never once tried to work itself up and over the tops of the bearings.
Now we needed to find a way to fix some magnets to the belt in such a way that they could move freely, in close contact with the "lid" (yet to be fitted) but without them getting snagged or tangled up with the bearings/pulley.
We couldn't clip anything over the belt (since it would eventually run over the bearings or get snagged in the pulley on the stepper motor). But - as currently set up - nothing ever comes into contact with the outside face of the belt. We figured we could glue some little "brackets" to the outside face of the belt, and add our magnets to these. A little bit of bent solid-core wire was just the job!
Superglue on drive belts isn't a brilliant idea - we've already had experience of it failing, when we made our own belt-loop, made by super-gluing the end edges of a single length of T2.5 belt together, then reinforcing with some plastic, superglued across the join.
The problem with superglue is that it makes a "stiff" section in the belt. But our solid core wire is barely 1mm thick. So the amount of surface area affected by the superglue will be very small. Once we'd got our "wire brackets" fixed to opposite corners of the belt, we superglued a 5mm disc neodymium magnet onto each one (making sure to use similar polarities for ease of use later). With the magnets fixed to opposite corners of the belt, rotating it caused the two magnets to appear to travel towards each other, until they passed each other, somewhere near the middle of the track.
After a dry-run, pushing the belt by hand, it was time to run the motor, and made sure that the magnets could travel freely and easily around the outside edges of the bearings
Everything looks like it's going to plan. Just one last test to try out - the big one. The one that will tell us whether this entire project will even work or not! The idea is to place two knights on horseback on top of this belt - each knight having a magnet in his base. As the belt spins, under the playing surface, so the magnets with travel around the outside of the circuit, described by the belt. And if our tabletop miniatures also have magnets in them (presuming we've fitted them with the correct polarity) then we should be able to get our knights to travel towards each other (for each round of the jousting competition) then away to tournee around the rail and prepare for their next charge.
The big question is - as a concept, would these even work?
And here's the final result. A playing surface, on which two magnets appear to travel, completely without restrictiom. It looks like we might be on to something after all....
It's funny how even the simplest, most obvious things can sometimes catch you off-guard. Like this belt-driven "race track" for our Full Tilt game remake.
To date, we've stuck with acrylic for fixing the stepper motor and the bearing down and laying things out. It's not the cheapest material to use for "iterative design" (read try something, cock it up, put it right, try it again, etc. ad infinitum). MDF would probably be cheaper and a more appropriate material for prototyping and getting the layouts right.
But acrylic has one thing in its favour - you can make your holes for your bolts ever-so-slightly-too-small (e.g. 3.5mm for a 4mm bolt) and they take a threaded tap really, really well. So where we've got upright "posts" for our bearings to sit on, by using acrylic, we can drill these holes and tap them, and screw the bolt straight into the thread in the acrylic.
It's possible to tap into MDF but after a little while, the threads tend to work loose. If ever you put a bolt through a hole in some MDF you almost always end up putting a nut on the other side to keep the bolt in place. And we don't want unsightly nuts everywhere, because that would raise the bearings up in the air, and make the belt ride higher than we'd like.
So we're sticking with acrylic. Because laser-cutting holes then tapping them to take our M4 bolts is really neat. But there's something we overlooked...
When running our belt backwards and forwards, the belt kept "creeping up" towards the top of the bearings (if left unchecked, it would work itself up and over the top of the bearings and effectively just fall off). It was as if the belt wasn't travelling perfectly horizontally after all.....
And that's because.... it isn't.
One thing we'd overlooked is that if there's any tension in the belt at all, it will be pulling against the acrylic base. And with nothing to support it, the long, thin base is simply warping.
Before we go much further with this, we're going to have to build something to give that piece of acrylic some reinforcement!
Ok, we're not messing about now. Yes, it was always a gamble that using a cheap 28BYJ-48 stepper motor with a laser cut home-made gear and a super-glued length of timing belt to make a continuous loop might not work. And it turns out it didn't.
Sure, we could add some kind of spring rollers to push the belt against the drive gear to help reduce slippage. But right at the very start of this project, we suspected this might happen...
So we're not going to waste spend any more time cobbling together something that may or may not work -it's time to focus on the end result here, not tinker with possibles and maybes (however interesting it might be to try out lots of different ideas). It's time to do it properly (as we probably should have done in the first place!) and use a "proper" stepper motor, and a "proper" closed loop timing belt and remove as many points of weakness/failure from the system as possible.
There are a few common-fixed-length closed loop timing belts on the market - the largest I could find (at a reasonable cost and able to deliver quickly) was 610mm. They are available in multi-packs of different sized belts:
These come with T2 pulleys for use with any common 3d printer kit. Which means we're going to be driving our nema-17 stepper motor using an A4988 driver board.
(whether we go for the full 12V or stick with our preferred 9V, we'll have to wait and see, but the principle is pretty much the same not matter which supply voltage we eventually go with)
The nice thing about the A4988 board is that we don't need to worry about investigating coils and working out step sequences and making sure we drive the coils in the correct sequence and so on. You simply provide a direction signal and a step pulse and each time the step pin rises from low-to-high, the board sends the appropriate signals to advance the stepper motor by one step (in the appropriate direction).
There's also an Arduino library that allows you to send single, individual step commands - so we can run a function on a timer-based interrupt which checks to see if the motor should be running, and sends the appropriate pulse-step if necessary - this will allow us to run our code without having to worry about "blocking functions" or the microcontroller becoming unresponsive while the motor is turning.
As before, the first step is to just get our motor spinning in response to a single input condition - we can then expand this for use with a closed-loop belt and to make our "racetrack" for a remake of the classic GW game Full Tilt.
const int stepPin = 8;
const int dirPin = 9;
int delay_ms = 1;
int potValue = 0;
digitalWrite(dirPin,HIGH);
for(int x = 0; x < 200; x++) {
digitalWrite(stepPin,HIGH);
delay(delay_ms);
digitalWrite(stepPin,LOW);
delay(delay_ms);
getSpeed();
}
delay(100);
// change rotation direction
digitalWrite(dirPin,LOW);
for(int x = 0; x < 200; x++) {
digitalWrite(stepPin,HIGH);
delay(delay_ms);
digitalWrite(stepPin,LOW);
delay(delay_ms);
getSpeed();
}
delay(100);
}
void getSpeed(){
// read the speed input pot and set the speed value as appropriate
potValue = analogRead(A0);
delay_ms = map(potValue, 0, 1023, 1, 25);
}
The end result is a variable speed motor, which we can use a simple potentiometer to control to speed of rotation.
At slow speeds, the stepping becomes almost visible, and the noise from the motor becomes very noticeable. At higher speeds, the motor is less "noisy" but at its fastest, the motor is clearly moving too quickly for our purposes - probably great if you're driving a CNC or a 3d printer, to be able to move the head around so quickly, but for us, we'd much rather a slower "top speed" and a quieter operation.
There are driver boards out there that specialise in ultra-quiet operation. If it comes to it, we might give this some consideration. But before we do that, there is still one option available to us..... microstepping.
At times, when we're unable to work on the hardware for our eletronically-enhanced, app-augmented version of Full Tilt, we're still able to make progress on the overall game, creating "digital assets".
The original rules suggesting using playing cards to represent various knightly virtues and jousting ploys. We thought it'd be fun to turn these into dedicated cards for the game (and maybe even add a simple RFID tag to each card, so it could be read by some device, when placed on the playing area.
The templates are super-easy to modify using GIMP and the templates provide for a (small) range of alternative modifications. We went with a pretty simple layout:
A summary of the rules and the "pips number" is all we need on each card. The different card types (ploys, virtues and favours) each have their own coloured back, and a corresponding colour for the card index number.
In the original game, each knight can approach the Royal Box and be awarded "favours". For each favour awarded to your knight, they get one re-roll (so any dice roll the player is not happy with can be re-rolled - the second result must be accepted, even if "worse" than the first).
We felt like we could do a little more with the favours - as well as awarding each knight a number of re-rolls, we created some "virtue cards" - each player draws the number of cards that their knight has been awarded favours.
Favours add a one-time "bonus" for players to play when choosing their ploy. For example, the player might play a favour card which gives them a +1 modifier to their dice roll when trying to hit their opponent. Or they might get +1 to their dice roll. Or they might be able to negate any bonuses claimed by their opponent for that round! (anyone familiar with the "nope" card in Exploding Kittens will appreciate how careful use of this tactic can be devastating!)
The plan is to have a number of RFID readers embedded into the playing surface, and add RFID stickers to each card - as a player places their card (face down) to indicate that it is in play, the reader will be able to determine the card played and send this information to the connected smart device, to apply the appropriate effects to the game.
It's the creation of ancillary things like cards that really bring a game idea to life - it makes it feel less "conceptual" and more like a real "thing" when you have actual, physical items to hold. We've a double-roll office laminator knocking about somewhere, so should be able to use a regular inkjet printer to create the cards.
Now, where did we leave that poker-card hand-punch....?
Ok, we're not sure yet how to even make a length of T2.5 timing belt into a closed loop yet. But when we do, we want the belt to run between a series of fixed bearings, to make a "track" for our miniature 3d printed horses to follow.
As with our previous designs, we're still working out how this is going to work - or even if it will at all! But we're going to need some uprights for the bearings to fit over. It's tempting to just drill some holes, pop an M4 bolt through and fix it in place with an appropriately sized nut.
But that will then add additional height to the bearings - they will effectively stand proud of the baseplate (and we're not sure if we want that just yet). So instead, we're going to cut the holes for them at 3.5mm then use a die tap to thread the holes out to M4 sized
This then allows the bolts to hold themselves locked into the baseplate without the need of fixing them in place with a nut on the other side
So now the bearings can just sit over the bolts and act as guides for the belt. Once we've worked out how to make a closed loop from the timing belt, we'll be able to add in bearings at each corner (note the slotted holes for the corner bearings, to allow us to more them in an out slightly, to add (or remove) tension in the belt, once the loop is complete.
Once the bearings are added to the corners, you should be able to see the path that the horses will take. We'll start with a horse on the track in the bottom left corner of the baseplate, and one in the topright. The stepper motor will rotate anti-clockwise, pulling the two horses towards each other on the track.
As they approach the middle, each will appear to approach the "bar" (the separator running along the middle of a jousting arena). Then, they will run past each other, before moving away from the bar in order to complete their turnaround and prepare for the next pass.
It's all looking quite hopeful at the minute. So long as we can reliably join the two ends of the belt, we should be ok. Then we get to wire everything up and see if it works!
As a fallback option, you can see the Nema17 type stepper motor waiting in the wings (complete with "proper" pulley for precise CNC operation) should it be necessary to use something a bit more "tried and tested". But let's hope it doesn't come to that.....
I've no idea how I didn't see it until it came off the laser cutter. But that first pulley (see previous post) was never going to be suitable to drive a T2.5 belt! The teeth are both enormous and really widely spaced.
So I tried the gear extension in Inkscape (menu - Extensions - Render - Gears - Gear ) to see if my laser cutter was up to the job of creating a pulley (cog) with enough definition to work with a T2.5 timing belt (the pitch between the teeth is just 2.5mm)
I found that 36 teeth with a pitch of 2.5mm created a cog without about the same outer diameter as the previous one, that I based the rest of my designs around. And while it was much better than the original (laser-cut) pulley, it wasn't quite right....
On a straight, linear section, the teeth appear to line up and mesh correctly. But as soon as there's any kind of bend in the belt....
While everything appears to line up at the 12, three, six and nine o'clock positions, it's clear that the tooth pitch doesn't quite match the pitch of the belt. Now, I'm pretty sure that the belt has a pitch of 2.5mm. It's labelled T2.5. It matches exactly the belts on my Tronxy 3d printer, which has a 2.5mm pitch (and has been correctly set up with this as the belt pitch and prints with an accuracy of +/- 0.1mm
So I tried a few different laser-cut pulleys - one with 38 teeth, with a pitch of 2.4mm, one with 40 teeth and a pitch of 2.3mm and one with 42 teeth and a pitch of 2.2mm. The first pulley was a better fit, but still not quite right....
With an increased number of teeth, with a smaller pitch (distance between them) the different pulleys all had roughly the same outer diameter. Next up, 40 teeth with a pitch of 2.3mm
The teeth and belt lined up pretty much perfectly! Just to be sure that this is the one we wanted to go with, I thought I'd at least try the next pulley down, with 42 teeth and a 2.2mm pitch:
It's pretty close. But not a better fit that the previous one. So it looks like the best fit is a pulley with 40 teeth and a 2.3mm pitch for our T2.5 timing belt. Seems a bit weird. Either the laser cutter is over/under shooting (tbh, it's been a while since it was last calibrated, so it might actually be cutting slightly too large/small) or the larger diameter means we need a tighter tooth pitch (usually the pulleys on a stepper motor have just 10-16 teeth in a much smaller radius).
But, for whatever reason, through trial and error we've managed to create a laser-cut pulley that matches our timing belt. That's good enough for now!
I've currently five or six half-baked projects on the go. Some fairly recent (like my Head over Heels tabletop remake) some have been hanging around for literally years (did that electronic gaming platform ever get finished? Well, enough to play some games over the 'net but not evolved into a full gaming platform as once planned).
As it's been a while since I've got the old soldering iron out, I figured this would be a great little project to see through to completion as the first project for this (new) blog. From start to finish. It will have everything - electronics, motors, magnetised playing pieces, tracking, a natty little bluetooth integrated app and RFID action cards, as well as cool looking miniatures and lots of customisation and personalisation options.
But should be "small enough" to serve as a project to cover all this from end-to-end.