ESP8266 16MB Flash Handling


Piers Finlayson shares his adventures in programming the ESP8266 to access 16MB flash:

To put this in context, the original ESP8266 modules (such as the ESP-01) offered 512KB of flash, with the more recent ones (ESP-07) 1MB and then 4MB. The maximum addressable flash memory of the ESP8266 is 16MB according to the datasheet. (The ESP32 offers up to 4 x 16MB of flash.)

I don’t have a particular need for > 4MB flash (otb-iot currently only requires and supports 4MB) but my interest was tweaked in the larger flash chips, so I thought I’d give it a go. I’ve experience of replacing flash chips from older modules to upgrade them from 1MB to 4MB, so figured 16MB would be the same.

ESP8266 16MB Flash Handling – [Link]

MPPT solar charger


Lukas Fässler show us his progress on the MPPT solar charger:

One of my main goals with this design is to achieve very low standby current, somewhere in the tens of microamps. The basis for this is a low-power buck on the basis of a Texas TPS62120 where the microcontroller can switch the output voltage between 2.2 and 3.3 volts nominally. This works as intended. With no load and the output voltage low, the supply consumes 12.9 microamps at 12V input voltage. With the high output voltage the idle current goes up to 14.3uA. Quite a bit of that current is due to the voltage divider that sets the output voltage. The regulator itself consumes about 9uA in both cases.

MPPT solar charger – [Link]

RFID Tutorial with an Arduino Uno and an OLED display uploaded a new video on a RFID Arduino Tutorial:

Today we are going to build a very interesting project. For the first time we are going to use RFID tags with Arduino. I have built a simple project which reads the Unique ID (UID) of each RFID tag we place close to the reader and displays it on this OLED display. If the UID of the tag is equal to a predefined value that is stored in Arduino’s memory, then in the display we are going to see the “Unlocked” message. If the Unique ID of the card is not equal to the predefined value, the Unlock message won’t appear. Cool isn’t it?

RFID Tutorial with an Arduino Uno and an OLED display [Link]

C.H.I.P Pro The New GR8-Based Module

NextThing Co., is a hardware company that has the goal to create things that would inspire creativity, and help people chase their own ideas of what needed to exist.  After producing their world’s first $9 computer C.H.I.P, they are ready now to launch a new product!

chippro_project_imgC.H.I.P Pro,  the newest addition to the Next Thing Co. family, is powered by GR8, a system-in-package (SiP) that was designed by Next Thing Co. GR8 features a 1GHz Allwinner R8 ARM Cortex-A8 processor, Mali400 GPU, and 256MB of Nanya DDR3 DRAM. in a 14mm x 14mm FBGA package. C.H.I.P. Pro is a system-on-module (SoM) that has 512MB of high-speed NAND storage flashed with NextThing Co.’s GadgetOS. Gadget is an Open Source Linux-based OS, software toolchain, and cloud infrastructure which is designed to bring the speed, openness, and productivity of modern software development to the world of embedded hardware. C.H.I.P Pro can be powered by USB or battery, intelligently managed by the AXP209 power management unit.

The Pro also features 802.11 b/g/n WiFi, Bluetooth 4.2, and is fully certified by the FCC. This board will be available in December at supposedly any quantity for $16.

C.H.I.P Pro block diagram
C.H.I.P Pro block diagram

C.H.I.P Pro design defines two possibilities of installations; either in a product or in a single board computer designed for a breadboard. Its SMT-ready castellated edges and elements on both sides will make reflow soldering not so preferable. Instead, header pins, a ‘debug board’, and two C.H.I.P Pro units are introduced in one package for only 49$ to make soldering easier and to start installing the unit in applications. Due to its size and efficiency, it could be a good competitor for Raspberry Pi Zero.

C.H.I.P. was designed to be used in computer powered products, but it was recognized later that it wasn’t always the best fit. Many of the design choices of C.H.I.P make it hard to build into products. C.H.I.P. Pro addresses this issue, implements feature requests from the community, and is engineered to embed in products. C.H.I.P. and C.H.I.P. Pro are similar in many important ways, but they differ in some features. Here are C.H.I.P Pro advantages:

  • Industrial Grade —512MB SLC NAND
  • Updated Realtek WiFi / BT chipset with B/G/N & BT 4.2
  • Digital Audio / Support for SD Cards via pins
  • USB Breakout for PCB Designs incorporating USB based peripherals
  • Breadboard and SMT Placeable
  • A complete suite of certifications: WiFi Alliance, Bluetooth Consortium, FCC, CE, ROHS
  • Based on GR8 making it 76% smaller than C.H.I.P.
  • Better power consumption with ~3mA suspend to RAM

