Fast string to integer conversion (C/C++)

This article presents a few fast and lightweight implementations of conversion from ASCII string to integer. It can be an interesting fit to use in a small microcontrollers like for example ATtiny13, which resources are very limited. All presented functions are simplified and require a null-terminated array of chars as an argument. Convert string to … Read more

Fast string comparison for microcontrollers (C/C++)

This short article presents trivial but fast and memory efficient function to compare two strings. Function returns “0” (zero) on success (strings are the same), otherwise function returns the position where different characters occurred. Example code #include <stdint.h> #include <assert.h> static int8_t xstrcmp(const char *s1, const char *s2) { while(*s1 != ‘\0’ && *s1 == … Read more

ESP8266 – dockerized toolchain

Lightweight docker image built on top of debian:jessie-slim with installed xtensa toolchain, ESP8266_RTOS_SDK and few additional tools: xtensa-lx106 (crosstool-NG crosstool-ng-1.22.0-92-g8facf4c; 5.2.0) ESP8266_RTOS_SDK (v3.2) esptool.py (v2.4) make (v4.2) cmake (v3.5) DockerHub: https://hub.docker.com/r/lpodkalicki/esp8266-toolchain Installing Bellow you can find recommended simple one-line installer that pulls the newest docker-image and installs esp8266-toolchain script into “/usr/bin/” directory. curl https://raw.githubusercontent.com/lpodkalicki/esp8266-toolchain-docker/master/install.sh | bash -s — Getting started … Read more

ESP8266 – WiFi beacon spammer

In this article I will show you how to make a WiFi  beacon spammer on ESP8266. Beacon spamming involves broadcasting a valid IEEE 802.11 beacon frames using fake SSIDs and MAC addresses. This educational project is hackable and easy to get running. The code is on GitHub, here. What is WiFi Beacon? WiFI beacon frames are used by … Read more

Installing ESP8266 RTOS SDK on Linux

This is a short how-to guide about installing ESP8266_RTOS_SDK on Ubuntu Linux. The new version of ESP8266_RTOS_SDK (v3.0) shares the same framework with esp-idf (official development framework for ESP32). The toolchain programs access ESP8266_RTOS_SDK using IDF_PATH environment variable which can be set in ~/.bashrc file. If you’re working with both ESP8266 and ESP32 then note that toolchains are using the … Read more

ESP8266 – NonOS SDK version of blinky

This blinky example is using pure ESP8266 Non-OS SDK (v2.0.0). This project template has been tested on Ubuntu Linux. The complete code is on GitHub, here. Parts Required ESP8266 Development Module (for example based on ESP-12N, with build in LED) Software This code is written in C and can be compiled using xtensa-lx106-elf-gcc.  Don’t know how to start? Please read about building ESP8266 toolchain … Read more

ESP8266 – WiFi sniffer

This is my another example of simple and inexpensive WiFi packet analyzer (also known as a WiFi sniffer). The heart of this project is ESP8266 WiFi module which is able to work in a promiscusous mode. This module allows IEEE802.11 network packets capturing for further analyzing. Because of the fact that ESP modules don’t listening on all channels at a time, additional code … Read more

A few funny projects using my simplified implementation of DFT

Bilexa Bass – Singing Fish, Sound-Actived 3D-printed Vibrator and Scared Spider Toy. I wanted to highlight these funny (sometimes crazy!) projects as they are using my version of simplified implementation of DFT I created for project ATtiny13 – dance lights with DFT and because the authors are very idea-driven, original and just awsome. Bilexa Bass – Singing Fish (Bob, ATtiny84) … Read more

ESP8266 – building the toolchain for Linux (Ubuntu)

This is a quick tutorial that shows how to build a complete development environment (including FreeRTOS support) for the ESP8266 processors on Linux. These instructions have been tested successfully on Ubuntu 17.04. UPDATES [28.10.2019] Take a look at docker version of ESP8266 Toolchain [05.03.2019] If you want to use FreeRTOS in your project I recommend to install a … Read more