Upgrading to a Pi 4 with SSD

Mike has decided to upgrade his InfluxDb and Grafana server from the Pi 3B+ to a new Pi 4 with 4Gb of RAM. To speed things up even further, he purchased an M2 NVMe SSD card to boot the OS from and make the speedy Pi 4 even faster.

WD Blue SN500 M2 SSD

The SSD is a WD Blue SN500 M2 NVMe SSD which has a 250Gb capacity. The drive is contained inside a USB 3 enclosure. The Pi 4 was flashed with a brand new copy of Raspbian Buster and then the latest versions of InfluxDb and Grafana were installed

Mike used the instructions from on the ‘Toms Hardware’ website which can be found HERE.

The SSD inside the USB 3.0 enclosure

The Pi 4 with the SSD is now considerably faster than the old Pi 3. Grafana dashboards load faster and in particular, choosing data ranges in Grafana displays the data noticeably quicker than previously. The extra 3Gb’s of Ram should also ensure that the Pi does not start grinding to a halt as the database gets larger.

To keep the Pi 4 cool it is being moved soon to a new Pimoroni PiBo case with the fan shim. This will then be stuck to the back of a monitor in portrait format to display the Grafana dashboards.

4Gb Pi 4 with 250Gb SSD in a USB 3.0 enclosure

If you want a much faster Pi with plenty of storage space, an external M2 SSD is recommended with a Pi 4.

ESP8266 Sensor Node

ESP8266 temperature & humidity sensor node

Mike has recently been adding some more sensors to his sensor network around the house. To add to the Weather Station sensors that are out in the garden, plus the Environmental Monitoring Station sensors and CO2 sensor node, a BME280 temperature and humidity sensor node has been added to the network.

Data from this sensor node is being transmitted back to Mike’s InfluxDB database on a Raspberry Pi. The new sensor node is currently in the bathroom with similar nodes being added in future and dotted around the house.

This particular sensor node is in a ‘dead bug’ style with all of the components soldered directly to each other, rather than using a breadboard or PCB. For such a simple circuit this is ideal and makes the whole thing compact.

Voltage divider resistor to monitor battery voltage

A 220K ohm resistor was soldered between the 5v input pin and analog pin A0 to allow for the battery voltage to be monitored. The node takes temperature, humidity and voltage readings every 20 minutes, transmits this to the InfluxDB database and then goes to sleep.

The BME280 sensor

All of the data, once stored on the Raspberry Pi is displayed sing Grafana’s beautiful dashboard graphs and gauges as below.

Grafana dashboard

The code for this project can be found on Mike’s Github HERE.

Making an Arduino based Simon Game

So we decided at |Medway Makers to do a little collaborative project and to do a workshop on building and coding a ‘Simon’ game.

This was mainly born out of a complaint from Tom that he had bought a mini Simon Game and that it was not the same game he remembered as a kid. So, we decided let’s build our own.

Arduino based Simon

We used an Arduino Nano, 4 large buttons with clear caps and 4 LEDs, plus piezo buzzer for the tunes. The circuit is really simple with pull down resistors on each button and current limiting resistors on each LED.

The code creates a random note selected from 4 possible notes and adds it to an array. The note is then played and the corresponding LED is lit. The player then has to press the appropriate button to match the note. If he succeeds, another random note is chosen, added to the array and the tune played so far. This is repeated for as long as the player is able to remember the sequence. The speed of the tune being played back is also increased slightly in each round until eventually it will become impossible

The code plus the circuit for this project can be found on Mike’s Github HERE.

Check out this video for the game in action.

Meetup and Neopixel Workshop – Sunday 28th July

Our next meetup is Sunday 28th July. I shall be running a small workshop on how to use Neopixels and how to write code to control them using the Arduino or Raspberry Pi.

We are a group of creative technologists that meet every 2-3 weeks on a Sunday between 11am and 5pm for a general social and making session. Everyone is welcome to bring something down and work on it and share and get involved with members projects or to simply see what we are up to. There is no fee to join or attend any session.

Medway Makers is a place for creative people to get together to make things, learn new skills, make new friends, socialise, talk about ideas, watch people build things and generally be creative.

