ENC28J60 Gateway (Was:- Not-So-Recent Changes)

While answering a question in another thread, I realized that I’d missed an exciting change which, from the number of hits related pages get, is sure to be of interest to readers of this blog.

Back in the March/April time frame, Martin Ger updated his ESP WiFi Repeater to support an SPI-connected ENC28J60 ethernet module.  The work was quite well hidden, way down the page in a very long README (which catalogues the tremendous amount of work that Martin has put into this project).  Martin credits Andrew Kroll “…for his great work on getting [this] right”, so kudos to both of them for a very useful addition.

ENC28J60 hardware

You’ll need to run your ESP at 160MHz and have a decent power-supply to have this mod work effectively, but as Martin points out, once you have the ENC28J60 hardware configured with his ESP WiFi Repeater package, you’ve got yourself a super-cheap, DIY access-point.

Advertisements

Recent Updates (20th Oct 2018)

esp-go  –  Pete Scargill’s re-badged “Hackitt & Bodgitt” code for a universal i2c Nano peripheral extender for the ESP8266.

Pete has mainly been updating the documentation for his code over the past couple of weeks.  In the latest release, the name has changed to “esp-go.doc” to reflect the re-branding.

 

badgy  –  SQFMI’s “Swiss Army” e-Ink badge,based on the ESP-12F.

SQFMI has updated the code to work with the latest version (3.0) of the GxEPD library.

 

mobile-rr  –  idolpx’s ESP8266 Mobile Rick-Roll Captive Portal.

idolpx has added some images to the documentation to help novice ESP8266 users get a better grasp of what they’re doing, as well as updating the code to add DNS overrides and improve the WiFi scan filtering.

 

Sonoff-Tasmota  –  Theo Arends’ all-purpose replacement for Sonoff firmware.

Theo has been steadily updating and improving the 6.2.1 version of his firmware with (in no particular order):-

  • A change to a non-blocking MQTT library as the default.
  • Add support for the DS3231 RTC.
  • Add TasmotaModbus library.
  • Add support for the HX711 load cell.
  • Add support for Pzem energy monitors.

…as well as various fixes.

 

IRremoteESP8266  –  A library to enable IR send and receive on the ESP8266.

Mark has updated the package to support Disney’s “Made With Magic” protocol.

 

 

 

Recent Updates

JLed – a library to provide painless control of LED blinking, breathing and fading effects.

Jan Delgado has updated his JLed library a couple of times over the past week.  The first update was a change specific to the ESP8266 to improve the 8-bit to 10-bit scaling, so that LEDs now reach full brightness.  The second change is the addition of a boolean return value to the Update() function to indicate whether the target effect is still active, or has completed.

OpenMQTTGateway – Bidirectional gateway for the integration of 433MHz, BLE and IR devices with MQTT.

Florian has made a small change to his OpenMQTTGateway to make the “TRACE” function compile-time selectable, in order to reduce the overall code size for those who don’t use it.

IRremoteESP8266 – A library to enable IR send and receive on the ESP8266.

Mark and his various contributors (including “crankyoldgit”) have added initial support for Elektra, Samsung and Whirlpool air-conditioners and experimental support for  Coolix and Lutron.  There are also additional fixes for Mitsubishi A/C and the IRMQTTServer code.

Esparto – A rapid development framework for ESP8266

Phil Bowles has added MQTT username & password functionality to his (relatively new) rev-2 version of Esparto, as well as fixing a couple of minor bugs.

 

esp8266-weather-station-color – An ESP8266 and ILI9341/XPT2046 based weather display.

Daniel and Marcel continue to update the colour weather-station display, with fixes for some I18N and WiFi issues.

A non-trivial ESP8266 project

If the name Aidan Ruff rings bells with you, it’s probably because of the frequent mentions he receives on Pete Scargill’s blog and for his designs of their “Hackitt & Bodgitt” series of ESP-based hardware (Aidan’s board designs, such as "Hackitt & Bodgitt" Nextion Display Boardthis ESP12 board aimed at supporting a Nextion display, are especially useful for general purpose ESP8266 development and he makes the files freely available on-line).