chipcoC.H.I.P. Pro is powered by GR8, a system-in-package provides a powerful application processor and DDR3 SRAM which eliminates the need for high-speed routing and reduces manufacturing complexity. GR8 is $6 in any quantity and includes the Allwinner AXP209 power management unit.
GR8 also features many popular peripheral interfaces: Two-Wire Interface, two UARTs (one 2-wire and one 4-wire), SD Card-ready SPI, two PWM outputs, a 6-bit ADC, I2S digital audio, S/PDIF IEC-60958 digital audio output, two HS/FS/LS USB PHYs (one USB 2.0 Host and one USB 2.0 OTG), a CMOS Sensor Interface.

GR8 Block Diagram
GR8 Block Diagram

Although it is doubtless that C.H.I.P. Pro will be installed and used in various projects, making GR8 module available for customers is something huge. Providing a jellybean part that contains an entire Linux system makes it possible to add the power of open software into any project and it opens the door for more applications to come.

Further details can be reached at C.H.I.P Pro and GR8 datasheets and at NextThing Co. forums.

Via: Hackaday

That’s how nano solar cells work!

by Harry Baggen @

Researchers from the AMOLF institute and Eindhoven University of Technology have developed a theory and an experimental method that for the first time provide a detailed description of how a nanoscale solar cell works. Previously this was difficult due to the extremely small dimensions of these solar cells. This new method brings the practical use of nanotechnology for sustainable energy supply a step closer.

That’s how nano solar cells work! – [Link]

Mesh Networking Module Supports ZigBee and Thread

Silicon Labs, an energy-friendly solution provider, produced a new family of Wireless Gecko modules for mesh networking applications and supporting ZigBee and Thread software.

Mesh network is a network topology which each node relays data for the network. All mesh nodes cooperate in the distribution of data in the network. It is used by wide range of applications such as home automation, smart metering, connected lighting, security systems, and IoT applications.

Silicon Labs MGM111 Module
Silicon Labs MGM111 Module

Based on the Silicon Labs EFR32™ Mighty Gecko SoC, MGM111 module is a fully-integrated, pre-certified module, accelerates time-to-market and saves months of engineering effort and development costs. It combines an energy-efficient, multi-protocol wireless SoC with a proven RF/antenna design and industry leading wireless software stacks.

The module consists of ARM Cortex®-M4 controller with up to 40 MHz clock speed, 2.4 GHz transceiver, 256 kB of programmable flash, and 32 kB RAM SRAM. It consumes only 9.8mA while in receive mode and 8.2mA at 0dBm when in transmit mode, with a transmit power of up to 10dBm.

“Our customers rely on our deep understanding of mesh technology and RF certification. They also appreciate that we offer the tools and stacks they need to simplify the development process, as well as an upgrade path that safeguards their IoT products from being stranded on older technologies and standards.” -Skip Ashton, VP of IoT software at Silicon Labs.

Thread is an IPv6-based mesh networking protocol designed as a reliable, low-power, secure, and scalable networking solution for connecting Things to the IoT. As a founding board member of the Thread Group, Silicon Labs helps accelerate time to market with proven mesh networking hardware and software solutions.

ZigBee is an IEEE 802.15.4-based specification for a suite of high-level communication protocols used to create personal area networks with small, low-power digital radios.

The MGM111 module datasheet with its full specifications list are reachable here.

DIY portable spectrometer

Spectral signature is a characteristic property of a material that represent how the matter interacts with an electromagnetic radiation at different wavelengths. By looking at the reflectance spectra of a material, scientists can not only retrieve vital information like the chemical composition and crystal structure of the material, but also the presence of any impurities or third element within it. The instrument used to derive such spectra is called Spectrometer. While a commercial spectrometer could cost a huge amount of money, Akshat Wahi‘s work is intended to make an open-source tool called WiSci to allow spectroscopy accessible to everyone.

DIY spectrometer
DIY spectrometer

