Example MQTT projects for STM32F7

A few days ago I’ve uploaded a new repository with an example project for STM32F7 chip family. STM32F7-ETH-LAN8720A-lwIP-MQTT is a very simple MQTT demo application which connects to the broker via Ethernet link. This project is targeted for 32F746GDISCOVERY (also known as STM32F746G-DISCO) and NUCLEO-F767ZI boards. Both of the boards feature a Microchip LAN8720A PHY, but you can easily adapt the project to any board which has the same (or compatible) PHY. The application itself is very simple – it reports to the MQTT broker when the state of board’s button changes and allows you to remotely control the state of board’s LED(s). Main purpose of this project is to demonstrate how to integrate distortos with external libraries, in this case lwIP TCP/IP stack and ST’s STM32F7 HAL library (used in the driver for Ethernet interface).

Actually a few months ago I’ve also published a very similar project, but using a different method to connect to the MQTT broker. STM32F7-USB-host-ME906-lwIP-MQTT – as hinted by the name – uses Huawei ME906 4G/LTE USB modem instead of Ethernet. This modem is also available as HP LT4112 Gobi – it’s exactly the same hardware, but with different VID/PID pair. The application supports both of them. In addition to the two libraries mentioned earlier, this project also integrates ST’s USB host library. Similarly to the previously mentioned one, this project is configured for the same two boards and the MQTT application is identical.

Mailing list moved to Google Groups

I’ve created a group for distortos in Google Groups, with a plan to shut down the mailing list hosted on Sourceforge. The move is caused by the fact that Sourceforge is a dying service, which basically just waits for someone to pull the plug… Additionally Google Groups offers some nice features, most important one is that it is a mix of a regular mailing list and a forum. You can use it with your e-mail client only as well as solely via web browser. The new group is also available as an embedded page of this website, accessible with the Forum link from the main menu on the left.

It may be important to note, that you do NOT need a Gmail account to use this group. You can subscribe with any e-mail address you like.

I plan to keep the Sourceforge mailing list around for a while, but eventually it will be closed.

New tutorial about ARM debugging in Eclipse

Planned for very long, the tutorial about debugging a distortos-based project for ARM microcontroller in Eclipse was finally published – Documentation > Eclipse debugging setup for ARM microcontrollers. Even though the screenshots in the article were made on Windows 10, the guide is completely system-agnostic – the procedure will be identical on Linux.

This final guide completes the basic series of tutorials:

  1. ARM toolchain for Windows (Windows specific),
  2. Creating and configuring a project in Eclipse (mostly system-agnostic),
  3. Eclipse debugging setup for ARM microcontrollers (mostly system-agnostic).

Updated build instructions for kconfig-frontends

With the most recent gperf release – 3.1, released on 5th January 2017 (almost 8 years after previous 3.0.4) – the “standard” kconfig-frontends build procedure no longer works. The type of length argument used in generated functions was changed from unsigned int to size_t, which causes the build to fail with following error:

  CC     libkconfig_parser_la-yconf.lo
In file included from yconf.c:234:0:
hconf.gperf:141:1: error: conflicting types for 'kconf_id_lookup'
hconf.gperf:12:31: note: previous declaration of 'kconf_id_lookup' was here
 static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
                               ^~~~~~~~~~~~~~~
make[3]: *** [Makefile:456: libkconfig_parser_la-yconf.lo] Error 1
make[2]: *** [Makefile:350: all] Error 2
make[1]: *** [Makefile:334: all-recursive] Error 1
make: *** [Makefile:385: all-recursive] Error 1

Continue reading Updated build instructions for kconfig-frontends