Free ARM Development Board From a Used-up Temperature Logger
by arduinocelentano in Circuits > Reuse
2197 Views, 4 Favorites, 0 Comments
Free ARM Development Board From a Used-up Temperature Logger
These small devices are used to track the temperature of sensitive materials (like medicine, food etc.) during a transportation. They are usually single-use devises and considered to be e-waste as soon as a cargo container is delivered. Yes, imagine thousands of trucks all around the world delivering thousands of boxes with implanted little pieces of hardware destined to become a heap of e-waste just after few days of operating. I disassembled several samples and found out that some of them might be reprogrammed and repurposed. When I mention free development board, I mean that you might be able to collect some used-up temperature loggers from transport or medical companies that consume them. It depends on their recycling policy. Alternatively, you could occasionally buy some for a bargain price.
In average, what you get is a well-assembled power-optimized board with a genuine 32-bit Cortex M3 or M4 microcontroller, RTC, temperature sensor, a couple of buttons and LEDs, LCD screen and USB support. On some boards MCU’s GPIO pins are accessible, so it might be possible to extend their capabilities.
Believe it or not, but we are going to turn a piece of electronic waste into a nearly equivalent to $12 worth development board. So stay tuned!
The possible use cases I see are Ecology monitoring, wearables, portable sensors for open science enthusiasts, cheap dev-boards for education etc.
Supplies
- temperature logger (it will be described further which models are preferred);
- programmer (if your board has STM32 MCU, you may use a cheap ST-Link USB dongle);
- multimeter with continuity mode;
- soldering iron, solder, wires, pin headers.
Discovering Your Board
First you should disassemble your logger and check out the model of MCU. Two out of four boards I examined had STM32L152 low-power MCU, one had Atsam4S16b MCU and one had Atsam4S4b MCU. Atsams are more powerful, but official debuggers are expensive, so I shelved those boards for further experiments.
If you know about some affordable way of programming Atsam MCUs, please share your ideas in the comments.
If you are lucky enough and have a board with STM32 MCU, it might be possible to use a cheap ST-Link dongle to program it. It’s what I’m going to do.
On some boards you might find other usable items, like flash and EEPROM memory chips. Please check out the attached pictures.
Detecting the Board’s Layout
Do it only when the board is powered off!
Remove the battery even if you think it is worn-out.
I decided to start with Q-tag logger because it had thru-hole pads for standard pin headers, and I assumed they must had been designed for debugging purpose. To detect which is which, you’ll need a multimeter set to continuity mode and a datasheet for your MCU. This one is for STM32L152. Touch gently MCU's pin and a pad on the PCB with your probes to detect whether they are connected. At least you’ll need to detect VCC3.3V, GND, SWDIO and SWDCLK pads to be able to program the microcontroller.
I have attached the pictures with my layouts, but I don’t guarantee that your board would have the same design. So I encourage you to test it yourself.
Soldering
If you have a Q-tag board with thru-hole pads, you could just use standard headers. If you have surface-mount pads, like on Temptale boards, use thin wires.
Testing Connection
Connect 3.3V, GND, SWDIO and SWDCLK pins to your programmer. For the first connection test I suggest that you use an official ST-LINK utility. Connect your programmer to USB port and press “Connect to the target” button. If everything is ok, you should be able to see data from your microcontroller.
What’s Next?
When you are sure that everything works, you may install STM32CubeIDE or configure an opensource development environment. Now you have an affordable development board, and it’s up to you to decide how to use it. Maybe it might be possible to port Arduino to it and implement a USB bootloader or build some customized HID device.
Your ideas and suggestions are welcome!