LED Clock with Kitchen Hot Pan Protector

When I showed my 60 NeoPixel LED clock prototype to my daughter and her girlfriend, and they both wanted to have one right away :-). Well, that clock was just a proof of concept, with lots of temporary wiring. So I decided this week-end to beautify it and to make it look nice and clean(er). There is nothing like a week-end project with adding a few more LEDs and features :-).

Adafruit Neopixel Clock with 60+24+12 LEDs

Adafruit Neopixel Clock with 60+24+12 LEDs

Continue reading

Advertisements

A Compendium: is this what you are looking for?

When I started this blog back on February 1st 2012 with a ‘hello world‘ post, I did not know where and how this well end up. WordPress.com (the host of this blog) counted 1862 views in that first month. 30 months later (time is flying by!), views they are beyond 100k every month! Thanks to you all for commenting and liking posts, which is very encouraging. And there was one suggesting made recently which I would like to address:

Compendium Page

Compendium Page

Continue reading

Zumo Robot with WiFi and GPS

It always takes longer than expected: actually 4 weeks from the first board out of the reflow oven (“First New Zumo Board out of the Reflow Oven“), until I have it working on the Pololu chassis. But now I have a mobile Robot with WiFi, GPS, Bluetooth, nRF24L01+ and all the stuff I have dreamed off 🙂

New Zumo Robot

New Zumo Robot

Continue reading

Adding the CAM8000-D Camera Module to the RIoT Board

One reason for me to buy the RIoT board was that it has a camera connector. So I had ordered the CAM8000-D module from Farnell (part number 2362812). The Farnell product page was not clear if it comes with the 30pin FPC cable, but luckily, it shipped with it:

Unpacked CAM8000-U Camera and Board

Unpacked CAM8000-U Camera and Board

Continue reading

Adding the Wi-Pi WiFi Dongle to the RIoT Android Board

The wired Ethernet connectivity works out of the box with the Freescale RIoT board :-). But to make it more ‘IoT’ capable, a WiFi connection would be a big plus. The element14 site did not tell which WiFi dongles are supported, and a thread in the element14 forum on that topic has not really provided much information. With some risks I decided to order the Wi-Pi WiFi dongle which seems to be popular in the Raspberry Pi community (thus that Wi-Pi name?). And as I anyway have a Raspy, my thinking was that if it does not work with the RIoT board, I still can use it with the Raspy 🙂

Wi-Pi WiFi with the RIoT Board

Wi-Pi WiFi with the RIoT Board

Continue reading

Flashing a new Android Image to the RIoT Board

I understand the challenges of board vendors: they produce many boards, and typically they have an early/first firmware version on it. And when that board gets shipped to customers, that firmware typically is old and outdated :-(. Same for the RIoT board I have received: I was desperately trying some advanced features, only to realize that the firmware on the board is an older one from this year. So time to update the Android on that board.

Freescale RIoT Board

Freescale RIoT Board

Continue reading

Exclude Source Files from Build in Eclipse

Sometimes I have source files in my project which I do not want to get compiled (or excluded from build). Because as I’m using the ‘managed make’, all source files matching certain extensions (like *.c) are automatically included into the build.

To exclude a file from build, I right-click on it to get to the properties. There I can select a check box to have it excluded from the build:

File Excluded from Build

File Excluded from Build

Continue reading

First Steps with the RIoT Board and Android

At the university we have several projects with internet connectivity running. Yes, there is a hype around IoT, and in my view many false perceptions around this what it could or should be. Anyway, for these projects in many cases the Raspberry Pi boards are used, and I use a model B board of the Raspy too. I’m very happy with the Raspy, but I wanted to explore different options, so I ordered a RIoT board two weeks ago. When I looked at it the first time, I was thinking that this board could be a better (although larger) board than the Raspberry Pi one: more USB, more GPIO, micro-SD card, more processing power:

RIoT Board

RIoT Board

Well, then this week the new Raspberry Pi B+ came out: more USB, more GPIO, but same processing power as the standard B model.

Continue reading

Adafruit NeoPixel Clock with 60 LEDs

After the problems with level shifters (see “First Adafruit NeoPixel Blinks with the FRDM Board“) I received the ordered 74HCT245N. Put it on a bread board, wired it up, … only to find out that the device gets very hot… turned off power, and realized that had the device put in with a wrong orientation 😦 oh darn! That’s why I always order things like that in quantities of 3 or more :-). Corrected the mistake, and things are running (or blinking) again 🙂

74HCT245 Wiring for WS2812

74HCT245 Wiring for WS2812

Continue reading

Preserving Memory Ranges with Eclipse and P&E GDB Server

