Merlin

A tool for reducing the overhead of setting up and playing tabletop roleplaying games

Running Games Takes Effort

Merlin is focused on making it easier to move pieces around a game board and display maps to players, so that game masters are free to focus on the game.

Glennarthyr Gillespie - Gnome Wizard

Fluent in the arcane languages of JavaScript and Python, Glenn has the ability to command inanimate objects to do his bidding! Fortunately for us, he chooses to use this power to bring Project Merlin to life. With a +3 Keyboard of Coding he’s been writing his own magical tomes non-stop, though none of us know quite enough magic to understand them.

Adnaan Peshimam - Changeling Warlock

Adnaan likes to dabble in all aspects of the project; some days he’s verifying Glenn’s arcane glyphs and other days he’s poring over John’s dwarven runes. Most of the time he’s been using his skills as a novice electromancer to connect the magic and mechanical contraptions that make up Project Merlin. He also occasionally asks us for money and shows up with shiny new parts, but he won’t say where he gets them.

John Omeljaniuk - Dwarf Paladin

An apprentice metalsmith, John is responsible for much of the unique Dwarven mechanisms that lie at the core of Project Merlin. With a magic toolbelt at his waist and a +2 Caffeine Potion in hand, he’s busy getting stuff done all hours of the day. John and his unlikely Elven ally, Keenan, worked together to build the tabletop gaming rig of our dreams!

Keenan Carragher - Elf Ranger

Keenan’s sharp eyes and knowledge of woodcraft were instrumental in bringing our goals to fruition. Despite their differences, he and his Dwarven friend, John, worked closely to draw up plans and build Project Merlin from scratch. He says he doesn’t know any Elven magic, but how else could he move around and work so fast?

Progress Updates

Final Update: 13 Mar 2019

Final testing and last minute modifications before the true demo day! A video of the preliminary demo is provided below.

Hardware Update 5: 11 Mar 2019

- Sensor mounts machined and installed; sensor testing began
- Tabletop manufactured and installed
- Minor axis cart machined and installed with timing belt
- E-chain installed for wire management
- Electromagnet wound and installed on cart
- Linear rail received and installed for minor axis; minor axis motion tested
- Full gantry system is now assembled; full stack testing begins

Responsive image
Responsive image
Responsive image

Software Update 6: 9 Mar 2019

The number of tests has grown greatly over the past week as the other systems have really come together. The one piece of firmware that has probably grown the most is the core movement algorithm, which now implements a fancy control algorithm in order to achieve maximum possible accuracy in moves. The limit switches, motors and encoders have all been tested extensively. The movement, calibration and scanning scripts are all in place and seem to work fairly well, although they could use some minor improvements. The scanning is yet to be tested as the electrical system still needs to be put in place. In order to accomodate this, regular pawns can now be manually added.

Software Update 5: 2 Mar 2019

As the hardware and electrical approach a state where testing can actually begin, it has become important to prepare firmware scripts and tests in order to determine system parameters and any tweaks that may have to be made to the software in order to accomodate inaccuracies in the other systems. A new software repository was started in order to house the new testing scripts that will be used and a great deal of progress was made on writing firmware. Testing should begin soon and with it great pain.

Hardware Update 4: 27 Feb 2019

- Reading week; major machining week
- Minor axis cart body machined
- Bearing housing / free pulley shaft for minor axis machined
- Wheel assembly components machined and installed on the cart
- Cart assembly added to table; belt connected and motion tested
- Table skirt / Tabletop manufactured / fitted

Responsive image
Responsive image
Responsive image
Responsive image
Responsive image

Software Update 4: 23 Feb 2019

Mostly a slow week, but loading bars are now implemented end-to-end so that they will update based on the current progress of the current running task.

Responsive image

Hardware Update 3: 22 Feb 2019

Responsive image

The Table top and skirt has been created out of pine. Instead of having the table top and skirt bolted to the base frame to secure it as initially thought, it was decided that it would be easier to have a table top that simply rested on the frame below, using its weight to keep it firmly in place. This helps with ease of assembly and disassembly. With the table top created, this leaves only the projector mounting post and the game surface as the only table components left to be created.