We have workshops in building cool things with Arduino and Raspberry Pi, learn about electronics, how to code for beginners, writing computer games for an Arduboy or other devices, designing in 3D CAD programs, 3D Printing, how to use a Raspberry Pi and so on. We have also done woodworking, making terrariums, painting and other creative activities.

Complete beginners welcome. No prior knowledge, skills or equipment is needed. Just bring yourself and your curious mind. We can provide laptops and equipment if you don’t have your own.

The best thing about all of this : IT’S FREE !!!

Medway Makers does not and shall not discriminate on the basis of race, color, religion (creed), gender, gender expression, age, national origin (ancestry), disability, marital status, sexual orientation, or military status, in any of its activities or posts. We are committed to providing an inclusive and welcoming environment for all our members and expect all members to do the same. Any person found to be acting in a discriminatory manner will be ejected from the group.

Note that meetings are held in either the Medway area or in Gravesend/Chalk area. We do not have a dedicated space (yet) and so are meeting at members houses until we do.

Beautiful Custom Wooden Knife Handle Build

Beautiful custom wooden knife handle by Tom Sparrow

In a departure from our usual electronics based builds, Tom Sparrow has been experimenting with making some beautiful wooden handles for gardening knives. Tom says…..


I started by drawing some designs on paper first, then making a model of the knife out of wood as I wanted to make sure it was comfortable for me before starting the real thing. A bit of filing was needed here and there before feeling nice in my hand.

Knife designs on paper

I have been away from soldering and back to primitive making by making a knife for gardening and odd jobs.

Making a jig for the handle

I bought a large knife blank, then drew the shape of my design onto the steel. I then cut it slightly oversized with an angle grinder and finished the shape with a course file.

Transfer the design to the steel blank

Onto the handle! There are some really pretty materials for knife handles, as this was the first attempt I opted for olive wood, which was easy to use and has a nice distinctive grain.

Shaping and sanding

It was just a case of putting it all together now and making it look tidier, so I cut 2 pieces of the wood for the handle and glued them on with 2 part epoxy.

Beautiful custom knife build by Tom Sparrow

After 30 hours drying time the excess wood just had to be sanded to the shape of the knife tang, then the long process of sanding the wood and blade with finer and finer sandpaper and finally finishing the wood off with linseed oil.

A work of art

In the future, I would like to try to make a knife from scratch and heat treat it myself, and maybe try something a bit more interesting for the handle.

A custom holder to go with the knife

Giant RGB LED Display + ESP8266

Giant RGB LED display

I’ve been working on a giant RGB LED Display recently. The video above shows you some test animations running through the display.

Currently the display is 25 x 17 in size and will be expanded to be 25 x 25 LEDs in total.

The display is made up of WS2812 Neopixel strips powered by a 20A 5v PSU. Animations are generated by Jinx! LED control software and then sent over WiFi using the tmp2.net protocol to an ESP8266 connected to the RGB strips.

The LEDs will have a grid overlaid on top of them to isolate each LED and finally a thin white acrylic layer will go on top to diffuse them. Keep an eye on this project for further updates.

Environmental Monitoring Station + ESP32 + Raspberry Pi + InfluxDB + Grafana

So, over the last few months I have been curious as to the levels of pollution during my commute to work. I have to drive from the countryside of Kent into the Isle of Dogs, London, via the Blackwall Tunnel and at part of that journey I can literally taste the fumes from the other cars. I thought it would be interesting to try and see what the levels of particulates are plus some other air pollutants and so set of on a journey to build a sensor station with some relevant sensors for this task.

After speaking to Oly at Maidstone Hackspace, who had built something similar, I decided on the SPS30 particulate sensor and an MH-Z19 CO₂ sensor. I also added uBlox NEO 6M GPS module so that I could obtain accurate time plus the location of the device when in mobile mode. I also added an HTU21D temperature and humidity sensor. The entire thing currently looks like the prototype below.

Environmental Monitoring Station

Bottom middle is the microcontroller. I have used an ESP32, mainly as it is an ESP based device with plenty of GPIO pins. I needed a few for the various devices plus room for additional sensors in the future.

Right of that is the uBlox NEO 6M GPS module. Currently I am only extracting time and date from it but will also be capturing longitude and latitude data so I can record where the device was whilst in mobile mode.

