Tuesday, December 13, 2011

KwikStik? KwikStuk!

During a recent electronics show my attention was drawn by a strange small orange device on display at the Freescale booth. It turned out to be the Kinetis KwikStik and a very enthusiastic Freescale employee immediately showed me its features and explained that it was fully compatible with the Tower system, Freescale’s reconfigurable development platform, but it can also be used stand-alone. When I asked for a KwikStik to review, no problem, he would send me one after the show. Only five days later (including a weekend) I received the kit.

The KwikStik comes packed in a nice box and you can see that Freescale has spent some time and effort to deliver an attractive product. In the box you will find a KwikStik in its bizarre orange silicone jacket, a DVD, a USB cable and some instructions. Included also is a warranty card, the first one I get with a dev kit. If the kit is broken, you can send it back.

Looking closely at the KwikStik you may notice the logo of Pounce Consulting in several places. Looking up this company on the internet you will find an electronics outsourcing company that probably did this kit for Freescale.

The box promises “the fastest way to realize your design potential”. Now that got me interested as this seemed to be a great candidate for the MCU dev kit benchmark that I presented in a previous post.

When you open the booklet you will see two photographs of the board with arrows indicating its special features. There are many: an LCD, a microphone, a micro USB socket (two actually, the other is for the Segger J-Link connection), an audio output, a buzzer, six touch buttons, a micro SD socket, a battery, an IrDA port, a switch, extension connectors (one as a PCI-like edge connector), and, almost forgot to mention it, a Kinetis K40X256VLQ100 ARM Cortex-M4 MCU. This 100 MHz hot rod sports 512 KB Flash memory, 64 KB RAM and 4 KB EEPROM. A large range of integrated peripherals is available and since it is Cortex-M4 based, it also has an additional 32-bit integer DSP (which is completely ignored in the K40 Sub-Family Reference Manual).

On the next two pages of the booklet information is provided about the demo software preloaded on the kit and also step-by-step installation instructions. Step 1 is connecting the board to the PC to power it. Step 2 is navigating through the demo applications. Step 3: select an application, step 4 go to the Freescale web site. Strange. Nothing to install? I mean, what about the DVD? Next page of the booklet: J-Link and additional features. Last page: nothing.

Oh? OK. Well, let’s do step one: connect the board to the PC. Windows detects the board without any problems and I see the text “KWIKSTIK” scrolling from right to left, hear a beep and then see “LFT” followed by “RGT”, then “SEL.” (with dot) and finally scrolling again “SOUND RECORDER”. Pushing the touch pads is not very reliable and results in a kind of random behaviour, I don’t feel that I have any control over what is happening. So I remove the board from its silicon jacket and this makes things somewhat better. I can now navigate a bit easier, but it is still not very reliable.

The options available are Sound recorder, Remote control, USB mouse and Fretris. Trying the sound recorder I manage to record 2 seconds of data. The recording played back over headphones is barely audible and hidden by some loud interfering sound. I cannot try the remote control because I do not have a Sony TV. The USB mouse suddenly makes me understand the acronyms LFT, RGT & SEL. Why on earth didn’t they write it out? The display is large enough. Anyway, the USB mouse doesn’t work very well. Pressing LFT does random things on my PC like jumping to the left or selecting a block of text, the RGT pad opens the context menu. Actually LFT seems to do a double or triple left mouse button click; RGT does a mere single right mouse button click. Finally, Fretris is a simple Tetris game that is very hard to control as the touch pads do not work well.

The Kinetis KwikStik indicates all by itself its helloWorld score. It is even more severe than I am.

So, then, what’s on the DVD? Well, a flash animation that let’s you click some links to open documents or install software. Included on the DVD are Freescale’s MQX RTOS (free), IAR’s Embedded Workbench for ARM (30-day evaluation and a 32 KB limited kickstart edition), Green Hills’ Multi IDE and Keil’s MDK for Freescale Kinetis (32 KB limited edition). Other tools (Segger, CodeWarrior, etc.) are available on-line. Unfortunately, there are no instructions on what you should do next.

At random I pick Green Hills’ Multi IDE. Wrong choice. You have to unzip this, and then install 1 GB before getting tangled in a license request net. In the world of fastest ways to realize your design potential this is very bad and results in an immediate uninstall. Unfortunately there is no uninstall provided for this package, which makes it even worse. Let’s hope deleting the folder is enough to get rid of this stuff. Probably not, because a dongle driver was installed too.

[24 hours later: I am still waiting for an evaluation license from Green Hills.]

[Monday 19 December, a week later: I finally received a message from Green Hills about my licence request. More questions, but still no evaluation license. How intimate do you have to be with this company before they let you have a glance at their products? This sure takes the pace out of the fastest way to realize my design potential.]

Because I do not give up easily, I now try the IAR EW 32 KB kickstart edition. First, get a license by filling in a form and answering all kinds of questions. Contrary to Green Hills license delivery is immediate. Then install 2 GB of tools to discover that no examples are included for the KwikStik. I have now reached the point of saturation and give up.

After two hours of fiddling with the hardware, installing software and filling in license request forms I am still not able to flash an LED on the board. I haven’t even addressed the J-Link needed to program the board for which separate drivers have to be installed from some conveniently unspecified location. The fastest way to realize your design potential, yeah right. What a bummer. The KwikStik receives an helloWorld score of 1. You cannot get any lower than 1 because I will always give 1 to compensate for the time & effort to design, build and send me the kit.

It is really a shame to see how all the effort to design a nice and fun looking kit with an extremely powerful MCU is annihilated by a total lack of interest for the end user. Is it really that difficult to add a few lines of instructions to help the user on his way? Many hours went in the design of this board but apparently the budget was used when the DVD still had to be done.

Disclaimer
The reviewed board may be great once you get the tools set-up correctly, but being an impatient person I did not manage to get that far. I have other things to do too.

Monday, November 28, 2011

A benchmark for development and evaluation kits

The other day a colleague asked me if I was interested in reviewing the TMS570 MCU Development Kit. This is a kit for playing with the TMS570LS20216 ARM Cortex-R4F microcontroller and when I looked at the picture of the kit available on the product page on TI web site I immediately became interested. It is a big main board with a TFT display and many connectors on which a smaller board sits. The TMS570 microcontroller is designed for use in safety critical systems and as such it includes [quote TI website] dual CPUs in lockstep, CPU and Memory Built-In Self Test (BIST) logic, ECC on both the Flash and the data SRAM, parity on peripheral memories, and loop back capability on peripheral I/O. The Floating Point CPU offers 1.6 DMIPS/MHz, and it has configurations which can run up to 160 MHz providing more than 250 DMIPS. [quote end] The TMS570LS20216 has 2 MB Flash memory and 160 KB SRAM. One might be tempted to say that this is a pretty powerful MCU.

When the kit to review arrived it turned out to be not exactly what I expected, as it was just a large USB stick. The stick is so large because otherwise the MCU in its 144LQFP package wouldn’t fit on it. It came in one of those CD/DVD boxes that we know from TI and that included besides the stick a little flash light, a DVD, a USB extension cable and a flyer with installation instructions. The installation instructions are simple: insert the DVD and do a full install. So I did.


I wrote down the amount of free disk space before launching the install and the time: 9h20. More than 30 minutes and 95 (really!) mouse clicks later the installation was complete. Looking at the free disk space left over I noticed that this demo had used a whopping 7 GB! As a comparison, my Windows XP Pro folder contains 9 GB. To be totally honest, I did this installation twice, the first time I just ran it while trying to do other things. But when the number of mouse clicks and the amazing amount of pop-up windows started bugging me I decided to redo the installation and count and measure the above mentioned parameters.

