Adding the meters to the panel!

On my day off today I decided to continue work on my panel. I added the 1/4 inch MDF faces and aimed to mount both meters in the tower.

I decided to start with the square meter which will display the ships total power. It was the easier of the to mount in the tower.

To start I simply used the largest hole saw I have and made a hole right in the middle of the square I had to remove.

I then used a jigsaw to carefully remove the rest of the wood. I used spiral cuts to each corner and just kept working at it. This takes a bit of time but usually ends in nice clean cuts. Remember to not make too sharp of turns when using a jigsaw or you risk binding and breaking the blade or even damaging your material.

I was a little on the careful side when making these cuts so I had to do a lot of slow sanding to widen the opening to fit the meter. I used a mix of tapered sanding sponge, Regular sandpaper, and a bar file. Basically just working with what I had on hand.

Eventually it fit and looks fairly good!

The second meter was a bit more complex to mount. First I started by marking the meter’s total footprint and the point to make another hole via a holesaw.

I cut out the hole and then when I went to test fit the meter I realized that the meter wouldn’t sit flush on the panel. This meter had a small protrusion that I didn’t notice so I had to use my dremel to sand and enlarge the hole by quite a bit.

This worked and allowed the meter to sit flat. This picture shows the meters from the back and in it you can really see how differently they mount. Luckily my messy work on the 2nd meter is hidden.

And Just like that both are sitting nicely on the tower! Hope you found the process interesting! I did end up ordering those 8 torpedo tube select buttons I mentioned in my previous post. They will be going on the foot of this tower… in fact this tower will end up being fairly similar to the dev’s MK2 tower.

Anyway, thanks for visiting!

Launch Torpedoes!

Again, not too much progress to report. The updates may get a little less frequent than they have been. I had to cut back on some spending due to an unexpected vet bill. >.> However items I have ordered continue to trickle in. One of which is my torpedo launch button!

Momentary Anodized Aluminum Launch Button

I plan on mounting this launch button within a plastic safety cover. We don’t want any accidental fires! I’m hoping the button fits in this cover… might be a bit of a tight fit. We’ll find out when it arrives!

For selecting torpedo tubes I plan on using “elevator-like” illuminated switches. If space permits, I hope to have buttons for all 8 torpedo tubes. Even though the game currently only supports selecting tubes 1-5 via serial. This is being changed in a future update. I have not ordered these buttons yet.

Another item I did receive is a nifty little USB voltmeter/ ammeter. I thought it may prove useful to keep track of my Arduino’s power consumption. I still haven’t decided if a powered USB hub will be enough or if I will need to have an external power supply.

Additionally, I also just got a cheap and super basic mini oscilloscope. Its not particularly needed for anything on this project but I’ve kinda always wanted to mess around with one and couldn’t say no to the price. ($18)

And finally, my tower structure should be ready to receive its 1/4″ MDF front pieces. I just had to add the crosspiece at the end of the foot. It’s top is cut at 15 degrees to be flush with the other pieces. I’ll post my measurements for the towers at a later date.

Max7219 Displays

The common 8 digit Max7219 module

I’ve always loved the retro feel seven segment displays give off and I feel they are an awesome fit for the aesthetic of “Objects in Space”. Today I was able to overcome a problem that was stumping me for a while… How to display 2 dynamic length integer variables on the same display with blank leading digit padding…. now that’s a mouthful. I’m happy to say I did crack it and manage to come up with something that looks good!

I’m kind of taking a “More is More” approach for building this console. I want new users to be somewhat overwhelmed by all the displays, LEDs, switches, ect. So Id love to have many of these displays on the panel displaying a wealth of info. Not all of which will be immediately useful when playing the game, but in in “reality” would be found in a spaceship bridge. I’m also thinking having an auxiliary panel somewhere displaying the players bank funds on a 7-seg display would be cool…. somehow making it fit “plausible lore” as well.


Bringing together the first panel structure

Kitty cat for scale!

Nothing too exciting today. I cut two support pieces out of half inch MDF and brought my my two side walls together. Now that it can stand on it’s own I can finally set it up on a table and get a good sense of its size, it feels just right! I did also buy some 1/4 inch MDF that will become the face of the panel, but work on that will begin later on.

Objects in Space Panel Meter Tutorial

I have cleaned up my code from my previous post and want to make it available for anyone to try out themselves.
This code drives two 5v volt meters much like the developers have in their MkII console.

Remember to set “hardware=true” in your game’s config file or else it wont work!