Above the GPS modile is a HUT21D temperature and humidity sensor.

Above the ESP32 is a small golden box. This is the MH-Z19 CO₂ sensor. Left of that is a 2.2″ TFT display showing the various bits of data from the sensors. You can see I am displaying the PM2.5 and PM10.0 values as well as the CO₂ reading, temperature and humidity.

Above the display is the SPS30 particulate sensor. This was the most expensive sensor in the setup at approx £30 each. However, it comes highly rated and has excellent reviews. Above the SPS30 is a breadboard PSU as the ESP32 does not have enough juice to power all of the devices via USB.

I will be adding an SD Card reader/writer module soon to enable me to log the data to SD Card including the location of the device when on the move. At first, all of the data I was sending up to ThingSpeak to record and display it. This was fine to start with but I soon became frustrated with the very limited graphing and display options with ThingSpeak. I wanted the ability to be able to zoom in and out of graphs, which ThingSpeak does not offer. I then came across the open-source Grafana project which allows you to display your data in beautiful ways and has the option to annotate certain parts of the graph, change what date and time range to display on the graph quickly and easily as well as zoom in and out on whatever area you want at any time.

As I had a few spare Raspberry Pi’s lying around I decided to go down the route of self-hosting my own data and graphs. So I took a Pi, installed InfluxDB as my database to store the sensor data and also Grafana to display all of the readings. All of the above was pretty easy to set-up. There are plenty of tutorials online to assist you with this.

Grafana

I have to say I am very pleased with the results so far. As you can see above the Grafana dashboard looks amazing. You have plenty of options with regard to how the data is displayed and what colours to use, etc. It has been a very interesting experience to watch the levels of CO₂ go up and down in rooms that are occupied or not, or have ventilation or not. I have to admit I am more inclined to keep windows open since seeing the CO₂ readings go above 1000ppm on occasion. It is also seeing the levels of particulates go up into what is considered unhealthy ranges just by doing things like cooking. You can also tell when people are getting out of bed, moving around the house, etc. by the particulate levels as the settled dust gets kicked up into the air again. The whole project has been a real eye opener.

I have a whole bunch of the MQ sensors and intend on adding a few onto the sensor station, particularly those relevant to car fumes so I can use the device in mobile mode and take it in the car on a daily commute.

Overall this has been a very satisfying project and a real eye opener as I was totally unaware of the levels of pollution just inside my own home. I would recommend you, the reader, to also build one of these as you will be surprised at what you find. Give me a shout if you have any questions or need some help with your own project.

Air Quality Monitoring Station

I’ve started a new project recently to build an air quality monitoring station. This really came about after me being curious as to how bad the air quality was during my daily commute into London. There are parts of that commute where I can literally taste the car fumes and so was curious exactly how bad it really was. Also, I watched a video recently about how high CO2 levels affect your cognitive performance and that got me very curious as to what the levels of CO2 were, both at home and in my work office. So, I decided to build a portable air quality monitoring station to sense and record the levels of both particulates, CO and CO2, with more sensors to be added at a later date.

So, the micro-controller I am using for this project is a NodeMCU Amica which is an ESP8266 based device. The advantage of this is a fast processor (up to 160MHz) lots of memory (4Mb) and plenty of pins broken out to add peripherals to. I am currently using a small ILI9341 based TFT colour display and have an Sensirion SPS30 particulate sensor attached to display the size and concentration of particles. I also have an MQ9 Carbon Monoxide sensor and a MH-Z19 Carbon Dioxide sensor. Both have yet to be attached.

In the image above you can see the current output on the display. Top left and right I am showing the number of particles of sizes 2.5 microns or smaller and 10 microns or smaller respectively per metre cubed. The bottom shows the concentration of these sized particles per cm cubed. I am using a NEO-6M GPS module to provide the data and time for logging purposes. I will also be using this to log the location for when the device is being used during travel or in different locations.

Prototype for the air quality monitoring station

The code currently keeps a running average of the totals per minute, per hour and per 24 hours. These will be used to display the Air Quality Index (according to Defra).