For my boot loaders I need the functionality that I can keep memory ranges from being erased while downloading the rest of the application. P&E provides a GDB server which interfaces with their probes (P&E Universal Multilinks, Tracelinks, …) and as well with the OpenSDA present on many of the Freescale evaluation boards. In CodeWarrior there is an option for ‘Advanced Programming Options’ which allows to preserve memory of the microcontroller FLASH (see “Programming part of flash“). However, that option or button is not present in the Eclipse version of the P&E GDB server (e.g. in Kinetis Design Studio). So how can I preserve some areas of FLASH in Eclipse with GDB?

Preservation of Non-Volatile Memory in CodeWarrior

Preservation of Non-Volatile Memory in CodeWarrior

Continue reading

First Adafruit NeoPixel Blinks with the FRDM Board

LEDs are getting smarter these days. An amazing example are the WS2812(B) or ‘NeoPixels’ from Adafruit: RGB LEDs with a built-in constant current controller and shift register! With a single wire data wire hundreds of RGB LEDs can be controlled. Exactly what I need for a project I had in mind for a very long time. So I ordered a bunch of different LEDs from Adafruit to experiment. Exactly the right thing on dark and rainy week-end. And the result is, well: bright and colorful 🙂

Adafruit NeoPixel LED Ring

Adafruit NeoPixel LED Ring

Continue reading

Listing Code and Data Size for each Source File with GNU and Eclipse

I have used the ‘classic’ CodeWarrior IDE for years, before I moved over to Eclipse some years ago. And as with any IDE or tool switch, things are different in the ‘new world’. In summary, I don’t want to go back anyway, and Eclipse is my development tool of choice now. But from time to time I get challenged about something like “hey, this was possible in the previous tool, so how can I do the same in Eclipse?”. As a fan of Eclipse, this then gets my attention as I feel that Eclipse can do it, and it can do it better. 😉

So what about this one: In CodeWarrior the project view lists code and data size for each source file:

Code And Data Size in CodeWarrior

Code And Data Size in CodeWarrior

Continue reading

Multi-Drive Support with FatFS

I admit: I’m sometimes a lazy person. In my projects, I only needed one ‘disk drive’ with the FatFS Processor Expert component: either a SD card or a USB MSD drive. But a reader of this blog wanted to use FatFS with multiple drives: using it with an SD card and a USB MSD drive. And actually FatFS does support this, I just had no need for it, thus I did not add anything special for it. But that reader let me think that I better add Multi-Drive support. Even if I do not need it now, that could be very handy in the future 🙂

FatFS Drive System (Source http://elm-chan.org/fsw/ff/en/appnote.html)

FatFS Drive System (Source http://elm-chan.org/fsw/ff/en/appnote.html)

Continue reading

UART printf() for the FRDM-K64F Board and Kinetis Design Studio

I had great plans for this Saturday: to work on really cool project. But as so many times, things turned out to be different. Maybe you have read my recent posts about printf()? A colleague wanted to use that article to the same thing with the Kinetis Design Studio on the FRDM-K64F board. I used the FRDM-KL25Z board, so I expected this to work out of the box for him too. Well, turned out that I was wrong about this, and my Saturday was used for debugging and googling about a printf() problem 😦

While things work as expected for the FRDM-KL25Z (ARM Cortex-M0+) and using the standard GNU GCC ARM Embedded from the launchpad, the application traps on the K64F (ARM Cortex-M4F) in initialise_monitor_handles() with KDS:

Trap in initialize_monitor_handles()

Trap in initialize_monitor_handles()

Continue reading

Girls for Science!

Working in an engineering domain of electrical engineering and computer science, female engineers are clearly the minority, at least in my country. For example the ETH Zurich has less than 30% female students. The US National Science Foundation had published articles on that subject: Interestingly, 70% of young girls are interested in math and science, but they lose that interest afterwards.

Verizon Commercial 2014 (Source: Youtube)

Verizon Commercial 2014 (Source: Youtube)

Continue reading

Switching ARM GNU Tool Chain and Libraries in Kinetis Design Studio

The Freescale Kinetis Design Studio (KDS) V1.0.1 beta is using a different GNU ARM toolchain than the ARM Inc. supported one on launchpad (GCC ARM Embedded). Additionally, KDS is using newlib 1.19 and newlib-nano 1.0, while there just has been a new release of the GCC ARM Embedded a month ago with the 4.8.4 update 2 release in June this year. So how to upgrade KDS to the latest and greatest GCC ARM Embedded?

Continue reading

printf() and scanf() with GNU ARM Libraries

In “Semihosting with Kinetis Design Studio” I’m using the debugger with semihosting to output text with printf(). But how to use a physical serial connection instead?

printf() and scanf() in action

printf() and scanf() in action

This post is about how to enable and use printf() and scanf() with GNU ARM libraries. I show it both for the Freescale Kinetis Design Studio (KDS) and for stock Eclipse Kepler with the GNU GCC ARM Embedded (launchpad) toolchain and libraries. The principles are the same, just the details are different ;-).

Continue reading