Binary wrist watch guarantees being identified as a nerd

I have just finished my binary wrist watch project (well, the new revision anyway). I was surprised at how small I was able to make it compared to last time.

I chose to go with the “super-yellow” color LEDs as they fit the purple OSHpark PCB very nicely. The biggest challenge was actually making a good looking wrist band for the watch. I originally intended to use a design like this but it turned out that due to lack of enough para cord I had left, I went with a simpler design that I had done once before.

The watch in it's natural environment

The watch in it’s natural environment

Continue reading

Using the DP Bus Blaster v3c to program Lattice CPLDs

A while ago I ordered a Lattice MachXO breakout board to play around with programmable hardware and the breakout boards by Lattice are quite cheap (compared to something like the Altera and Xilinx dev kits).

DSC_0026

One day when playing with the CPLD board I accidentally shorted out two pins on the on-board FT2232 and – unfortunately – the magic smoke escaped! It was very clear that the FT2232 failed because it got very warm when plugging in the USB cable. Luckily the dev kit includes a 0.1″ header landing to connect an external JTAG probe.

Wanting to get a Dangerous Prototypes Bus Blaster JTAG programmer anyway, this was the perfect excuse.

Continue reading

Revisiting the STM32F4 tutorials

First of all: I would’ve never expected the STM32F4 tutorial pages/example code to be so popular!

In the next couple of months (it will take a little as I have to study for my A-levels which are coming up in March already!) I will revise all of my example code and will give it a face lift.

The reason I want to do this is because many bug fixes have been suggested by very helpful readers and because I know how important it is to have good documentation and commented code available when trying to learn about a new microcontroller family.
I also plan on optimizing the code more (block program execution for as short time as possible).

For the sake of simplicity I will remove the static code from the individual tutorial pages and will slowly merge my STM32F4-examples repository into my primary repository for the STM32F4, the STM32F4-workarea.

The workarea repository will become a fully featured workarea with complete Makefiles and example code for important peripherals available. Each example folder will contain a README document which gives an abstract of what the code does. The comments in the code will provide detailed information on why things are done and how they are implemented like this.

Thanks again for all of you who leave nice comments and suggest bug fixes!
Don’t be afraid of leaving me a comment, I appreciate them ;)
Elia

Binary wrist watch – take 2

A little bit more than a year ago I started a binary wrist watch project. I wasn’t really able to get it to work satisfactorily as some “ghosting” occured on the multiplexed LED matrix display (LEDs that were supposed to be off still glowed and were visible). As always the board I got manufactured had some hardware bugs and I couldn’t get the RTC to work reliably (it drifted quite significantly in just 24 hours). The last PCB was also very big and would have been awkward to wear on your wrist.
TL;DR I had put the project aside for a while and I’m working on a new version.

maize-front

Continue reading

Driving a WS2812 RGB LED with an STM32

As seen on Hackaday!

If you like blinky LEDs – especially the full color RGB ones – you might have already come across the WS2812 LEDs.
These little suckers are extremely bright and can be purchased rather cheaply from eBay, 50 or a 100 pcs at a time or strips with 60 LEDs per meter.
You can also get them as bare LEDS, as strips or even as breadboard friendly breakout boards from Adafruit (NeoPixel) and SparkFun.

These devices can be chained together to endless strings (given you can supply enough power) and therefore are perfect for making big RGB screens/matrices.

Continue reading

Reading SD cards with the STM32F4-Discovery

For my autonomous rover project I need the STM32F4 to read configuration data from SD cards and writing log data to the SD card.
For convenience the FAT16/FAT32 filesystem should be supported so I can read out the data with a PC, this is not a problem as the STM32F4 has enough oomph and RAM to handle it.

DSC_0001

So I went ahead and wrote a low level SD card interface for the STM32F4 that accesses the card via the SPI bus (NOT the STM32F4s SDIO bus).

Continue reading

Setting up an STM32F10x working area

As I want to work with the STM32F10x microcontrollers in the future I had to set up a working area to compile my code in and use the peripheral library and while I was at it decided to share it with you should you be interested in these devices too.

Setting up the working area is incredibly simple asy you only have to clone the git repository:

git clone https://github.com/Torrentula/STM32F1-workarea.git
cd STM32F1-workarea/Project/GPIO-example
make

After changing to the GPIO example project and compiling it you can load it into the microcontroller using gdb or OpenOCD, whichever you prefer.

The Project folder is where all the projects live. You can simply copy the GPIO-example folder, delete main.c and start over.

Autonomous rover for vehicle competition

I have finally pulled the trigger on the autonomous rover built from an RC car. The final goal will be to have a fully autonomously navigating rover that will be able to compete in the Sparkfun Autonomous Vehicle Competition.

The base for the whole project will be an ECX Torment 1/10th scale short circuit truck. This truck is a hobby grade entry level RC truck, has good reviews and with some help of the #tymkrs IRC channel I have decided on this vehicle.

The electronics side of the project will consist of an STM32F4-Discovery board as it’s MCU has enough power to handle the filtering algorithm, navigation etc. and it has USB on-the-go so a USB stick can be connected to it relatively easily using the HAL drivers from ChibiOS/RT, which will be the RTOS for the robot.

The sensors are going to be an MPU-6050 accelerometer/gyroscope combination and a Sparkfun Venus GPS receiver connected to a ceramic patch antenna.
In addition to that I might add ultrasonic range finders to make sure the bot doesn’t collide with any obstacles on the course or can even pass those obstacles for extra points.

Configuration data and waypoints will be stored on an SD card or USB stick so that the bot can be easily reconfigured without having to recompile the firmware.

Also a custom built receiver/MCU multiplexer will enable me to quickly take over control of the robot in case the MCU let’s the rover run off into the ditch and will hopefully save the rover from major crashes during development phase.