Any views expressed within media held on this service are those of the contributors, should not be taken as approved or endorsed by the University, and do not necessarily reflect the views of the University in respect of any particular issue.

Mark Naylor’s Blog

Mark Naylor’s Blog

I want to know how the Earth works…

GEODUINO SKILLS: Development Board Choice

As part of the Sounding Out the River project, we are developing a low cost seismic logger which sits on an arduino that we can use to telemeter data back to Edinburgh over the mobile network. The desire is that we can deploy operationally at reasonably large scale for monitoring in potentially hazardous environments such as during floods, debris flows or volcanic settings.

This requires that we integrate several different technologies within one system. Since power consumption is an issue, we are not going to use a microprocessor, such as on the Raspberry Pi or Pi Zero, for this work. This would have made the coding easier – but we cannot justify the extra power consumption.

Instead we are looking at various microcontrollers and associated development boards. Working with microcontrollers is a new experience for me – and whilst I am a competent programmer, the use of embedded software to program microcontrollers is new.

What I am rapidly learning is that the software and hardware choice are intimately linked. One development board will make some things really easy, but other things harder… Finding the optimal solution will therefore be a process of trial and error…

We are working with three different development boards developed by Adafruit:

  • Metro M0 Express (SAMD21 microcontroller)
  • Metro M4 Express (SAMD51 microcontroller)
  • ESP32-S2 Metro Express (ESP32-S2 microcontroller)

We hope to use the Ultimate GPS Logger shield as it gives us accurate timing, a real time clock and a micro SD card reader to store the data in one piece of hardware.

We will interact with out Seismic Analogue to Digital Converter using the SPI protocol, but all three of our boards support. I am curious about best practice for getting high accuracy of the timing so that data from different loggers can be accurately compared.

The above provides most of the functionality we need for purely logging.

However, if we are to telemeter the data using our telemetry box – we also need a solution to to mount the SD card over USB. This is a bit more of a challenging ask as it is relatively new technology. I would have liked us to use Circuit Python to program the system, but there is not currently a way to mount the SD card (as far as we are aware…) which means we need to use c to program it.

The ESP32-S2 also has a rather annoying feature – the button needed to put it in the mode for programming it is on the middle of the board is really hard to press when there is a shield on – hopefully a new iteration of the board will make this easier…

Over the next wee while, I will post a series of posts about how we solve various components of this roadmap and explore the tradeoffs we are experiencing. I am looking forward to seeing how to get each part working – I am really hoping that these solutions will not conflict with each other…

As we work through these steps, we will work out which development board will work for us before we start to optimise power consumption for that system.


Leave a reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


Report this page

To report inappropriate content on this page, please use the form below. Upon receiving your report, we will be in touch as per the Take Down Policy of the service.

Please note that personal data collected through this form is used and stored for the purposes of processing this report and communication with you.

If you are unable to report a concern about content via this form please contact the Service Owner.

Please enter an email address you wish to be contacted on. Please describe the unacceptable content in sufficient detail to allow us to locate it, and why you consider it to be unacceptable.
By submitting this report, you accept that it is accurate and that fraudulent or nuisance complaints may result in action by the University.