Elfacun Chess Interface Module


Make your own module


I include here all the resources needed to build a module. Building a module from scratch is not easy though. I will try to give some caveats for each step. You will need to:

I don’t recommend you to make this unless you have knowledge and equipment to debug any problem that could arise. The module is pretty hard to debug with so many SMT components. Having at hand good desoldering equipment is also recommended. The board-module connection, being deep inside the module slot is also hard to reach to be able to sample it with an oscilloscope or logic analyzer.

Anyway if you are into making this you can write me for help to the address inmbolmie [at] gmail [dot] com

PCB design files

Included in the directory Kicad You will need Kicad 6 to open them. I include the schematics and pcb design. Schematics PDF


PCB Fabrication files

If you want to skip the Kicad step you can use the included gerber, cpl and bom files to order the PCBs. The files are formatted for JLCPCB use but I do not endorse JLCPCB in any way. You can generate files for other fabricators from the Kicad design files though. The SMT mounting service is optional, you can order without it and assemble everything yourself.


The boards can be ordered pre-assembled and most of the components are referenced in the bom file. Availability of components come and go so sometimes some components will need to be changed.

Those are the additional components that you need not included in the BOM file. I cannot advise or endorse a particular provider for the components

PCB Assembly

A more detailed guide could be made in the future, but some basic steps are:


3D-printed case

I include the STL files for all the case components. The case was designed with Freecad but I won’t provide the current design files as they are not properly made and it would be easier to make them from scratch that to try to modify them.

The needed parts are:

The case width is critical for the module to slide properly into the board, so the printer has to be properly calibrated to get the same width or slightly less than the original modules.

Case assembly

Be careful with the poles as the will be most likely more fragile than those in an original module

I print my cases in black PLA but it would be nice to print them in ABS.


Source code is provided in the elfacun directory. I use Arduino version 1.8.18. The Arduino environment needs a ton of extra customization, I will try to complete this section in the future with a guide to replicate it.

Needed Arduino libraries:

Before programming the board you will need to upload SPIFFS resources from the data directory to the ESP32 board. You will need a 8MB ESP32 or use a custom partitioning schema with a 4MB one: 1.8MB with OTA plus 320KB SPIFFS. The default schemas won’t work.

Additional notes

To power the module I recommend using a mini-USB angled connector to release some stress from the mini-usb connector. With a straight connector you risk ripping it accidentally from the board as it will protrude a lot. The connector has to be angled up for the cable to go to the right and outside the module. A down angled cable will go over the screen, and left and right angled cables will interfere with the on-off switch or the jack connector.