Running the code below!
/* Objects in Space Panel Meters
   This example displays telemetry from the game on an LCD and 5v panel meters. 
   It uses the built-in LiquidCrystal library - see for details.


   The LCD is only used to display data for debuging purposes and can be
   omitted without affecting the meters.
   CODE BY DAK47922 -
#include <LiquidCrystal.h>
#include <ArduinosInSpace.h>
int flow; //Declare our variables as integers
int power;

// Initialise the LiquidCrystal library
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// Create an ObjectsInSpace object. The first parameter is the
// serial interface to use. The second is the number of values
// we're requesting from the game.
ObjectsInSpace OIS(Serial, 2);

void setup() 
  // set up the LCD's number of columns and rows:
  // specific for a 16x2 LCD screen (change this for different sizes)
  lcd.begin(16, 2);

  Serial.begin(9600); //must be 9600
  OIS.begin(); //begin the handshake/synchronisation with the game

  // register the command to get the power flow from the game.  (a value between -100 and 100)
  OIS.registerInt(POWER_FLOW_PERCENT, powerflowCallback);
  // register the command to get the total power from the game. (a value between 0 and 100)
  OIS.registerInt(POWER_LEVEL_PERCENT, powerlevelCallback);

  OIS.activate(); //stop syncing and ACTIVATE

void loop() 
  OIS.update(); //required to keep getting info from the game.

// because we registered this in setup(), this gets called every time
// OIS.update() is called. therefore our info is refreshed
void powerflowCallback(int channel, int data)
  flow = map(data, -100, 100, 0, 255);    // Converts our -100 to 100 value to a useable PWM value (0 to 255)
  lcd.setCursor(0,0);                     // Set the cursor to the top left of the screen (0,0)
  lcd.print("FLOW PWM:   ");              // Prints our label on the screen plus 3 empty spaces to insure our value which can be 1, 2, or 3 digits is properly cleared and reprinted
  lcd.setCursor(9,0);                     // Backs up 3 spaces to print our data value on the empty spaces from the previous line
  lcd.print(flow);                        // prints our PWM value
  analogWrite(9, flow);                   // Writes our PWM value to pin 9

void powerlevelCallback(int channel, int data)
  power = map(data, 0, 100, 0, 255);      // Converts our 0 to 100 value to a useable PWM value (0 to 255)
  lcd.setCursor(0, 1);                   //set the cursor to the 1st position of the second row
  lcd.print("BATT PWM:   ");             // Prints our label plus 3 empty spaces like above
  lcd.setCursor(9,1);                    // Backs up 3 spaces to print our data value on the empty spaces from the previous line
  lcd.print(power);                      // prints our PWM value
  analogWrite(10, power);                // Writes our PWM value to pin 10


Dual Meters!

My 2nd meter came in today and happily works as expected. It’s awesome to see both working in tandem displaying the correct information. There is a minor issue with the new meter however… when the needle is near the middle of the guage it contacts the inside plastic. Fixing it should be straightforward. Nothing else to report yet, won’t be doing any panel work today. The only other items left to arrive for now are my torpedo launch buttons and the safety cover for them. I do have 2 “tools” on the way but aren’t directly related to this build. I will do a write up when they arrive.

Quick! Reed this!

Not too much new to report today, I did receive my magnetic reed switches. You probably know them as the security switches used on doors and windows. Essentially is a switch that closes when subjected to a magnetic field, more on how I plan to incorporate them into my ship later.

I did buy some half inch MDF and cut it with my new jigsaw to make up the 2 side panels of one console tower. I decided to use a design similar how the developers made their console.

The developers MKII design

My design merges each tower and its “foot” panel into one piece.I also decided to increase the angle of that foot panel. the devs use a 5 degree angle whereas mine will be 15 degrees. The face of the panels will be using 1/4 inch MDF

My cut side panels demonstrated by my assistant, Eli

On an unrelated side note While I was at work today I was able to accomplish something i’ve been trying to do for a while now. I was able to download an Image from the International space station via radio as it passed over head, very cool! They will be transmitting for three more days so I hope to receive more.


The Meters have Landed!

Well one of them has anyway, 2 days ahead of schedule! I rushed into work with arduino in hand to test it with a coworker. (I get most of my items shipped to my workplace)

Here it is in action at my house

I am pleased to report it works natively with my code without any modification. In this video you can see it represent my total available ship power. The only small issue is that the needle isn’t perfectly smooth in its motion. this can be explained by me using rounded integers as a PWM value. this may be fixed by substituting my custom made math formula in favor using the map() function I mentioned in my previous post… but tbh i’m just nitpicking.

I also started drafting up some console designs this morning. I would love for all the panels to be nice and close and within arms reach, mimicking the feel of a somewhat bulkier fighter jet cockpit…. I foresee a lot of complicated cutting angles in my future! More to report on that later. I cant wait tor my second meter to arrive and have them both runing in tandem. I’ll also have to start looking into taking them apart and making a custom meter faceplate, fun stuff ahead!


Where I’m at now.

So in my adventures with this arduino project I’ve mainly been doing system testing by building small circuits. I am going to use some panel meters to display my ships batteries and power flow. I bought two 5v meters from aliexpress for this purpose. They have yet to arrive but I THINK I have come up with some code that will work. The game outputs the data in two ranges. 0 to 100 and -100 to 100. Initially I figured I would need to mathematically convert those ranges to 0 to 255 so I can use PWM to drive the meters. I spent some time putting a system in place to convert the data…….. then the next day I discovered arduino already has a method of doing this built it. Behold the map() function. Oh well, I’ll switch it over later.

I also was able to drive a MAX7219 seven segment display to display my ships current heading.

Initially I thought this would be the hardest thing to code because of the way the LedControl.h library works. However I discovered the DigitLedDisplay.h it provides a super simple way do display multi digit numbers and even custom characters via binary. I want to have a bunch of these displays display things like, ship heading, motion heading, player money etc.

I do have some other hardware on the way as well such as torpedo buttons with safety covers, more displays, meters, and some minor tools. Oh! And a pair of magnetic Reed switches for a cool idea I have but more on that later down the road. :3

Today I also bought myself a decent jigsaw…. it was a long time coming hehe. I suppose I’ll have to get some of the structural MDF soon. Having the materials really helps me to plan… weirdly enough.

Hello world!

Decided to resurrect this blog for now…. mainly to serve as a place to post my progress in building an arduino console for the game “Objects in Space“.

An arduino pulling data from the game to display on an LCD

I figured it would be neat to keep my progress all in one place so I can go back and look at it one day. Anyway, that’s all i’ve got for now. Stay posted!