Close
0%
0%

Interactive Cell Board game

An electronic board game with magnetic piece detection and illuminated cells.

Public Chat
Similar projects worth following
The Helvetios project (named like this because it’s the star 51 Pegasi, where the first exoplanet was discovered) pretends to be a game board were each hexagon cell it’s retroilluminated and has detection of the pieces over it. This way, the game mechanics could be implemented based in a two way communication with the user: the status of the cells could be showed with the illumination and the user could choose the cell by placing a piece.

The illumination is done with three RGB leds for each cell to have an uniform colour distribution, and the piece detection it’s done with a hall effect sensor, so the piece has to have a very little magnet under it.

Depending if it’s necessary to know the pointing direction of the piece, each cell will have one or three sensors and the piece one or two magnets.

The cells distribution is done in various circuits, the first one has the leds and sensors. The leds are driven by a RGB led controller and the sensors are read by a parallel load shift register.

Software:

The required software is divided in three parts:

  • Low level microcontroller firmware: The microcontroller will manage the led drivers to show the desired colour and read the hall sensors. It will adapt all the data to abstract a higher level software to the cell distribution of the board and it’s control. Also will manage an USB connection as a client device and will implement the USB HID protocol.
  • A ‘Gamemaster’ software to manage the data from the USB connection with the board, control the game turns and all the game flow. Also could host an AI player to play against it.
  • A frontend with the interface between the users and the Gamemaster. Could be a web server, to a quick mobile implementation or other data server ad hoc to be used by a client player app.

P013_Helvetios_Base_Leds_91.pdf

Schematic of the boardgame with 91 cells

Adobe Portable Document Format - 791.38 kB - 03/11/2021 at 19:00