Naturally I now was pressed to see the demo's, curious to discover what a USB stick with only a few LEDs and a 5 square cm MCU on it supported by 7 GB of software had to offer. Connecting the stick to my PC worked fine, it was recognized immediately, and I started the Safety Demo Software as indicated in step 3 of the installation notes. A window with six large buttons came up and I clicked on the left upper one labelled “Safety Features”. The tool now first programmed the MCU before showing a block diagram of the chip and a list of small buttons on the left that let you generate an error event in the MCU. The error is graphically illustrated in the block diagram and a little red LED is lighted on the board.


You will have little trouble to understand that I was deeply impressed by this convincing demo so I quickly went on to try the others. I clicked the Ambient Light button and a little window with a vertical bar graph showing ambient light intensity came up. A light sensor included on the stick makes this demo possible. If you keep your hand over the stick the bar drops to a few percent and when you shine the flash light on the sensor you can get it up to 100%.

Again, Wow.

So quickly on to the next demo: the Temperature Sensor. Clicking the button opens a small window showing a graph of the temperature. According to the demo the temperature was over 30 degrees Celsius, at least 7 degrees higher than the ambient temperature, but maybe it measured closely to the MCU or the PC? Anyway, this demo was as convincing as the others.

What about the LED Light Show? Again a little window pops up and this time you can start the preprogrammed light show or toggle the six blue LEDs manually. To not spoil the surprise in case you want to buy this development stick yourself I will not tell you what happened but I can assure you that I was again deeply impressed.

If I remember correctly TI was the first to introduce the concept of USB development and evaluation sticks, but where the first one featured an MSP430 MCU that you could break off after programming and then use in your own application, this USB stick seems to be a pure product of marketing. Only 22 of the 144 pins (called “test points”) are brought out to two pin headers although a CAN bus is available too. You get a compiler too, so you can write some code for the MCU but do you really need 7 GB and 95+ mouse clicks for that?

Let us now define a benchmark for MCU development / evaluation kits so we can quickly compare the ease of use and system impact of those kits: the helloWorld (hW). The helloWorld is calculated as mds/(ds*(mc+i)) where “mds” is the highest capacity hard disk available in the year of release of the dev kit (see Wikipedia, in 2011 msb = 4 TB), “ds” stands for disk space needed by the dev kit and mc means mouse clicks needed to get an LED flashing on the dev kit and finally “i” is the number of icons & short-cuts created on the desktop (8 for this kit). With such a benchmark the flash light included in the kit would get a score of infinity because it does not occupy any disk space. The mds parameter is included to introduce an element of time in the benchmark so that it would be possible to compare helloWorld benchmarks over time. You might argue that including Eclipse in a dev kit should be a separate parameter pulling the score down, but Eclipse in itself consumes enough disk space to ensure a low benchmark anyway.

The TMS570 Microcontroller Development Stick presented here scores a value of 4 TB / 7 GB x (95 mouse clicks + 8 icons) = 5.68 helloWorld [hW].

If you have any suggestions of benchmark scores for other dev and or eval (evil?) kits, please do not hesitate to send them to me so I can publish them here.

Thursday, October 27, 2011

Reverse engineering? The new Wiring S board

In the fall of 2008 I started researching Arduino for an introductory article for Elektor. In that article I wrote that Arduino can be seen as a simplification of Wiring. The Arduino environment is very much like Wiring but slightly simplified and the Arduino Diecimila, the board of choice in 2008, was much simpler than the Wiring microcontroller board that had more I/O ports available. It is difficult to prove that the huge success of Arduino is due to this simplification, but the fact is that the current estimate is that more than 300,000 Arduino boards have been sold world-wide, which is pretty impressive.

The people behind Wiring must have been a bit jealous of this success achieved by others with their work so they started simplifying too. The result is the brand new Wiring S board that is almost the same size as an Arduino Uno. The Wiring S team apparently decided that they wanted to do things slightly different than the Arduino team, so the board looks a lot like an Arduino, but it is not compatible. Where Arduino uses mostly ATmegaXX8 controllers, the Wiring S board is based on an ATmegaXX4 controller (ATmega644 on my 1.0 board). The connectors look very similar, and are positioned in a similar way, but there are 5 instead of 4 and the pin-out is different. Also the project is open hardware, but the design files are in KiCAD instead of Eagle.

Seeeduino (left) and Wiring S (right)


It is rather interesting to see how Arduino is becoming more and more complex with programmable USB interface chips, all kinds of different processors and more connectors whereas the Wiring S board is almost like an old Arduino Diecimila but with a bigger processor. The board even offers the possibility to replace the FTDI USB/serial converter chip by an FTDI cable which brings it very close to the even older Arduino Serial. The two teams seem to be working in opposite directions.

For the people who would like to have the best of both worlds, they should use Wiring because the Wiring environment is capable of handling Arduino boards, whereas the Arduino environment does not handle Wiring boards and a Wring Play Shield is available that allows you to stick Arduino shields on the Wiring S board.

The Wiring S board is simply rectangular with its extension connectors on a 0,1” grid and 4 mounting holes placed in a logical manner. I do not like the position or the shape of the reset button; it is too hard & difficult to press. The solder side of my board was not cleansed properly and this seemed to be true for the whole batch received by my distributor. Maybe this is a pre-series problem?

Retro yellow LEDs!


Will the Wiring S meet with the same success as Arduino? Hard to say, I guess not, it is probably too late now.

Friday, September 30, 2011

RS Components presents new website

If you design your own electronics circuits you have to select the best parts for your design. This can be very time consuming especially if you do not know where to look for them. For me problem parts are electromechanical parts, connectors, push-buttons, that sort of thing. What I do in those cases is look through a component distributor catalog and see if I can find something to my likes. Unfortunately these catalogs no longer reflect very well the full offering of the distributor’s products as they prefer to present them on-line.

On-line component browsing on a distributor site just is not very practical. When Digikey decided to stop distributing their paper catalog we did a little reader’s survey of which the outcome was unanimous: No!!!
If you do a search on a part you will get many useless results, but you will also miss many because the search engine didn’t find them. Typical is the table refinement option where you can tick the specifications you want. You cannot simply tick one because often the same specification is listed several times with different wording so you have to tick ‘em all. Also ticking an option will remove the parts for which this particular parameter was not specified in the first place. “Number of ways” or “polarity” can mean the same thing for a switch, but the filter only knows one of them. Voltage regulators are one example of hard to select parts. Input voltage range, output voltage range, type, etc. all parameters that can be (and are) specified in different ways making them difficult to compare.

RS Components just launched their new improved website where they put a lot of effort in improving the search engine. They told me that they now remove much more irrelevant results and they return harder to find results, but they didn’t say anything about addressing the issue of parameter homogeneity.

So is it any better now? Let’s try to pick a low-dropout voltage regulator. The RS website returns 58 results (September 30, 2011, 14:00 h CET). Filtering on “Input Voltage” only shows 19 possibilities; strange, what happened to the other 39 parts? They have no specified input voltage? I find that hard to believe for a voltage regulator.

There are three parts with an input voltage range from -1 to 40V that turn out to be three versions of the same device (UC3836/2836 from TI). There is only one device with a range of 3.5 to 36V (LTC1624 from Linear Technology) but it is not the same as the TI one although the input voltage range is inside the -1 to 40V range, so the TI part would be an option too.

The filter proposes four devices with an input voltage of 40V without a minimum value. The result is again four similar devices, again from TI, but this time the UC3834/2834. Looking up the device on the TI website I discover that TI specifies an input voltage range of 5 to 35V for this device, not 40V. So what do they specify for the UC3836 on its product page? 6 to 40V! Eh? But RS said -1 to 40V, right? Yes, but actually that is the absolute maximum range. Duh! In that case, why didn’t they use -0.3 to 36V for the LTC1624? Pears and apples, that’s what this is.

Now you may think that I spend a day or so on finding this example, but no, I didn’t. I found it while typing up this post. It was that easy, meaning that it is the same for other parts. It is still very hard to use a distributor’s website for selecting parts for a design. The new RS site does look slicker and maybe the search engine is better, but I am not sure if I will notice the difference.

