Introduction: Arduino Minecraft Interface
This came to me many years ago when I had first started playing the very popular game, Minecraft. When I play Minecraft I get more into the technical side of building, calculators, and computation has always been more appealing to me. However, only twice did I find anything similar to what I wanted... That being a way to interface Minecraft Redstone with my little Arduino... Though at the time I wasn't proficient with programming, the man who made an Arduino Minecraft server would not help me out, and the Hey0 mod that was supposed to log redstone events in Minecraft was many years out of date. It has been roughly 4 years since this occurred and I had all but forgotten the events that had transpired. I was back to playing Minecraft more commonly and thought I would revisit this and thus, the AMI was born. This project is still under development and I am attempting to establish a website to work this out of, but for now an Instructable will, at least, put this program into others hands.
.
To Use The Example In This Tutorial You Will Need:
~Arduino
~RGB LED Common Cathode
.
Attached is a zip file containing:
~Source Code, Program, Arduino Program, Cat Picture, Minecraft World
Step 1: AMI: Setting Everything Up
We will begin with the program. All that is found in the .zip folder on the first page is the source code, the program, a list of known bugs, a minecraft world, and a picture of a cat, because they are awesome.
.
The first image displayed shows all the files contained in the zip file.
To set up the program you only need drag the executable into the logs folder in the .minecraft directory, however we'll add a shortcut and change the icon on the desktop so it looks nicer.
.
To add the AMI.exe program:
-Open your Start Menu and Type "run";
-Search "%appdata%;
-Enter the "Roaming" Folder, or if your computer took the Initiative, you may be in your roaming folder;
-Once in the "Roaming" folder, click to enter ".minecraft";
-Now enter the "logs" folder and drag AMI.exe into the logs folder;
.
.
Now to create the shortcut:
-Right click the AMI.exe and click "Send To";
-Then click "Desktop" and go to your Desktop;
-Right Click the Link and Click "Properties";
-Click "Change Icon" and change this that to whatever icon you like(The computer chip looked pretty cool);
.
.
To Use The Minecraft World:
-Head to the ".minecraft" folder, however drag "AMTest" into the "Saves" folder
.
This concludes setting everything up.
Step 2: AMI: the Interface, and Arduino
As of currently, when the program starts it will ask for your Adruino's com port number, and the BAUD rate. Upon receiving these it will tell you if connection was established or not. If connection failed the program will close, check to make sure your Port Number is correct and that your Arduino is setup properly according to: Arduino Setup Guide .
.
For this you will need:
-Arduino
-RGB LED
.
STEP 1: Get you setup program, in other words your "void setup(){}, void loop(){}"
STEP 2: Since this program uses Serial communication you will need to put Serial.begin(); into your setup I suggest a BAUD of 9600.
STEP 3: Set 3 pins to OUTPUT Mode;
STEP4: Due to being in Development, the program does not currently recognize strings, so we set "int cmd = Serial.parseInt();
STEP 5: Set your command by comparing cmd to an integer value. Then set its effect, such as an LED turning on.
Step 3: AMI: Setting Up the Example
This is a small step, but I wanted it to be separate so the pictures were right next to the instructions.
According to the example code we went through and the Minecraft example to come next, connect the pins according to these pictures and the wiring table I have made.
WIRING TABLE
~LED RED PIN :: Arduino Pin 13;
~LED GREEN PIN :: Arduino Pin 12;
~LED BLUE PIN :: Arduino Pin 11;
~LED GND PIN :: Arduino GND;
Step 4: AMI: the Minecraft World and How to Use Commands
As well, when typing commands the syntax is "/say !<command-number>!
The Program searches for characters between the '!'s
As stated in the video, when creating a new world follow these steps:
~Make world and Close Minecraft
~Navigate to the ".minecraft" folder through "Run"
~Enter the "Logs" folder
~Open, Clear and Save the "latest.log" file
Step 5: AMI: Testing
Go ahead and test your buttons, If they work, Amazing you now have access to do whatever you want with reality in Minecraft. If not, please do not hesitate to ask questions, I will respond as quickly as possible. The video shown is the same as the first, but demonstrates it well.
.
Please post a comment telling me any bugs, or post a fix to a bug. Tell me what you thought. In fact, tell me what you build with this. Personally I have wanted one of these for years, so I have plans of building a quadrotor that flys from Minecraft. And Remember, Keep It Classy.

Participated in the
Make it Glow!

