Tuesday, February 05, 2019

Visual Pin Configurator

I've created an application that configures the pins and peripherals of the Nucleo-L152RE board from ST Microelectronics, similar to CubeMX in functionality but it generates C code based on the mature SPL drivers. See here an article, but the entire blog is about the VPC program and the applications created with it.


The application is open source (MIT licensed) and you can license the sources created with VPC under any license you want. You are the sole owner of your projects.

Tuesday, May 30, 2017

I support European products

I live in Europe/Romania and... there are a lot of changes around the world, Every country tries to get the most from their commerce, as the wars now are happening almost exclusively in the economic plane. Europe lost recently a lot of technology, bought by foreign companies and this is very bad for the future.

My interest is in microcontroller components and I started to find European alternatives to the AVR/PIC/ARM U.S. microcontrollers - and this means also a free, full development tool chain.

For 32bit microcontrollers it was easy, the ST Microelectronics, a swiss company makes great ARM microcontrollers. It produces also software that makes easy the adoption and firmware development. The gnu gcc C compiler offers full support for ARM and I use this for development

But for 8bit microcontrollers, the Americans (U.S.) have the best offer and this wasn't easy. ST Microelectronics come with STM8 8bit microcontrollers in cases somehow hard to solder for hobbyists but you can get nice development boards at great prices. As for C compilers, there are Raisonance, Cosmic, IAR and SDCC tool chains, some free and unlimited, some commercial or limited. Up until 3.6.0 version, SDCC scored the worst performances from them, but starting with the revision #9652 in the repository, SDCC compiler beats them all. This means that developing professional grade applications for STM8 microcontrollers using a free development tool chain under Linux is now possible.

Tuesday, March 17, 2015

LunaAVR no longer free for commercial use.

Well, the author worked hard for this and now, that LunaAVR got the deserved attention, he must get his reward. Nothing wrong with this. Especially that the price is right for a professional with a lot of contracts.

What it remains for us, the "freeloaders"? A full featured LunaAVR, without restrictions for anything non-commercial. And that is still amazing in a world where all other commercial compilers/languages have ridiculous restrictions for non-commercial zone.

I still have the old stable version with a permissive license, but that means almost nothing, as I always want the latest, full featured version of  LunaAVR. Guys, even in this form, I really believe that is worth to download it, as long as there are still no limitations.

Monday, February 23, 2015

CNC-ing gears with Inkscape and MakerCAM

For CNC 2.5d operations you can use also free software as Inkscape and MakerCAM. Fast and easy. Thanks +drez20001

Monday, January 19, 2015

Wiring 1.0 is now on Build 101

But only for Mac and Windows. Linux is still on hold... waiting from 28 October 2014 ... Not many changes, but a very important one: avr-gcc 4.7.3. This will assure at least a more compact code.

The IDE comes with the possibility to display a schematic (as a PNG image) for every project so the user can have a better general "picture" about the project. And I like the IDE colors much more than those of the Arduino IDE.

Tuesday, January 13, 2015

Wednesday, January 07, 2015

Alternatives in programming the AVR microcontrollers

As a long time PIC programmer, spoiled by the bit support in, I think, all the compilers available, free or not, going to AVRs it was quite a shock to see what "enormities" I had to write to assign a value to a pin using the features provided by the avr-gcc compiler.

By example, in a code of a graphic LCD library, to set or clear the "chip select" pin, you had to write:

#define GLCD_CMD_PORT   PORTA        // Command Output Register
#define GLCD_CSEL1      0x03        // CS1 Bit Number
#define GLCD_CSEL2      0x04        // CS2 Bit Number

GLCD_CMD_PORT |= 0x01 << GLCD_CSEL1; // select chip 1
GLCD_CMD_PORT &= ~(0x01 << GLCD_CSEL2); // deselect chip 2