BTW, did I mention that the filter button doesn’t work in Firefox? I suppose (for now) that’s just my Firefox being incorrectly set up.

Open World Forum 2011

Saturday 24 September I joined two of my colleagues at the Experiment Day of the Open World Forum in Paris. Since it took place not far from the Crazy Horse I had no difficulties in finding the venue. My colleagues had come the day before by car because they had to bring books and magazines and especially the OSPV1, our open-source auto-balancing two-wheeled vehicle that we were to present.

The OSPV1 self balancing vehicle


The Forum was held in a rather high-class venue that had been paid for by a very impressive collection of sponsors in one of those rich “quartiers” of Paris where you get more easily run over by a Ferrari then by a Peugeot. The Open World Forum is all about Open Source; here the first question people ask you about a product is what license it is released under. I tend to associate Open Source with financially impaired people (i.e. students) with beards and spectacles hacking away in poorly furnished rooms and so it seems strange to actually meet these people (who came indeed pretty close to how I always had imagined them) in such a high-end place. Free lunch & drinks for everybody, all you can eat sushi in the pressroom, a real “we don’t care about money we only care about Open Source” attitude.

The ambiance was quite arty and inspiring with many great projects being showed off. It was interesting to meet so many people working with electronics without having a formal electronics education. They simply define an objective and then see what they can do with plug ‘n’ play electronics like Arduino to achieve it. These are electronics users (or should I say consumers) that embed ready-made building blocks in their projects.

I was a bit disappointed by the number of visitors. For some reason too few interested people made it on this sunny day to avenue George V. Maybe they didn’t have the money for a metro ticket? Make sure you visit next time, it is definitely worth skipping a lunch to save some money to pay for the trip.

Friday, August 26, 2011

Everything you always wanted to know about klystrons and traveling wave tubes (but were afraid to ask)

Most of the time this blog is about embedded electronics, but if I come across something interesting that is electronic but not directly related I will talk about it here too. Therefore, this time I will write about a book with the impressive title: Klystrons, Traveling Wave Tubes, Magnetrons, Crossed-Field Amplifiers, and Gyrotrons It is written by A.S. Gilmour, Jr. of the State University of New York, Buffalo and the book is edited by Artech House. The editor presents it as: The culmination of the author’s 50 years of industry experience, this authoritative resource offers engineers a thorough understanding of the operations and major classes of microwave tubes.


This field of electronics definitely has the coolest named devices of the industry and I sure would like to use a gyro-twystron once in my life, just so that I can say I did. Controlled by an Arduino maybe? Anyway, I’ve read this book and found it, to my surprise, quite fascinating. 800 pages about electron guns, exotic materials to make cathodes with, magnetic and electric fields and incredible amounts of power, actually this book is more about physics than about electronics. What I really liked about it was the mix of well established theory and experimental physics. The author does a pretty good job, as far as I can judge, at relating the complete history of magnetrons and the like. From the initial idea to the many tweaks that took the devices to where they are now, everything is described and it all feels very hands-on and experimental.

For the people that have to really study this material the book contains a wealth of drawings, diagrams, formulas and equations with derivations. I don’t think you will be able to actually construct a working megawatt gyrotron just by reading this book, it lacks the electronics, but it definitely will get you started. If you don’t care for the math, you can skip it all. Since the book introduces many terms the reader may be unfamiliar with it includes a glossary at the end. Your knowledge of vacuum pumps is a bit rusty? Read appendix B on vacuum technology. Appendix C gets you up to speed with magnetics.

I have only one negative comment about this book: the illustration the text is talking about is almost always on the back side of the page you are reading. Since there are many drawings you keep flipping back and forth between the drawing and its description.

This book does not introduce new theory but it is bound to become a standard reference for the serious high-power RF/radar engineer who has always a klystron lying around on his desk.

Tuesday, August 16, 2011

Wireless audio over 2.4 GHz

Just before the summer my contact at Texas Instruments had the excellent idea to sent me a CC85XXDK-HEADSET development kit. This is a PurePath Wireless Headset Development Kit to evaluate the new wireless audio products from TI based on the CC85xx family of RF micro-controllers. Due to a lack of time I didn't have the opportunity to write about it earlier, but I did give it a try and was impressed.

The kit contains two identical cards, one of which is configured as a master, the other as a slave. Both contain a 2.4 GHz radio and once paired (a simple operation) you can stream high quality stereo audio from the master to the slave. This works exceptionally well according to my non audiophile ears. The cards are each powered from one 1.72 Wh rechargeable li-ion battery, so it is a totally portable system. Charging the batteries is done by hooking the boards up to a USB port. TI claims a continues operation of 22 hours for this system.

I gave it a try in my garden and managed a Line of sight (LOS) distance of some 45+ meters (then I ran out of garden). It will probably go a bit further when the master is higher up from the ground. Occasionally the receiver has drop-outs, then it suddenly goes from full quality audio to complete silence, but this happens only at greater distances or when the data path becomes obstructed. Never did I hear any garbage out of the headphones.


Included in the kit is a little CC Debugger pod (with a funny rubbery feel) that you can use to reprogram the boards. This pod lets you reprogram and configure the boards using a tool called PurePath Wireless Configurator. The purpose of this tool is a bit unclear to me as there doesn't seem to be a whole lot that you can configure, but it is probably useful when you develop your own systems.

If you need a high quality wireless audio link in your system, the CC85xx is definitely worth a look!

Thursday, August 4, 2011

Chasing tornadoes

This is my last post live from NIWeek 2011, my plane leaves in a few hours and the show is finished now anyway. Looking back I had a good show with many interesting and exciting! encounters, technical as well as human. Look, I even made a friend.


He is great because he plays soccer and he is as good at it as I am. I bet he dances like me too.

Today was the last keynote during which several impressive student projects were presented including the world-wide winning (www) project in the student project competition. This was a 3D display that you can actually build at home thanks to its extraordinary simplicity.


The keynote ended with a presentation by Tim Samaras who chases tornadoes for a living. Tim showed some very spectacular footage of tornadoes but also of lightning, because that is his second hobby. He and his team film lightning with very high-speed cameras so that you can actually see how the lightning makes its way down to earth. Wow.

With a bit of luck I will be back here in Austin, Texas next year. If so, maybe see you then or there!

Wednesday, August 3, 2011

LabVIEW, Arduino & Android

During lunch today I picked up the words LabVIEW and Arduino. Now that got me interested (or excited, as they would say here) and it turned out that a technical session about hacking Arduino with LabVIEW would take place later in the afternoon. So I attended and learned some very interesting things indeed.

First of all that it was not only about Arduino. To be totally honest, Arduino was a bit of a minor topic, the more important topics concerned interfacing to the Kinect, the Wiimote, iRobot, Neato and Android systems. Nevertheless they did do Arduino too. NI uses interns to develop all sorts of fun applications with their products. Waterloo Labs - who earned their fifteen minutes of fame about a year ago when they drove a car using an iPhone and posted a video about it on YouTube - is in it too.

So how do you interface Arduino to LabVIEW? It is pretty simple. You load Arduino with a special sketch to create an I/O server. Then in LabVIEW you install some VIs for Arduino. You should also install the NI-VISA serial port drivers if you don't have them allready. That's about it. And the great thing about this is that it is all free and open source!

Let's be clear about this, you cannot create a program in LabVIEW and then run it on the Arduino. In this setup Arduino is merely an input/output device, but a very cheap and hackable one for which many shields are available and you can use all the power of LabVIEW to control it or process the data. And if you replace the serial cable by a wireless link (Bluetooth f.i.), it is almost if Arduino is running stand alone.

This is all excellent news, because now you too can interface your project to LabVIEW as long as it has a serial port. All you have to do is port the sketch to your hardware and adapt the VI.


