Sunday 27 October 2024

N Gauge Model Railway - Carrom Table Layout - Episode 1

Tony's Model Railway

Documenting my journey into model railways.

Coffe Table Layout (or should I say Carrom Table)

Those who know me in meatspace are aware of my passion for Carrom, the tabletop shuffleboard game played in most parts of the indian subcontinent.  I purchased a table a few years ago and converted into a coffee table.

This is the perfect base for my N gauge Layout and measures 32" square to the outside edge.

Starting with a Starter Set

I was lucky to snipe a Graham Farish 370-025 Tank Loco Starter Set from ebay for less than £80.  This was an absolute bargain and in great condition.  The set includes 8 pieces of settrack scribing a circle with the smallest 9" radius curve.

268 Southern 0-6-0Tank Loco (Graham Farish)

Also in the set came a 0-6-0 Southern Tank loco, 2 wagons and a brake van.  The loco will definitely be getting a paint treatment as it looks really quite plasticky and I think with the application of some black panels and some pin striping it will look much less like a toy.

I did also have a small collection of 3 wagons and a Minitrix 2f 0-6-0 Dock Tank Locomotive 47160 which I found in a charity shop for £3.  I hope to get that loco working again as I seem to have blown it up!!.

Building a Box

All the best layouts are enclosed with beautifully painted backdrops and so I designed my enclosure to be tall on 3 sides with a lower front section enabling easy access to rail locos and rolling stock and to get unfettered views of the layout.   

Carrom Table Model Railway Layout Enclosure

The sides also pull double duty creating a well so that the layout can be removed easily when that all important game of Carrom needs playing.  My design should allow for everything trainset related to move with the layout and also provide easy access to the underside of the layout where the wiring channels will be.

I tried to get some MDF for this project from my local B&Q and Homebase stores.  However, they seem to have stopped selling DIY materials in real world sizes and now appear to only sell Christmas decorations and pillows.  The struggle is real people.

I need the following boards:

  • 1 x 32"x 32" (813mm x 813mm) 
  • 3 x 33" x at least 6" (813mm x 153mm)
  • 1 x 33" x at least 3"(813mm x 76.5mm)

I am designing much of this layout using my go-to 3d modelling software sketchup free and hope that this will be of great assistance when planning out the placement of tracks.

Layout Wishlist

32" square is not exactly a huge space, but I would like to try to get

  • 1 x central small 9" radius loop with some internal shunting space
  • 1 x middle larger 12" radius mainline loop which perhaps goes into a tunnel at the rear of the layout.
  • 1 x outer elevated loop which climbs on the left drops down on the right and reconnects with the mainline at the front of the layout.

The elevated loop ios going to be most challenging as there will need to be a removable section so that any loco's going through the tunnel can be retrieved if they derail.

Carrom Table Layout Running Video


 

Saturday 26 October 2024

Mega City Block Upgrade - Arduino Nano MAX7219 Display

A while ago I built a Mega City One Miniature Cary Case for my Judge Dredd miniatures and it was always my intention to have some sort of digital display which I could display random "in game" messages and to send instructions to the players such as ROLL FOR INITIATIVE.

The Components

Arduino Uno / Arduino Nano

I'd been itching to mess around with an Arduino microcontroller for years but never had the courage to just dive in.  However, there are so many people on ebay and Aliexpress selling ridiculously cheap arduino kits that there really is no barrier to entry. 

I plumped for an Arduino Uno Rev 3 Starter Kit which included a breadboard, jumpers and a whole pack of additional resistors and what nots.

The goal here is to make a small form factor self contained device so migrating from the large Uno dev board is essential.  I ordered a random Nano board from Aliexpress before realising that they come in 3 varieties with different board to PC connectors.  the cheap one I had picked came with an old style mini USB B connector and no lead.  Fortunately I had an lead from an old digital camera to use in the meantime, but I quickly ordered a bunch of nanos with USB C connectors for this and other projects I have in mind.  

MAX7219 8x32 Dot Matrix Display

The perfect lo-fi display for this project is a MAX7219 LED 8x32 dot matrix display.  It's small enough to work as a standalone unit and can take its power from the Arduino itself.  I bought one from AliExpress for only a couple of pounds. 

Wiring the MAX7219