WiSc is a portable spectrometer that communicates to an Android device over Bluetooth to store and visualize the spectral data. It uses Hamamatsu’s C12666MA mini-spectrometer at the front end to collect spectral signature from a target in wavelengths ranging from 340 to 780 nm. The hardware setup includes an Arduino board to read measurements from C12666MA and a HC-05 Bluetooth module for sending the data to the Android device. The android application was developed using Android Studio IDE and is compatible with Android 2.3.3 or higher.

Chlorophyll fluorescence from apples
Chlorophyll fluorescence from apples

Akshat’s team tested WiSc for non-destructive testing of fruit ripeness. They collected Ultra-Violet (UV) fluorescence from Chlorophyll present in the skin of Red Delicious, McIntosh and Empire apples. Their observations were found consistent with what is measured by a penetrometer.

BLE Carbon, The New $28 IoT Edition SBC

Linaro, a collaborative engineering organization consolidating and optimizing open source software and tools for the ARM architecture, is bringing together industry and the open source community to work on key projects, reduce industry wide fragmentation, and provide common software foundations for all. During the last Linaro Connect event at Las Vegas, a new BLE (Bluetooth Low Energy) product had been debuted!

The BLE Carbon is joint efforts by Linaro, 96Boards, and Seeedstudio, aims to provide economic and compact BLE solutions for IoT projects.Carbon is the first board to be certified 96Boards IoT Edition compatible that targets the Internet of Things (IoT) and Embedded segments.

While 96Boards, the open hardware standardization group, has an IoT Edition (IE) specification for low-cost ARM Cortex-A and Cortex-M development boards, it also has another two: the Consumer Edition (CE), the Enterprise Edition (EE).

Although Linaro and 96Boards named this board “Carbon”, Seeedstudio choose “BLE Carbon” which may reveal some future plans to produce other editions with the same technology.

BLE Carbon
BLE Carbon

Carbon has a Cortex-M4 chip, 512KB onboard flash, built in Bluetooth, and a 30-pin low speed expansion header capable of up to 3.3V digital and analog GPIO. Moreover, Carbon is the first SBC (Single Board Computer) to run the Linux Foundation’s Intel-backed Zephyr OS which is an open source, small, scalable, real-time OS for use on resource-constrained systems and IoT devices. A technical overview of Zephyr is available in this video.

The 60 x 30mm SBC preloaded with Zephyr RTOS runs on ST’s STM32F401 microcontroller. It also features two micro-USB ports, one of which is used for power, and has the required 30-pin low-speed connector. Analog pins and debug connectors are also onboard. In addition to 6x LEDs, reset, and boot buttons.

BLE Carbon Pin Assignments
BLE Carbon Pin Assignments

Here are BLE Carbon full specifications:

  • Processor — ST STM32F401 (1x Cortex-M4 @ up to 84MHz)
  • Memory (via STM32F401) — 96KB RAM; 512KB flash
  • Wireless — Bluetooth LE (2.4GHz nRF51822); chip antenna
  • Other I/O:
    • 2x micro-USB ports (1x for power)
    • 6x analog pins
    • SWD debug connectors
    • 30-pin (2 x 15-pin 2.54mm pitch) low-speed expansion connector (+3.3V, +5V, VCC, GND, UART, I2C, SPI, 4x GPIO)
  • Other features — 6x LEDs (UART Tx and Rx, power, BT, 2x user); reset and boot buttons
  • Power — Micro-USB based with fuse protect; 3.3V digital out; 0-3.3V analog in
  • Dimensions — 60 x 30mm
  • Operating system — Zephyr

How to use BLE Carbon

Here are what you need to start setting up the board:

  • USB to MicroUSB cable (x2)
    • This is needed for serial console interface and USB-OTG (including DFU support)
  • Switches
    • Two switches are provided: RST to reset the STM32F401 chip, BOOT0 to enter the STM32F4 bootloader
  • Pin headers (unpopulated)
    • Tx/Rx UART for STM32F4 chip
    • 5-pin SWD interface to STM32F4 chip
    • BOOT0 and BOOT1 lines exposed
    • 5-pin SWD interface to nRF51 chip

To start the board for the first time just connect the micro-USB cable to supply power to the Carbon. The board will begin to boot Zephyr immediately. You can use either of the micro-USB ports to power the Carbon. Currently, Linux is the only supporting host system for Carbon while Windows and Mac OS support is coming soon. Some Linux host applications are available here.