Preview

  • USB communication between the boardgame and the GamMa program

    Abel Rodriguez02/14/2025 at 10:30 0 comments

    I’m already working again in the project after a loooong pause, but with renewed strength. I’ve mounted the Helvetios boardgame in a trainer that I made some time ago: a briefcase with a RaspberryPi, an LCD screen, some batteries and a power supply system. This way I can develop the software to control the boardgame without connecting a computer. The briefcase project can be checked in my other projects.

    In this trainer I’m developing the application GamMa (Game Master) to manage the electronic boardgame. Its a C++ application, not because it’s needed but as a way to improve my skills in this language, that I don’t usually use in my projects. It think could be done in C or Python without issues.

    This program will manage the communication with the boardgame and to work as an interface between the player and virtual ‘Game Master’. This Game Master will be the code that will guide the player in the actions to take in each game phase (move, defend, attack, collect, mine, trade, etc…) and will show the consequence of these actions. That will be done using a screen where it will show the options of each phase and also in the board by illuminating the cells affected by the range, direction or target selected by the action. The player also could select the action with the selection, accept and cancel buttons, and has a navigation panel with 6 buttons to select the range or direction of this action. A simplified version of the interface will look like this:


    Right now this program only communicates by USB with the boardgame, being able to control the color of the cells and read if there is a piece in any cell. It will also manage the flow of the game between various players and decide the result of the selected actions of each player based in some prearranged rules, assigning by the parameters of each piece or player as speed, energy, strength, range, shield, load capacity, goods pricing, etc…

    It is intended that all text, actions and rules are programmable and editable externally to the code, so that the games can be fully adapted to a story and turn the board into a collaborative playground or battle as set in the configuration by the user without programming knowledge. This way we can set up multiple games on each board, totally changing the story and the objectives of the game, being able to be a game of asteroid mining, resource gathering, tank battles, ships, boats, soldiers, orcs, space marines…, or simply abstract logic games or puzzles. Everything is up to my ability to program the game logic and the editing system of menus, phases and rules.

    The code of this application uses the HidAPI library to communicate with the board, with a more than acceptable speed for the intended application. The STM32F103 microcontroller is capable of handling a 12Mbits FS USB connection, but there is a lot of overhead in the USB protocol and the effective speed is considerably lower. However, based on tests it is more than sufficient to transmit a cell status update. The animations will be programmed and executed on the microcontroller side, leaving free the communications for state updates (cell color and animation, piece detection in each cell). This application will be available in my Github, so it can be used by anyone as a base to develop other interfaces or modify it to include other functionalities.

    The representation of the interface is made with GTK3, which is light enough to run on any system, as well as the C++ code will also be fast enough without needing much processing power or memory, if it were developed in Python or QT surely the resource consumption would be higher. A simple GTK interface will be developed so that the board can be connected to any Linux computer or embedded system, but the goal is to recreate a hardware interface for each player on the board. That is: various OLED screens of 128×64 pixels, if required a larger one will be used, a button panel for menu and...

    Read more »

  • Mounting the prototype of the 91 cells electronic board game

    Abel Rodriguez01/01/2023 at 15:38 0 comments

    Finally I’ve gathered all the components and mounted the first full prototype of the board game (I already did some test previously to validate the SPI led drivers in First prototype of the electronic board game Helvetios). The component shortage has delayed the mounting by 6 months until I’ve got some critical components, mainly the led driver TLC5947 and the DC/DC regulator TPS561201.

    Initially I contacted some pcb companies from China to fully build the prototypes, but the cost of the components at the start of 2022 was way too much. So I ordered only the PCB and the bottom stencil in JLCPCB, and then I gathered the components until have them all so I could build the circuits by myself.

    I did the mounting by hand (in the absence of an SMD oven as the I used for the circuits in the LifeLinker), using soldering paste, a hot air soldering station and a lot of patience. To solder the bottom side I used a stencil so it’s were there are more integrated circuits and some with thermal pads like the led driver. This way the solder paste distribution would be much better.

    The circuit was designed to be content in size so the first prototypes would be more economical due the pcb price and the necessary acrylic sheets to make the led difusor and the cell separator. This way we could program all the firmware to control the leds and the USB communication. The next designs will follow the concept of row circuits as explained in Helvetios. This way we could make boards with more and bigger cells.

    Some pictures of the mounting process:

    Helvetios circuits
    The circuits as they arrived.
    pads detail
    The size of the pads for the led drivers is really small.
    fixed circuit
    Fixed circuit to use the stencil and apply the solder paste.
    Components mounted
    Components mounted ready to solder with the hot air station.

    To start the prototype I used a development board NUCLEO-F103RB, which I already used in First prototype of the electronic board game Helvetios. This time I used the development board to program the circuit, using the connector that allows to program other circuit by using the SWD communication. This way I could connect to the electronic board game and debug the code for the led drivers and the Hall sensors:

    Firmware development setup
    Firmware development setup

    Besides the development board I used a little 8 channel 24MHz logic analyzer. With this device and the software Pulseview from the Open Source project Sigrok is easy to see which signals are generating and check the correct addressing of the led drivers. Also you could decode some protocols as SPI and I2C, and is very useful to determine the refresh speed of the system.

    Pulseview software

    When testing the code I also tried some led diffusers:

    Acrylic Diffuser Opal Ice 3mm
    Acrylic Diffuser 33% 2mm

    And finally a video showing the cell detection and some color examples:

  • Finished the first PCB design of the Helvetios boardgame

    Abel Rodriguez12/27/2021 at 13:17 0 comments

    These last months I’ve been finishing the design of what will be the first circuit of the electronic boardgame Helvetios. It has been a little slow process, due doing it in my free time but mostly due doing it in only one circuit to save cost. In later designs I will continue with the concept of circuits of rows of cells, connected between them. This will allow bigger boards and with more and bigger cells.

    The design of this boardgame have 91 cells, and it will be used to develop the control firmware. This software will manage the RGB lightning of the cells, the magnetic Hall sensors and the USB communication with the game master circuit.

    In the bottom layer there are the connectors. It has an input power supply connector, a micro USB to communicate with the game master circuit, and a power supply output connector to supply this other circuit.

    Now starts the manufacturing process of the circuit, that will also be complicated due the lack of component supply situation. It’s very possible that I could not get some critical components like the led drivers or the microcontroller in all this year 2022. The lead time is 2023 for some of them. Also the fact that the circuit has components in both sides implies that not any factory could mount them, it needs to reflow process to solder all the components.

    I will use this this board circuit assembly time to develop the game master circuit, and make designs of the enclosure to house the circuits. So the next updates will be about how I’m doing designing this game master circuit, that will have a raspberry Pi Zero, an oled screen and a button interface so the user could choose the actions and movements. I will also advance some of the boardgame software, mostly the USB driver to test the communications with the Raspberry.

  • Schematics finished, time to place a looot of leds

    Abel Rodriguez03/11/2021 at 19:00 0 comments

    Well, I've finished the schematic so I've started to place the components. It will take a while due there are 559 components in total, with 273 LEDs.

    And this is the A4 prototype with only 91 cells, I have drawings of other bigger designs with 169 cells and even 505 in a 70x70cm board!
    This is made in only one circuit due the small size of the boardgame, for bigger boards I'll use smaller circuits as 'rows' and connect them, so it will be easier to design.

  • Laser cutting a 91 cells board.

    Abel Rodriguez01/19/2021 at 19:37 0 comments

    I've made a laser cut prototype of the board. It's the led diffuser an the top face of the board. I will start to a 91 cells board, due it fits well in a A4 sheet and I could make a single PCB with all the electronics. This will help to develop the software, later it could be escalated to bigger boards with more cells and grouping cells to simpler pcbs interconnected.

    This design will be a single board with all the sensors and leds. The microcontroller will have an usb connector to manage it from the raspberry or other system.

    I've cut also what will be the interface to the board, a little oled screen and some buttons to select and navigate the boardgame cells. This interface will be connected directly to the Raspberry Zero



    Also I've been busy making the schematics, now It's time to component placing and start to route the pcb.

    I will add later the schematics when are finished.

View all 5 project logs

Enjoy this project?

Share

Discussions

Dan Maloney wrote 05/18/2020 at 20:26 point

This looks like fun. Wonder how it would scale up - I'm thinking ping pong ball LED wall, like Bitluni made: https://hackaday.com/2019/08/29/giant-led-display-is-1200-balls-to-the-wall/

  Are you sure? yes | no

Abel Rodriguez wrote 05/18/2020 at 21:52 point

The hall sensor needs a little magnet very near or a big magnet. It detects a 3mm magnet at 5mm. I'm looking to scale it by cascading the drivers of the LEDs and the shift registers that reads the sensors.

  Are you sure? yes | no

Does this project spark your interest?

Become a member to follow this project and never miss any updates