Blinky's Lab

Geiger Counters, Radiation, Electronics, Projects and Other Random Stuff

Welcome to my lab! Here I write about Geiger counter and radiation related things, experiments, projects and general musings.
  • Posted on

    Archived from radmon.org - originally posted 12/08/2019

    In reply to a nzoomed's question on radmon.org:

    Im wanting to build an outdoor monitoring station with an SBM20 and not sure if its good to use a PVC pipe to place the tube inside? Obviously im wanting something as thin as possible to let as many particles through as possible. Are there some materials I should avoid? Are beta particles typically encountered much in the environment? Should I only be worried about cosmic rays? Im not sure how much background radiation is from other sources, but im expecting there is a great deal from alpha decay from the likes of radon etc which will never be picked up anyway? What does everybody else do? Im wanting to get the highest possible outdoor readings if possible.

    I mounted my counter in an ABS enclosure outside under a canopy on my workshop. I cut a slot in the front where the tube is and covered that with Kapton tape to keep it reasonably air tight. I have seen people use PVC pipe for housing their tubes. I used some 20mm plastic (PVC?) electrical conduit to make a house for a SBM-20 tube that I can fix externally to a window on my car with a sucker. It works fine but it is ever so slightly less sensitive. For background monitoring though I think this would be fine. As you mention, use something with as thin a wall as possible and also keep it watertight if used outside. Airtight would be better but it is hard to achieve whilst maintaining accessibility for service etc. I have a couple of large bags of desiccant behind the board in my counter that I have replaced once in 3 years and has done a fine job of keeping it dry and corrosion free. I live by the sea so we have quite humid air at most times.

    When it comes to detection and detecting alpha/beta/gamma it depends how far down the rabbit hole you want to go. The SBM-20 tube is capable of detecting gamma and hard beta OK. It however, will not detect alpha at all. For that you will need a tube such as the LND712 (great for portable hand held counters) or something like the SBT-10A (very sensitive to alpha, beta & gamma - great for surveying). The issue with detecting alpha outdoors is that the tube itself would need to be open to the elements. Over time the tube window would need cleaning which in most cases would ruin the tube itself as you are not supposed to touch the alpha window at all. I have a SBT-10A that mysteriously destroyed itself but does show how fragile they are. I believe it is possible by using mica to create a window for the tube as that apparently lets alpha pass through but I have never experimented with so can't say for sure although a lot of alpha tubes use mica themselves. It is possible to detect beta and gamma using SBM-20 tubes but this requires two tubes, one shielded with 3-4mm of aluminium and the necessary counting electronics. Basically two separate Geiger counters, one with the shielded tube. The unshielded tube will detect gamma and beta whereas the shielded tube will detect gamma only thus if there is a noticeable difference in counts, math can be applied and the difference in counts would be the beta detection.

    Going back to your SBM-20 housed outdoors there are some things to be aware of. Make sure the cable between the tube and the counter is no more than about 1m in length. If you are going to mount the tube separate to the counter it would be prudent to place the anode resistor at the tube itself and not at the counter. This will reduce interference causing inaccurate readings. I like to keep my tube as close to the counter as possible which rules out any interference a cable may pick up. It would be perfectly fine to place the counter on the inside of a wall and the tube directly outside using a small cable (20cm or so). I would still put the anode resistor at the tube though. But in doing that you will have two things to house and mount so putting the tube in a larger enclosure with the tube may mean a lot less work.

    With regard to Radon gas, it is pretty much impossible to detect outdoors as it dilutes in the air fast and with just a gentle breeze it is gone. Radon is an alpha emitter but also produces alpha and beta decay products during it's decay. The beta decay products would be detectable using an SBM-20 tube but their half life is so small it would be very hard unless you had a monumental release of Radon. Radon outside won't harm you as it is diluted by the air and swept away in the wind but it can be potentially very harmful indoors if exposed to over time. The best places to detect Radon gas at home would be in a basement or under the floor boards on the ground floor as it emanates out of the ground itself. If you were conscious about checking for radon there are specially made units for detecting Radon gas but I don't believe any outdoor units exist except for very expensive specialized detectors.

    Are beta particles typically encountered much in the environment? Most likely (Radon decay products produce beta), but without the equipment to differentiate between gamma and beta there is no way to know, unless you knew what the actual radioactive source isotope was. Using the two tube method it is possible to gain a feel for whether a detection was beta or gamma but bear in mind that an average Geiger counter isn't very accurate. I believe my NET-IO GC10 with SBM-20 is about +-25% accurate so what it tells me could actually be 25% less or 25% more radioactive than what the counter lets on. You can increase the accuracy by using more sensitive tubes like the SBT-10A or an SI-22G. The SI-22G is about 9 times more sensitive (and about 4 times larger) than the STM-20 so over time this would give a better resolution but not necessarily more accurate, although a greater resolution would offer a greater accuracy over time. Over time you will get to know your counter and it's results and you should get a good feel for whether it is detecting anything other than background.

    Should I only be worried about cosmic rays? Nope. You shouldn't worry about cosmic rays (muons) at all. They are subatomic particles and will literally go straight through you. Every square meter on earth is hit by thousands of these every second so there is a good chance you are getting hit with thousands of them right now, and they are passing right through you. The occasional one might bump into one of the atoms in your body but they are few and far between and the body will naturally get rid of any damaged cells and replace them as it sees fit, providing you are relatively fit and healthy. I suspect a percentage of background radiation that is detected is caused by muons and a muon detector can be made using multiple GM tubes using electronics to detect coincidences (simultaneous detections) with the tubes. With enough tubes in a matrix you could even see what direction they are traveling in. But you shouldn't worry about them at all. The sun will cook you far faster than muons could cook you, unless our sun goes supernova! ;) I often get spikes with my counter, sometimes going from ~20CPM to ~60CPM or more and sometimes in clusters over a few minutes/hours. I think this is due to a flurry of muons hitting my counter as a given time.

    I'm not sure how much background radiation is from other sources, but I'm expecting there is a great deal from alpha decay from the likes of radon etc which will never be picked up anyway? It is hard to say. There are lots of radioactive sources on this planet besides Uranium, Plutonium and the usual suspects. Granite and Lead (some isotopes) are radioactive but they are so slow at decaying they are hard to detect, but they are there and probably account for a certain amount of background. The tubes themselves have their own internal background count which I believe is about ~14CPM for the SBM-20. So if my SBM-20 has an internal background of 14 and my average is about 21CPM that would give about 7 counts per minute actual background, which is pretty much nothing in the big scheme of things. As I have mentioned you will need a tube capable of alpha for detecting Radon but would be pretty useless outside.

    Im wanting to get the highest possible outdoor readings if possible. No, you're not wanting this, far from it! You want the lowest results possible from your counter unless you want to be irradiated! :P I think what you mean is that you want the most accurate results? It's doable at the relevant expense. The more accurate the equipment, the higher the cost and the SBM-20 is a toy compared to some other detection equipment. If you wanted real accuracy then you should go down the route of scintillation and gamma spectroscopy. The SBM-20 is a great tube for background monitoring though. I think most people here that have an external Geiger counter use the SBM-20. It offers modest detection and is super cheap and reliable. Once you have your counter up and running you will get a feel for it and after getting a baseline of a few days/weeks/months you will know if there is elevated radiation being detected. It is hard to work out dosage for a given tube as you need to know what the radioisotope is and what the CPM/CPS would be for that particular isotope with the particular tube. Tubes have a conversion factor from CPM to uSv/hr (dose) but that will only apply to a particular isotope say Cobalt-60. A different conversion factor would have to be applied for Caesium-137 or Strontium-90. It is a mine field when it comes to getting an accurate reading and does require very expensive equipment. An SBM-20 for a domestic background radiation detector is suitable for just that but it is only going to tell you that there is an increase in radiation, not what.

    You will probably find that (if your tube/counter is outdoors) when it rains occasionally you may get a slight increase in counts. This is due to the radioactive matter being caught in the rain and coming down to the ground. It won't last long though as most is caused by Radon decay products and last for minutes at most before decaying into their final elemental isotope which would always be non-radioactive and stable.

    Something fun to do outdoors (which I have yet to do myself!) is to get something to filter air. Just some cloth or sponge or whatever you have to hand and set it up outside with a fan so it constantly pulls the outside air through the filter. Leave that running for about a week or so then get the filter (cloth/sponge/whatever) and place it close to your counter. You may see an increase in CPM as there would be radioactive particles captured in the filter. Also wiping the rain off a car outside (whilst still wet and has been raining for a bit) and checking that with a counter as the particles that come down with the rain tend to get stuck on the cars surface. Don't worry though as most of these isotopes have a half life of seconds to minutes only so aren't harmful.

    I hope this has been helpful to you and if not helpful interesting at least. :)

    My background monitor at home (mounted outside under a canopy on my workshop)

    enter image description here

    enter image description here

  • Posted on

    Archived from radmon.org - originally posted 25/12/2018

    Curiosity got the better of me so I decided to open up the Gamma Scout. I managed to carefully remove the sticker enough to reveal the screws so here are some pictures of the inside of the counter. The pictures aren't great as I'm not really setup with good lighting etc.

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    A quick update after living with my Gamma Scout for a few months.

    Despite everything I have written (which my opinion remains true and I stand by) I have really grown to love this counter. It's very handy and just 'there' when I need/want a counter. It is the first counter I pick up now for whatever I want to check. Prior to having the Gamma Scout I would grab my NetIO GC 10 (the one I added to with GPS and SD card (and housed in a nice polycarbonite case)). If I was playing about with sources, and admit it, we all grab our counters and sources occasionally to have a play and see how many clicks they give ;) I would grab my breadboard with my Geiger circuits on and hook up a tube, mainly my LND712, and have a good probe about. But the Gamma Scout is just super handy for doing this kind of thing. I take it out with me occasionally especially to antique stores and warehouses to see if there is anything radioactive and I have found Uranium glass and once an old aircraft clock readout, I think altimeter if I remember correctly, but it had radium of the dial hands. Too expensive for me though at the time.

    And so my final thought on the Gamma Scout is despite it's build quality, the cheap feeling plastics and the fact it not going to last forever, and I would really not want to drop it, it is damn handy. It is there and ready to go. No batteries to mess about with. no having to wait until it is switched on and getting up to count. It is just there, ready for me to pick it up and look at the screen. It still bugs me that it doesn't readout CPM and I forget what the buttons do all the time so have to refer to the manual a lot. Besides all that it does what it should. It reads radiation at a moments notice. Great for low level sources but I don't think would be good for 'the big one' as the LND712 can avalanche at lowish levels. (Avalance is the wrong term but I can't remember nor find what I mean. It's when the tube detects more than it is capable of and reads nothing). I wouldn't call it a survey meter, I would call it the first thing I picked up to see what was going on right before putting batteries in some of my other counters.

    It has it's uses for sure, but I'm glad I didn't buy a new one. I'm relatively pleased with what I paid for mine, but if I paid full retail price I would have probably been disappointed. A good bit of kit for the hobbyist and prepper but I don't think would hold up to a real close radioactive incident. And by that I mean a country changing event.

  • Posted on

    Archived from radmon.org - originally posted 24/12/2018

    As the title suggests, I bought a Gamma Scout. I was, let's say, underwhelmed with it so decided to give my thoughts on it. I'll not cover everything here so if you are interested then it would be advantageous for you to read up on the Gamma Scout Alert on their website prior to reading my thoughts.

    I had been wanting a Gamma Scout for a couple of years to add to my collection. I'd seen them on the web, in Youtube videos. In places like Fukushima and Chernobyl/Pripyat etc. and from what I had seen I assumed, I think it's fair to say, I'd assumed it better than it actually is. I bought mine 2nd hand from Ebay. It is the alert model and I paid £140 (178$ usd), which I think is a very fair price compared to the retail price, but as a unit, for my collection or to use in the field, I think the right price. I would have been a little let down if I had paid >£150 for a 2nd hand one. I would have most certainly been a little upset if I had paid full whack for it (~£400 new). The counter looks to have had some use. The 'ALERT' sticker shows signs of wear and the screen is slightly scratched. The case is not however. There is only light scuffing on the bottom. The internal battery looks good reading 3.61v which suggests it is not that old (I think 3.7 volts when they leave the factory. The counter stops functioning at 2.7 volts). It came boxed with instructions, certificate, USB lead (unused still sealed in plastic bag) and CD. As far as I know it came complete.

    The counter is made in Germany. It feels like a fair quality Chinese product, but not German. It doesn't have that 'edge' that German products usually have. The case is light and feels slightly flimsy. It feels like a fairly brittle plastic from touch. I'm not willing to find out though! ;) It flexes slightly when I grip the top and bottom and twist slightly. the plastic creaks slightly. It squishes in a the sides when I squeeze it with my thumb and finger. It is not something I would want to drop. Everything about it feels plasticky. The a/b/y selector lever feels flimsy and there is no real positive indent when switching between a, b & y. The screen does have a fairly thick (my view without taking it apart) window, probably acrylic as it scratches deep easily as there are some scratches and scuffs on screen as I received it, but little on the body itself. Only very minor scuffing on the bottom. This suggests the case body plastic is harder than the screen plastic. Not ideal in my opinion. I think the screen should be harder, maybe polycarbonate. The buttons are simply a plastic sticker over the actual buttons. Much like on a super thin remote control. I guess this would help splash damage but I don't think the screen is sealed so I don't think that was re reason behind such a keypad. I think less money to produce.

    Grabbing it out of the box and holding it, looking at the buttons at first reaction is nothing more than confusion. The buttons have symbols on them that really don't iterate their function. If you don't know how to use a Gamma Scout prior, then you will need to read the manual. A few times (I'll come to that later). Playing about with it and randomly pushing buttons reveals nothing but more confusion. The button symbols and display are simply not intuitive in the slightest. Far from it. I'm not one for reading instructions as I usually pick things up quite easily but without instructions this counter is impossible to operate to it's fullest. After a couple of attempts as working it all out I realised that the 'radioactive' symbol button made things return to the regular usv/hr readout, and that was all. Looking at the buttons it looks like the unit has a massive functionality with lots of modes and things to explore. It doesn't. It has what I would consider to be basic functionality for a modern Geiger counter. These are: Realtime dose rate (radiation reading in usv/hr) Realtime dose rate is counts per second. It does not have counts per minute which I feels is something that every counter should have at its core Accumulated dose Records readings for later download

    And that is pretty much it. You can tweak the parameters for the logging and dose rate such as the logging interval or the length of time for the dose rate, or just let it accumulate. You can set the time and date etc. View the battery voltage and turn the 'clicker' on or off. Download readings to PC. And that is pretty much it as far as functionality goes.

    The a/b/y selection is fairly good. It does seem to differentiate between a, b & y quite well. I have tested with a number of different sources and does seem to do it's job pretty well. The alpha shield is a thin aluminium sheet and the a & b shield is a sheet of aluminium about 3mm think. The tube does as expected. I actually thought the body of the LND712 was shielded with a wrap of lead. It isn't. I had seen somewhere on the web the tube was wrapped but this may have been someone's modification. I'm not sure as I haven't been able to find it now. I already have a LND712 and have played about with it a bit on other counters and one I am building (and have been for ages now!) so I have a fair idea how the LND712 reacts and the Gamma Scout simply reflects that of my findings already. The LND712 is a good tube. Not massively sensitive, but a great all-rounder for small hand held counters. The advantage over the SBM-20 is it's ability to detect alpha radiation. The SBM-20 is very marginally more sensitive to beta and gamma but lacks alpha. But the LND712 is about £70 new as opposed to around £10 for an SBM-20. It is a big jump in price for the ability to detect alpha.

    The instructions are very difficult to understand and took me several attempts are reading the manual. It is not that it is a bad translation as the translation appears to be very good but simply the way it is worded. It is difficult are requires that you go through each part whilst performing the function on the counter in order to understand and remember it. I have already forgotten what half of the buttons do already and how to go about performing specific functions. To be quite honest it is one of the most hard work, nonintuitive bits of kit I have ever owned. The different modes are indicated by little symbols on the screen that are hard to differentiate and yeah, not great to use really. Quite disappointing. The software is very basic pretty much allowing you to set the time and date from PC and download the results and clear the memory. Nothing more for the alert version. You can't even display real-time data on the PC (you need the ONLINE version for that). So is very minimal in it's functionality.

    One thing it really does have going for it though, that is, if this is a requirement, is battery life. It has a non user replaceable battery soldered to the board that lasts for several years. The 'clicker' uses most battery life so when activated the clicker turns off after ten minutes. I can see how the long battery life could be a benefit for some uses but a real pain to replace eventually having to send it back to Germany along with 45 euro just for a new battery. The company claims that basically a battery holder and terminals is unreliable and therefore a 'permanent' battery is the solution. I can see arguments for and against this. I have a weather station that has been running on two AA batteries for 4 years now without an issue. It is outside and prone to high humidity, and varying temperatures and has never been an issue. However, my weather station isn't getting handled and knocked about.

    To close; I am still glad that I bought it for the price I did. I would have been very underwhelmed if I had paid full price for it. Quite pissed in fact. I haven't taken it apart and the seals are still in place. I'm a little loathe to take it apart and it will leave holes in the rear sticker. I have no idea how much, if any, warranty is left on it.

    It's a fair counter with a high price in my opinion. The tube is about £70 retail so I can't see the unit costing much more than £150 to produce. Although I don't know the production count and less units cost more to produce. For the money it costs new I think much better counters are to be had.

    To put it another way, I think you would be getting much more functionality at a fraction of the price if you bought a kit from BroHogan (DIYGeiger) and a brand new LND712. Fixed it up in a case with a nice rechargeable battery. It would not be hard to replicate all of the functionality in a home made counter and to the same specification and that all lies with the tube mainly. Except for the battery life and I think that is the whole idea around the Gamma Scout is for it to just work and last out in the field. Although knocking and dropping would probably render it useless fairly quickly. I have read multiple reports of people damaging the mica end window on the tube as when in a/b/y mode there is no protection for the tube whatsoever.

    Anyway I hope you found that interesting. I hadn't found any criticism about the unit online so I hope this may serve someone, sometime. :)

    All the best and wishing you a very happy Christmas and a super duper new year! Simon

    Oh, something I forgot to add. You can't switch the Gamma Scout off. It stays on all the time. I guess this is a good thing if you are using it as a dosimeter but if like me, you just want to use it when you do, then I would certainly prefer the option of turning it off and stopping logging in favour of battery life. But unfortunately you cant :/

    enter image description here

    enter image description here

    enter image description here

    enter image description here

  • Posted on

    Archived from radmon.org - originally posted 15/11/2018

    A very strange one here. I'm looking for answers but after scouring the internet I doubt I'll find any.

    My SBT-10A tube has been destroyed for some reason unbeknown to myself. The mica window has completely shattered. I have no idea why. In the pictures you can see the damage. It appears that the mica has either reacted with something or it has catastrophically degraded. The last time I used this was on 20/10/2018 (so less than a month ago) when I decided to setup a reasonably controlled comparison of all my sources (I'll post about that in the future). It was working perfectly then and got packed away the same as it always has until I got it out today. Hooked it up with the aluminium cover on and got nothing, so took the cover off and that is when I saw the damage.

    Examining it closely it appears that the resin at the edge (top of picture of tube) has some marks in it. Looks like physical damage but I fear some sort of corrosion. The resin was once black and shiny and now it appears to be greyish and powdery looking. This could be a form of residue or corrosion. Until I get it under a microscope it is hard to tell. There are some strange marks on the remaining mica. Light brown patches that look like some kind of contaminant. On the aluminium shield there is what resembles rust. But aluminium doesn't form this kind of oxidization. There are also signs of aluminium oxide towards the middle of the inside of the shield.

    It is all very strange and I would like to get to the bottom of it as I have ordered a replacement from Romania and I don't want the same to happen to the new one.

    If anyone has any ideas I would very much appreciate your input. I find it hard to understand that a chemical reaction or corrosion has caused this as mica is a silicate and silicates are very resistant to chemicals (however I could be wrong), allthough things are pointing to that. I am always extremely careful handling my tubes and counters. My thoughts are that some contaminant has caused a reaction with either the resin or the mica itself.

    In the pictures: The tube itself at the top has some damage to the resin at the edge and also light brown marks to appear to be on the inside of the mica.

    enter image description here

    The aluminium shield has what looks like iron oxide (rust) that was at the same side as the damage to the resin. There is also what appears to be aluminium oxide towards the middle of the inside of the shield.

    enter image description here

    enter image description here

    I have looked under a cheap USB microscope and though the image was crappy it looks like the mica has shattered, but not in a physical sense but chemical. As though the atom bonds have detached causing to mica to retain a smaller crystalline form. I am pretty sure it is some kind of contamination on the mica that has caused a reaction and this is the result. I doubt very much it is physical damage. I intend on looking again with the microscope so I'll grab some images. They don't explain anything but are interesting.

    Once I have done that I'm going to remove all of the mica and grab some good photos of the tube so we can see what the SBT-10A looks like inside and hopefully see how the separate anodes and cathode are constructed. I'll try and do it soon.

    On a positive note my replacement arrived today. It came in the original box and is nice and shiny but there is some serious patching and black speckles on the inside or the mica window. I think this is just down to age and the way it has been stored (temperatures/humidity etc.) That said it works well, and seems very slightly more sensitive than the last one. The bad part is that I still don't know what caused the damage on the last one, so I'm going to have to be super careful with this.

  • Posted on

    Archived from radmon.org + more - originally posted 18/09/2017

    I've been working on an air quality monitor over the weekend. I have a working model that samples and logs every 5 minutes into various .csv files that are used for drawing graphs. It is a work in progress, still much to do. Take a look here: https://www.schmoozie.co.uk/airquality/

    Please ignore the data as it is not accurate as is just for testing purposes at the moment. I'll be dumping the collected data and starting from scratch when I get this into an enclosure and mounted properly outside. (All data shown on the page is good.)

    enter image description here

    The hardware is very simple. An ESP8266 (Wemos D1 Mini), I2C LCD driver, 16x2 LCD and a Nova SDS011 PM2.5/PM10 sensor. The software on the ESP8266 simply wakes up the sensor for 20 seconds along with the built in Wi-Fi, then records the last sample, puts the sensor to sleep for 5 minutes and shoots it to my web server where some PHP does the magic and writes the log files etc. I'm pretty happy with it so far.

    This did get properly housed and installed and with a BME280 (temp/humidity/pressure) sensor alongside. However the BME 280 failed not long after installing. Sadly I don't have any pictures of the install yet. Here is a good example of it working on bonfire night 2017: enter image description here

    The Arduino code: (is old so not guaranteed to compile with recent libraries)

    #include <LiquidCrystal_I2C.h>
    #include <ESP8266WiFi.h>
    #include <WiFiClientSecure.h>
    #include <Wire.h>
    #include <SPI.h>
    #include <SDS011.h>
    #include <Adafruit_Sensor.h>
    #include <Adafruit_BMP280.h>
    #include <Adafruit_Si7021.h>
    
    // Time to sleep (in milliseconds):
    const int sleepTime = 280000; //280 seconds sleep time
    
    const char* ssid = "Dreamtech";
    const char* password = "lizbo5601";
    const char* host = "172.16.100.100";
    const int httpPort = 80;
    
    float p10, p25;
    int error;
    int countdown;
    bool firstRun = true;
    String str_pm25;
    String str_pm10;
    String str_temp;
    String str_humidity;
    String str_pressure;
    unsigned int stringLength;
    const int greenLED = D0;
    const int redLED = D8;
    const int button = D3;
    bool sampleNow = true;
    unsigned long nextSample;
    int buttonStep = 0;
    int buttonState = 0;
    unsigned long debounce;
    unsigned long hold;
    int menuStep = 1;
    
    bool debug = true;
    bool doSample = true;
    
    SDS011 sds;
    Adafruit_BMP280 bmp; // I2C
    Adafruit_Si7021 sensor = Adafruit_Si7021();
    
    // Set the LCD address to 0x27 for a 16 chars and 2 line display
    LiquidCrystal_I2C lcd(0x27, 16, 2);
    
    void reconnect() {
      if (debug) {
        Serial.print("Connecting to ");
        Serial.println(ssid);
      }
      if (WiFi.status() != WL_CONNECTED) {
        WiFi.begin(ssid, password);
        while (WiFi.status() != WL_CONNECTED) {
          delay(500);
          if (debug) {
            Serial.print(".");
          }
        }
      }
      if (debug) {
        Serial.println("");
        Serial.println("WiFi connected");
        Serial.print("IP address: ");
        Serial.println(WiFi.localIP());
      }
    }
    
    void http_post(String data) {
      if (debug) {
        Serial.print("connecting to ");
        Serial.println(host);
      }
      // Use WiFiClient class to create TCP connections
      WiFiClient client;
      if (!client.connect(host, httpPort)) {
        if (debug) {
          Serial.println("connection failed");
        }
        return;
      }
      String url = "/airquality/postdata.php";
      if (debug) {
        Serial.print("requesting URL: ");
        Serial.println(url);
      }
      String body = String("POST ") + url + " HTTP/1.0\r\n" +
                    "Host: " + host + "\r\n" +
                    "Content-Length: " + data.length() + "\r\n"
                    "Content-Type: application/x-www-form-urlencoded\r\n" +
                    "\r\n" +
                    data;
      if (debug) {
        Serial.print("body: ");
        Serial.println(body);
      }
      client.print(body);
      if (debug) {
        Serial.println("request sent");
      }
      while (client.connected()) {
        String line = client.readStringUntil('\n');
        if (line == "\r") {
          if (debug) {
            Serial.println("headers received");
          }
          break;
        }
      }
      if (debug) {
        Serial.println("closing connection");
      }
    }
    
    void submit_air_conditions(String pm25, String pm10, String temp, String humidity, String pressure) {
      http_post("pm25=" + pm25 + "&pm10=" + pm10 + "&temp=" + temp + "&humidity=" + humidity + "&pressure=" + pressure);
    }
    
    void displayPM (String pm25, String pm10) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("PM2.5: " + pm25);
      lcd.setCursor(0, 1);
      lcd.print("PM10: " + pm10);
    }
    
    void displayTempHum (String temp, String hum) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Temp: " + temp + " c");
      lcd.setCursor(0, 1);
      lcd.print("Hum: " + hum + " %");
    }
    
    void displayPres (String pres) {
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Pressure: ");
      lcd.setCursor(0, 1);
      lcd.print(pres + " hPa");
    }
    
    void setup() {
      Serial.begin(115200);
      WiFi.mode(WIFI_STA);
      pinMode(greenLED, OUTPUT); //Green LED
      pinMode(redLED, OUTPUT); //Red LED
      pinMode(button, INPUT); //Button
      sds.begin(D6, D7);
      if (!bmp.begin()) {
        if (debug) {
          Serial.println(F("Could not find a valid BMP280 sensor, check wiring!"));
        }
        //while (1);
      }
      sensor.begin();
      lcd.begin();
      lcd.backlight();
      lcd.print("   SDS011 Air");
      lcd.setCursor(0, 1);
      lcd.print("  Quality Meter");
      delay(2000);
    }
    
    void loop() {
      if (digitalRead(button) == HIGH) {
        if (buttonState == 1) {
          hold = 0;
          if (millis() > debounce + 5000) {
            buttonStep = 0;
            if (menuStep != 1) {
              if (debug) {
                Serial.println("Main Display");
              }
            displayPM (str_pm25, str_pm10);
            }
            buttonState = 0;
            menuStep = 1;
          }
        }
      }
      if (digitalRead(button) == LOW) {
        buttonState = 1;
        if (hold <= millis()) {
          if (hold != 0) {
            digitalWrite(redLED, HIGH);
            if (debug) {
              Serial.println("CLEAR!");
              Serial.println("");
            }
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("Reserved");
            lcd.setCursor(0, 1);
            lcd.print("Function");
            hold = millis() + 3000;
            buttonStep = 0;
            menuStep = 1;
            delay(2000);
            if (debug) {
              Serial.println("Main Display");
            }
            displayPM (str_pm25, str_pm10);
            digitalWrite(redLED, LOW);
            return;
          }
        }
        if (debounce < millis()) {
          hold = millis() + 3000;
          if (debug) {
            Serial.println("Button Hold = " + String(hold));
          }
          buttonStep += 1;
          if (buttonStep >= 3) {
            buttonStep = 0;
          }
          if (debug) {
            Serial.println(buttonStep);
          }
        }
        if (buttonStep == 0) {
          if (menuStep == 0) {
            if (debug) {
              Serial.println("Main display");
            }
            displayPM (str_pm25, str_pm10);
            menuStep = 1;
          }
        }
        else if (buttonStep == 1) {
          if (menuStep == 1) {
            if (debug) {
              Serial.println("Temp Hum");
            }
            displayTempHum (str_temp, str_humidity);
            menuStep = 2;
          }
        }
        else if (buttonStep == 2) {
          if (menuStep == 2) {
            if (debug) {
              Serial.println("Pressure");
            }
            displayPres (str_pressure);
            menuStep = 0;
          }
        }
        debounce = millis();
        debounce += 200;
      }
      if (nextSample <= millis()) {
        sampleNow = true;
      }
      if (sampleNow) {
        if (doSample) {
          reconnect();
          sds.wakeup();
          if (firstRun) {
            countdown = 30;
            if (debug) {
              Serial.println("Calibrating SDS011 (first run 30 sec)");
            }
            for (int x = 0; x < 5; x++) {
              digitalWrite(greenLED, HIGH);
              lcd.clear();
              lcd.setCursor(0, 0);
              lcd.print("Starting up");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              digitalWrite(greenLED, LOW);
              delay(1000);
              digitalWrite(greenLED, HIGH);
              lcd.setCursor(11, 0);
              lcd.print(".");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              delay(20);
              digitalWrite(greenLED, LOW);
              delay(980);
              digitalWrite(greenLED, HIGH);
              lcd.setCursor(12, 0);
              lcd.print(".");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              delay(20);
              digitalWrite(greenLED, LOW);
              delay(980);
              digitalWrite(greenLED, HIGH);
              lcd.setCursor(13, 0);
              lcd.print(".");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              delay(20);
              digitalWrite(greenLED, LOW);
              delay(980);
              digitalWrite(greenLED, HIGH);
              lcd.setCursor(14, 0);
              lcd.print(".");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              delay(20);
              digitalWrite(greenLED, LOW);
              delay(980);
              digitalWrite(greenLED, HIGH);
              lcd.setCursor(15, 0);
              lcd.print(".");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              delay(20);
              digitalWrite(greenLED, LOW);
              delay(980);
              digitalWrite(greenLED, HIGH);
            }
            firstRun = false;
          }
          else {
            countdown = 20;
            if (debug) {
              Serial.println("Calibrating SDS011 (20 sec)");
            }
            for (int x = 0; x < 4; x++) {
              digitalWrite(greenLED, HIGH);
              lcd.clear();
              lcd.setCursor(0, 0);
              lcd.print("Sampling");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              digitalWrite(greenLED, LOW);
              delay(1000);
              digitalWrite(greenLED, HIGH);
              lcd.setCursor(8, 0);
              lcd.print(".");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              delay(20);
              digitalWrite(greenLED, LOW);
              delay(980);
              digitalWrite(greenLED, HIGH);
              lcd.setCursor(9, 0);
              lcd.print(".");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              delay(20);
              digitalWrite(greenLED, LOW);
              delay(980);
              digitalWrite(greenLED, HIGH);
              lcd.setCursor(10, 0);
              lcd.print(".");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              delay(20);
              digitalWrite(greenLED, LOW);
              delay(980);
              digitalWrite(greenLED, HIGH);
              lcd.setCursor(11, 0);
              lcd.print(".");
              lcd.setCursor(0, 1);
              lcd.print(String(countdown) + " ");
              countdown -= 1;
              delay(20);
              digitalWrite(greenLED, LOW);
              delay(980);
              digitalWrite(greenLED, HIGH);
            }
          }
          error = sds.read(&p25, &p10);
          if (!error) {
            str_pm25 = String(p25);
            stringLength = (str_pm25.length());
            str_pm25.remove(stringLength - 1);
            str_pm10 = String(p10);
            stringLength = (str_pm10.length());
            str_pm10.remove(stringLength - 1);
            str_temp = String(sensor.readTemperature(), 2);
            str_humidity = String(sensor.readHumidity(), 2);
            str_pressure = String(bmp.readPressure() / 100);
            if (debug) {
              Serial.println("Air Quality:");
              Serial.println("PM2.5 = " + str_pm25 + " ug/m3");
              Serial.println("PM10 = " + str_pm10 + " ug/m3");
              Serial.println("Temp = " + str_temp + " *c");
              Serial.println("Humidity = " + str_humidity + " %");
              Serial.println("Pressure = " + str_pressure + " hPa");
            }
            submit_air_conditions(str_pm25, str_pm10, str_temp, str_humidity, str_pressure);
            displayPM (str_pm25, str_pm10);
          }
          else {
            if (debug) {
              Serial.println("Error reading sensor");
            }
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print("Sensor read");
            lcd.setCursor(0, 1);
            lcd.print("error");
          }
          if (debug) {
            Serial.println("Sleep(" + String(sleepTime) + " milliseconds)\n\n");
          }
          sds.sleep();
          digitalWrite(greenLED, LOW);
        }
        else {
          if (debug) {
            Serial.println("Sampling disabled");
          }
        }
        nextSample = millis() + sleepTime;
        if (debug) {
          Serial.println("Millis: " + String(millis()));
          Serial.println("Next Sample: " + String(nextSample));
        }
        sampleNow = false;
      }
    }
    
    
  • Posted on
    Increase in Radiation During Downpour

    Archived from radmon.org - originally posted 19/07/2017

    Blackpool UK - 19 July 2017 - Started around 17:00 BST / 16:00 UTC

    During quite a downpour today, 20mm in one hour. At it's peak was 65mm/h. Background radiation increased by approx 50% / 11CPM over a 2.5hour period. Not much by any means but still an indication there was some radioactive substance in the rain.

    Please note the Radmon graphs are UTC and the rain graphs are BST (UTC + 1) and so there is an hour difference between them.

    enter image description here

    enter image description here

    enter image description here

    enter image description here

    What caused it? I could be anyone's guess. Radon causing decay products to get caught up in the rain? Radioactive cloud blowing over from somewhere? Radioactive UFO floating about somewhere overhead? 😂 It should be noted that the difference from ~21 CPM to ~30 CPM is miniscule. It is so tiny it causes no concern whatsoever. I found it interesting that the slight rise coincided with a downpour.

  • Posted on

    (Paraphrased) Archived from radmon.org - originally posted 19/03/2017

    A radmon.org user was having avalanche issues with their SBT-10 Geiger Muller tube. Doing a little research I found a little information stating that each anode on the GM tube (there is ten in total) should have it's own quenching resistor. I have mine set with a 10Mohm on each anode (see pic below) and appears to work OK, although I haven't had it running for long and just some simple tests. When I got it I scoured the web looking for info but it seems there is very little. One recurring theme was that the voltage and resistor(s) did play a very big part on getting correct counts from the tube.

    From this site: https://sites.google.com/site/diygeigercounter/gm-tubes-supported

    SBT10-A - alpha tube A good tube for measuring food? This report from Pedro (thanks for keeping us in the loop): "Finally the replacement for the faulty SBT10-A tube arrived and after connecting it to the arduino the counter shows a 160/190 CPM with all the segments connected to a 10Mohm resistor. The anode voltage seems to be critical for this tube as it creates avalanches if anode voltage is over 370v. Care must be taken in the voltage calibration as most voltmeters will show erroneous reading due to intrinsic impedance, so in my case the adjustment was made to 330v (digital readout) but the real voltage without voltmeter load was 370v. In my case this tube detects 2400 CPM for a lantern mantle at 10cm from the mica window without alpha blocked and 690 CPM with alpha blocked." [7/22/16] A customer reports that 10MΩ is too low for this tube. He had expected results with as high as 30MΩ. He used that resistance on every anode of the tube. He also said that the sensitivity to the HV setting described above is explained by too low of anode resistance. For the conversion ratio, I calculated using Method 2 below, and got a ratio of 1641 CPM / uSv. Seems high, but is a sensitive tube.

    Doing a bit more digging for what little info there is regarding this, I found a forum where a couple of users stated that a 30M ohm resistor works best per anode.

    enter image description here Each anode connection on the 3D printed connector has it's own 10M resistor.

  • Posted on
    Black Spots on SBT-10 Geiger Muller Tube

    Archived from radmon.org - originally posted 19/03/2017

    A radmon.org user posted a question asking what the black spots were in his SBT-10. I had recently bought one of these from a seller in Ukraine and mine too has the black spots similar to the one posted on radmon.org. The seller assured me that mine was NOS (new-old-stock), meaning whilst it is old, it has merely been stored for the time and never used. It appears to be working correctly regardless of it's condition. I tested each element separately and each reads around the same CPM as the others so I'm assuming that whilst cosmetically nasty, the black spots appear to do no harm. What causes them I'm unsure of, but I suspect it is some kind of age related issue. Possibly some kind of reaction between the materials and the gasses used in constructing these tubes. I wish I could help you more. I too would like to know what the spots are and if they are impacting the reliability of the tube.

    On a side note, I have found a person in Lithuania that supplies a 3D printed connector with pins or just the pins themselves here: http://arduino-geiger-pcb.blogspot.co.uk/2015/03/a-new-contact-socket-for-sbt-10-10.html

    After some close inspection I sort of know what the black spots are now. They are some kind of crystalline chemical or mineral that is growing on the surface of the mica.

    I put my SBT-10A under my stereo microscope a few weeks ago (before I had a camera for my microscopes) and could see they were hexagonal in shape. Some were like triangles with their points cut off. They appear as arbitrary shapes and almost like little blobs and that is because some grow next to others and some grow on top of others. They appear to be very very thin, although there were a couple that I could just see had a little more length to them. I think they are being caused by some chemical in the resin leaching out and reforming as crystals.

    I thought I would follow up with some microscope images of them, but I managed to destroy my tube by accident by dropping a polarizing filter from my microscope onto the tube. File Attachment: So that's the second SBT-10A that has broken on me. File Attachment:

    Oh well, at least we can see inside one now! I'll do a separate post on that.

  • Posted on

    Archived from radmon.org - originally posted 11/08/2016

    I have always been a little dubious about leaving radioactive test sources just laying around, although they emit small amounts of radiation. I knocked up a little lead lined box over the weekend to keep my test sources in. The box is just one of those cheapo wooden boxes from India (or somewhere) that you see for sale in markets and such that I lined with 2mm lead flashing (used above windows), painted bright orange with some paint left over from an old project. I added a label on top that is from a check source I bought from ebay and a radioactive symbol tie pin on the front.

    It works very well and get nothing more than background radiation when it is closed so I thought I would share. It does look a little rough as I split the wood a little and didn't bother to clean it up at all, but I actually like the way it looks.

    enter image description here

    enter image description here

  • Posted on

    Archived from radmon.org - originally posted 04/04/2016

    I have finished up building/setting up my home radiation monitoring station and is all up and running. :cheer:

    https://www.schmoozie.co.uk/radmon/ (currently offline.)

    enter image description here

    I won't go into too much detail as it is pretty much just a NetIO GC10, in an enclosure with a couple of buttons and switches added. It is mounted outside under a canopy on my workshop so rain is no issue and I have used all sealed switches/buttons etc with rubber gaskets on each to seal it up nicely. The window for the tube at the front is covered with some Kapton tape to seal that up also. Power is taken from a 5v PSU inside the workshop but here is the interesting thing, (for me anyway) the RS232 output is sent over wireless transceivers to my computer in the house at the other end of the garden. I'm pretty happy with it so far and the only thing I want to do to finish it is either paint it or cover in some kind of vinyl or similar to make it pretty.

    I used two HC11 RS232 transceivers, one connected to the GC10 and the other connected to a USB FTDI adapter (USB <> RS232 adapter). The transceivers work very well so far hardly missing a beat. They worked for me right out of the box with no additional configuration needed. Check them out at this link , but you can get them much cheaper on ebay. I paid £2.96 each including shipping for mine, so it was probably cheaper than buying actual cable to run the RS232 and saved all the hassle or running a cable etc.

    This is the receiver that sits on my windowsill: enter image description here

    I put a bag of silica gel desiccant inside the enclosure to aid in keeping moisture at bay. I have done this for years whenever mounting any kind of enclosure outside and it works a treat, keeping everything dry and electrical contacts clean and shiny.

    Some years ago I went through a period at work of designing and building custom switches/keypads for use in sauna, steam rooms and swimming pools. They were only basic with a couple of buttons on them but they were in very hostile (to electronics) environments. The circuits were potted and that kept the circuit happy and the switches/buttons were hermetically sealed. The case covers were all gasketed but this left the main connections to the 'elements' inside the enclosure. In testing these would last for weeks even months, but they would eventually fail. The failure mode was corrosion on the incoming cable terminals where it was connected to the circuit. At first The design was changed and a cable was soldered directly onto the board and potted in. This worked great provided the installers would install them correctly, but they didn't. Mainly they would cut down the cable, use a terminal block and just shove it behind the switch/keypad. Some even drilled a hole in the back of the enclosure and put the terminal block inside the enclosure pretty much leaving it to the elements.

    I changed the design slightly so the cable was potted in and soldered to the board, like the last, but the cable was only 3" or so with a fairly robust connector. I added a bag of silica gel (as big as I could fit in the enclosure) and that pretty much solved the issues of the terminals/connectors corroding. I learned that no matter how much you think the enclosure is sealed, unless it is airtight, it will eventually pull in some moisture. This is down to the fact that as the enclosure and contents heat up the air expands and may push some out. Then it will cool down, the air inside cools and contracts, creating a very small vacuum in the enclosure. Air from outside with a higher moisture content will be sucked into the enclosure and with that happening every day the enclosure would eventually get enough moisture inside it would condense and corrode the contacts. This was in very harsh environments especially in steam rooms but the same will happen outside, it will just take much longer. I usually change silica gel bags in my stuff outside every year or so and that keeps them nice and happy.

    I have been playing about a bit trying to make my website 'radmon' page look nifty. I'm pretty pleased with the page so far.

    I use radlog to transfer the locally generated graph to my website. I grab the european map from radlog.org in an iframe and then grab each of the six history/trend data images from radlog.org. Because I like a black background and use that on my page, the images right from radlog.org have white backgrounds and look poor, so I run them through a PHP image filter to change the colours negative, cache them locally and display on my page.

    enter image description here