Participated in the
Formlabs Contest
15 Comments
7 years ago on Introduction
First of all, I love this. This is exactly what I was looking for. My 8 yo was looking for a project for 4H for the fair this year and wanted to control a model train through minecraft. When I ran across your project we decided to try it out.
We are having a bit of a problem. I recoded the arduino code (just changed it to HIGH/LOW and changed the pins to all digital) and can send serial codes through the console to the arduino, turn on leds (we are using 3 separate ones instead of 1 RGB) but it does not seem to be sending codes from the AMI program. I did try recompiling it as a 32bit as that is what his computer is, so maybe that is the problem as I am not a real coding wiz.
I also tried creating a file called test.log and changing the code to read this file instead and only added one line " [Client thread/INFO]: [CHAT] [@] !1! " unfortunately nothing came through.
Any suggestions?
Thanks!
Reply 7 years ago on Introduction
Sorry for the late reply, I have been a bit bad about replying quickly.
Would you be able to tell me what the OS is?
Currently I'm redoing the programming, as there a quite a few improvements to be made.
Reply 4 years ago
my problem is: in the server.. (iot remote controll)
[Server thread/INFO]: [@] !3! the source cpp file dont build in the Vs. Studio...
---------------------------------------------------------------------------------------------------------
LPCWSTR szPort[15];
char szComParams[50];
DCB dcb;
printf(szPort, "COM%d", nPort );
m_hIDComDev = CreateFile(szPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL );
if( m_hIDComDev == NULL ) return( FALSE );
Reply 7 years ago
4H is cool. Period.
6 years ago
Great project!
I've been recently looking into running a minecraft server on an arduino, like this:
https://www.youtube.com/watch?v=EZRLOanNQ_w
Any thoughts on how to duplicate? Is there such a thing as a free minecraft 1.8 client for the pc/mac or inux? What does the minecraft server (protocol number 42?) do, since I suspect the map data get stored/loaded on the client pc?
http://forum.arduino.cc/index.php?topic=96131.0
6 years ago
Would like to know if you could give out the source code of the AMI.exe, would like to add some new colors and more ;)
Reply 6 years ago
And also when i click on the buttons ingame the rgb light only blinks
8 years ago on Introduction
This is awesome, but I have a roadblock! I have an Udoo Quad and I would like to do this over ethernet. I already have a Forge based modded Minecraft server running on a CentOS7-64bit machine. I would like to use my Udoo Quad to access the server log remotely over LAN to essentially do the same thing. My goal is to have my 7year old son build a machine with redstone in Minecraft. Then, using small solenoids, LED's, buttons, toggle switches, etc. Make a machine that he can control from within the game. It is my understanding that I will need an ethernet shield for the arduino pins of the Udoo Quad, but beyond that I'm a day 1 newbie :( HELP!?!
Reply 8 years ago on Introduction
I'm not familiar with the Udoo Quad, though a quick look up tells me that it is a little cooler than the arduino XD. So this leaves me with a few questions about this:
2) How do you program the Udoo? Is it an embedded OS like the Intel Edison, or purely a microcontroller setup like arduino?
3) Does the arduino shield/code work on the Udoo?
Reply 8 years ago on Introduction
Yeah, it's pretty beefy! So, the Udoo Quad is a dual system running an ARM cortex-A9 CPU AND the arduino atmel Sam3x8E Cortex-M3 (same as the arduino Due.)
It can handle linux and custom built android OS's; similar to a raspberry pi in that regard. However, from the stock linux os: lubuntu 12.04 LTS armHF, there is a dedicated Arduino IDE setup.
You can code right from the system itself, and the arduino pins will respond accordingly. It has a whopping 76 GPIO pins! They are designed to be compatible with any 3.3Vdc arduino shield - As the system is spec'd and laid out 100% like an arduino Due.
From what I can gather any ethernet shield from Rev3 or newer (made within the last year or less) will (SHOULD) work just fine.
Alternatively, there is a jumper: J18, located directly behind the RST button, that will isolate the Arduino and allow you to program it via serial USB connection. Through this, you can program the arduino portion from any platform you want. Apparently, there is even a way to do it from an android phone that supports USB host! I digress, if you unplug J18 and connect via the serial Micro USB port to a desktop pc/mac/linux machine, you can then program and run the arduino in serial mode.
I suppose i could do it over USB, but the issue then becomes getting the udoo quad (in arduino mode via uboot) to access the server logs on the minecraft server - given that the minecraft server is running centOS7 in 64bit - as a command line only system... seems to just be more head scratching to me :P
Reply 8 years ago on Introduction
Well, what you could do, is have an Arduino connected to the server computer, and use that with an xbee shield or Ethernet shield to connect to your Udoo using the arduino capabilities of it.
8 years ago
Python but it already have minecaft with API to GPIO pins
8 years ago
Python but it already have minecaft with API to GPIO pins
8 years ago
could that be done using Raspberry Pi ?
Reply 8 years ago on Introduction
I have to say, I have never worked with Raspberry Pi, though I see no reason why this shouldn't work, I'm currently developing the software to make it work with the Intel Edison. What language do you program the pi with?