Try this bin file firmware.bin (1.2 MB)
Compiled with this usermod usermod.cpp.zip (2.4 KB)
Thats awesome thank you!! @srg74 
I first tried the firmware.bin and that worked so I then loaded in the usermod file you prodided and that compiled and uploaded sucesfully! 
The screen flashes around every 5 seconds - is that normal?
Flickering is not normal. You have to play with U8g2 constructor. First try to remove reset pin. If not working here is library references https://github.com/olikraus/u8g2/wiki/u8x8setupcpp#ssd1306-128x64_noname
This is maybe yours - U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(U8X8_PIN_NONE, U8X8_PIN_SCL, U8X8_PIN_SDA);
@srg74 I’ve tried a few combinations now and the flash is either worst or the screen doesn’t turn on at all with the reset pin taken out the code. Its not a big problem, I’m just happy the screen works
@Henry thank you man
No worries @srg74 Thanks for all your help with this 
I’ve been playing with the code some more and still unable to fully stop the flashing.
I’ve been able to reduce it be increasing:
// How often we are redrawing screen
#define USER_LOOP_REFRESH_RATE_MS 20000
Looks like temporary solution too 
Hi @srg74 I’ve managed to get this working perfectly on an ESP8266 with an external OLED display.
Just a quick question. How easy would it be to change the code so the display always shows a line of text? For example my name.
Thanks!
Henry
I think not difficult.