I grabbed a bunch of dupont wires (these are the handy dandy push pin connectors which you get in your arduino kit.  I chopped one end off each wire and soldered them to the MAX7219 pins:

  • VCC - Purple - 5v
  • GND - White - GND
  • DIN - Black - Digital Pin 11
  • CS - Blue - Digital Pin 10
  • CLK - Grey - Digital Pin 13

Wiring the Button

The button is wired into:

  • VCC - Red - 5v
  • OUT - Orange - Digital Pin 7
  • GND - Yellow - GND

Entering the The Matrix Code

A bit of googling discovered the perfect code in the form of MAX7219 Message Selector on the Arduino Forums by user groundFungus.  Some tweaking later and I had a bunch of messages which I could toggle through with the addition of a button push on PIN7

// Program to demonstrate the MD_Parola library
// button select canned messages
// MD_MAX72XX library can be found at https://github.com/MajicDesigns/MD_MAX72XX
// by groundFungus AKA c. goulding

#include 
#include 
#include 

const byte  buttonPin = 7;    // the pin that the pushbutton is attached to

// Define the number of devices we have in the chain and the hardware interface
// NOTE: These pin numbers will probably not work with your hardware and may
// need to be adapted
#define HARDWARE_TYPE MD_MAX72XX::FC16_HW
#define MAX_DEVICES 4

// Scrolling parameters
#define SPACE_IN      A5
#define DIRECTION_SET 8 // change the effect
#define INVERT_SET    9 // change the invert

#define CLK_PIN   13
#define DATA_PIN  11
#define CS_PIN    10

MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

// individual messages in strings
const char msg_1[] = "<< WEATHER ALERT>> RAIN IN 10 MIN <> SECTOR 237 RIOT IN PROGRESS <> HOTTIE DAWGS ARE GOOD TO EAT <> BE GOOD CITIZENS LITTERING IS A CRIME>>  ";
const char msg_2[] = "<> ROLL FOR INITIATIVE>>";
const char msg_3[] = "<> GET UGLY GET OTTO SUMPS OIL OF UGLY TODAY!! >>";
const char msg_4[] = "<> HEAVY TRAFFIC ON THE BIG MEG CHOOSE ALTERNATE ROUTES >>";
const char msg_5[] = "<> THIS AREA IS IN LOCKDOWN >>";
const char msg_6[] = "<> CLEAN UP CREWS IN TRANSIT >>";

// an array of pointers to the strings
char *messages[] = {msg_1, msg_2, msg_3, msg_4, msg_5, msg_6};
byte messageNum = sizeof(messages) / sizeof(messages[0]);

int buttonPushCounter = 0;   // counter for the number of button presses
int buttonState = 0;         // current state of the button
int lastButtonState = 0;     // previous state of the button

void setup(void)
{
   Serial.begin(115200);
   Serial.println("\nParola pick a message program\n");
   P.begin();
   pinMode(buttonPin, INPUT_PULLUP);
}

void loop(void)
{
   if (P.displayAnimate())  // time to show next frame?
   {
      P.displayText(messages[buttonPushCounter], PA_CENTER, 50, 3000, PA_SCROLL_LEFT, PA_SCROLL_UP);
   }
   checkButton();
}

void checkButton()
{

   static unsigned long timer = 0;
   unsigned long interval = 25;
   if (millis() - timer >= interval)
   {
      timer = millis();
      buttonState = digitalRead(buttonPin);
      // compare the buttonState to its previous state
      if (buttonState != lastButtonState)
      {
         if (buttonState == LOW)
         {
            // if the current state is LOW then the button
            // went from off to on:
            buttonPushCounter++;  // add one to counter
            // if counter over number of messages, reset the counter to message 0
            if (buttonPushCounter >= messageNum)
            {
               buttonPushCounter = 0;
            }
            //Serial.println(buttonPushCounter);
         }
      }
      lastButtonState = buttonState;
   }
}

Debugging the Code

Unfortunately this particular code only reads the button state at the end of each scroll.  This is where an interrupt is going to be necessary.  The arduino Uno and Nano boards that I have access to are only enabled for interrupts on digital pin 2s and 3 and will necessitate a bit of a rethink in the code 

MAX7219 Case - Thingiverse: Thing 6809712

No one wants to live in a run down cyberpunk world with exposed wires everywhere, so I needed a case for the display with enough depth to house the nano and the button which would switch modes.

I found a simple MAX7219 8x32 case on Thingiverse which I could easily embed magnets into to affix to the top or side of my Mega City Block Storage Case.  Sadly this did not fit my particular MAX7219 board as the pins came out sideways.  

This was easily fixed with a bit of modelling in Sketchup and if you need a case and have side exit pins feel free to download this from Thingiverse using the link above.


Wednesday 23 October 2024

Jessie's Prints - Episode 48 - Judge Dredd Shuggy Table

This week, I are mostly been printing... A Shuggy Table!!

Shuggy Table - Thingiverse Thing:6804108

Those of you who aren't Judge Dredd fans (there can't be many of you), Shuggy is the futuristic equivalent of billiards (aka pool) which is a popular pastime among the permanently unemployed citizens of Mega City One.

