First update of the year

My dear readers, it already is the end of January; so it seems the perfect time to send an update. I present you with a detailed account of my tribulations, and a summary of achievements.

I've worked on a few projects, and so there is a lot to say, so hopefully you will find something interesting in some of what I do.

M-Bot

If you haven't heard of my Mushroom planting robot yet, let me give you a succinct introduction.

It's a robot that takes a piece of lumber, drills holes, and fills them back up with specially inoculated dowels that "seed" the mushroom (mycelium) into the lumber. The main goal of this project is to grasp the intricacies of robotics and mechanics, it also is something that can be showcased.

First bit of trivia, I've decided to name the robot after a character of the excellent series Skyward from Brandon Sanderson. It's named after M-Bot, it is a spaceship that looks for mushrooms, and it feels appropriate given how complicated it sometimes is to make progress on it.

Really I'm building a CNC machine, that is a Computer Numerically Controlled machine. Simply put, you give commands to the machine to move in a certain way, i.e. : straight 10mm to the right. It's called G-Code and resemble this G00 X10 Y0 Z0, G00 is a command to move to a certain 3D point in space, X10 is 10mm on the X axis, and 0mm on the Y and Z axis from the origin, and it follows those instructions. There are many CNC machines, many of those are router, but it can be anything that moves on 3 axes (this is a generalisation). In my case, the X axis rotates the piece of lumber, Y which moves the tool up and down, and Z that pushes the tool head to the lumber.

Axis of M-Bot as described

And so, what is the status on it ? I've been scraping many parts which were too weak or badly made, or with bad tolerance. Though sometimes there were some successes.

At this stage, the axes are almost done, and need to be tested. I have just started on the electronics, I initially thought to write all the software. I have since revised my opinion and decided to use/hack CNC software for M-Bot. One of the simplest CNC control software that exists for that purpose, made to be simple and straightforward, is called GRBL. It fits on an Arduino and controls the movements of the stepper through stepper drivers, I will use another microcontroller to control the rest of the moving pieces and talk to the Arduino.

At the same time I am working on the tooling head that is used to change between the drill and the dowel pusher. It's very much the most complex piece of the robot, and quite a headache to make, here is a picture of the assembly.

Tooling head showing the plate, servo motor, and the structure holding the tool head to the Z axis

My goal is to have M-Bot working mid-august for the mid summer festival, where quite a few folks in my village intend to show their own equipment such as old grain harvesting machines out of wood, belts and pulleys; it should be quite fun to see old and new machines working. I am hopeful that I'll have a working prototype by then, touching wood ...

Foxears

That's my "bird listening device". I want to listen to nature with microphones, and use Machine Learning to recognize species of Birds (and other animals) and tag their location. That project is quite the IOT project, dozens of devices listening, machine learning, power management, electronics, data analysis.

I've written a design document highlighting the goals, feasibility, risks, architecture, quite the detailed and boring document you should avoid reading. The applications are quite obvious in my mind, knowing where animals are in an area can be useful for tourism, construction projects, and nature protection organisations. Data is useful, even if I do not know exactly at this stage how and why, I'm sure gathering data and developing an infrastructure to gather data from the field is useful in the long term.

My current main goal is to : Listen to birds within a 1km2 for 3 months in a row, and report which birds have been heard on a map.

This requires developing some electronics. Mainly a small board with a uC (micro-controller), with a microphone powered by a battery and a solar panel. But also a platform in the wild to process the sounds detected. Radio communication that will be established through WiFi LR, a proprietary protocol used by espressif, able to transmit up to 250m (from my own tests).

During the next months, I want to continue testing for feasibility, I've ordered a few different microphones in order to test their interfaces and their efficacy. I'd like to make a board using a TPS4056, for battery protection, an 18650 LiPo cell, a solar panel and an ESP32 module. The first thing I need to make is the detection software, as it will probably be complicated, and will let me decide if it is feasible or not. Doing fft on small SOCs with a few kB of RAM, and pulling the data quickly enough from the DMA... Well it needs to be efficient.

Solarclock

This is a tiny project I started to learn programming STM32 microcontrollers beyond the use of a Nucleo Board. It's a simple clock that creates a slow "sunrise" by powering a LED strip with a PWM signal in the morning, so I can wake up in the winter. The breadboard prototype works well enough, the interface is quite terrible, 2 buttons and 10 LEDs showing the time in base 2.

solarclock breadboard prototype

I have made a PCB with a cheap STM32. It has LED in a 7 segment pattern to show the time, it uses shift register to shift and hold the segments on. Funny problem I had not realised initially, is the power limitation of the shift register, it's limited to 70ma input current. LEDs can draw up to 20ma, though they are blindingly bright with that current.

solarclock breadboard prototype

I should receive the PCB prototype by the end of the month. Then I'll look at the mistakes I've made. I've made some compromises due to the size of the board I wanted to stick to, 5x5cm. I would like to add a RTC (Real Time Clock) with a coin cell in the future to keep the time when the device is unplugged. I thought however to keep the system simple to start with, so I can start debugging the issues, then later on I can make a better design if I wish to. My main goal being to learn to program STM32 and have a flashy project to show, I'm not sure I'll go to that extent yet.

Other projects

I have other projects I've been working on, from plastic moulding, 3D printing, electronics. I'll likely talk of those when I either have failed, or succeeded. It is sometimes tough investing hours and money in a project and only have a few non working prototypes to show.

Personal update

As I am not too fond of writing personal things in this newsletter, I'll keep this short. I am now freelancing, and work part time in a start-up in Munich where I develop PCB, firmware, make CAD designs, mis-read specifications, and generally have a great time. It's called Electric Flytrain. I learn a lot of things, and it is great to be around these people.

The rest of the time I'm working on my project, and improving my workshop.

Hopefully you've enjoyed reading some news from me, I wish you all a great day, keep hacking !