All this stuff and much more, like how to hack the Kinect or the Wiimote, is on LabVIEW hacker dot com

25 years of LabVIEW

The second day of NIWeek started with the second keynote presentation. Jeff Kodosky, the father of LabVIEW, opened the session during which he looked back on 25 years of LabVIEW.

Jeff K was followed by the part that I like most of the NI events: the user applications. Often a few interesting and sometimes quite spectacular real-life applications of NI equipment are presented and demonstrated. This year were on display a portable real-time optical coherence tomography (OCT) device, a structure health monitoring system that is being used for real-time bridge surveillance, the smart grid in Rajasthan, India (did you know that 400 million people in India do not have access to electricity?), a system to control the plasma position in a tokamak (we are talking nuclear fusion here), a couple of robots, an XBox Kinect interface for LabVIEW and a water display that uses water drops as pixels (see photo, can you see "NI" written in droplets?).

The company who made this told me that they have no practical use for such a display.

The keynotes closed with some philosophing about how LabVIEW may evolve during the next 25 years. According to Xilinx, their new Zync platform will play a role here in the near future.

That's all for now folks, I am going to attend a presentation about Arduino, Android & LabVIEW.

P.S. Thanks Greg, I received your text.

Tuesday, August 2, 2011

Geek power

After a long day of presentations, interviews and normal editorial work (if you think I am on holidays, you are mistaken. BTW, Greg, I need your article.) tonight was the night of National Instrument's Graphical System Design Achievement Awards. This is a yearly invitation-only event for which you are supposed to dress up, which I did, sort of. NI offers awards in eight categories for the best applications using NI products. There are, in my opinion, three interesting things about this event.

The first is the presentation with as main attraction Dave Wilson, the companies director of academic and corporate marketing who, in about one hour, manages to use as many words as I use in an average week.

The second thing is the exoticness of the project subjects. From non-invasive cancer diagnostic to bridge structure testing to quantum mechanics, the geekier the better seems to be the devise.

Finally, it is the international character of the project that amazes me. The projects are literally sent in from all over the world and no part of the world seems to be favorized.

The winner of the grand prize, an entry in NI's hall of fame, was this year the paper "FPGA-Based Feedback Control of a Single Atom Trajectory". You can find it on NI's web site.

To improve your chances to win next year make sure to use at least a Kalman filter, a couple of Hall effect sensors and PWM in your system. Dave will love it!

Graphical system design

This morning NIWeek really started with the first keynote introduced, as always, by Dr. T. himself (one of the three cofounders of NI). The keynotes are rather impressive events with an audience of several thousands. It is used to introduce the most important new products for the year to come. Demos have been very carefully prepared and are presented by the people who were actually involved in the development of the product, which I think is good.

I was a bit disappointed by today's keynote. It was less spectacular than last year and I found Dr. T's introduction not very inspired. The main theme to retain is NI's objective to use software to solve problems so that the client can profit from Moore's law. This was illustrated by some demos of very high performance instruments.


The fun part of the presentation was a variation of the game Angry Birds coded in LabVIEW. In Angry Eagles (as it is called) the player launches the bird with a real catapult instead of a virtual one.


Oh yeah, I almost forgot, LabVIEW 2011 was announced.

Monday, August 1, 2011

Getting ready for tomorrow

OK, the first day of NIWeek, or to be more precise, of pre-NIWeek just came to an end with the Kick-off Happy Hour. Before that I attended the Exclusive Show Floor Preview. This tour took the international press - except for the Chinese/Japanese who had their own group - along the major attractions of mainly NI. Since I was also present at NIWeek 2010, I was able to separate the upgrades and evolutions from the real novelties. Of course, the really spectacular demos will only start tomorrow during the keynotes of the Grand Opening.

I will talk more about interesting applications and products in the days to come when I will have more time to talk to the people presenting them. Yet I would like to mention one of the most impressive things on display: the Hermes Spacecraft. This is a project a guy started alone in his garage, now he is being helped by engineers from Intel who have too much spare time on their hands. The goal is nothing less than commercial space travel!

Check out Sensational Susan online.

USRP update: as it turns out, the USRP-2920 is not 100% identical to the USRP N210, but I did not yet have the opportunity to find out what the differences are exactly.

SDR soon playing at a university near you

Two years ago I assisted at a meeting at Elektor during which Software Defined Radio (SDR), GNU radio and its hardware platform the Universal Software Radio Peripheral (USRP) were discussed. The GNU radio people were really convincing and I liked the concept, but since then I didn't hear much of it. One of the reasons, I thought, was that the USRP (version 2 at the time) was quite an expensive platform.

During the visit of the University of Texas (UT) this morning a wireless class was presented that was based on SDR. The hardware platform was a PXI from National Instruments and the programming was done, of course, in LabVIEW. The goal of the course is to familiarise students with wireless concepts and instead of treating the subject only in a theoretical way, the UT decided to use an SDR hardware platform so that students can easily implement and try out the concepts in the real world. An excellent concept if you ask me.


Instead of keeping it a UT-only course they went a step further and developed an educational package that other schools and universities can buy from the UT. This package includes two now-where-did-I-see-you-before? USRPs (on the left in the photo). Actually, the USRP is now an NI product because NI bought Ettus Research in February 2010. I am afraid this will not really help to lower the price of the USRP.

I don't know if there is a difference between the USRP N210 that you can buy from Ettus and which looks identical to the USRP-2920 from NI, but maybe I can find that out this afternoon during the special USRP session?

In Texas everything is bigger

After having spent the sunday to get used to the what they allready call here the hottest summer ever (over 40 degrees Celsius for more than 50 days) today I will start attending NIWeek 2011. The show opens in less than one hour, but since it is just across the street I just have time to open the blog now.

My day will begin with a visit of the University of Texas (UT), the largest university of the USA as they say here in Austin with some 80,000 students. However, according to the internet, the UT is only the fifth university of the USA with just over 50,000 students. "In Texas everything is bigger" is another thing they like to say here. Apparently this holds true for claims too.


Stay tuned as there will be more to come.

Saturday, July 30, 2011

Smart phone, stupid protection

This morning (29/7) I took off from Schiphol (Amsterdam airport) for Austin, Texas to assist at the 17th NIWeek. During the flight I kept my phone switched off in a pocket of my pants. Now, when my phone is switched off the key lock function does not work because it is a function of the operating system of the phone, not a hardware feature. So, without me noticing, my phone got switched on in my pocket while I was looking out of the window (I had a window seat) and apparently I unknowingly sort of "punched" in (with my thigh or handkerchief) several wrong PIN codes which resulted in a blocked SIM card when I took my phone out again in Houston (where I had to change planes). To unblock the PIN code my phone now first wanted a Personal Unblocking Code (PUK) code, which off course I didn't know. A helpful girl in a phone shop on the airport told me that this code is often printed on the SIM card itself. So I examined my SIM card and indeed discovered a 17-digit code of which the first 8 digits turned out to be the PUK code for my SIM card. Great!

Or is it? Thanks to the missing hardware key lock feature my SIM card got blocked, but thanks to the PUK code conveniently printed on my SIM card, I can unblock it again. And if I can do this, anyone who gets hold of my phone can do this. How's that for anti-theft protection?

So, problem solved? Well... no. Entering the PUK code gave me the right to choose a new PIN code that I had to confirm by typing it again, which I did without errors. 1234 is not so difficult to get right, right? Wrong! According to my phone my new PIN code is incorrect (???) and I am back to the PUK code. I would now be stuck in an endless loop if it weren't for the cleverly built-in hang protection (they did think of that): the number of tries is limited to 8. I still have 3 left...

Tomorrow I will buy a prepaid local SIM card.

Wednesday, July 20, 2011

Vanity chips

Have you ever heard of the company Valens Semiconductor? I hadn't either, until last night.

