Collection of articles and sources

Website Structure








3D Printing







3D Printing

Digital Ph









This site is a collection many years of self-learning and research in various topics. Most if not all of my learning has come from the using the Internet, a powerful and valuable resource for anyone with access using a smartphone, tablet or computer.

The following topics will be discussed and grouped as follows:



3D Printing



Internet of Things


Web Development


Digital Photography



Topics will include information, tutorials and tips, links to other sources

The Internet is a vast library of learning materials both free and with paid subscription. Browsing on-line tutorials and courses may not replace a college degree or formal learning in an accredited university when looking for a job – but they can be useful secondary sources of information while studying or a great place to start learning something new to complement the skills you already have.

If you can learn a new language or skill online and put it to use – this will make it much easier to complete a formal course of study which leads to a degree or certificate. Career wise – if you already have a degree and a job, but want to seek other positions – this will certainly help make you a more viable candidate. If you are looking for a job but don’t have a degree or certificate, don’t be surprised if your pay or benefits are lower than your college graduate peers. You can still get that degree or certificate with one big advantage – you already know the stuff.


3D Modeling & Printing

3D printing is a form of AM (Additive Manufacturing) that produces a three dimensional solid object from a digital file. This section will look at how to create the digital file and print the solid object.

Solid shapes are printed in layers or slices which takes a solid 3D model created using software and prepares it for printing. When you design a par for 3D printing – there are conventions and rules that should be followed in order for your design to be successfully printed.

Most ordinary image printing is done by selecting the print command in an application – whether a Word document, spreadsheet, digital photo or drawing. 3D printing requires an application that also has a print command for 3D printing but with a few additional steps before submitting the request to the printer. Depending on the software you use for designing the model, you will need to prepare a special file whose format ends with STL. STL is short for stereolithography and without going into too much detail – the format gives the printer the command to print each slice that will result in the final shape of the model. Some software already have this feature built in and some printers may require a different format – usually a proprietary format exclusive to the printer.

We will look at how to create an image that can be printed as a 3D object beginning with the software needed to create and prepare the image for output and several ways that it can be printed


To demonstrate 3D design and printing, the following projects will be implemented

  1. Design & print a 3D protective case for an Arduino Uno board.
  2. Design & print a 3D part for a tool fixture


    1. Drill holder for Drill Press

Protective Case:

The Arduino Uno is one of several boards covered in the IOT section. Most boards come in static proof wrapper ready to use but to insure that the boards are not damaged while handling or from static electricity – it is best to put them inside a protective container.

3D Software

Now that we have 2 candidates for design, we will start with one of several free CAD applications available


TinkerCAD is a web based 3D modeling application from AutoDesk. It is designed primarily for hobbyists and newbies who have little or no experience with 3D CAD. The tools are somewhat limited when compared to the professional vesions like SolidWorks or AutoDesk Invent but you can export STL files for 3D printing or SVG files for laser cutting.

OpenScad (advanced students)

OpenSCAD is software for creating solid 3D CAD models. It is free software and available for Linux/UNIX, Windows and Mac OS X. Unlike most free software for creating 3D models (such as Blender) it does not focus on the artistic aspects of 3D modelling but instead on the CAD aspects. Thus it might be the application you are looking for when you are planning to create 3D models of machine parts but pretty sure is not what you are looking for when you are more interested in creating computer-animated movies.

Blender (serious students)

Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing and motion tracking, even video editing and game creation.

Fusion 360

Fusion 360 is a cloud based 3D CAD environment from AutoDesk – makers of AutoCAD and many popular design tools. Fusion 360 is a very powerful and fully featured 3D CAD tool that could be compared to the professional Catia SolidWorks and Siemens SolidEdge. While Fusion 360 is a fee-based subscription you can apply for a free startup or non-commercial license. This is a great tool to start and grow with


FreeCAD is an open source modeling software used by engineers, inventors, illustrators and artists to design objects in 3D space. As the name implies FreeCAD is free and can be downloaded from GitHub or Sourceforge. The software is available in different versions for Mac, Windows and Unix. You can download the binary version which installs automatically or the source files which requires compilation but gives you some flexibility in customizing it to suit individual needs.

