Build an ESP8266 web server – Code and schematics (NodeMCU)

esp8266-web-server-thumbnail-600

A detailed instructions of how to build an ESP8266 Web Server using NodeMCU firmware:

This tutorial is a step-by-step guide that shows how to build a standalone ESP8266 Web Server that controls two outputs (two LEDs). This ESP8266 NodeMCU Web Server is mobile responsive and it can be accessed with any device with a browser in your local network.

Via Random Nerd Tutorials.

Check out the video after the break.

Wifi based DIY 5V switcher for led-lights

20181116_112356-600

Albert posted a detailed how-to on building DIY ESP-12F based USB-5V switcher:

5V powered 100LED circuit was consuming around ~1.8Watts(though 5.1Ohm series resistor was really hot) and the brightness of the LED’s were not bad, especially difference between first led and last led brightness didnt bother me it was hardly noticeable when seen from distance. So I decided to use them as a christmas decoration for my garden.
I wanted to use them with battery-bank as there was no power-outlet readily available(for the safety of my children, i would avoid any 230v circuit in my garden especially in wet weather). Also I wanted them to be switchable remotely to avoid going out in the freezing cold. Hence this is what i came up with.. an “ESP-12F based USB-5V switcher”

See the full post on his blog.

So how to do CW on a homebrew SSB rig?

IMG_4379

Pete Juliano, N6QW, has written an article on how to do CW on a homebrew SSB rig:

The Answer is Not a Flippant: Carefully!
Author’s note: A friend in VK4 land made an inquiry about CW operation. I find that 99.99% of my operating time is SSB. But others spend a greater time on the air using CW so why not share some info and data that I have stashed on my computer where a SSB rig can be made to work CW. This also open the possibility of filter switching for a more narrow pass band. With Arduino anything may be possible.

More details on Pete Juliano’s (N6QW) blog.

Remote debugging with USB based JTAG/SWD debug probes

ip-based-debugging-with-usb-debug-probe

Erich Styger wrote an article on how to turn a USB debug probe into a IP-based debug solution:

For some projects it is not possible to have the device under debug available on my desk: the board might be in another room, on another site or in a place where physical access is not possible or even dangerous. In that case an IP-based debug probe (see Debugging ARM Cores with IP based Debug Probes and Eclipse) is very useful: as long as I can access its IP address, that works fine. It is an excellent solution even if the board is moving or rotating: hook it up to a WLAN access point and I still can use it as it would be on my desk.

More details on MCU on Eclipse homepage.

Solar powered WiFi weather station

FT8MXP4JRAYPTP-600

A detailed instructions of how to build this weather station project by Open Green Energy:

This Instructable is a continuation to my earlier weather station project. It was quite popular on the web, people around the globe made their own by following it and given valuable feedbacks for improvement.By taking consideration in to the comments and Q&A section of my earlier project, I decided to make this new version Weather Station.I also made a custom PCB for this project, so any one with little knowledge on electronics circuit can be made this project. My V-2.0 PCB can also be used for many application in Arduino platform. Following are the salient features of new weather station

Project instructables here.

Tutorial: Booting the NXP i.MX RT from Micro SD card

sd-card-with-i.mx-rt1052

Erich Styger has written an article on how to boot the NXP i.MX RT from Micro SD card:

It is a common thing to boot a Linux system (see the Raspberry Pi) from a micro SD card. It is not that common for a microcontroller. The NXP i.MX RT ARM Cortex-M7 fills that gap between these two worlds. No surprise that it features a ROM bootloader which can boot from a micro SD card.
Booting from a SD card is kind of cool: load a new software to the card, insert it and boot from it. In some applications this can be very useful: in my configuration the processor starts the ROM bootloader, then loads the image from the SD card into RAM and then runs it. In that configuration no internal or external FLASH memory would be needed.

Via MCU on Eclipse.

DIY Arduino based RC transmitter

 

Arduino-RC-Controller-with-14-channels-and-MPU6050-Accelerometer-and-Gyro-600

Dejan over at HowToMechatronics posted a detailed how-to on building DIY Arduino RC transmitter:

Now I can wirelessly control any Arduino project with just some small adjustments at the receiver side. This transmitter can be also used as any commercial RC transmitter for controlling RC toys, cars, drones and so on. For that purpose it just needs a simple Arduino receiver which then generates the appropriate signals for controlling those commercial RC devices. I will explain how everything works in this video through few examples of controlling an Arduino robot car, controlling the Arduino Ant Robot from my previous video and controlling a brushless DC motor using an ESC and some servo motors.

More details on HowToMechatronics’ project page.

Check out the video after the break.

ESP32 (38) – Factory reset

In the previous two posts of this tutorial, I explained how to perform an over-the-air update of the firmware running on the esp32 chip.

Sometimes you may need to revert to the factory firmware, that is the firmware stored in the flash memory when the chip was programmed. Many consumer devices have a button or a pin that, if you press it for some seconds, triggers a reset function:

A10317_image1

In this post I’ll show you how to add this functionality to your project.

Partitions

As explained in a previous post, the flash memory connected to the esp32 chip is divided into some partitions, based on a layout configured when you program the chip.

Partitions that can store firmwares are of the app type. The partition that contains the firmware programmed via USB, has the factory subtype.

The esp-idf framework includes a method to search partitions in the flash memory:

#include "esp_partition.h"
[...]
esp_partition_iterator_t esp_partition_find(
  esp_partition_type_t type, esp_partition_subtype_t subtype, const char* label);

You can specify some filters to narrow down the results (they are not mandatory, use NULL if a filter is not needed): the type of the partition, the subtype and also a specific label.

If you want to look for the partition that contains the factory firmware, you can therefore write:

esp_partition_iterator_t pi = esp_partition_find(
  ESP_PARTITION_TYPE_APP, ESP_PARTITION_SUBTYPE_APP_FACTORY, NULL);

The method returns a partition iterator, that is an object that allows to scroll through the partitions found.

If the search was successful, this object is not NULL and you can get a pointer to the partition with the method:

const esp_partition_t* esp_partition_get(esp_partition_iterator_t iterator);

After the use, it’s important to release the iterator object with:

void esp_partition_iterator_release(esp_partition_iterator_t iterator);

After having obtained the correct partition, that contains the factory firmware, you only have to flag it as the boot partition and restart the chip:

if(pi != NULL) {
  const esp_partition_t* factory = esp_partition_get(pi);
  esp_partition_iterator_release(pi);
  if(esp_ota_set_boot_partition(factory) == ESP_OK) esp_restart();	
}

Demo

In the following video you can see how to perform a factory reset. In the video you can also learn how to “count” the number of seconds a button is pressed to trigger the reset function only after a fixed threshold (3 seconds in my example). Enjoy!