Later additions to this project will be to add the CO and CO2 sensors, to record the data onto an SD Card and to also transmit the data to somewhere it can be viewed online. I may use the Adafruit MQTT service for this. I have not decided fully yet. I may also add in further sensors at a later date to make it into a full environmental monitoring station and couple the data from this device with that being received from my external weather station.

If you are interested in seeing this device in action or would like to learn how to build your own, then pop along to a Medway Makers meetup to see it for yourself. Further updates to this project will be posted as further progress is made.

Minecraft Ore Lamp

So we started a little fun project recently to make some RGB Mood Lamps. We chose a Minecraft Ore block as the basis for the lamp itself. I found the STL files to 3D Print the block on Thingiverse. A few were printed out using black filament and several were done in matt grey. The original lamps had a holder on the base designed to fit an Arduino Micro Pro. As this is a kind of Arduino I never use I redesigned a new base that would hold a Wemos D1 Mini. The Wemos has an ESP8266 module and so gives the lamp WiFi capability to enable remote control.

Minecraft Ore Lamp using a Wemos D1 Mini

In the centre of the lamp are 5 RGB neopixels to allow any chosen colour on all 5 visible sides. The photo above shows some nice colour gradients between the sides.

After assembling the lamps I then wrote some code to make the lamps change colours, do some patterns and some modes such as ‘Police Mode’ where it flashes blue and red like a Police car.

I then added some further code to enable the lamp to be controlled from a mobile phone using the Android Blynk app. The app allows you to choose any colour you want, to turn the lamp on and off and to choose Police Mode. Further modes will be added as and when I get around to coding them.

Blynk app for the Minecraft Ore Lamp

A video of the lamp in action can be seen below.

I shall be posting up the code on my GitHub once complete.

Terrarium Fusion

We had a very interesting meetup on Sunday 27th January. For a change, we did something different and instead of electronics, for the first half of the session we built some terrariums.

Building a bottle terrarium

Tom turned up with a beautiful green recycled glass bottle he had just won on eBay as well as boxes and buckets of plants, gravel, compost, moss, mesh and other bits and bobs. Tom and his son then proceeded to build a really nice terrarium in the bottle, using some pieces of slate to landscape it with. Mike gave Tom some springtails to put inside the terrarium too as a ‘cleanup crew’ to take care of leaf litter, algae and mould.

Mike made a smaller terrarium using a clip-lock lid jar from Ikea. He also has a nice large laboratory flask that he is planning on cleaning out and making a terrarium inside. Building the terrariums (despite the cold and wet weather) made for a nice refreshing change from Arduinos, Raspberry Pis and other electronic related stuff.

For the second half of the meetup Mike ran an ‘Introduction to Fusion 360’ workshop fro about 3 hours, which the attendees found very useful. Further Fusion 360 workshops are planned for a later date.

Fusion 360 Workshop

Weather Station build

So, we have started work on a weather station to go out in our gardens. This is a collaborative project so anyone can join in at any time. To start with I have 3D Printed the small Stevenson Screen enclosure you see pictured below.

3D Printed Stevenson Screen

This housing will contain a Wemos D1 Mini Pro with external antenna. The Wemos D1 is an ESP8266 (or ESP12) based device. It is fully Arduino compatible and has wifi with external antenna.

Connected to the Wemos will be the various sensors for the weather station. To start with we have added a BMP280 which is a combined temperature, humidity and air pressure sensor. The data from this sensor is being sent over wifi to both ThingSpeak and also an app created in Blynk to show the various readings.

Blynk App

Over time we will add various other sensors, such as wind speed and wind direction. I already have a few ideas how to build these using magnets and hall effect sensors.

Also, we will add rain gauges, UV, light, plus some environmental monitoring sensors such as CO2, dust particles and so on. 

I shall blog about updates to this project as we go. It will no doubt take up to 6 months to complete.

RetroPie Arcade cabinet build

For years i’ve been wanting to own my very own arcade game cabinet, like Space Invaders, Pacman and so on. However, these things cost a small fortune and not only they take up a lot of room. Nice to have if you own a large house with plenty of spare room. Then, not so long ago I heard about the RetroPie project. The RetroPie enables you to turn a Raspberry Pi into a retro gaming machine. You can then attach a joystick or game controller and play any retro games you are able to obtain the roms for. Others take their retropie to even greater heights by building a custom built arcade cabinet for it, complete with arcade joysticks and buttons, to make it look like a genuine arcade gaming machine. 