The BLE Carbon SBC can be pre-ordered from SeedStudio  for $27.95. More details about Carbon can be reached at BLE Carbon wiki and 96Boards full documentation.


Turn Your Raspberry Pi Into An OBD2

Thomas Beck started a new project to develop a Raspberry Pi based OBD2, On-Board Diagnostic tester, to read vehicle data, trouble codes, and read monitor data. He had developed earlier a firmware for the elektor OBD Analyser NG, a handheld analyser with graphical display, ARM Cortex M3 controller and open source user interface. Since this device is not available anymore, he is working on a new one.

The On-Board Diagnostics is a system that makes status of all vehicle subsystems reachable by the vehicle owner or the repair technician, the data are requested from the vehicle through a list of predefined codes, then the OBD device will process and display them.

The Old Elector OBD Analyser NG
The Old Elektor OBD Analyser NG

The Raspberry Pi must have similar interfaces to the OBD Analyser NG. On the user side there is a serial interface which is available at the Raspberry Pi GPIOs, but on the vehicle side a DIAMEX DXM OBD2 module is used. Thus, Thomas decided to develop a simple add-on board to make the module compatible for using with Pi.

Thomas used the DXM on his own OBD2-Analyser NG for prototyping the idea, and share his successful results with DIAMEX, the manufacturer of the DXM module, which accepted the idea and developed a Pi-OBD add-on board based on their modern AGV OBD2 module.

The Pi-OBD add-on board consists of an DIAMEX AGV OBD2 interface with an automotive-proven power supply/voltage regulator for the AGV, the Pi and a display. It has a PCB that suitable with the Raspberry Pi B+, 2 and 3. The complete system is powered via the OBD2 cable. The Pi-OBD uses a few GPIOs and covers some more. So, using a display connected via an HDMI ribbon cable is recommended.

DIAMEX Pi-OBD Add-On Board
DIAMEX Pi-OBD Add-On Board

As a result, there are two options to add OBD2 to Raspberry Pi:

  1. OBD2 for Raspberry Pi using the DIAMEX Pi-OBD add-on board, it needs:
    • Pi-OBD add-on board
    • OBD2 cable
    • 7″ touchscreen
    • Raspberry Pi/Raspbian with free serial device, e.g. /dev/ttyAMA0 or /dev/ttyS0
    • HHGui OBD2 software for the Pi
  2. OBD2 for Raspberry Pi using the DIAMEX DXM OBD2 module, it needs:
    • XM OBD2 module
    • A few additional parts like PCB (a breadboard will do), wires, connector for GPIOs, connector for OBD2 cable, optional but recommended: 2 resistors, 1 capacitor, 1 diode
    • OBD2 cable
    • Vehicle 12V socket to USB adapter + USB cable to power the Pi and the display
    • Raspberry Pi/Raspbian with free serial device, e.g. /dev/ttyAMA0 or /dev/ttyS0
    • Display for the Pi (minimum display size 320 x 165 pixels)
    • HHEmu OBD2 software for the Pi


This project is still in the development phase and it is open source. All technical details are available at its official page.

Traffic status on a wall clock

Use of traffic navigation apps to minimize the wait time on road is very common for drivers these days. Google navigation gathers data from the drivers who are navigating via Google Maps and shows the traffic flow on smartphones in real time. While this is a great feature to have in smartphone, it would be nice to have access to the same information in a much simpler way without the need to open the app. That’s exactly what this traffic status display wall clock does.

Traffic status indicator clock
Traffic status indicator clock

A regular IKEA wall clock is modified to have 12 RGB LEDs placed around it. The LEDs glow with different colors to indicate different traffic status. The LEDs are controlled by an Arduino board and 1sheeld. If you are not familiar with 1sheeld, it is an Arduino shield that allows the smartphone to be used as 40 different kinds of shields. Smartphones are equipped with many built-in sensors and a very high quality display. 1sheeld acts as a bridge between the smartphone and the Arduino board in providing access to all those features of smartphone. The link between the smartphone and 1sheeld is through Bluetooth. For this project, the 1sheeld retrieves the traffic information from the smartphone using Google Distance Matrix API and make it available to Arduino board, which in turn decides what color is to display using the RGB LEDs.