Crack the Code
/This is important information that I use once a year. But what is it?
Update: some of the figures are a bit hard to read, sorry about that. The sequence is:
AA, BB, Z9, CC, DD, EE, Y5, FF
The values are not hex codes, it’s nothing to do with colours and everything to do with Christmas. There’s a big clue in my blog post here.
Using Azure Functions with IoT devices video
/I’ve made a new screencast. This one is all about the use of Azure Functions with IoT devices. I find it quite magical that I can press a button (in this case the Joke Button above) and have a function run in the cloud in response to that action. And the code to make it work is tiny. Find out how it works and how to get started in the video.
BME280 Power Fun
/Sometimes the old solutions are the best. In this case the solution is “Turn it off and then on again”. I’m using a BME280 temperature, pressure and humidity sensor in the air quality monitor that I’m building. It works well, except sometimes, when it refuses to say hello when it starts up.
This has caused a certain amount of head-scratching. However, after a while I worked out that it only misbehaved after I had downloaded some code into the device. It’s as if it doesn’t like being woken up twice once it has been powered up.
Now if it gets stuck I just unplug the device and plug it back in. It’s something to be born in mind when you can’t get something to work.
I have a special category in my work (particularly with hardware) called “Things you do to make it work but you don’t know why”. This is another one.
Hull Makerspace open for business
/I’ve been saying for ages that Hull needs a Makerspace. And now we’ve got one. And it’s bigger and better than my wildest dreams. It’s in the library in the middle of town and it is packed with equipment and expertise in equal measure. Membership costs 20 pounds a month (which it turns out I’ve already raised thanks to my last two financial deals) and gives you access to valuable machinery and tuition.
I’m looking forward to making robots, air quality sensors and daft lights among other things. You can sign up here for an induction session that will get you stared making.
New Kcom Tariffs can save you money
/I’ve just changed to a new contract for my home networking. The speed goes up, the amount of data stays the same and the price drops by eleven pounds a month.
What’s not to love?
If you’re in Hull you really should take a look here and see if there is something cheaper that you can change to. Hull is already one of the best connected cities in the world, it’s nice to see it getting cheaper as well.
Stealth Selling
/Old joke: “They say that money talks. The only thing it says to me is ‘Goodbye’”.
However, these days it doesn’t even do that. When Netflix (or a host of other subscription services) take their fees from my account they do so invisibly. The only way that I know that it has happened is by carefully checking my statements to find out why the balance value is dropping.
Today I found that a service I thought I’d cancelled ages ago has been racking up these “stealth charges”. Of course it’s my fault for misunderstanding what I was paying for, but if I’d had regular emails each time that the fee was paid I’d have spotted the rogue transactions much earlier.
It’s as if they don’t want to tell you when they take money in case you notice and cancel something…..
I reckon that a service provider should be forced to send you an email or a text each time they take your cash off you. These companies seem happy enough to send me emails advertising new things I can buy from them, it would be rather nice if they also told me when I had bought something.
Happy New Year from Hornsea
/We’ve got a tradition of going out to the seaside on New Year’s day. We didn’t do it last year, but this year the weather was so nice that we couldn’t resist it. So we headed down to Hornsea to see the sea. We managed to make the morning perfect by finding the Hornsea Floral Hall, where they were serving bacon butties.
The thing about a bacon sandwich is that once you’ve heard someone mention one, you really want one for yourself. The chap in the queue in front of us ordered a buttie and so we of course had to follow suit. It was really really nice.
What a great way to start 2019.
New Year Resolution Time
/As the year ends it is time to think about new year resolutions. One of mine is that I’m not going to make the very old joke about getting a different computer monitor.
The other is to try to be a bit more assertive in the new year, or at least to stop apologising when cashiers in shops ask me “Do you have a loyalty card?” when I try to buy something. Up until now I’ve always said “Sorry, I’m afraid not”. From now on I’m just going to say "no”. That’ll make a difference to my life, no doubt.
I’d like to wish all (or is that both) my readers the very best of times in 2019 and beyond.
May your code always compile and your solder always stick.
Spider-Man: Into the Spider-Verse
/A couple of days ago we went to see “Spider-Man: Into the Spider-Verse”. It’s really, really, good. You should go and see it. A light touch, a strong story and some amazing graphics. Spiderman as you’ve never seem him. In many different ways.
Invisible hearing aids and other frauds
/I was very upset to discover today that a shop in Cottingham (where I live - the village not the shop) has taken away their “Invisible hearing aids - 475 pounds a pair” sign. I really wanted to get a photograph of that sign.
The way I see it, advertising things like this is fraught with fraud potential.
“I say, there’s only one hearing aid in this box”
"That’s because the other one is switched on”
.. and so on.
They’ve now have a sign that that says “Free Eye Tests”. I can see fraud potential here too:
“We’ve done your test, that will be fifty pounds please”
”Hang on, the sign says that you do eye tests for free”
”Ah yes we do, but the charge is for testing the other eye. That costs fifty pounds….”
Sometimes I consider myself a great loss to the world of commerce.
Non Sale Sale
/We went to what was supposed to be the sales today. But we didn’t find much that was worthy of the “sale” label. I think every reduction that could have been applied to the prices had already been applied.
Bank Heist Fun
/As part of our Christmas present, number one daughter organised a trip to an escape room in Hull. This was a room with a difference. It turns out that there is no problem escaping, you can leave the bank at any time. But, you’ll want to take away a few souvenirs in the form of wads of cash, gems etc etc.
The puzzle was a very good mock up of a bank branch (remember them), even down to the pens chained to the desk. And there was a strong room, and things containing money and clues in equal measure. I’m not going to tell you much about the puzzles, except that they are fun and the whole thing works very well to build tension during the hour you spend trying to get your hands on as much loot as possible.
We did OK, and each of us got a cheque for our share of the take. You can see mine above. It’s lovely to have these kinds of things in Hull. If you fancy a fun and challenging trip out I can strongly recommend it.
Unboxing Boxing Day
/Today I got to open up the box and start work on my big Christmas Present. It’s a lovely big Lego Truck.
I must confess that I bought it for me when I saw it at an amazing discount on Amazon. It’s the biggest build that I’ve ever done. And I’m having big fun.
Happy Christmas
/Happy Christmas one and all.
Working Lights
/Well, the lights have stayed up for another day. I think they’ve reached “Peak Sag”. I’m rather pleased with how well they work. It’s basically a one dimensional particle system with particles that change size and position. I’ll post the code on GitHub at some point.
Neopixel leds and power supply fun
/When you try to make hardware it sometimes turns out that every bit is the difficult bit. Like today for example. Yesterday my latest Neopixel lights arrived. They are on a strip of 8x32 pixels on a flexible pcb. It’s awesome, with power demands that I’m not that happy thinking about. The plan is to do something vaguely “Steam Punk” with them, perhaps involving my recently purchased top hat.
To celebrate I broke out my 10 amp 5 volt power supply. The one that I’ve not dared use yet. Having checked that the power supply produced a vaguely sensible voltage (around 5.5 volts) I tested the Wemos I was going to use (won’t get caught like that again) wired it all together and fired it up.This part of the project should have been the easy bit.
It didn’t work.
In a panic I disconnected the power supply, thinking that I might have wired the positive and negative wires the wrong way round (which is a good way to destroy anything). And suddenly it started working.
It turns out that this is completely normal behaviour. The problem is in the way that the NeoPixels detect their signals. They regard anything above two thirds of their power supply voltage as “true”. If the power supply is 5 volts two thirds of that is around 3.3 volts, which is exactly what the Wemos device produces on its output pins. Happy days.
However, if the power supply voltage is higher than 5 volts the voltage level needed to send a message to the NeoPixels becomes higher than the 3.3 volts that I get from the Wemos and so the communication starts to fail.
So it’s all down to my power supply being too powerful. There are two possible solutions. The first is to use a level converter to boost the signal from the Wemos to 5 volts so that the pixels will react to it. The second is to drop the power supply voltage down to 5 volts so that the maths is in my favour. Ongoing……
Storing Json Configuration Information in devices
/I’m a big fan of Json. It is a great way of expressing values in a meaningful way. I’m going to use it to store settings information in our Air Quality sensors. This will make it easy to understand, and extensible. It turns out that it is also very easy to do. I started with an online json editor at https://jsoneditoronline.org/ That helped me come up with this:
{
"ver":1,
"wifi": [
{"ssid":"ssid", "password":"pass"},
{"ssid":"", "password":""},
{"ssid":"", "password":""},
{"ssid":"", "password":""},
{"ssid":"", "password":""}
],
"mqtt":{
"mqttID":"robert01",
"mqttHost":"mqtt.connectedhumber.org",
"mqttUser":"connectedHumber",
"mqttPassword":"pass",
"mqttPublish":"airquality/data",
"mqttSubscribe":"airquality/commands",
"mqttIntervalSecs":60,
"mqttRetrySecs":20
},
"node":{
"nodeID":"sensor01",
"noOfPixels":12,
"pixelColour":{"r":0,"g":255,"b":0},
"airqSensorType":1,
"airQLowLimit":1,
"airqLowWarnLimit":2,
"airqMidWarnLimit":3,
"airqHighWarnLimit":4,
"airQHighAlertLimit":5
}
}
The json design provides all the information that a sensor needs, including the WiFi settings for 5 different networks. MQTT connection settings and the limits for my warning displays on the coloured pixel.
Next, I needed the C++ to convert the Json into settings that my code inside the device can use to load and store the values when the device runs. It turns out that the Arduino json library has an awesome web page where you can just paste your json and out drops C++ to read and write the values.
I just went to https://arduinojson.org/v5/assistant/ , dropped my Json design into the pate and out came the code. I’ve got to map the settings values onto the variables I’m using in the program, but that is much easier than writing everything from scratch.
This won’t work with the very small Arduino devices because they haven’t really got enough memory to run such large libraries. However, if you’re using an esp8266 or esp32 this really is an easy way to manage internal settings. I’m going to store the json itself using the internal filestore. I’ll post how to do this in a little while.
Test your hardware before you use it
/Here’s a little pro-tip that I could have used yesterday:
Test your hardware before you solder it into your device.
I was using a brand new Wemos device that I just took out of the bag, soldered into place and then fired up. It didn’t work. Closer inspection shows that a wayward surface mount resistor has got underneath another component and as a result the board is useless.
I't’s not a huge loss, I’m only paying 2.50 for my Wemos devices at the moment, but it does mean that I have to un-solder the failed device and solder another in place, which is a bit of a pain. From now on I’m going to test my new device just hanging off a usb connector before actually fitting it. Something I used to do, but seem to have forgotten. Of course, the perfect way to do this would be to test all the devices as soon as they arrive from China, that way I might be able to send back faulty ones.
Oh, and the another thing to hold dear is:
Throw away broken devices. They are never worth keeping.
Once it had its moment of glory under my camera, the failed Wemos went straight into the bin. It looks pretty much perfect in every way, and I guess an expert in surface mount technology could do something with it, but I’m not that person, and I don’t want to confuse it with a working one.
Porchlight 2.0
/Well, Porchlight 1.0 fell down sometime last night. But no damage done. I’ve switched to a stronger type of adhesive strip and also wedged the light strip into place. I’ve also made an internal version of the lights so that I can test my displays without having to deploy them on the front of the house, which seems like a good idea to me. Now that I’m a bit happier with the power supply I’ve changed to a version of the code that turns on a lot more lights at once, for extra brightness.