For this exercise – I am choosing to download the binary version on my older Macbook Pro. I also have a VirtualBox app that runs Ubuntu – a Linux distribution which allows me to run Ubuntu on top of the Mac OS. I will discuss running

Evaluation of CAD software

So far I have tried 3 of the above – FreeCAD, Fusion 360 and TinkerCAD.

FreeCAD is very powerful but clunky and sometimes difficult to install. Its website has a message on the downloads page that “FreeCAD under heavy development and may not be ready for production use”. Not sure what that means or what exactly it refers to. There are Windows, Mac and Linux distributions available – but pay close attention to system requirements and make sure you download the correct distribution for the version of OS you are using. I recommend downloading the binary application instead of compiling from source. Since it is a free-source application and as with anything free-source, it relies on volunteers who get little if any compensation for their hard work. You can donate or volunteer if you feel it is worthwhile. Programming

Tinkercad is a great beginner tool but relies on user’s spatial coordination and creativity to use. Unlike other CAD applications where you can sketch in 2D and extrude, sculpt or create pockets, Tinkercad provides a collection of 3D shapes that you select from a sidebar, modify its properties and dimensions, and then finally group to transform into the desired result. For example – to cut a through hole in a plate, you add and position a cylinder shape into the plate. With the cylinder selected – you change its state from solid to transparent. Select the both the cylinder and plate then group them so it forms a hole in the plate

Fusion 360 Is about as close as you can get to the more powerful, expensive and commercial 3D modeling software like Dassault Solidworks. That being said – if you really want to learn how to do serious 3D modeling – start with this tool. There are

3D Printing

If you want to 3D print something you will need a model to send to the printer. There are two ways – create your own using one of the many CAD applications available (see previous section on modeling) or download a design from one of these sites

Learning about 3D Printing

Three different types of 3D printing


Liquid Based / SLA: SLA stands for Stereolithography Apparatus. Under SLA, 3D objects are formed by subjecting liquid-based epoxy resins to UV lasers. These resins are placed in a vat chamber and are photo-sensitive in nature, solidifying immediately on coming in contact with UV light. Since this light source is a laser, this technology is capable of very high resolutions. A variation of SLA is DLP or Digital Light Processing, where the light source is an image projector instead of a laser.

Image result for Liquid Based SLA


Powder Based / SLS: SLS stands for Selective Laser Sintering. The raw material commonly used for SLS is nylon powder. The power is filled inside a vat and is sintered using high intensity laser light, one layer at a time. Objects printed using SLS are hard and brittle in nature, capable of retaining very fine details and an excellent finish when subjected to post processing.


3 –

Solid Based / FDM: Arguably the simplest 3D printing technology, Fused Deposition Modelling printed objects by heating the input filament of material to its melting point and then depositing it one layer over the other using a fine nozzle. FDM is commonly used for small, portable desktop 3D printer, and can print simple, everyday objects like a smartphone cover with ease.


Which Materials Are Suitable For 3D Printing?

A wide range of materials can be 3D printed, the most common ones being plastic, nylon and a range of resins. Other materials include paper, glass, metal and even food! Recents advancements in the field have given rise to a whole to new domain – that of 3D bioprinting, where 3D printers have been utilized to print living tissue and completely functional organs!

Table 1 – Courtesy: Onebeacontech

Applications of 3D Printing

The ability to create objects from digital data implies that 3D printing has virtually limitless applications in almost every field. 3D printing is being widely used for rapid prototyping, by the virtue of its impressively short design-to-market turnaround time. Automotive, aerospace, white goods and even consumer electronics manufacturers are taking full advantage to rapidly introduce more products to the market within a relatively short span of time.

3D printing also finds applications in healthcare. The medical fraternity is touting it as a revolution in patient specific solutions, with customized prosthetics and implants being made available to more and more people with the help of 3D printing.

Courtesy: 3Dengr

