Here's a short update on ideas for the octocopter I'm going to make. I haven't spent too much time thinking of ideas recently as I've been too busy with basic electronics instead.
Richard's Engineering Blog
A blog on Engineering Topics by a student engineer. The blog however has taken the back seat to everyday life and so hasn't been maintained. I'll hopefully get back to it once I graduate.
Sunday, July 7, 2013
General update
Well, its been a month or so since my last post. Since my last post, I've had uni exams and now two thirds through my break and thought it was about time to post an update. I've been playing round with a couple of ARM development boards and trying to get some home brew PCBs eteched.
Labels:
general
Wednesday, June 19, 2013
My Journey with the Raspberry Pi
So in an effort to clean my blog up and stop having posts that cover multiple topics which is bad for searching and finding useful information, I'm consolidation topics. This is a consolidation of previous posts on information on the Raspberry Pi.
Labels:
Raspberry Pi
Saturday, June 1, 2013
ARM Startup and Compilation and the Relevant Files on the STM32F4-Discovery
Author: Richard Ballard
Date Created: 30/05/13
Date Modified: 23/06/13
Version: 2.0
I've revised this post to make it easier to understand. The previous version was written during my university exam period so it was a tad rushed.
This tutorial is about understanding
how an ARM microcontroller starts its code and what is needed for
this to occur. I will very quickly go thorough how the basic process
and then get stuck into the key files that are needed. So to make
this tutorial too generic, I'm using the STM32F4-Discovery Board as
the target, so the file names and code will be geared towards this
but should be easily translatable to other microcontrollers.
After I've discussed the startup
process in basic form, I'll discuss the compilation process. This
includes what the linker does, how the library is connected to our
code and then what the make files does. The makefile is equivalent to
how IDEs compile everything automatically but are much more flexible.
After I'll then discuss the startup
file (startup_stm32f4xx.s)
then move onto the linker file (stm32_flash.ld),
makefile and some basics of
the peripherals library provided by ST.
The peripherals
library is a set of functions
that provide an easy to use interface to manage the registers on the
microcontroller. All ARM Cortex-M based microcontrollers should have
something similar provided by the manufacturer.
If one is not provided, it
should be very easy to create a similar library. The
files used in this document
can all be downloaded as part
of Jeremy
Herbert's STM32 Template from
https://github.com/jeremyherbert/stm32-templates/archive/master.zip.
They can also be downloaded from
ST (minus the makefile) by downloading the STM32F4-Discovery Firmware
Applications Package. The
code in Jeremy's templates are from the IO_toggle example program in
the application package.
Labels:
ARM Tutorial,
software,
STM32F4
Saturday, May 25, 2013
Core Multicopter Designs
So this post should be a very long post. I've compiled it since the last post but I've had a few days of clear thinking where a lot of ideas have come to me. Its mostly on designing of the copter I want to build but there is also a bit on electronics. From this post onwards, I'm going to try and have an introduction paragraph so that the posts are neater. I'll then add breaks so that the entire post is not on the blog home page, making it look messy.
So with the copter design in this post, I've split it up into sections, these are mechanical, electrical and a combination of both (which is actually first) plus some extras. The mechanical section is then further spit up into rotors (and related), centre console, material (carbon fibre/fibre glass), camera mount/gimbal, bearings and then finally the electrical influences of on the mechanical design of the copter.
So with the copter design in this post, I've split it up into sections, these are mechanical, electrical and a combination of both (which is actually first) plus some extras. The mechanical section is then further spit up into rotors (and related), centre console, material (carbon fibre/fibre glass), camera mount/gimbal, bearings and then finally the electrical influences of on the mechanical design of the copter.
Labels:
design,
drawings,
electronics,
Multicopter
Thursday, May 16, 2013
Multicopter Design ideas and some electronics
So I've finally finished my tutorial on how to setup Eclipse with all the tools needed to program an ARM chip. It took me ages as I kept having issues with things not working as expected. I guess, the reason for this is that, people use propitiatory software and don't use these alternatives. The reverse can also be said though, people use propitiatory software as there are quirks with the free alternative. Anyway, I'll start some coding tutorials soon, but I have uni exams in 4 weeks so may take some time. I'll try to make them a series so are easy to follow. Talking of which, I haven't found any community websites for ARM chips (like AVR freaks is for AVR) so that's a shame. I think without this community, there is not an easy pathway to learning ARM coding without doing specialised courses at university's or learning on the job.
Wednesday, May 15, 2013
OpenSource ARM Development using Eclipse and OpenOCD
Author: Richard Ballard
Date Created: 15/05/13
Date Modified: 19/06/13
Version: 1.1
This tutorial is about using open
source products to create a development environment that can be used
to program various embedded systems. I'll be focusing on ARM based
chips and in particular the STM32 flavoured cortex chips.
I'm doing this, as all the current
recommended tools are expensive (unless crippled) and so are
inaccessible for students like me. More importantly, these tools
don't operate under alternative operating systems such as Linux and
Mac OSX. The open source community has built a large range of tools
for the individual components and these support a large range of
devices but these tools are all developed separately. Some of these
don't have very good documentation while others seem overly
complicated. I will be using Eclipse with a couple of plug-ins as the
IDE, with the tools behind being arm-gcc-embedded toolchain, which is
maintained by ARM itself, and has no restrictions. OpenOCD will be
the debugger to talk, via adaptors, to the chips (which for this
tutorial will be on a development board). I was going to write this
with the aid of an Olimex ARM-USB-TINY-H JTAG adaptor and an Olimex
H103 development board but these seem to have a long lead time on
delivery. So while I'm waiting, I decided I would buy a
STM32F4-Discovery Board which incorporates an STLINK adaptor onboard.
To automate the building process I'm
going to use make rather than Eclipses internal build system.
To fully use this tutorial, I'll assume
you want to be able program ARM based systems and as such willing to
stumble your way through the steps to get to the goal. What I mean by
this, is that to install some parts and configure them, I will be
using a terminal shell. There may be GUI (graphic user interface,
such as textedit) tools for these purposes but I won't be using these
as they sometime mis-format, try to predict what you want or don't
offer the option you want.
The layout for this tutorial is I'll
first go through the tools we'll be using in part 1 and how they fit
together. In part 2, we'll download and install these on our system.
Part 3, we setup Eclipse with these tools using a sample project. By
this stage we'll have the basics all laid out. Part 4 is some option
extras we can use to enhance our development.
Labels:
ARM Tutorial,
pictures,
software,
STM32F4
Subscribe to:
Posts (Atom)