In 2009 Valens Semiconductor together with LG, Samsung and Sony announced their intention to launch a cross-industry alliance to promote and standardize the HDBaseT technology for whole-home distribution of uncompressed HD multimedia content. A few days later Valens announced the availability of an HDBaseT-compliant chipset: the VS100, consisting of the VS100TX transmitter and the VS100RX (receiver). This chipset enables the convergence of uncompressed full HD digital video, audio, 100BaseT Ethernet, power and control through a single, standard 100m/328ft LAN cable.
(I got this from their website)

To me this sounds like an interesting chipset (although a bit out of my league) for more than one reason. One of those reasons is the printing on the chip. Why?


Well, you may not know it, but my name is Valens. Before the era of internet my family and me knew of very few other people named Valens. There was of course Richie Valens, but that is not his real name, and there were some roman emperors named Valens (I have a coin to prove it). Now that the world population is massively coming on line more and more people and companies named Valens surface.

If you are an electronics engineer and your name happens to be National, Renesas or Avago you can easily find chips with your name on it, but for most other people such an opportunity is pretty rare. And I just came across one!

I want this chipset. Not for building something with it, but to keep on my desk. I want a vanity chip(set). Of course I have contacted the company and asked for a sample. If I get hold of one of these chips I will of course post it here.

Wednesday, July 6, 2011

Control a robot with a watch

Some six months ago Texas Instruments announced the Evalbot, a development platform for their Stellaris ARM Cortex-M3 microcontrollers in the shape of a little robot. It took me a while to get hold of one, but now I have one driving happily around in my living room. It is actually a pretty neat and cleverly engineered kit that you have to assemble yourself. Most parts are made out of PCB material – the two wheels for instance are each made of three disks and a rubber ring – the rest are mainly nuts & bolts. Two little motors with gears drive the wheels and everything is powered from three AA batteries.

The Evalbot is not a gadget; it is a powerful development board with wheels. In the center off the disk-shaped board sits an LM3S9B92 ARM Cortex-M3 controller (256 KB flash, 96 KB RAM and more peripherals than you will probably ever need) assisted by a tiny 96 x 16 blue OLED display, 6 push-buttons (including the on/reset and the off buttons), an Ethernet connector, a USB host port, a USB device port, a USB debugger/programmer port (ICDI), a micro-SD card connector, a speaker, power supply, JTAG, two LEDs and probably more that I am overlooking now; and two motor drivers. Thanks to the battery holders (with batteries) on the bottom of the board the whole thing is pretty heavy and the rubber “tires” prevent sliding it off your desk when you hook the board up to a computer with a USB cable that wants to unwind the wrong way around.

A special wireless expansion port is available too on which you can plug a CC1101EM sub-1 GHz transceiver, which will get you an 868 or 915 MHz radio link. The James Bond part of this setup is a third kit from TI, the eZ430-Chronos based on the CC430F6137 sub-1 GHz RF SoC. This is a combination of a biggish but stylish black watch with a large character display and a USB access point for your PC. Once connected you can control your PC with the watch, although it takes some exercise to do it properly. But... you can also use the watch to control the Evalbot! An integrated accelerometer lets you influence the driving direction of the robot by tilting and rotating the watch. Cool huh? The watch in itself is actually a dev kit and you can reprogram it with your own application.



Programming the dev kits is done with Code Composer Studio 4, the Eclipse-based dev environment from TI. A license file is included with the Evalbot kit, but what exactly this enables is not clear to me. I did read something somewhere about code sizes & limits, but I forgot where. Anyway, all the source code for the Chronos controlled Evalbot is available, it compiles without warnings and errors and programs fine. This really is a fine (but strange) development kit.

Thursday, May 19, 2011

Intelligent simple peripherals

This week I once again wrote an interrupt service routine for a UART to do some serial communication. Actually I didn’t have to write a whole lot, because the receiver part had already been done by someone else, but the code for transmitting data under interrupt control was missing. I already had this code in another project and porting it was easy and quick, but then I started thinking.

Like me, probably thousands of programmers all over the world are doing this every day, which is a waste of time and resources. Of course we all try to reuse code as much as possible, but with micro-controllers getting more and more advanced, why don’t the silicon vendors simply implement the driver in the peripheral, in silicon? I mean, how many people do use the UART for other things than simply sending and receiving data? OK, we see more and more 16550 compatible UARTs, so drivers are easily found, but then again, why not put it in a ROM for the programmer’s convenience? All it has to do is to read data from a buffer and write data to it, all under interrupt control of course. An intelligent peripheral like that would save some code space, but most importantly, it would save lots of programmer’s time.

Such an intelligent peripheral would have a pretty simple interface: some registers to set up circular rx & tx buffers and the communication parameters, registers to read/write a block of data and some status registers to check for errors. The user only has to supply a block of RAM for the buffers. This is what most of us implement in our code anyway. For backward compatibility they should keep the traditional interface too, that way everything is possible.

Similar peripherals for other protocols could be integrated as well, like I2C or SPI.

The typical ISR for I2C is rather complicated and big, and is therefore prone to many bugs. Many software developers are struggling to get it working properly, so it would be a great service to them if the driver was already in the chip. I am not pleading for a full blown on-chip operating system, but some simple drivers that will take care of the most common tasks sure would be nice.

So you silicon vendors reading this please do give it a thought. I appreciate the integrated USB drivers, but don’t stop there. Why don’t you make things even better by adding hardcoded drivers for “simple” peripherals too?

Wednesday, May 4, 2011

FRAM - true unified memory

Somewhere in the beginning of 2007 I won in a lottery held by EPN magazine an evaluation board from Ramtron sporting their most powerful 8051 clone, the VRS51L3074, which could be programmed and debugged with a small USB piggyback board. The very special thing of the Ramtron controller was the 8 KB of non-volatile ferroelectric memory (F-RAM) it included.
Instead of putting the board in a box, I actually used it in a project. I used the F-RAM to store some parameters in. The evaluation board also had several other F-RAM chips on it, but I did not use those. Once the project finished (it was published in the January 2009 issue of Circuit Cellar) I (almost) forgot about F-RAM and never heard from Ramtron again.

This year at the Embedded World show in Nuremberg I again came across F-RAM, now spelled FRAM, at the Fujitsu stand. It turned out that they started licensing the technology from Ramtron and that they had put some of it in their MB95R family of 8-bit MCUs. Fujitsu also offers stand-alone FRAM devices up to 4 Mbit.

This week Texas Instruments announced their brand-new MSP430FR57xx family that includes up to 16 KB of FRAM, licensed at the same source. The people at TI are very excited about it and have high expectations for the future.

So what exactly is FRAM and why would you be excited about it?

The F in FRAM stands for ferroelectric (and not ferromagnetic nor Fujitsu) because it “uses ferroelectric film as a capacitor for storing data. Possessing characteristics of both ROM and RAM devices, FRAM features high speed access, high endurance in write mode, low power consumption, non-volatility, and excellent tamper resistance.” (Source: Fujitsu)
How it all works at the atomic level is not so important here, let’s jump to the bits interesting for people wanting to use FRAM in a design.

First there is speed. Compared to flash memory FRAM is way faster, TI claims a 100 times faster. According to Fujitsu, FRAM is 30,000 times faster than EEPROM.
Secondly, there is power consumption. FRAM uses very little power, 250 (TI) to 400 (Fujitsu) times less than flash or EEPROM. This is active power. Interestingly enough FRAM has a slightly higher leakage current than flash memory, so power consumption in sleep mode is slightly worse.
Less energy and higher speed means cost savings, not only on the power budget, but also on the production budget for the high-volume people that measure the time it takes to program a device on the production line.

Then there is endurance. Flash & EEPROM memory cells are specified for some 10,000 write cycles, whereas a FRAM memory cell can be rewritten more than a trillion times! (Fujitsu is a bit conservative here, TI rather optimistic.) This kind of endurance combined with the higher speed means that FRAM can be used in place of SRAM.