Other industries where 3D printing is slowly but surely making it’s mark are fashion and infrastructure. The jewellery industry in one of the few that has already adopted this technology as the primary source of manufacturing. Adidas has plans to mass print an entire range of customizable shoes. 3D printed houses are now a reality, companies in China have been able to print low cost structures in incredibly short time.

Challenges & Limitations

Like any other new technology, 3D printing faces 3 major challenges of Awareness, Acceptance and Regulation. A sizeable chunk of manufacturers are still oblivious to this technology, and the ones that are aware are often hesitant to integrate it into their businesses. There is also a need for regulating and standardising practices in 3D printing industry. Policies need to be set in place that will both curb its misuse and also encourage mass adoption.

Future of 3D Printing

According to Wohler’s Report 2016, the market size for 3D printing industry stands at $5.165 billion as of 2015, and is projected to surpass $30.19 billion by 2022. As more and more industries adopt this technology, 3D printing is slated to change the face of consumerism. Everyday products like cutlery, jewellery, decor furniture and possibly even food and designer clothing will be printed right within the confines of home.

Localized manufacturing will largely reduce the cost of logistics and need for inventory. Orders will be ‘printed’ based on demand. Retail will see the rise of mass customization thanks to 3D printing, where every order can be customized as per specification and quickly printed out. With every domain that it touches, 3D printing will slowly change our lives.

Popular 3D CAD File formats for 3D printing


Service Bureaus for 3D printing

If you have don’t time and budget for a 3D printer – you can send your STL or compatible files to one of several service bureaus who will print your model and ship to your home or business. This is a great way to get started and become familiar with 3D printing before deciding what would be the best 3D printer you will need.





Creating an STL file


In this section – I will discuss the many different kinds of devices that are interconnected using home wireless networks.

Safety and Security Considerations

The use of wireless devices in your home network must be handled with care. Without taking some precautions to secure the devices, they can provide a gateway for hackers. Without taking some precaution to protect your network and devices, any unsecured device can be infected with malware and transform an innocent IOT network into a botnet, a short way of saying robot in your network. Once a botnet is created, it can act as an agent controlled by cybercriminals to send email spam, engage is fraudulent campaigns and generate traffic for malicious DDOS or distributed denial of service attacks.

The articles list below provide more insight and tips on how to protect your own home network


Operating Systems

There are several ARM V6 compatible operating systems that can run on the Raspberry PiDownloads Page – Incudes the following: – –

  • Raspian – Supported Raspberry Pi OS based on Debian –
  • Arch Linux Arm V6 –
  • Ubuntu Mate – use this to run Ubuntu on your Raspberry Pi (2 or 3)
  • Snappy Ubuntu Core – use this if you are a developer and have an SSO account
  • Windows 10 IOT Core – Run Microsoft Windows 10 for IOT devices on your Pi
  • OSMC – Open Source media Center – used for
  • Weather Station


Raspberry Pi

Setting Up Raspberry Pi

Securing your Raspberry Pi –

What you need
  • Raspberry Pi Board – Version 2, 3 or Zero
  • SDHC Card Class 6 –or 10 with at least 4GB. Recommend at least 8 or 16 gb

LCD Touchscreen

Alternatives to Raspberry Pi

Eight Alternatives to the Raspberry Pi –


Arduino boards are controllers and do not have operating systems. Instead they rely on open source desktop / laptop IDE to compile and test executable code that is uploaded to the devices. The IDE application can run on any computer – Mac, Windows, Unix and can be downloaded from the Arduino website. The IDE is free but donations are accepted. There is also a cloud based IDE available



Adafruit HUZZAH ESP8266 breakout


Getting Started With the ESP8266 and DHT22 Sensor

How to Connect an LCD Display to ESP8266 NodeMCU

Desktop Systems for IOT

Tinkercad – Circuits – –

Vagrant –

Mu –

Sensors and Effectors

Temperature and Humidity Sensors

Temperature & Humidity – Arduino

Portable Arduino Temp/Humidity Sensor with LCD

