How to set up Arduino IDE for esp8266 programming

The Arduino (or in some cases also Genuino) is a physical hard and software development plattform. During the recent years its developing environment grow to a useful and library rich developing platform. Because of that the esp8266 team created an conversion tool to its internal programming language lua.

Setting up the Arduino IDE for esp8266 programming is really easy. Just follow this small guide.

Step 1: Download the arduino IDE software

Go to the most recent version download page of the Arduino IDE. Please keep in mind that you’ll need at least version 1.6.x. In some cases it is not available at the packet repositories of your beloved Debian Distribution.

screenshot-from-2016-12-28-15-22-44Click on Windows, Linux or Mac Version of your choice. We are going to use the Linux 64bit for further pictures.

screenshot-from-2016-12-28-15-24-53Extract the provided tar.gz. For windows or Mac please use a extraction software like 7zip, Winrar etc accordingly.

screenshot-from-2016-12-28-15-28-32Please make sure the arduino.sh file in your directory is excecutable.

screenshot-from-2016-12-28-15-28-49

screenshot-from-2016-12-28-15-29-01You also can use the terminal command:

After that double click the application…

screenshot-from-2016-12-28-15-33-03or use the terminal to start the IDE. This is also very useful to see possible errors after they occure while flashing the esp8266 from time to time.

 

screenshot-from-2016-12-28-15-33-21

Et voila, your IDE should look somehow like this:

screenshot-from-2016-12-28-15-34-45

Step 2: Setting up the IDE to work with ESP8266 by board manager.

We need to add an additional url to the boards manager sources list. For that open File > Preferences

screenshot-from-2016-12-28-15-37-55

And add http://arduino.esp8266.com/stable/package_esp8266com_index.json  to the Additional Boards Manager URLs.

screenshot-from-2016-12-28-15-38-25After that open Tools > Boards > Boards Manager and search for esp8266.

screenshot-from-2016-12-28-15-39-28

install the latest version:

screenshot-from-2016-12-28-15-40-02

After that you should be able to select the Generic ESP Module board in Tools > Board

screenshot-from-2016-12-28-15-41-22

screenshot-from-2016-12-28-15-42-15Congratulations! You are now able to compile esp8266 code from the arduino IDE.

Step 3: Use the Examples to learn to code

This step is easy. Open File > Examples > ESP8266Wifi > WifiWebServer as a good starting point.

screenshot-from-2016-12-28-18-12-55

In the next post we will have a look at how to wire the ESP8266 up for an easy flashing.

Building a wifi LiquidCrystal-Display esp8266 for less than 10 EUR

As planned, I now built and esp8266 version of the display. Because the breadboard version was working quite well from the start, I decided to build a more permanent version.  The 5V of the USB Cable (or any other 5V Source) gets stepped down by a LM2596 circuit in a Fp6190 I purchased some time ago. This is a quite cheap and energy efficient solution. The complete setup requires about 70mA at 5Vs. This surely can be optimized by dimming the brightness of the display. In case you want to build your own wifi LiquidCrystal-Display esp8266 use the details provided below and check the code on Github. Happy hacking!

Parts List

  • 2,00€ ESP8266 12-Q
  • 2,00€ Fp6190 5V to 3.3V step down converter
  • 1,50€ LiquidCrystal-Display Blue
  • 1.6kOhm resistor or 10k potentiometer
  • prototyping board
  • cables
  • pins

 

Wiring

Code

This time on GitHub.

 

Smart Electronics LCD Module Display Monitor 1602 5V Blue

LiquidCrystal-Display blue 1602 Arduino Nano

I recently bought several “Smart Electronics LCD Module Display Monitor 1602 5V Blue” for building a wifi alarm clock. It uses the very common Hitachi HD44780 driver. To verify if they are working I followed this well described tutorial on arduino.cc and used a arduino nano for that. Removing the 10k ohms resistor, because it dimmed the LED background light way to much and after adjusting the potentiometer to about 1,64k ohms the visibility of desired output was optimal.

For the sake of documentation the:

Wiring

Code

The next step is to connect it to an esp8266 and figuring out if the new 3.3V signal strength will be enough. A possible solution would be to use the esp8266 only as a communication device.

FritzBox Python Class Fritz OS 6.30+ syncing Google Calendar

This project allows to interact with your FritzBox above the new FritzOS 6.30 to 6.60 (tested with Fritzbox 7490 and 7390) by using a self written FritzBox Python Class. It furthermore uses the Google Calendar API to enter phonecalls and online devices status into your google calendar. To use the Google Services you will need to generate your own client api credentials including a valid calendar json. For the expected format see the provided default files.

Of course the FritzBox Python Script also works stand alone, an provides following functionality:

  • read out last 400 phone calls
  • list current network devices

Of course I plan to increase that functionality:

  • add a config.json
  • implement CalDav Support for non google solutions
  • add pictures of google calendar entries
  • enable gant charts of devices (d3js?)
  • get FritzBox phone book(s)
  • sync phone books to Google Contacts
  • sync phone books to CardDav

I’ve you are interested to use or join me developing:

General Usage FritzBox python class

General Usage Google Calendar Wrapper

For phone calls:

For active devices tracking:

 

This also works for multiple FritzBoxes, here you see all phone calls of a week:

FritzBox Python Class - calendar view

FritzBox Python Class – calendar view

It’s pretty easy to add this script to a raspberry pi located in the network of the router. You’ll also can setup an vpnc connection between the box and an server or use a dynamic ip and a custom port.

3 axis 28BYJ-48 ROS controllable flash light

I have found a bit older project of mine while browsing through my photos.. on a relatively unclean desk you can see a combination of two 28BYJ-48 motors, some screws, metal parts and a flashlight. Last of them could be replaced for example by a laserpointer, simple sensor or a distance measurement device.

Originally this was created to be placed on my amosero robot as a very simple form of an robot arm. Sadly work forced me to not follow that project side track any further which is why I can’t share more than these pictures: IMG_0068 Maybe some when if time allows, I will recreate this and make it more accessible.