FRAM works with low programming voltages down to 1.5 V. Replacing a block of flash memory by a block of FRAM of the same density then saves die space because FRAM doesn’t need a charge pump. Smaller means cheaper. Also, because of the low programming voltage new applications become possible where the higher flash programming voltages are currently considered dangerous.

Finally, FRAM is less sensitive to external fields and alpha particles than flash memory because the memory cell capacitor’s dielectric is much thinner than the one of a flash memory cell. The thinner the dielectric the less distance there is to develop a dV over and the smaller are the chances to (accidentally) modify a bit.

All these advantages were known from the start, so why did it take so long before FRAM made its way into non-Ramtron MCUs? Well, I don’t know about Fujitsu, but according to TI the main reason was the incompatibility of the technology. Five years ago FRAM was done in 350 nm technology, which was too big to use it in TI’s chips. Now they brought it down to 130 nm, which is a perfect fit.


This is a picture of a demo board showing off the low-power capabilities of the new MSP430 family, targeted at energy harvesting applications. Battery backed SRAM, flahs or EEPROM can all be replaced by FRAM, the speed and low power requirements of FRAM make external super caps unnecessary. Higher speed equates to shorter up times so ultra-super-low-power applications seem to be ideal.

Since anyone can license this technology from Ramtron, we can expect other parts from other manufacturers to appear in the next months or years.

Jeez, why didn’t I buy Ramtron stock at the time when nobody cared?

Thursday, April 14, 2011

New kit on the blog

At the last Embedded World show it was Cortex-M3 everywhere and I discovered that Fujitsu (now?) also sells cheapish development kits for their Cortex-M3 products. I obtained one of these kits, the SK-FM3-100PMC, to check out. The kit contains an SK-FM3-100PMC board, an AB type USB cable, a CDROM and a sheet with additional information. It does not contain the promised CD/DVD with Softune Workbench mentioned in the additional information.

On the board you’ll find an MB9BF506N processor (100 pins, 80 MHz, 512 KB flash, 64 KB RAM, 8 multifunction serial ports, 2 CAN ports & USB host & device, plus of course the usual timers and PWM-like peripherals, DMA and what not). Available connectors are UART-A RS-232 (9-pin female subd), UART-B USB (type A), CAN (9-pin male subd), USB host, USB device (type A), 20-pin JTAG (as usual the wrong way around for my Keil pod, Keil even gets this wrong on their own boards. Actually the cable is upside down on the pod) & Trace and headers for all the processor’s pins. On-board gadgets are two 7-segment LED displays (I always like that) and two square white push buttons.

The board can be powered from a multitude of sources: externally feeding a 1117 5V regulator, JTAG and both USB-A connectors. The processor itself will work from 2.7V up to 5.5V, meaning that this is one of the rare Cortex-M3 devices that can run directly from 5V.



Lets go!
Insert the CDROM and connect the board to the PC using the UART-B connector. A pretty well written Readme file pops up that guides you through the process of setting up a development environment for the kit. Driver installation is very easy, Windows can do it all alone (except for the usual “Do you really want to do this?” nagging). When the board is powered the 7-segment display starts counting up to 99 and then stops. Pressing the INT0 push-button makes it count down to 00, pressing INT1 makes it count up again.

The readme also describes how everything should be packed in the box, which is cool if you want to put it away properly.

The board has a reset LED, interesting. It lights up when you press the (square blue) reset button. Such an LED is maybe helpful to detect situations where the board is kept in reset without you wanting to?

The CDROM contains a free serial port terminal program SKwizard. This utility only knows about four COM ports, when my board is on COM20… Luckily the flash programming tool FM3 can handle COM ports up to nr. 20 (phew…). Yes, I know you can assign a different number to a virtual COM port, but this is poor/old school programming. The other flash programming tool (there are two) allows port numbers up to 255.

To test ease of (re)programming the board I first tried the FM3 flash tool. This one uses the serial port for programming and is pretty straightforward to use. The only weird thing (besides the COM port numbers) is that the file picker wants an S-record file, but only knows the extensions MHX, CNV & AHX, and not the SREC files that come with the kit.

The second tool for direct USB programming over the USB device port is a bit more difficult to get started, because it needs a driver that is not on the CDROM and I could not find it on the Fujitsu website either. Contacting Fujitsu taught me that the driver is hidden in the installation folder of the Flash USB Direct tool (on my PC: c:\Program Files\Fujitsu\FUJITSU USB DIRECT Programmer\driver\). I was also told that no drivers are available yet for Windows 7, but they are coming. Once the driver installed (COM 22!), I could reprogram the board. To my surprise direct USB programming turned out to be as slow (or fast, but I prefer slow in this case) as serial port programming. However, I did like the friendly message after successful programming: “It ended normally completely”. (Probably to be pronounced with a Japanese accent.)

Example code is provided for IAR and Keil compilers. I did have Keil uVision 3 with a ULINK2 pod, but you need version 4 to open the project files, so I downloaded & installed an upgrade of 312 MB. Now with my brand new version 4 I could indeed open the example projects.

What the people at Fujitsu forgot to mention is that you have to copy the examples to your hard disk otherwise uVision will not be able to build them as it tries to create files in the project folder. More annoying is that they also did not mention that you have to manually select the device - for some reason the project does not include the device – otherwise you cannot flash the board after a build and you receive confusing error messages. So, before building a project, select the device: Project -> Options for Target, click on the Device tab and select the MB9BF506N. This will also load the correct flash algorithm file. Now build the project and load it in the processor with your ULINK2, ME or PRO pod.

If you look closely at the project files you will see a file named FLASH_DEBUG_README.txt. This file says that you should copy an FLM file from the project to the Keil environment, but it seems that uVision 4 already contains usable flash files that get loaded when you select the target device.

I could not try trace recording, because you need a ULINK Pro for that.


The board in a Keil uVision 4 / ULINK2 environment.

Now that I am finally ready to start developing for this board it is a shame to discover that there doesn’t seem to be a nice Fujitsu library encapsulating all the peripherals of the chip and the board; some sort of a BSP as people like to call it nowadays. The best they have come up with is an empty template project, a bit meager.

Documentation includes full schematics of the board, but it is lacking a mechanical drawing with the positions of the break-out connectors that seem to be placed on a convenient 0.1 inch grid. So measure carefully when you design an extension card for it.

Tuesday, April 5, 2011

Open4 EvoPrimer

In the previous post I mentioned the Open World Design Contest launched by ST and others. The participants who make it into the second round will get free development tools, notably the EvoPrimer platform.

This platform is actually a very interesting set of tools developed by Raisonance under the name of Open4 (read as “Open for …”). The system is very open indeed and schematics and source code can be downloaded for free. A system consists of a base, a kind of multimeter-sized pod, and target boards that slide into the pod. The base offers the human interface like a color touch screen, a joystick, buttons, LEDs, audio I/O, IrDA, accelerometer and a li-ion battery with charger, the target board offers the applications.


Open 4 dissection...

Several target boards are available, with 8-bit and 32-bit processors from ST, but you can also develop your own. When you open the base you get access to a connector for extension cards that can slide through an opening under de joystick (if you remove the cover). This connector is the main way to go for those who want to add something to the system.

Software development is done with the Ride7 IDE, also from Raisonance, using GCC. The free version lets you compile and flash any size of code and debug executables of up to 32 KB. You have to pay for unlimited debugging. The IDE connects directly to the base through a USB port, without the need for additional programming or debugging pods. Ride7 also offers an ARM simulator.

Instead of writing all the GUI code yourself, you should (but you are not obliged to) built your application on CircleOS. It is not clear to me who the owner is of this OS, but the main thing is that it is free and open source software. CircleOS handles the display, the touch screen and all other hardware that is built in the EvoPrimer base. It also calls the user application on a regular basis and it lets the application interact with the OS to obtain button states etc. Applications are stored in a special memory area and there is room for several of them. The OS will allow the user to select the application from a menu. The application memory available depends on the target board you are using.


