U-boot now supports booting Linux from an HTTP server

U-Boot HTTP

Up until now, U-boot would only support the User datagram protocol (UDP) allowing for TFTP and NFS boot, but Linaro has now added support for TCP and HTTP in U-boot in order to boot Linux from common web servers. TFTP boot from U-boot has been supported for years, as around the year 2006 I remember implementing TFTP Linux boot for a Karaoke system in order to lower the BoM cost by selecting a smaller flash device, and I also explained how to boot Linux on a TV box with TFTP back in 2014. This requires installing a TFTP server on your server, which is quite a trivial task, but HTTP servers are omnipresent, so it’s a welcome addition to U-boot. If you want to use HTTP to boot Linux, it needs to be enabled in the U-boot config:

The top and bottom options are pretty obvious, and the second […]

SONOFF releases HTTP API for SPM-Main power meter

Sonoff power meter DIY Mode

SPM-Main is the main unit of Sonoff Smart Stackable Power Meter using RS485 to provide up to 128 relays. Besides support for the eWelink mobile app, we were promised an HTTP API at the time of the launch in September 2021. ITEAD kept its promises and has now released the HTTP API for the SPM-Main smart power meter to allow IoT home automation users and developers to control SONOFF devices via existing home automation open-source platform or local HTTP client. It’s the same REST API used for SONOFF MINI & R3 smart switches, but it adds support for power monitoring as well. The API allows you to switch between eWelink and DIY modes as needed, and provides the following functions: Device Status Broadcast – Returns the switch status of all channels with current, voltage, power, overload status, RS485 communication status, and more Get the List of Sub-device – List of […]

LwM2M v1.2 M2M & IoT device management protocol adds support for HTTP and MQTT, LwM2M gateways

LwM2M v1.2

Lightweight M2M (LwM2M) is a REST-based protocol from the Open Mobile Alliance (OMA) for M2M & IoT device management that defines the application layer communication protocol between an LwM2M server and an LwM2M client running on an IoT/embedded device. While LwM2M v1.0 was published in early 2017, we first covered the new protocol a year earlier as Imagination Technologies released the source code for the LwM2M stack running on MIPS Creator Ci40 development board.  Since then we’ve mostly seen the LwM2M protocol supported in cellular LTE IoT modules including Quectel BC66 and u-Blox Sara-R410M, as well as the now-defunct Samsung Artik WiFi IoT modules. LwM2M v1.0 was followed by v1.0.1 and v1.0.2 for bug fixes, and v1.1, but OMA has now announced LwM2M v1.2 protocol that adds the following new features: New transports for LwM2M: MQTT and HTTP Optimizations for the bootstrapping and registration interfaces to reduce the amount of […]

Embedded Linux Conference & IoT Summit Europe 2016 Schedule

Embedded Linux Conference & IoT summit 2016 first took place in the US in April, but the events are now also scheduled in Europe on October 11 – 13 in Berlin, Germany, and the schedule has now been published. Even if you are no going to attend, it’s always interesting to find out more about the topic covered in that type of events, so I had a look, and created my own virtual schedule with some of the sessions. Tuesday, October 11 10:40 – 11:30 – JerryScript: An Ultra-lightweight JavaScript Engine for the Internet of Things – Tilmann Scheller, Samsung Electronics JerryScript is a lightweight JavaScript engine designed to bring the success of JavaScript to small IoT devices like lamps, thermometers, switches and sensors. This class of devices tends to use resource-constrained microcontrollers which are too small to fit a large JavaScript engine like V8 or JavaScriptCore. JerryScript is heavily […]

Downloading Files on Baidu, or via HTTP, Bittorrent or Metalink in Linux with BaiduExporter, Aria2 and YAAW

Most firmware files distributed by the manufacturers are uploaded to Baidu, but I’ve found the service not to be always reliable, especially for larger files. In Windows, people are recommended to use Baidu software (BaiduYunGuanjia), but there’s not such tool in Linux, so instead I investigate for command lines tools to download files from Baidu, and this lead me to two interesting tools called Aria2, a “lightweight multi-protocol & multi-source command-line download utility. It supports HTTP/HTTPS, FTP, BitTorrent and Metalink”, and YAAW “Yet Another Aria2 Web Frontend” with allow to start and monitor download locally or remotely. But let’s start with the first tool I found: pan-baidu-download, a Python script to download files from Baidu. To install it:

We also need to install some dependencies (assuming python 2.7.x is already installed):

and then you can start downloading files as follows:

But after posting a bug about password-protected […]

openPicus Introduces Wi-Fi and GPRS IoT Kits Powered by Microchip PIC24 MCU

openPicus has launched two new development kits for the Internet of Things with either Wi-Fi or GPRS connectivity, based on their FlyportPRO modules featuring a 16-bit Microchip PIC24 MCU, and sharing the same baseboard. These kits can be used as a Web server with firmware update over the air (FOTA) (Wi-Fi version only) among other things, and support TCP, UDP, FTP, & HTTP protocols, as well as MQTT (Message Queue Telemetry Transport), a light weight messaging protocol running on top of the TCP/IP protocol, used when a small code footprint is required and/or network bandwidth is limited. openPicus FlyportPRO Wi-Fi and GPRS modules share mostly the same specifications: MCU – Microchip PIC24FJ256GB206 16-bit MCU @ 32 MHz with 256KB Flash,  96KB RAM External Storage – 16Mbit Flash memory (for FOTA), 64Kbit EEPROM Connectivity GPRS Module – SAGEM HILONC GPRS Transceiver (quad band: 850, 900, 1800, 1900 MHz) with uFL connector for external […]

SPDY Aims to Make the Web Faster and Replace HTTP

SPDY (pronounce “SPeeDY”) is a new protocol designed by Google that aims at making the web faster and eventually replace HTTP. This new protocol is not a new scheme, so it would be transparent to the user and there would not be a new spdy:// prefix and we would still be using http://. It will always be secure and use tcp port 443 instead of 80 (because of transparent proxies messing up with packets). Most of Google products such as Chrome, Android Honeycomb (They can’t say if ICS is using SPDY…) devices and Google’s servers have already using SPDY protocol for some time, and Google reports some encouraging results. The tested 300 sites from the top 1000 Alexa sites and found an average 40% page load improvement. They also reported some labs tests: *PLT stands for “Page Load Times” in the chart above. Google is not the only company using […]

Web Servers for Embedded Systems

Many network-enabled embedded devices do not have displays and configuration must be done via a webpage. This is the case for modems and routers and possibly for  IP cameras,  networked printers… With a web server, there is no need to develop specific drivers and/or applications for computers connected to the device. You just need to write HTML/Javascript pages and possibly CGI scripts. I’ve already posted a blog post about mathopd for ARM no-mmu targets as this HTTP server is ideal for uCLinux since it does not fork. Today, I’ll list some other HTTP servers that may also be used with embedded processors. Tiny/Turbo/Throttling HTTP server thttpd is a lightweight HTTP server implementing the HTTP/1.1 (minimum) and simple to configure and run. Its executable size is 88K. The description says it does not fork, but fork is called in the source code, so I do not know what that means… It’s […]

Memfault IoT and embedded debugging platform