Software Update 3: 16 Feb 2019

The most major update for this week is the addition of the specific user interface for players. This view is like the old interface stripped of all of the 'extra' information, so that there is only the interface for adding moves. This interface is also a lot cleaner on mobile, which is optimal for players who may not always bring a device with a large screen to gaming nights. The new interface is shown in its mobile layout form, below.

Responsive image

Another more minor update is that pawns are now seperated more cleanly in th user interface based on if they are obstacles or not. The user interface also now supports groups, which are a way of organizing pawns. These changes are purely for increasing the user experience, although they may create a groundwork for future improvements.

Responsive image

Hardware Update 2: 16 Feb 2019

- Motorized pulley mount machined
- Free pulley mount with tension adjuster machined
- Major axis pulley mechanisms mounted to frame
- Table base manufactured; major axis frame mounted to the table
- Timing belt clamp machined; belt mounted
- Initial testing of the major axis timing belt reveals proper alignment and no errors

Responsive image
Responsive image
Responsive image

Software Update 2: 9 Feb 2019

The main software this week was the refactoring of the backend so that the load on the pi was reduced. The backend used to be a single web server which resided on the pi and managed all of the core software functionality. Now, the backend has been split into two web servers. The pi has a very simple web server which is only focused on passing move information to the table firmware. All of the more complicated functionality is now in a web server designed to run on a computer. Thus, the load on the pi will be greatly reduced. The new sofware architecture is shown below, although it also shows the plans for divided interfaces for players and GMs.

Responsive image

The next update to the software is the addition of a header to the user interface. In addition to this looking visually better, it provides a space for some more functionality. Specifically, the frontend now allows the user to input a username which will be saved across multiple sessions. This username will be used to tag their moves so that the GM can track where different moves come from. This is the first step towards an actual user management architecture, although that is probably out of scope for this project.

Responsive image

Responsive image

Software Update 1: 2 Feb 2019

Responsive image

The software has made a great deal of progress since the beginning of the project. Much of the user interface software and main functionality is done, just leaving the hardware communication layer for later development and testing. Above is shown an overview of the user interface as it appears currently. All buttons and interfaces are fully functional to a firmware level, except for scanning which will come later. Currently users can click on the main canvas area of the application in order to add new tasks to the task queue. Simply clicking two squares one after another will result in the table moving from one square to another.

Responsive image

This shows the task queue, where the list of movements to be done by the table are listed and updated over time as they are completed. The user will have the ability to pause the current task, remove tasks from the queue and reorder tasks which are not currently playing.

Responsive image
This screen show how the user can edit the appearance and description of individual pawns in order to customize their experience. There are plans in the future to make the selection of pawns on the pawn list and the canvas more intuitive.
Responsive image

Macros were originally a desired but non essential feature, but they are currently implemented in the current software version! Macros allow for the user to go into an edit mode and add a group of tasks, then save them as a Macro. At a later time a Macro can be deployed in order to automatically queue the group of moves that were predefined for it. Time permitting, this could be greatly improved upon in the future.

Responsive image

Part of this project involves displaying images on the tabletop. In order to accomodate this, users can now upload their own images yo manually set the table background. This also updates the background of the canvas in the software so that the user will be able to more easily move between the app and the tabletop.

Future Work

The most major update planned for the near future focuses on improving the performance of the server code on the raspberry pi, as it is currently struggling under the heavy load. The current proposed solution is to switch the pi so that it is only running a simple server so that the main server can run in a more robust environment and only exchange simple data with the pi.

Work is also being done to improve the user interface in several small ways. Such as: Different views for players and the game master, loading bars for playing tasks and a better mobile layout.

Hardware Update 1: 1 Feb 2019

Hardware
- Major gantry frame is almost complete
- Base of the table structure is complete
- Some mounting features have been redesigned due to material reselection
- Overall height and dimensions of the table have been reduced for more comfortable play and viewing the projected image
Electrical
- Electromagnet control method has been revised to reduce power consumption
- All other components have been received and ready to put together

Responsive image