Aidan is in the process of having an old farmhouse (in an olive grove in Spain) rebuilt and, because there are no mains services (electricity or water) available, has embarked on what, to most of us, would be the non-trivial project of providing enough solar (and possibly wind) power and enough battery capacity to provide summer cooling and winter heating without having to resort to the use of a generator during prolonged, adverse weather conditions.  His outline plan on how he intends achieve this (along with some impressive floor-plans) are available on his “Off Grid in Spain” blog.

Of more specific interest to ESP aficionados though, is the solar-tracking sub-project he’s put together to ensure that the (MPPT) output from his panels is maximized by adjusting elevation and direction.  The tracker controller is an ESP8266-ESP12 of course, but with a novel twist.  Instead of using the tried-and-tested optical tracking method (with its inherent problem of “hunting” on overcast days), Aidan has hooked up a GPS receiver to the ESP and uses a combination of the precise time and positional data to compute where the sun should be in the sky at his particular location (whether it’s hidden by clouds, or not).  The ESP communicates via MQTT (but also has an embedded web server and an attached OLED display panel), which means that, with additional data from a connected weather station, Aidan can add features such as having the solar panels rotate down to lie flat when the wind speed exceeds a pre-set limit.

The initial prototyping and testing of the two-axis, linear actuator based tracker is already completed and Aidan has put up his board and mechanical design files and a couple of videos on a Hackaday I/O project page.  Unfortunately, at the time of writing, the ESP code doesn’t seem to be available either on that page or from Aidan’s GitHub repository, but despite that, it’s definitely a project worth watching (tracking?).

Battery not lasting as long as it used to?

Back in July of last year, Jeff King (@wb8wka) noticed that there was a problem with  ESP.deepSleep() calls using the ESP8266 Arduino Core.  Versions greater than 2.0.0 appear to ignore the WAKE_NO_RFCAL flag and the WiFi calibration routine is run every time the ESP wakes, adding around another 200ms to the total start-up time, as well as a corresponding current spike.

Jeff notes that using the Espressif “system_” calls, rather than the Arduino wrapped calls, results in the expected behaviour (that is, no calibration being run), so the problem does seem to be with the Arduino Core and, as of 2.4.0, it is still an issue.  Ivan (@igrr) has acknowledged the problem, but so far there is no fix.

So, if you’re using ESP.deepSleep() and your batteries don’t seem to be lasting as long as they used to, you might want to go back to Arduino Core 2.0.0 for building your battery-powered projects.


Ref: esp8266/Arduino issue #3408

TASMOTA Update

Over the past weekend, Theo pushed out another fairly big update to TASMOTA with some interesting new additions.

  • Language file support for:-
    • Portuguese
    • Czech
    • Bulgarian
    • Russian
    • Hungarian
    • Greek
  • Addition of  “rules”, to enable local, logical control of devices based on various inputs (so, for instance, a self-contained thermostat application can now be implemented internally on the Sonoff module, without requiring support via MQTT or other external methods).
  • Addition of KNX UDP protocol support to enable integration of Sonoffs into building automation projects.
  • The re-addition of variable support for MQTT client/topic values, using the ESP chip-ID.
  • Addition of a new, optional OTA upgrade method to allow for a PlatformIO-type “push” of large binaries (up to ~700kB) without requiring the use of a local web server.
  • Addition of support for hardware and software serial bridging (text only).
  • Addition of support for the Zengge ZJ-WF017-A PWM LED strip controller (ESP12S based).
  • Addition of support for the SGP30 air quality sensor.
  • Addition of sunrise/sunset option for scheduling (by geographical location).

As well as all of these new additions, there are a whole host of fixes and updates to existing features.  Definitely worth checking this one out!

 

Rust on the ESP8266

Here’s something which seems as though it might be of interest to a few people …Rust on the ESP8266. Rust logo “emosenkis” (Eitan Mosenkis) has put together a script to install the toolchain on a Linux machine, enabling the user to use PlatformIO and the Arduino environment to build Rust projects.  I haven’t tried this myself, yet (I don’t know the first thing about Rust), but it is something I’ve seen mentioned on other people’s “wish lists” now and then.

So, Rust enthusiasts, give it a try and report back and let us know how you get on (and why we should all convert …or not).