Ride7 is a nice IDE indeed!

Although Raisonance and their tools seem to concentrate on microcontrollers from ST, the Ride7 IDE can also be used for ARM-based controllers from other brands. It happily supports many NXP and TI (Luminary) models and if you look in the Ride7 installation folders you will find more supported processors than that the IDE lets you choose from. If you don’t like Eclipse (who does?) and if you don’t mind debugging the hard way, this is a very nice IDE for ARM development. My next Sceptre project will probably be done using this IDE.

Oh, did I mention the price of an EvoPrimer kit? About 100 euros for a base with target board!

Friday, March 18, 2011

2011 OpenWorld Design Contest

OpenWorld is an interesting design contest launched this week by STMicroelectronics and a bunch of industrial and research partners. The OpenWorld application design contest is a “technology promotion engaged by the Autonomie project” with as goal the development of “advanced navigation and augmented reality applications to assist the handicapped”.

The contest is based on the EvoPrimer tools that target especially portable applications. On the Embedded World show I saw a nifty extension card for the EvoPrimer that should allow for some pretty impressive personal in-house dead reckoning. The board was not only capable of tracking horizontal movements, but it also measures vertical displacements so it can help track a person going up and down the stairs. With such hardware some cool augmented reality (I should say this more often: augmented reality, augmented reality) applications should be possible.



To enter the contest and win some of the $ 20.000 cash awards you have to submit a proposition on the theme of Technology for Human Assistance. The best application concepts win EvoPrimer tools and enter the second phase to actually transform the concept into a working prototype.

Friday, March 11, 2011

Meet the people behind LPCXpresso

OK, I admit it, I have been talking quite a lot about LPCXpresso lately. Why? Because I like NXP's concept of handing out free tools (did you know that they did it again? Get a board for free just by answering some questions on their website), but I also have become a fan of the little LPC Cortex-M0 and M3 devices. At the Embedded World 2011 show I visited of course the NXP booth and there I was introduced to the brains behind the LPCXpresson concept. My boss, who came with me, always carries a photo camera and immediately took some pictures, so now you too can meet the LPCXpresso team.



On the left we have Jan Jaap Bezemer who tries to sell (or should I say "give away") the NXP microcontrollers. Second from the left, Rob Cosaro, and the man on the right, Joe Yu, are the people that came up with LPCXpresso. A chuckling Rob told me that he was very much amused by the fact that people are indeed cutting of the LPC-Link part of the board, something that was never really intended. Apparently some people cloning the board add a V-groove to make separating the parts easier.

Tuesday, March 8, 2011

Embedded World 2011 - Cortex-M3 everywhere

This year I renewed my visit to the Embedded World show in Nuremburg, Germany. Walking around the four halls that make up this big show it was simply impossible not to notice the ARM Cortex-M3 based controllers all around. Most chip manufacturers showed off boards with Cortex M3 devices, including ARM itself with their mbed board and other dev boards. There were also some Cortex-M4 demo's around from f.i. NXP (LPC4300) and Freescale (Kinetis).

This show was also rich in free kits; especially ST was very generously handing out STM32 and STM8 kits. I did not accept all of them, because I have no idea what to do with ‘em. Yet I did leave with (amongst others) a BeagleBoard-xM (thank you TI!), an FTDI Vinculo that I will review later on this blog and a ZigBee kit from ST. Fujitsu promised me to send me a Cortex-M3 kit by mail, I wonder if it will ever arrive.

Update 18/3: I received today a Fujitsu SK-FM3-100PMC kit, nicely boxed. More about it, hopefully soon, on this blog.

Due to a rather large amount of business meetings I did not see a whole lot of new or exciting things this year. However, I did get a demo of the very impressive new PIC32 compiler from MikroElektronika. These guys are definitely setting the new comfort standards for embedded software development. Wow! I always liked Microsoft’s Visual Studio, but this is way, way better. And the good news is that they are planning an ARM compiler too! At just under $300 (or $200 if you buy a board too) this is a bargain.

While I’m on compilers, Atmel too presented a new one: AVR Studio 5. This is a great tool too, and toujours completely free. V5 brings together AVR Studio 4 and AVR32 Studio into one IDE. It also integrates the AVR Software Framework (ASF) and over 400 example projects that used to be all over their website. Now you just pick your board and then the example that comes closest to what you want to do and off you go.

From the chip front I would like to mention the new ultra low-power 32-bit micro-controller family from Renesas, the RL78. Besides being low-power, this family is also ultra low-dollar. With an operating current of only 70 µA/MHz this is a direct competitor for the MSP430 from TI. But TI told me that they will announce an ultra-ultra-low-power MSP family later this year that will blow away the competition.
Microchip proudly announced their new PIC18F K80 micro. This is an 8-bit device that costs over one dollar, even at high quantities. This nicely illustrates the 8/32 bit paradox, but both Atmel and Microchip expect that the 8-bit market will continue to grow.

That is was not only Cortex-M3 all around proved Digi who had on display their pretty impressive ConnectCore Wi-i.MX51. As Digi's website says: "This module is a highly integrated and future-proof System-on-Module (SoM) solution based on the Freescale i.MX51 application processor with a high performance 600/800 MHz ARM Cortex-A8 core, powerful multimedia capabilities and a complete set of peripherals.".



The kit on the left is running Android, the kit at the right runs Ubuntu.
Digi's latest board, the ConnectCore Wi-i.MX53, was on display at the Freescale stand.
Rabbit 6000 modules are now available too.

Analog Devices showed me their new MEMS gyroscopes that have extremely low drift. So, I guess this is good news for the dead reckoning people.

FTDI presented a rather mysterious device, the FT1248. Although they did make it clear that this device communicates over a 1, 2, 4 or 8 bit wide bus of which the width can be adjusted on the fly, I did not grasp the reason of being of this chip. It is probably very useful or they wouldn’t have spent any time on it, but useful for what exactly? I guess that it is a bus extender of some sort, but I can’t find the data-sheet. Oh well, I am sure someone will figure this out for me.

I really like this show; I can hardly wait for next year.

Thursday, February 24, 2011

Free cup of LPCXpresso!

A bit over two weeks ago I told you how to get a free LPCXpresso board by making a short video or a photograph of how you got rid of your 8/16 bits micro-controller. I suspect/suppose that NXP will honor every participant.

Here is a picture I received from Antoine Broussal. Note how he did the can and the peanuts.



Just to show you that it is not bogus, here is a picture of the board with its accompanying letter that I received this morning by UPS. It is, as I expected, an LPC1114 board.



Denis Xavier wrote me to tell me that his contribution was accepted too, so Denis, you want to share a cup of LPCXpresso code?

The campaign is still running and the submission stream seems to have slowed down a bit, so go give it a shot yourself!

Embedded World 2011 update: NXP ran out of stock. Please be patient.

BTW, while I was writing this, I received a press release from NXP announcing the LPC1200 series. Compared to the other LPC Cortex-M0 devices these new Cortex-M0 controllers offer up to 128 KB of flash memory, DMA, a real-time clock (RTC) and a CRC engine.

Wednesday, February 9, 2011

CodeLite & GDB for ARM

Just after finishing the Elektor article about how to debug the Sceptre (or any other microcontroller that can be debugged over JTAG) using OpenOCD and GDB, I discovered another free IDE that seemed to be good for embedded development: CodeLite. It seemed to have everything needed for this kind of work, so I planned to add a supplement to the article on this blog. I thought that it would be easy to port the setup described in the article to this new IDE, but unfortunately it turned out to be not so. To come straight to the point: I have not succeeded debugging my target using CodeLite with GDB and OpenOCD.

