Using the Monoprice Voxel (FlashForge Adventure 3) With Ultimaker Cura

Recently I bought a Monoprice Voxel (a rebranded FlashForge Adventurer 3) 3D printer, and I’ve spent the last couple of weeks getting to grips with it. I’m very impressed – it works well and I’ve had a lot of fun building parts of my projects.

One interesting this about the printer is that it comes with its own slicing software called FlashPrint. This seems to work quite well, slicing all the models I threw at it and sending them to the printer. However, I was curious if it was possible to use the printer with the Ultimaker Cura slicer, which has some more advanced features and is supported more widely by the community.

I did a load of research and found some interesting topics on reddit and Ultimaker forum, I also examined the .gx files produced by FlashPrint and thoes sent to the printer by PolarCloud. I’ve gathered all this together into a this guide for using Cura, but it stands on the shoulders of a whole bunch of other people in the community, so thanks to those people you really helped me figure all this out.

Update (January 2011): A YouTube user confirmed that these steps also work for the FlashForge Adventurer 3 Lite.


Every model I have printed in this way has worked well and I am very pleased. However, follow this guide at your own risk – If something bad happens to your printer, on your own head be it.


FlashPrint and the printer appear to use a custom file format for printing – .gx. This is identical to the .g file used by other printers but with some additional metadata at the top. I suspect this is the image of the model that’s shown while printing, as well as the print time estimation.

The printer is perfectly happy to print .gcode files, provided the file extension is changed to .g first. While printing a .g file the time estimation on the printer screen does not count down the remaining time, it counts up the elapsed time. Also instead of a small image of the model being shown, a generic icon is displayed.

Update (November 2021): I’m hearing from some people that after updating the printer to the latest firmware, that they get a “file format error” on the printer when using Cura sliced files. It seems like FlashForge have changed something (deliberate or otherwise) that is blocking Cura. I don’t have a solution to this right now, if you have more information, do get in contact. If this works for you do not update the printer.

Getting Cura

Firstly, you need to install the latest version of Cura from the Ulimaker website.

Continue reading

New Project: Zero Damage Smart Heating in a Rental House

This is the first post in a series documenting my attempt to build a smart heating system for a rental house. Further posts will follow as I work on it.

I have electric heating in my house, powered by a central timer from the past. The timer is a masterpiece of engineering, but is incredibly crude by modern standards. I’d love a connected system such as Nest or Hive but these systems only support low voltage trigger systems found with most gas systems, not the high voltage switching I have.

So I want to build my own, It’ll be fun, educational and greatly improve my quality of life in the winter. There’s just one thing though: I don’t own the house, so whatever I do must be easily reverted / removed / undone. Also, I’m a software not an electrician so, in the name of safety, I am not re-wiring anything or changing how it currently works.

The Timer

The timer is a Timeguard RTS113, it supports switching the heating on or off once every 30 mins by inserting a red (on) or blue (off) tappet at the appropriate time. On an inner ring it supports suppressing this schedule for the morning or afternoon for any day in the week. For example, you can have the heating some on at 6:00am, and 7:00pm every day, except on Saturdays where it does not come on at 6am.

The tappets are attached to a rotating dial, which rotates once per 24 hours. Each tappet has a lug, that as it passes a control spindle, pushes it around an 8th of a turn. As the control spindle is rotated it toggles the heating on or off.

The Plan

The control spindle has a plastic screw slot on the top to help you see its current state when programming the timer. So, in theory, I can remove all of the tappets and turn the control spindle manually (and very gently) using a stepper motor each time I want to turn it on or off.

Proof of Concept

I picked up a suitable looking stepper motor and motor controller from The Pi Hut, and hot glued a washer to the end. By holding this in place I was able to turn the heating on an off by rotating the motor with an Arduino. Now to figure our a more permanent arrangement…

Next Steps

I’ve already used Tinkercad and made a driver head to fit over the motor shaft and engage with the timer’s control spindle (replacing the hot glue blob from the proof of concept), I’ll 3D print this and see how it goes. Then I need to design some kind of support to hold the motor in the correct place so I can let go of it.

The above gif was made using Paint 3D ❤️

Monitoring My Indoor Air Quality

In my last post I mentioned that I also wanted my info display to show the current indoor temperature, read from the air quality monitor that I made. I built the air quality monitor a couple of years ago – it was my first experience playing with an Arduino and was a lot of fun (interspersed with moments of utterly frustrating confusion). I thought I’d put together a quick intro to what it does and how I made it.

Why Build An Air Quality Monitor?

I saw an advert for an attractive little box that you put on a shelf that monitors the air quality in your room. It has an app to view the data and send you push notifications if it the air was too unhealthy. I loved the idea – I’m a big tracker of data (I once had to log of every single ingredient of every single product I ate for an entire year) and thought it would be really interesting to find out what my environment in my house is like.

I considered buying it… I really did. Then I decided I could totally build my own. I started by buying some sensors:

Continue reading

Building an eInk Info Display For My Living Room

Like a lot of Londoners, my trip to and from work involves moving between a few different trains, any of which could be delayed and cause me to be late to work. Or worse – late home. As checked the tube status on my phone over breakfast one morning, I realised that it would be super useful to have some kind of display in my living room allowing me to see at a glance how my commute is looking before I set off, so I can go a different way if needed.

There are a few options to create a display like this – I could re-purpose a tablet or phone in the technology graveyard drawer, writing a quick and dirty app to run on it. But where would the fun in that be? Sure, it would work but I wanted to learn something along the way. I decided to use a Raspberry Pi and a display of some kind, but if its going to live in my house, it needs to be pretty.

I ordered the Primoroni Inky wHAT – an eInk display with all the headers to screw it directly onto a Raspberry PI. It even has Python library for displaying stuff. I went for the two-colour red/black model; I thought I could use the red mode to make any tube status issues stand out.


As soon as I’d ordered the screen, I started thinking about what I would use it for. I came up with a few things I wanted to do:

  • Display the current tube status of the most useful tube lines
  • Display the current weather / temperature outside from DarkSky
  • Show the current indoor temperature, pulled from my Air Quality Monitor (I built this a couple of years back, I might cover it in a later post)
  • Display some kind of indication that central heating is on or off
  • Show the time

I drew this little diagram to get started:



Ever the software engineering project, the first task was to investigate the APIs to give me the data I wanted.

Continue reading