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.
I will be covering topics in each of these areas:
- 3D Modeling and 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
- Design & print a 3D protective case for an Arduino Uno board.
- Design & print a 3D part for a tool fixture
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.
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.
http://www.openscad.org (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.
http://www.blender.org (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 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
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
- Thingiverse http://www.thingiverse.com
- Youmagine http://www.youmagine.com
- Smithsonian X 3D http://3d.si.edu
- British Museums 3D fossils http://www.3d-fossils.ac.uk
- African Fossils http://africanfossils.org
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.
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.
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 – 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.
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
STL, OBJ, VRML, SVG
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
- Definition of botnet – http://searchsecurity.techtarget.com/definition/botnet
- Detecting and removing botnets – http://searchsecurity.techtarget.com/tip/Botnet-removal-Detect-botnet-infection-and-prevent-re-infiltration
- How to Secure your (Easily Hackable) smart home – https://www.tomsguide.com/us/secure-smart-home-how-to,news-19380.html
- Raspberry Pi Firewall and Intrusion Detection System – http://www.instructables.com/id/Raspberry-Pi-Firewall-and-Intrusion-Detection-Syst/
There are several ARM V6 compatible operating systems that can run on the Raspberry PiDownloads Page – Incudes the following: – – https://www.raspberrypi.org/downloads/
- Raspian – Supported Raspberry Pi OS based on Debian – https://www.raspberrypi.org/downloads/raspbian/
- Arch Linux Arm V6 – https://archlinuxarm.org/platforms/armv6/raspberry-pi
- 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
- ICHIGOJam RPI
Setting Up Raspberry Pi
Securing your Raspberry Pi – https://opensource.com/article/17/3/iot-security-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
Alternatives to Raspberry Pi
Eight Alternatives to the Raspberry Pi – https://www.howtogeek.com/330966/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
Desktop Systems for IOT
Sensors and Effectors
Temperature and Humidity Sensors
Temperature & Humidity – Arduino
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 DHT11 and DHT22 Sensor
Power & Distance
ESP8266 Power Meter
Time of Flight & Distance Sensor
Measuring Light with a BeagleBone Black
Water Sensing (Water heater or Sump Pump Failure
Feather Weather Lamp
FeatherWing Stacking Headers – https://www.adafruit.com/product/2830
Featherwing Doubler – https://www.adafruit.com/product/2890
Feather Wing Proto – https://www.adafruit.com/product/2884
GPIO – Raspberry Pi Expander
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 Power Meter
ESP8266 Temperature *& Humidity Home Automation in the Cloud
Build a Mini Robot Rover
Figure Robotic Car Kit
Figure Robotic Car – Assembled
Thermal Camera Breakout
Programming & Interaction with Devices
IOT Product Sources
OpenBuilds – https://openbuilds.com/ – Desktop CNC Routing and Milling
SST – http://www.sstsensing.com/ Sensors for detecting air and water leaks
80 / 20 Industrial Erector Set – https://8020.net/
Tarts Wireless Sensors – https://www.tartssensors.com/
- Table Saw – Bosch
- Needs a sled for holding small pieces
- 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
- W3schools.com – 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
- Lynda.com – $19 a month basic / $31.25 a month for annual premium
Lynda.com 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.
- Safaribooksonline.com (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 Lynda.com. You can sign up for individual subscription with a 10 day free trial.
- Pluralsight (not reviewed) $29 a month
Like Lynda.com and SafariBooksOnline.com – Pluralsight is another major player.
- Egghead.io (not reviewed)
Programming Sources – Where to start
*Lynda.com – requires subscription
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 –
Where to begin
- Free –
- Premium –
Web Development Toolkits and Tools
Mozilla Developers Network
pseudo element selector
Where to Begin
- Free – https://www.w3schools.com/bootstrap/
- Premium – https://www.lynda.com/Bootstrap-tutorials/Bootstrap-3-Essential-Training/417641-2.html
Educators’ & Authors’ websites
- Parallax Scrolling
Website Design Inspiration
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
Software Tips and Tutorials
Sources in this site
NextFab – https://nextfab.com/
RepRap – 3D printer motors and components – https://reprapchampion.com/
Screen Recording for Tutorials
2018 Goals and Projects
- Finish This Outline!
- Design Website
- Evernote – subscription and learn to use
- Screen Capture for tutorials on how to use software
- 3D Printing – create something and send to one of service bureaus
- Visit/Explore NextFab
- Website – move to cloud 1 & 1 or get a better plan?
- Joomla – learn
- MediaWiki – install