Brushless Motor Driver with CAN Bus
A custom motor driver for small gimabl motors. This post is partly sponsored by PCBWay, who manufactured and assembled the PCBs for this project.
Engineering blog for personal projects
A custom motor driver for small gimabl motors. This post is partly sponsored by PCBWay, who manufactured and assembled the PCBs for this project.
I am using STM32 microcontrollers more and more for work and personal project, and couldn’t find an off-the-shelf development board that satisfied the following requirements:
I needed a compact, easy to use, low-ish cost FPV ground station for use with drones/rovers/boats that provided a low-latency video link, two-way telemetry, and RC control with reasonable range. For professional work with less budget constraints, the Herelink is my go-to, but at £900 for the controller and Air Unit (without camera) it’s not always a sensible option for personal projects. Instead, I built this lower cost Raspberry Pi based ground station to be compatible with some of the more open digital FPV transmission systems.
The Standalone Lidar Acquisition Box (SLAB) is a test unit for experimenting with the Livox Mid-70 Lidar. On top of the Lidar itself, an Intel NUC computer, an OAK-D Lite camera, power distribution, and panel mount connectors are included, all housed within an enclosure made from 1515 extrusion and laser cut panels.
The following two videos demonstrate a small but powerful rover that I am building, using four brushless DC hub motors. The intention is to create an unmanned ground vehicle which is able to carry a wide range of payloads and autonomously drive to a destination to deliver items, survey an area, or launch other systems such as a UAV.
The Unitree A1 is a quadruped robot dog that includes a range of onboard sensors and computers, as well as a series of external interfaces. It costs just over £10,000, with a max payload of 5kg and a top continous speed of 3.3m/s. Although the A1’s hardware is great, the documentation is a bit lacking, especially for people who want to start using the robot to create maps or perform autonomous missions.
I have always been interested in thermal cameras, but most which have any kind of usable resolution cost many hundreds of pounds and use closed hardware and software. I recently found out about the MLX90640 thermal sensor array, which is available as a breakout for around £50, like this one from Pimoroni. Although they are not exactly cheap and the resolution is still low (32x24), it seems like a relatively good option at this price, with a claimed temperature range of -40°C to 300°C, accurate to 1°C.
I wanted to design and build my own 3D printer which would let me test new components, and research 3D printer related topics more easily than using a commercial off-the-shelf 3D printer. To do this, I built a CoreXY style 3D printer from 3030 aluminium extrusion, and linear rails for each axis. See below for some initial photos of the working machine. I am in the final stages of printing non-mechanical parts such as mounts for a screen and control buttons, and cable tracks for the loose wires.
This post details some tests I have done using Field Oriented Control (FOC) of BLDC motors.
With the release of the Pi HQ Camera module, it is now possible to take much higher quality photos using a Raspberry Pi. Examples of basic mounts exist to hold the HQ camera and Pi together, but I have yet to see one that contains both in a complete closed housing with a battery and screen, mimicking a ‘conventional’ camera that can be taken around and used easily.
In 1985 Canon produced its first single-unit video camcorder, the VM-E1. Whilst browsing Facebook Marketplace I saw one for sale for around £10 broken. Initially, I was mostly interested in it only for the included hard-case, but I have also always enjoyed taking apart old electronics equipment so I thought it was worth buying.
Large format cameras are ones which are designed to photograph a much larger image than ‘standard’ cameras. The majority of large format cameras are similar to that shown below, which takes a 4x5 (inch) photo using photographic film. The main reason to use a large format camera is to get a higher resolution than standard sized formats. As high resolution digital photography using smaller sensors has become more popular, large format film cameras have fallen in popularity.
Whilst browsing Facebook marketplace I saw a listing for a kids ride-on called a ‘Dareway’ that is clearly supposed to look like a Segway. For £15 I was certainly curious, but knew it must be too good to be true. I did some Googling and couldn’t seem to find much information about how it worked or what components it used, but from the marketing videos it seemed as if there was no fancy balancing or control system involved and it was purely just a stand-up ride-able thing for kids with hidden caster wheels below the surface. At £200 new it definitely wasn’t going to be anything too special, but I thought it might be a good platform for a high payload rover, so I bought it.
This post shows how generative design and modal analysis within Fusion 360 can be used to help design and develop a 3D printable drone body. For more specifics on Generative Design in Fusion 360, see my previous introduction post.
This post looks at my initial testing of Fusion 360’s generative design process. Generative design is an iterative design process that uses artificial intelligence to generate the part geometry, based on a series of input parameters, such as the desired material and manufacturing process - this differs to topology optimisation, which essentially just cuts away regions of the part where the stress is low.
The aim of this project is to create a mobile computer system inside a Pelican Case, based on the Nvidia Jetson Nano. With further development this device could be used as an easily transportable UAV ground station. The main inspiration for this project was Back7’s Off-Grid Cyberdeck.
This post gives a brief overview of a method for using a flatbed scanner as a camera.
In September 2019 I lead a team which took part in the SciRoc Autonomous Drone Competition. The challenge was to develop a drone which could deliver a small first aid kit autonomously, whilst avoiding obstacles along the way, without the use of GPS.
After seeing this post about an Arduino based robot that used stepper motors and mostly 3D printed mecanum wheels I decided I wanted to try something similar with some of the components I had laying around. My old 3D printer (Anet A8) had recently broken which left me with not only a set of NEMA17 stepper motors, but also an Arduino compatible control board based on the ATMEGA1284P 8-bit microcontroller, with built-in stepper drivers.
This post details a method of using a Playstation 4 controller as an input method to control a drone running Betaflight firmware (or similar). Essentially it uses an on-board companion computer such as a Raspberry Pi to connect to the controller, convert the signals and send them to the flight controller using the MultiWii Serial Protocol. Although a Playstation 4 controller is used here, the method should allow any standard game controller to be used in the same way.
As part of a rocket project during my MEng Aerospace Engineering course (which won the UKSEDS National Rocketry Championship), I developed a tool to predict the flight path of a high altitude balloon throughout its ascent up to burst, followed by the descent of a payload on a parachute.