Judge Dredd Shuggy Tables (15mm)
15mm Shuggy Tables (5p coin for size comparison)

Tracing its origins back to the original 21st century ball and stick games, Shuggy is played on a table with 22 holes which are distributed around the surface atop small mounds.  The object of the game is to "pot" balls into the holes to score points.

A complete run down of the rules is provided by Judge Macus L Rowland in the Wally Squad briefing 041204-2103 also found on pages 50-51 of the Judge Dredd Companion.

This particular 22 hole variant of the game was scaled for use in the print-and-play boardgame Shuggy Hall Brawl published in Issue 11 of Warlock Magazine, but it can be easily scaled to suit the larger Judge Dredd Miniatures Game or the many variants of the Judge Dredd RPG

Monday 21 October 2024

Jessie's Prints - Episode 47 - Nimbus the Goliath

This week, I are mostly been printing... A Nimbus!!

A birthday print for my clubmate Paul.  Sculpted using the heroforge app and then downloaded as an STL

The Heroforge Design

Paul got very creative using the heroforge and came up with this design.  The challenge for me was to try to print and then paint him without turning him another famous grey haired blue skinned chap... Papa Smurf.

Nimbus - Heroforge vs Print

It is also refreshing to have a render to paint from, relieving me from the complex task of designing a colour scheme.

Words of advice from a 3D Printing perspective

Whilst I love that heroforge exists there is a temptation for the wannabe designer to cram every facet of the mini with detail.  From a printer's perspective this is a bad thing.  Everything is possible when you have a $20,000 Selective Laser Sintering machine and you are making minis out of exotic materials like metal or resin powder.

However, when you are commissioning a print for an SLA printer you really need to consider how the model is going to be printed.  Typically this is going to be at 45 degrees on it's back as no one wants to be dealing with support material all over a character's face.

If you have sheathed swords or capes try to keep them close to the body so that they are supported rather than dangling in free space.  Don't go for the Michael Jackson pose where his cape is streaming out behind him in the wind as this will cause your printer do pull their hair out as they try to find somewhere to support the mini.  

Large volumes of cloth streaming out from behind a mini also mean that they have what I like to call a high "snapping moment" this is where there is a lot of resin supported only by one small section.  One false move or indelicate pick up and "click" there goes your cape leaving you to pray to the Glue Gods that it can be stuck back on again.

Merged Accessories and Paper Dolls

The other main gripe I have with Heroforge is that it is easy to model things that blend into one another.  For example, in the case of our boy Nimbus, his cape sprouts out of his pauldron and it is very difficult to tell where one piece starts and another ends.  

A real sculptor would understand that it would sit over top or underneath, a human form of collision detection, and appropriate sculpting would take place to remedy the situation.  Sadly this does not happen with Heroforge and there is no priority system in the software which detects these edge collisions and does something about it.  

It is effectively the digital version of the vintage Paper Doll toy.


Saturday 19 October 2024

Jessie's Prints - Episode 46 - Looot Insert Boxes

This week, I are mostly been printing... Looot Boxes!!

I am lucky to have a bevvy of machines to do my bidding and enable me to print in both style, Fused Desposition Modelling (FDM) and Stereolithography (SLA).  FDM is the perfect choice for projects like these boardgame organiser boxes.

Looot Insert - Thing 6661983    

This was a commissioned print for my colleague Stephen who is a mad keen boardgamer.  I used some Geetech Silk filament one of the cheapest I could get from Ali Express and I was blown away by the smooth texture.  

Definitely something I will look out for in the future.

Looot Boardgame Insert Boxes