Standard Peripherals Library vs CMSIS vs HAL vs Low Level Library

Tags: ARM, C, Electronics, Embedded, Programming

The STM32 line of microcontrollers offer a bunch of features in a nice package at reasonable cost, something I like. What I don't like as much are the development libraries around it provided by ST. For this reason, most of the time I stick to writing code using the 'Cortex Microcontroller Software Interface Standard' (CMSIS) and the datasheet, and this works nicely but can be slow to develop. While it's still my personal favorite, I recently checked out the other options to see where things are going to do the prep work for some ports of older projects built using the 'Standard Peripherals Library' to newer processors such as the STM32L4.




Anyone Can Code...

Tags: Other, Programming

Every time I hear the "everybody can code" line...

Anyone Can Code

This Is How We Build It

Tags: Cloud, Electronics, Embedded, GPS, Network, Security, Wireless

The problem with the Internet of Things is that few people truly understand what it is really about. A large percentage of people in the group that does understand it tend to discard it as yet another marketing hype such as “the cloud” with very little real substance. Due to all kinds of news reports on security issues, vendor lock-ins and lack of open standards, cost overruns, etc. these people tend to see their opinions confirmed. We at WRD Systems also tend to agree with this group – to a point. The reason we do is that we see the same mistakes being made as countless numbers of times before, including the critical security issues that WRD Systems has highlighted for years. However, we also see the great potential of internet connected devices. Probably not the refrigerators and such, but closer to the origins of the Internet of Things: Machine to Machine, also known as M2M.

paint city titlegraphic

Flashing STM32L15X EEPROM with STLink under Linux

Tags: Embedded, Linux, Programming

For a while now I've been evaluating some 32-bit micro controllers for a future product. One of them was the STM32L15x series. There are some handy development boards available such as the Nucleo boards. Since we need to have the ability to program processors from Linux for our small production line, tool support is one of the checkboxes that need to be ticked.

For the STM32 series, flashing the microcontroller can be done through GDB, OpenOCD, and the STLink tool. One issue that arose however was the need to program the EEPROM available on the STM32L series. This requirement comes from need to generate and program different EEPROM content on a per board basis at the production line. Doing that requires a few tweaks that are documented below...



Solar Eclipse

Tags: Other

A solar eclipse occurred on March 20th 2015. The weather was great without clouds, so that made for perfect viewing. I'm guessing we were at about 80 percent magnitude. It was also pretty special since the eclipse happened at the same time as the spring equinox. The below videos are a quick attempt of capturing the event at 63.1000° N, 21.6167° E (Vaasa, Finland). The videos are all at 30x real time. 


How Small?

Tags: Electronics, Embedded, GPS, Hardware

As some of you may know, we at WRD Systems have been working on our new, next gen, GPS tracker. The goal of this one is to be as small as possible, yet pack as many features as possible out of the box while keeping the cost low. We often get requests asking how small our tracker is. We tried communicating scale in millimeter, or took a picture of the board next to a coin, but they did not seem to convey how small our tracker can really be. To try to improve on this, we present the Matchbox Tracker:

On Processes and Threads

Tags: C, Computer Architecture, Linux, Programming

Some time ago I followed an interesting discussion on a board where people were discussing multi-core software development. During the course of the discussion it became apparent that there is a lot of confusion and misconceptions about a 'process' and a 'thread' as they exist on e.g., a Linux system. Both are applicable to make use of multi-core systems, but they do so in different ways. Even though the exact distinction while compared to early definitions of the terms has perhaps become somewhat blurred, the two remain separate entities which can complement each other perfectly. In this post I'm going to try and illustrate the similarities and differences, and show you some real life scenarios of both. Keep in mind that we will be making some generalizations - and there are lots of examples where these generalizations do not directly apply, or where there are other possible implementations of the cited examples. Going into these would turn this blog entry into an entire book...


New Horizons for Embedded

Tags: Computer, Embedded, Programming, School

Well, maybe not that new - but definitely something that is getting more and more important. 

The embedded development toolbox is rapidly expanding, and it is becoming harder and harder to find people skilled in these tools. Starting from the university, 'embedded' is considered hard and not as 'cool' as traditional software development. Why spend hours hacking away and reading datasheet to get to blink a LED and send 'hello world' over a UART when you could build rich graphical programs with web technologies or mobile? The fact that embedded development requires a wide skill set going from electronics, process control, signal processing to software, to Matlab means that substantial time is required to form a good base on which to build the required specialized skill sets. Not many people are willing to do that. 

Web Proxy

Tags: Network, Security

We just launched a free web proxy service: Not only will it help you get around firewalls and sites blocked by your ISP, it does so without logging user data. Oh, and we're 'Not Subject to American Law' - in reference to the recent NSA surveillance debacle ;-)


Syndicate content