When I heard about this I immediately decided I was going to build one. Due to size constraints I did not want to build a full sized cabinet so instead opted for a tabletop cabinet only, in other words only the top section of a standard arcade cabinet. I also wanted the controls to be for two players. At first I was going to design my own cabinet but came across this instructable for a two player bar-top cabinet so decided to use this as a base for my cabinet design. I wasn’t going to follow it rigidly but it was a good starting point. 

First I had to decide on a display, I decided to purchase a raw display module rather than use a PC monitor. This is the cheapest way to buy a brand new display without the additional hardware that goes with it. The display I chose was 17″ which was a good size for most games and close to the screen size of a genuine arcade cabinet game. This kind of display requires a VGA adapter board to enable you to interface it with the Raspberry Pi.

Next I had to decide on buttons. I chose 6 buttons per player, plus an additional two buttons per player for 1/2 player select and start. I purchased a two player set of illuminated buttons, plus a
Xin Mo 2 Player USB Interface from Ultracabs. These come with pre-crimped wires and the USB cable.

For sound I chose a cheap Chinese stereo amp with speakers from eBay. The advert claimed it was 100W but I knew this was total nonsense. They were cheap so what the heck. Most of the games I would be playing were only 8 bit retro sound anyway so there was no need to go for a high quality sound system. 

Finally I needed some power supplies with enough current to power the Pi, display, illuminated buttons and sound system.

The cabinet was going to be made from MDF and the build started at a Medway Maker session on the 30th June. We set up the tools out in the garden, as it was a nice hot sunny day, and set about cutting and sanding the MDF. Tom Sparrow kindly loaned me a bunch of clamps and his very nice router to do some parts. It took me until 23rd July to completely finish the cabinet and start painting it. It was primed and painted black. The plan is to eventually cover it in graphics and acrylic sheeting to give it a real arcade look (plus to protect it) so the aesthetics are not that important at this stage.

The wiring spaghetti explosion underneath BEFORE the additional wires for the button lights were added.

Next came the task of fitting and wiring up all of the buttons. This didn’t take too long despite the fact it looks like an explosion in a wire factory underneath. These were hooked up to the Xi Mo interface which in turn was connected to the Pi. The display was fitted into the cabinet along with the  associated VGA interface and power supply. Finally the sound system was fitted. The Raspberry Pi 3B+ was installed along with the RetroPie image on SD Card I had previously installed. Once everything was in place the cabinet was fired up and worked perfectly first time. 

The RetroPie interface is a little clunky to use with just a joystick and buttons (its a lot easier with a keyboard) but you get used to it after a while. There are no games on the RetroPie image, you need to find these yourself. There are plenty of websites dedicatated to preserving old retro game roms and you can get them from there. I was mainly interested in the very old 80’s retro style game classics like Pacman, Galaxians, Defender, Space Invaders and so on so these were the first to be installed. 

mde

I did have a lot of trouble with the Xin Mo controller interface getting it to work with the RetroPie as a two player controller. I spent many hours on this and eventually gave up. Apparently they don’t work well on Raspberry Pi 3’s but will work OK on older hardware. The technical info for the unit says it should work, but I just could not get it to work easily. In the end I simply bought a second interface. With the two Xin Mo’s plugged into the Pi they are recognised as two separate controllers and two player games work perfectly.

mde

Overall I am very happy with the build. However, in hindsight if I had to do it again I would have designed my own cabinet. Using someone else’s design is fine if you stick to that design rigidly. But if you want to do something slightly different with it then you start to realise the shortcomings in the design. Maybe i’ll build another one day.

mde

So, the arcade cabinet is up and running and works perfectly. But, the project is not complete. The cabinet itself will be covered in retro gaming graphics and acrylic to protect those. I will also add some black acrylic on various sections to make it look more professional. Finally, I need to make the illuminated marquee to go at the top of the cabinet. I have a neat idea for this so watch this space.

If you want to see the cabinet in person or have a play of some old school retro games on it then pop along to any Medway Makers meetup. The RetroPie will always be set up ready to play when you get there. 

Website Built with WordPress.com.

Up ↑