Why? Because CodeLite does not treat GDB well or I am to dumb to figure it out. It seems easy & intuitive enough though. You create a project and then you define a debug setup for the project. You can tell CodeLite where your debugger lives and which commands to execute and CodeLite offers a GDB terminal, so everything is there to make it work. Except that it won't.

There are several issues. One is that it doesn't work always the same way. Sometimes I had to pass through the Quick Debug option to get it more or less going, sometimes this was not necessary. The reset command that I specified to be executed after attaching to the target gets executed several times instead of just once as if CodeLite uses a very short timeout to wait for response and then simply tries again. If it manages to get a connection to OpenOCD it is very difficult to use the GDB terminal that most of the times returns a message "interrupting debugee process: xxxx" where xxxx is a number that corresponds to the PC's process ID of GDB. Very frustrating and in the end I gave up, not succeeding once to execute successfully a step command.

It is a shame, because the IDE is nice. Not as heavy as Eclipse-CDT and easy to set up for embedded software development. It has interesting plugins, like the code formatting option that you can setup the way you like it, or a copyright block inserter. A snippet wizard lets you write quickly and you can hide functions that you don't want to see, it has everything you expect from a modern IDE. Therefore I suggest that you give it a try, maybe you don't care for GDB debugging of embedded platforms, it is definitely worth it.

If by any chance you figure out how to get GDB and OpenOCD working properly in CodeLite, please let me know.

Monday, February 7, 2011

Break the 8/16-bit habit

Most people, including me, like to get stuff for free. Electronic component manufacturers know this and often they offer free samples in the hope that their parts get designed in. Microcontroller manufacturers have started doing design contests and other campaigns to get new users for their products. One of the latests campaigns was launched by NXP for their ARM Cortex-M0 parts.

NXP already did do a design contest (or challenge as they called it) for their LPC1100 parts and now they are giving away LPCXpresso boards that contain a Cortex device. To get one, all you have to do is to show how you plan to stop using 8 and 16-bit devices. You can do this by sending in a picture or a video and if accepted it will be posted here.

Here is the video I sent in.



NXP's website does not mention which LPCXpresso board you will get, but I suppose it will be the board with the LPC1114.

Here are some photos & videos I received in response to this article. Feel free to share your way of breaking the 8/16 bit habit by sending me your photo and/or video and I will put them up here too.



L. Francey prefers to use his obsolete microcontrollers to create arty objects.


Marc will eat anything that has legs.


Jonathan likes Aciiid!


Denis combines his passions for nature and electronics.

Monday, January 17, 2011

Test driving DesignSpark PCB

In the summer of 2010 RS Components launched DesignSpark, an online community for electronics engineers. It is a similar community as Element14 from Farnell that was launched a year before. Like Element14, DesignSpark also offers a free circuit drawing and PCB design tool. Unlike the tool from Farnell that has some limitations - notably board size - the tool from RS is totally unlimited (meaning that there are no artificial limitations). Eagle Freemium, the tool from Farnell, in its free but limited version is allready used by many hobbyists, so would it be interesting for those users to switch to DesignSpark PCB?

Since I have been using (the professional version of) Eagle for a while now, I decided to try out DesignSpark PCB. I installed the latest version, which is 1.0.3. I had no PCB to design so I followed the tutorial that is included with the software. The tutorial is clearly written and pretty straightforward. A circuit diagram is quickly drawn thanks to the many libraries included, but the tutorial only uses some standard parts. If you follow the tutorial closely you will end up with a routed PCB in 45 minutes or so.

I noticed three problems in the tutorial text. The first one is a wrong connector specification. The text mentions a 5WP model, but you need a D9F. The second problem is more serious as I could not find the solution without the help from RS. The tutorial wants you to place a label on a net using the Display Net Name option that is supposed to be available from the right-click context menu, but I did not have this option. Looking through all the menus I could not find it either. The trick is that you have to select the _pin_ of the output symbol, not the symbol itself. The pin is the little cross that disappears as soon as you connect a wire to it. To select it you have to click on the extremity of the symbol. Actually it is much easier to right-click the wire to display the net name.
The third problem was the missing Spoke 10 option for the copper pour. This is a technology file issue, I probably did not load the right one.

I also tried importing an existing Eagle project. DesignSpark PCB includes a few Eagle macros that seem to work rather well, but not 100 %. In the schematic some junction symbols (the dots) were lost. Maybe these were the manually placed junctions in the Eagle file? Texts did not keep their sizes and the outlines of the page frames (or borders as the tutorial calls them) were gone. I also ended up with some labeled wires that were red, but not all.

On the imported PCB the texts not only had the wrong size, but they were rotated incorrectly too. A real problem was the fact that the Eagle project used a copper pour for connecting all the ground connections and these were not recognized by DesignSpark PCB even though the signal pads & vias had the right net names and were in the pour. Autorouting the PCB with or without grid did not solve the problem, and I am stuck at this point.

My quick test drive of DesignSpark PCB showed me that it is a very usable tool of at least the same quality as Eagle, but without the limitations of the Freemium version. I have used quite a lot of different PCB CAD packages and I found DesignSpark PCB easy enough to learn, but this may be different for other people. Switching to DesignSpark PCB may be interesting if you are not afraid of gerber files, because the PCB pooling guys, except for PCB Pool, do not (yet?) support uploading of complete DesignSpark PCB projects as they do for Eagle.

DesignSpark PCB seems a bit more production oriented than Eagle and you have easier control over the BOM. I also found the generation of the fab files easier. The technology files will probably confuse Eagle users (line widths f.i. have to be specified in the technology file first) and data entry is more work as is checking the PCB with all the different reports.

The most important difference between the two tools is definitely the design flow. DesignSpark PCB uses the classic capture-netlist-pcb flow

repeat until finished
{
draw/modify schematic;
generate netlist;
draw/modify PCB;
}

whereas Eagle has this automated. If you delete a part in an Eagle schematic, it is also deleted from the PCB. In DesignSpark PCB you have to initiate the update manually. Both ways of doing have their pros and cons and as long as you are used to it you will stay out of trouble, but if you aren’t, you will be in for some (unpleasant) surprises.

Another difference is in the separation of components and circuits. In Eagle, once you’ve defined a part you can only modify it in the library editor. DesignSpark PCB lets you edit a part up to some extent during capture. You can move pin names and numbers and add fields to parts that would be text comments in Eagle.

Let me finish this article with some remarks about DesignSpark PCB particularities:

Schematic capture
- Setting the component value of parts that do not have the value field is tedious, but can be done without editing the part in the library editor.
- Setting the component value is a bit tedious too as it involves at least two double clicks and two OKs.
- When two nets are merged, you cannot choose the name of the merged net.
- Block dragging is a bit strange and will move wire segments that you probably did not want to move.
- I had grid problems. Wires and parts placed on the grid somehow were moved off the grid, probably after a block move even though I never changed the grid or switched it off.

PCB
- The autorouter is not very powerful. It works with the tutorial, but I could not get a simple circuit to route except for a few wires. It turns out that you have to set the intertrack and track-pad spacings properly in the Design Technology window depending on the component lead pitch to get it going. You may also want to reduce the via size. I finally managed to get a very simple design to complete, but I was not impressed with the result. Then again, I always route manually so I don’t really care about the autorouter.
- You can generate reports for lots of things. These are displayed in Notepad and before you know it you have lots of Notepad windows open. If you rerun a report it will get a new window instead of overwriting the old one.
- Don’t forget to activate the Show nearest node on net if you route manually, otherwise you have absolutely no idea where you are going.
- I liked the single doc PDF that you can produce and that will hold all the plots. You should include the board outline in at least one plot, otherwise the paper size will wrong.
- I also like the plot preview option and the simple checkbox to cover vias with solder resist.
- Nice also is the auto place function to put parts on the board, allthough the result may not be exactly like how you would do things.

Projects
- You cannot rename a sheet? The only way I managed to do this was to save the project in a new location.