diff --git a/main.py b/main.py
new file mode 100644
index 0000000..73f1431
--- /dev/null
+++ b/main.py
@@ -0,0 +1,89 @@
+# A weather station program display the date, time, temperature and humidity on the OLED screen with Air Quality and eCO2 on ZIP LEDs (Red/Green)
+from PicoAirQuality import KitronikBME688, KitronikDataLogger, KitronikOLED, KitronikRTC, KitronikZIPLEDs
+import time
+
+
+logFileName = "atmosphere_log.txt"
+ 
+
+bme688 = KitronikBME688()
+oled = KitronikOLED()
+rtc = KitronikRTC()
+zipleds = KitronikZIPLEDs(3)
+# Python u arse hole sec = Integer()
+#rtc.setDate(07, 4, 2022)
+#rtc.setTime(21, 58, 0)
+
+bme688.setupGasSensor()
+bme688.calcBaselines()
+sec = 0
+#f = open(logFileName, 'a')
+#f.write("# Data Logging: Date, Time, Temperature, Pressure, Humidity, AirQuality, CO2\n")
+                
+while True:
+    
+    if sec == 0:
+        f = open(logFileName, 'a+')
+        f.write("# Data Logging: Date, Time, Temperature, Pressure, Humidity, AirQuality, CO2\n")
+        f.write('# Restarted ' + str(rtc.readDateString()) + ' ' + str(rtc.readTimeString()) + '\n' )
+    time.sleep_ms(1000)
+    bme688.measureData()
+    oled.clear()
+    
+    #oled.drawRect(4, 5, 120, 35)
+    oled.displayText(rtc.readDateString(), 1, 25)
+    oled.displayText(rtc.readTimeString(), 2, 33)
+    #oled.drawLine(0, 48, 127, 48)
+    #oled.drawLine(0, 49, 127, 49)
+    oled.displayText(str(bme688.readTemperature()) + " oC", 3, 0)
+    oled.displayText(str(bme688.readHumidity()) + " %H", 3, 80)
+    eCO2 = bme688.readeCO2()
+    oled.displayText(str(eCO2) + " CO2 ppm", 4, 0)
+    IAQ = bme688.getAirQualityScore()
+    oled.displayText(str(IAQ) + " AQ ", 5, 0)
+    mbar = bme688.readPressure()/100.0
+    oled.displayText(str(mbar) + " mB ", 5, 50)
+    oled.show()
+   
+    if (IAQ < 100):
+        zipleds.setLED(0,  zipleds.GREEN)
+    else:
+        zipleds.setLED(0, zipleds.RED)
+    if (eCO2 < 800):
+        zipleds.setLED(2,  zipleds.GREEN)
+    else:
+        zipleds.setLED(2,  zipleds.RED)
+    zipleds.setBrightness(10)
+   
+    
+    # ffs all I want is an action every minute I hate python scope shit
+    #now = rtc.readTimeString();
+    # log every minute, thats 1440 records a day
+    sec = sec + 1
+    secmod = sec % 29
+    if  (secmod) == 0:
+        #log.setupDataFields("Date",             "Time",               "Temperature",                "Pressure",                           "Humidity",            "IAQ",                         "eCO2")
+        log_string = (rtc.readDateString() + ',' +  \
+               rtc.readTimeString() + ',' + \
+               str(bme688.readTemperature()) + ',' + \
+               str(bme688.readPressure()) + ',' + \
+               str(bme688.readHumidity())+ ',' + \
+               str(bme688.getAirQualityScore()) + ',' + \
+               str(bme688.readeCO2())) + '\n'
+        #print (log_string)
+        #print ("logging data\n")
+        f.write(log_string)
+        f.flush()
+        zipleds.setLED(1,  zipleds.RED)
+    elif (secmod < 10):
+        zipleds.setLED(1,  zipleds.BLUE)
+    elif (secmod > 10):
+        s2  = secmod * 2
+        zip_col = (secmod, s2, s2)
+        zipleds.setLED(1, zip_col)
+    
+    if ( (sec+1) % 2 ) == 0:
+        zipleds.setLED(1, zipleds.BLACK)
+        
+    zipleds.show()
+