Temperature & Humidity – Raspberry Pi

Display Temperature on LCD – Arduino

LED Temperature indicator

Temperature Indicator using LED

You can pop down to the hardware store or department store and pick up a digital temperature display monitor for a few bucks. Where is the fun in that when you have an Arduino or Raspberry Pi board sitting around and some temperature sensors still in the anti-static bag the last time you ordered stuff from ADA fruit?

Temperature Display LEDs

I found a few sources on the web (posted at bottom of article) and I am going to build a few different variations of temperature display devices using both Raspberry Pi and Arduino

Here is a simple project where you can take an Arduino UNO and connect to an LCD and Temperature Sensor

Another simple project where you can take an Arduino UNO and connect to an LCD and Temperature Sensor that measures both Temp and Humidity

Temp and Humidity Sensor with Arduino MKR1000 Board

Tutorials about temperature Sensors

DHT temperature and humidity sensors

Figure 5 DHT11 and DHT22 Sensor

Power & Distance

ESP8266 Power Meter

Time of Flight & Distance Sensor

FeatherWing OLED - 128x32 OLED Add-on For All Feather Boards




Measuring Light with a BeagleBone Black



GPS Featherwing


Water Sensing (Water heater or Sump Pump Failure


Weather Station

Feather Weather Lamp

IR Sensors


Feather Wing


FeatherWing Stacking Headers –

Feather Stacking Headers - 12-pin and 16-pin female headers

Featherwing Doubler –


Feather Wing Proto –

GPIO – Raspberry Pi Expander

GPIO expander: access a Pi’s GPIO pins on your PC/Mac


Adafruit IO Basics: ESP8266 + Arduino

Adafruit Feather HUZZAH with ESP8266

Adafruit HUZZAH ESP8266 breakout


Adafruit Feather HUZZAH ESP8266

Cloud-Connected ESP8266 Power Meter (Arduino)

How to build your own power meter using the ESP8266 boards and send data to the ADAFruit IO Website

ESP8266 Send DHT Temperature & Humidity to MQTT & OLED Display

Picture of ESP8266 Send DHT Temperature & Humidity to MQTT & OLED Display

ESP8266 Send DHT Temperature & Humidity to MQTT & OLED Display

ESP8266 Power Meter


ESP8266 Temperature *& Humidity Home Automation in the Cloud

Build a Mini Robot Rover


Figure 6 Robotic Car Kit

Figure 7 Robotic Car – Assembled

Suggested Add-ons:

    1. Design and Build New Main Wheel
    2. Use larger Stepper Motors – more power
    3. Add more weight to front of existing chassis
    4. Design New Chassis with power steering


Thermal Camera Breakout

Wifi PiCam

Smart Bathroom – can be used to build a smart Doorbell Sensor

LED Acrylic Sign

Huzzah Weather Display


Programming & Interaction with Devices



Learning Python


Circuit Python

Circuit Python Essentials –

Building Circuit Python

IOT Web Sources

OpenBuilds – – Desktop CNC Routing and Milling

SST – Sensors for detecting air and water leaks

80 / 20 Industrial Erector Set –


Tarts Wireless Sensors –



Thingspeak –



  • Table Saw – Bosch


      • Needs a sled for holding small pieces
      • Needs



  • Bandsaw – need to make using a jigsaw
  • Sander – need to make
  • Grinder – purchase benchtop
  • Drillpress – need to make
  • Vise – purchase



This section covers many programming topics that I am familiar with and currently use in many of my projects. It will provide some examples of how these programming languages are used and the tools or IDEs (Integrated Development Environment) used

Where to learn

You can learn from various sources without spending a dime. If you have time – your local or university library would likely have many books and magazines that you can peruse. If you don’t have time to make trips to a library – the internet is your best bet

Not all learning is free – but many are very affordable and provide excellent quality learning materials through videos and online books that you can watch on your own time, download to your mobile device and take it with you.

It is not required that you have membership or subscription to any of them – but I will refer to them often for recommended learning

  1. – free

W3schools is a free resource for learning about many of the things we will cover here. I will often refer to this site for more details

  1. – $19 a month basic / $31.25 a month for annual premium is an excellent site with thousands (literally) of videos covering a wide range of topics in Software Development, Design, Business, Web Development and Photography. It requires a monthly subscription starting for less than $20 a month with a 30 day free trial – but you will have unlimited access to all the different courses available.

  1. (not reviewed) $39 a month

You probably have seen many books from Safari in your favorite bookstore or online. Now – you can view these books online like many colleges and businesses who use SafariBooksOnline as a resource for their vast collection of printed books. SafariBooksOnline has expanded into video based instruction like You can sign up for individual subscription with a 10 day free trial.

  1. Pluralsight (not reviewed) $29 a month

Like and – Pluralsight is another major player.

  1. (not reviewed)

Programming Sources – Where to start

* – requires subscription

Learning Ruby

Learning Ruby requires little to get started and you can learn Ruby without downloading anything

Where to Begin

  • Free –
  • Premium –

Learning Ruby on Rails

Ruby on Rails is a Web Application written using the Ruby programming language. While it does help to understand Ruby – it is not a prerequisite to learning how to use Rails

Where to Begin

  • Free –
  • Premium –

Learning Javascript

Javascript is one of the top scripting languages for web page development. Unlike other programming languages like C# and Java, Javascript doesn’t require a compiler to make executable files. It is much easier to learn and use.

Where to begin

  • Free –
  • Premium –

Web Development Toolkits and Tools

Mozilla Developers Network





CSS Diner




browser support

pseudo element selector



CSS Frameworks

Learning Bootstrap

Bootstrap is not a programming language – rather it is a toolkit to help developers quickly build responsive webpages using predefined Javascript and CSS3 scripts. With Bootstrap, a single HTML page can be transformed to display or limit content across multiple devices ranging from small smartphones to large desktop monitors.

Where to Begin

Educators’ & Authors’ websites


Website Design Inspiration

Website Project



Amateur vs Professional – the basic difference between and an amateur and professional is one does photography for the love of it and the other depends on it for a living. The works of an amateur can rival that of a professional and sometimes can be paid for their works

Gallery of Works

  • Koken
  • Flickr
  • 500PX

Software Tips and Tutorials


WordPress Themes

Template Monster

Sources in this site

NextFab –

RepRap – 3D printer motors and components –

Screen Recording for Tutorials

Mac –

2019 Goals and Projects

  1. Finish This Outline!
  2. Design Website and document
  3. Evernote – subscription and learn to use
  4. Screen Capture for tutorials on how to use software
  5. 3D Printing – create something and send to one of service bureaus
  6. Visit/Explore NextFab
  7. Website – move to cloud 1 & 1 or get a better plan?
  8. Joomla – learn
  9. MediaWiki – install

Blog Topics and Sections

All about ESP8266

These instructions written for the Mac

What is ESP8266?

A Beginner’s Guide to the ESP8266 –

Setiing up

Before installing any firmware – it is best to erase the flash drive using the following terminal command –port <serial-port-of-ESP8266> erase_flash – how to install on your mac

–port – how to determine your boards port



  1. Arduino Desktop Software (Mac / Win / Linux)
  2. Board (ADAFruit Feather Express ESP8266 with WiFi
  3. Micro USB Cable (power and data)


  1. Micropython Firmware
  2. Board (ADAFruit Feather Express ESP8266 with WiFi
  3. Micro USB Cable (power and data)

Circuit Python

  1. Circuit Python Firmware
  2. Ampy editor
  3. Board (ADAFruit Feather Express ESP8266 with WiFi
  4. Micro USB Cable (power and data)


Connecting LCD via Backpack

Connecting OLED Display –

Understanding GIT and GIT Hubs

Setting up GIT on your computer

3D Printing

Creality CR10s Printer


  • Adding TH3D Bed Leveling system

Firmware Upgrades

  • Downloading and flashing firmware updates
  • Resetting the EPROM