Just a quick post to let you know I'm still here. The times have been busy. And I have not integrated blogging into my routine of daily activities.
Let's change that.
I should really try to do this on a regular schedule at first... regardless of how little I have to say... (ha ha). I like to do productive things in the morning... so I think I will try to make an entry in the morning when I have something to say.
Should I try to do this every day? I will try.
So let's begin...
Monday, May 8, 2017
Friday, November 11, 2016
First Practical Example
Well I have been working on my ESP Widget device and finally have a practical application up and running. Here it is up and running on my test widget...
What it does is rotate the display between consecutive segments of Interstate 45 as it passes through Houston. For each segment is will display the average speed and the NeoPixel will be changed to a color corresponding to the speed.
It is actually driven by a backend application that scrapes the public traffic site and formats the data for display on the widget. Perhaps in time I will publish this as an example.
What it does is rotate the display between consecutive segments of Interstate 45 as it passes through Houston. For each segment is will display the average speed and the NeoPixel will be changed to a color corresponding to the speed.
It is actually driven by a backend application that scrapes the public traffic site and formats the data for display on the widget. Perhaps in time I will publish this as an example.
Wednesday, November 2, 2016
Developing With MicroPython on the Wemos D1 Mini
Just a quick post about the utility I created to edit files on my Wemos D1 Mini using the AMPY file utility by Adafruit. I wrote a small wrapper GUI around the command line app to make working with files easier.
The source code can be found here...
https://github.com/joewez/AmpyFileManager
The source code can be found here...
https://github.com/joewez/AmpyFileManager
Monday, October 24, 2016
Introducing the ESP Widget
Well after much wrangling with the firmware code, I finally have a version that seems to be stable. With this milestone out of the way, I feel it is time to show you my latest work. I call it the ESP Widget.
It's a small USB-powered device that constantly retrieves information via Wifi and displays it on a small OLED screen. It is built around a Wemos D1 Mini ESP8266 board and runs an application written in MicroPython.
Here is the actual schematic for all of the connections:
The case was 3D printed of course, which was designed in OpenSCAD.
The final piece of the puzzle was the firmware to make it work. I will make another post about that.
It's a small USB-powered device that constantly retrieves information via Wifi and displays it on a small OLED screen. It is built around a Wemos D1 Mini ESP8266 board and runs an application written in MicroPython.
Here is the actual schematic for all of the connections:
The case was 3D printed of course, which was designed in OpenSCAD.
It was a tight fit, and the wiring was a bit tricky, but with some tweezers it seemed to work fine,
The final piece of the puzzle was the firmware to make it work. I will make another post about that.
Friday, October 21, 2016
Programming the Wemos D1 Mini
I have found that there are two viable choices for development (for me) with the Wemos D1 Mini... either the Arduino development environment or MicroPython.
ESP8266 Arduino
Having experience with Arduino is a big help when getting started using that approach. They have already done alot of the work for you here http://www.esp8266.com/ and all you need to do is add
http://arduino.esp8266.com/stable/package_esp8266com_index.json
to your board manager and then you can import the libraries.
There is an extensive list of examples, especially dealing with Wifi and Internet communications.
I'm really impressed with the Arduino support for my D1 Mini. I can access all of my shields (except my neopixel shield) and the code is all C. It works well and I have to say it would be my main development route if it were not for a couple of reasons.
MicroPython
I am not a Python programmer, but am very interested in learning it because of all of its positive attributes. As I am just starting out, I am copying code more than I am writing it, but I have to say it is a really nice language.
First of all, it is a much higher level of programming... so it takes less code to do the same things. Instead of layer after layer of C code, it equates to one or two layers of Python and that's it. Neat.
The second nice thing is that it is REALLY Python 3.0. As I program the microcontroller, I am learning the "big" Python language as well. Bonus.
Finally, I am finding Python FUN! After years of C# and VB.NET programming, I am enjoying the simplicity, the readability and the power of Python.
ESP8266 Arduino
Having experience with Arduino is a big help when getting started using that approach. They have already done alot of the work for you here http://www.esp8266.com/ and all you need to do is add
http://arduino.esp8266.com/stable/package_esp8266com_index.json
to your board manager and then you can import the libraries.
There is an extensive list of examples, especially dealing with Wifi and Internet communications.
I'm really impressed with the Arduino support for my D1 Mini. I can access all of my shields (except my neopixel shield) and the code is all C. It works well and I have to say it would be my main development route if it were not for a couple of reasons.
- Deep Code Nesting.
The libraries of course build on one another, and sometimes you have problems that originate, deep in the library code... which may or may not be C. It could be C++ which is different. I was getting errors at high level calls, but was unable to trace it all the way down to where I could understand the problem and fix or work around it. - Difficult Debugging
Similar to above, there were many reasons why it was hard to get something original big and complex working.
MicroPython
I am not a Python programmer, but am very interested in learning it because of all of its positive attributes. As I am just starting out, I am copying code more than I am writing it, but I have to say it is a really nice language.
First of all, it is a much higher level of programming... so it takes less code to do the same things. Instead of layer after layer of C code, it equates to one or two layers of Python and that's it. Neat.
The second nice thing is that it is REALLY Python 3.0. As I program the microcontroller, I am learning the "big" Python language as well. Bonus.
Finally, I am finding Python FUN! After years of C# and VB.NET programming, I am enjoying the simplicity, the readability and the power of Python.
Thursday, October 20, 2016
Another Diversion
I guess it is in my nature to have more than one project going at a time. While I tend to obsess, and focus on a single project during the duration, sometime I have to back away and do something else.
So, I have put off the final steps of building my Cherry 3D Printer, to work on another fun project. This one is related to the Arduino, but is more closely described as an ESP8266 obsession. This little chip is like a little Arduino with built-in WiFi capabilities and it only costs a few dollars. It's great.
Wemos D1 Mini
There are actually many ESP8266 boards available, but the one I have settled on is the Wemos D1 Mini. It's cheap at around $4 shipped and it has a nice ecosystem of shields that make it easy to experiment with.
There are shields for...
So, I have put off the final steps of building my Cherry 3D Printer, to work on another fun project. This one is related to the Arduino, but is more closely described as an ESP8266 obsession. This little chip is like a little Arduino with built-in WiFi capabilities and it only costs a few dollars. It's great.
Wemos D1 Mini
There are actually many ESP8266 boards available, but the one I have settled on is the Wemos D1 Mini. It's cheap at around $4 shipped and it has a nice ecosystem of shields that make it easy to experiment with.
There are shields for...
- Lipo Battery powering and charging
- SD Card shield
- Relay Shield
- Neopixel Shield
- Button Shield
- etc...
MicroPython
The best part about the ESP8266 is it's ability to be programmed in Python! I am talking about MicroPython of course, This great piece of software is an amazingly complete implementation of Python 3 for a microcontroller!
I will be documenting my experiments and projects coming up. Exciting!
Wednesday, August 17, 2016
Differences From The Basic Cherry 3D Printer
Here are some of the changes that I am having to face when trying to build my own version of the printer.
Base Material
About the only locally source of MDF is from the Home Depot hardware store. I chose to use a 1/2"inch thickness which works out to 12.7mm. I was able to buy a 2ft x 2ft piece for about $6. This would be sufficient for the base and any extra bracing I might want to add.
Base Construction
Instead of gluing the base together, I chose to use small wood screws. Only a few are needed in a few key spots to hold it all together well.
Smooth Rod Lengths
While I was eventually able to source the correct lengths of smooth rod for the printer, I decided to use a set of different lengths to see how they affected the design and construction. For the X-Axis smooth rods, we have to adjust the width of the base to accommodate for the difference from the 17.5 cm. With different Y-Axis smooth rods, our bed length will change. Finally, any differences in the Z-Axis smooth rods have little impact on the overall design.
Base Material
About the only locally source of MDF is from the Home Depot hardware store. I chose to use a 1/2"inch thickness which works out to 12.7mm. I was able to buy a 2ft x 2ft piece for about $6. This would be sufficient for the base and any extra bracing I might want to add.
Base Construction
Instead of gluing the base together, I chose to use small wood screws. Only a few are needed in a few key spots to hold it all together well.
Smooth Rod Lengths
While I was eventually able to source the correct lengths of smooth rod for the printer, I decided to use a set of different lengths to see how they affected the design and construction. For the X-Axis smooth rods, we have to adjust the width of the base to accommodate for the difference from the 17.5 cm. With different Y-Axis smooth rods, our bed length will change. Finally, any differences in the Z-Axis smooth rods have little impact on the overall design.
Subscribe to:
Posts (Atom)