Archived

Let's see ALL of what I've experienced. [Click on the titles to see each article.]
(NOTE: These articles are personal records of what projects I have attempted. These are not articles to take directions from; instead, I have left references to those articles at the end.)
If you are looking for a particular tag of project, then use Ctrl+F to search for your desired keyword.

Testing a PLC attachment (Canaduino PLC 100) for the Arduino Nano, and programming with OpenPLC

TAGS: electronics; soldering; automation; industrial; PLC; OpenPLC; Arduino Nano; Canaduino PLC 100

Why I Did This

While scouting online for cheap physical PLC options, I found the Canaduino PLC 100 on Amazon. It's a small board (about $30) that I had to solder myself and can attach to an Arduino Nano. It contains ruggedized inputs and outputs at higher voltages than what the Nano natively supplies, like 6 relay digital outputs with optoisolators; 4 digital inputs that can handle 3.3 - 24V; 4 analog inputs and 4 analog outputs that can both track in ranges between 0 - 10 V (very similar to what many professional PLCs can do); onboard LEDs for digital state notification; and 5V and 10V supply lines.
More importantly, it can be programmed with free Arduino IDE or the free OpenPLC editor and runtime.
In this video I showcase the board demonstrating its power with a makeshift 'water heater and humidifer plant'.

OpenPLC and FactoryIO, PLC automation: Warehouse

TAGS: electronics; automation; industrial; PLC; OpenPLC; FactoryIO; Modbus

Why I Did This

In previous articles, I've mentioned training and experiencing PLC development using OpenPLC and FactoryIO. In this demo, I using SFC to program FactoryIO's warehouse scene.

OpenPLC and FactoryIO, PLC automation: Pick and Place

TAGS: electronics; automation; industrial; PLC; OpenPLC; FactoryIO; Modbus

Why I Did This

In previous articles, I've mentioned training and experiencing PLC development using OpenPLC and FactoryIO. In this demo, I using SFC to program FactoryIO's pick and place scene.

OpenPLC and FactoryIO, PLC automation: Filling Tank

TAGS: electronics; automation; industrial; PLC; OpenPLC; FactoryIO; Modbus

Why I Did This

In previous articles, I've mentioned training and experiencing PLC development using OpenPLC and FactoryIO. In this demo, I using FBD to program FactoryIO's filling tank scene.

Training with OpenPLC and FactoryIO: A winning combination for training on and building PLCs on a student budget.

TAGS: electronics; automation; industrial; PLC; OpenPLC; FactoryIO; Modbus

Why I Did This

I'm trying to develop my PLC automation skills as a possible career path, and I'm currently a student with a student budget. PLC programming software can be expensive, and I wanted to find a way to expand my learning of PLC programming (and utilize test projects) without breaking the bank. OpenPLC is an open-source PLC programming software that can run on a Raspberry Pi, Arduino, or just your own PC, and FactoryIO is a virtual plant software that can simulate a plant environment (which you can get a free trial for 30 days). Together, they can be used to learn PLC programming and simulate a plant environment for free (for 30 days, then about $20/month for FactoryIO). This is my demo of how to get these to work together using the Modus communication protocol as a link.

Reflecting on PLC Training at NAIT: Earning my credentials of PLC Ladder Logic Programming and PLC Advanced Programming.

TAGS: electronics; automation; industrial; PLC; Allen Bradley MicroLogix, CompactLogix, ControlLogix; Ladder; Function Block; Sequential Function Diagram; Structured Text

Why I Did This

One of the possible careers paths I wanted to branch into was Automation. I had previous history with industrial operations, so using industrial automation controls (dubbed Operational Technology) and using PLC (programmable logic controllers) systems; but less familiar with the programming side of it (I only 'heard' of Ladder logic and function block programming).
NAIT offered courses in PLC programming, and I wanted to learn more about it. I took the PLC Ladder Logic Programming and PLC Advanced Programming courses where I learned to program in the different IEC 61131-3 languages (Ladder Logic, Function Block Diagram, Structured Text, Sequential Function Chart, but not Instruction List as lots of companies consider it too archaic). I also learned to program Allen Bradley MicroLogix 1100 controllers using RSLogix 500 software; and then CompactLogix 1769-L24ER controllers and 1756-L71 ControlLogix Logix5571 controllers using Studio 5000 Logix Designer.
We also did some short programming/training on a microsystems SCADAPack32 remote terminal unit (RTU) when we were learning of different communications protocol/methods, but these were slower systems so the training was minimally covered.

Trying a Linux distro, located fully on a USB, called Porteus

TAGS: software; Linux Porteus; USB operating system

Why I Did This

I recently learned about Linux distros that be held on small USB sticks so that you can boot them from most computers (through the BIOS boot menus), and I wanted to try them out. They are small sized packages (like half a gig, so they can fit on even the really cheap small USBs), and they have the ability to save things to their USB storage.

Repurposing An Old PC Into A Media Server

TAGS: software; operating system OS; TrueNAS; OpenMediaVault; Docker; Linux Ubuntu with Jellyfin

Why I Did This

I had an old (really old Windows Vista) PC that was collecting dust, so I wanted to see if I could use it as a NAS storage server (just to increase my knowledge of it), or something else like a Linux distro.

Testing OpenPLC Runtime on Raspberry Pi with Various Slave Devices

TAGS: electronics; automation; industrial; PLC; OpenPLC; Raspberry Pi; Arduino; ESP; Modbus;

Why I Did This

In my pursuit to experience industrial automation and PLC programming, I wanted to test the OpenPLC runtime on my Raspberry Pi.
I wanted to see how effective this runtime was and how effective the ability to connect to slave devices was. OpenPLC allows users to install the runtime (the PLC cycle) on a Raspberry Pi, but also can program Arduinos and ESP microcontrollers to act as I/O extensions (giving the ability to connect more sensors actuators, but also wireless connectivity), all apparently with the help of Modbus communication.

Touring Scotford Solar Farm, Canada's largest "behind the meter" solar project.

TAGS: nature projects; solar; renewable energy design

Why I Did This

I'm a member of the UofA student club Renewable Energy Design (RED), and we were invited by the Women In Renewable Energey (WIRE) organization to tour the Scotford Solar Farm. It was a great opportunity to see a large scale solar farm, especially one that is considered the largest "behind the meter" project in Canada; "Behind the meter" means that all the generated power goes directly to the Shell Scotford industrial site (no grid supplying). Aside from getting the opportunity to see a giant ~58MW solar farm (which I have not done before), it was also an opportunity to see what challenges and solutions were present for such a unique project.

Utilizing Window Space With An Aeroponics Tower

TAGS: electronics; nature projects; aeroponics; hydroponics; garden; tower; water pumps

Why I Did This

I’m grow greens in my hydroponics bin on a desk near my window, but the hydroponics box doesn’t hug the window as much as I like (it doesn’t utilize the available window space). I learned about these aeroponics towers and love the idea that they can be freely 3D printed and they utilize cramped spaces (perfect for urban farming). This also can be a good trial test for finding info for my university club’s greenhouse (to possibly utilize space in there).

Testing Deep Sleep Mode On An ESP-01 With A Worm Farm

TAGS: electronics; software; nature projects; ESP-01; Arduino; DS18B20 Temperature Probe; batteries; IOT; AdafruitIO; Cayenne

Why I Did This

I had an ESP-01 device and wanted to see if it could be a fit for low input, low power, deep-sleep-mode applications. I just started a worm farm in some 5-gallon pails (it’s just some layered pails with holes, filled with old vegetables and composting material; I wanted to build it for compost, and to get worms for fishing). I figured this worm farm could be an appropriate project to monitor pail temperatures and test the deep-sleeping capabilities of an ESP-01 device.

Competing In and Winning the APIC's 2023 Energy Hackathon

TAGS: software; hackathon; Alberta Power Industry Consortium

Why I Did This

Hackathons are great place to: brainstorm project ideas; meet other innovators; get some recognition and prize money. This hackathon was hosted at my university by the Alberta Power Industry Consortium, with the theme being centered around: Safety and Security for the Smart Grid, System Modelling and Artificial Intelligence for Power Systems, Grid Integration of Renewable and Distributed Energy, and Advanced Power Electronics for the Smart Grid. I love electrical-based projects so I figured this hackathon would be great for me.

Reflecting On Using Figma UI Prototype Maker For A Requirements Engineering Course

TAGS: software; Figma; UI design; app prototype;

Why I Did This

For our Requirements Engineering course at university, we went through the process of how to make a Vision document and a Software Requirements Specification (SRS) for imaginary app ideas that other lab groups had made up. For my team, we chose to act as the software contractors for an interactive map app of the UAlberta campus. This app would connect with the user’s university schedule and provide suggested walking routes between its classes. It would be tailored to incorporate construction, path/elevator outages, or high traffic (similar to how Google Maps works for construction).

The course’s project was designed to incorporate software requirements concepts and give us an idea of how to interact with customers on getting their requirements for a software product. While it was a great project for understanding those concepts, it was also an opportunity to use Figma for the prototyping part of the software development presentation. At the end of the project timeline, we were to present to our ‘clients’ a prototype of the product (typically as a picture walkthrough), but I knew about Figma from previous use during a UI/UX hackathon, so I wanted to use it for this project.

Trying An Internet Radio Server Called Icecast

TAGS: software; Linux Ubuntu; Icecast radio server; Mixx DJ software

Why I Did This

On a previous test, I had repurposed my old PC into something new (and hopefully useful); I could only manage to get Ubuntu installed which seem to make the system run relatively well (but not fast). I wanted to extend the repurposing of the PC, and build some experience with Linux servers by trying to make an internet radio server on the PC. I heard about Icecast, a free internet server system, so decided to install it and use free Mixx DJ software to broadcast music (I could also just copy songs to a folder readable by Icecast but I just chose this route).

Nightmare electronics: Hard bricking my Android TV box then spending days to finally get it re-flashed alive.

TAGS: electronics; software; Linux Armbian Debian; RK3318 Android TV box; un-bricking; factory firmware flashing; maskrom boot mode;

Why I Did This

I had an Android TV box that was previously used to turn my old TV into a smart TV (with internet access and external hard drive access), but I had bought a cheap TV that had smart capabilities, and this box was slow and always ran hot, so it was pretty much useless as is. I wanted to see if I could test my electronics skills by repurposing this android box with something new. I found online that some people built a Linux distro specifically for these ARM based systems, called Armbian (based on Debian), and, further, made a sub-distro for these Android TV boxes, called RK3318 Box (the chipset that I have).

I was able to install the system quite easily following the tutorial, and it dramatically reduced the temperature of the chip (before it was scalding hot), but I wanted to see if I could then install a Lakka gaming OS firmware; but something went wrong with the install and my box became totally unresponsive (bricked). I spent the next few days going over tutorials and forums of people who have unbricked these before by using factory firmware tools (with an unconventional USB A male to male cord), and grounding some of the board’s terminals, in order to get the board into maskrom mode, in which then its able to be communicated with and flashed with factory firmware. The factory firmware then allows a jumping point for which I can then flash the system via USB sticks of preload firmware of custom Linux software.

With a lot of patience, I finally got it to connect and flash, after which I pledged to not attempt that Lakka install again, but instead try something else.

My Experience With Using GitHub As A Product Development Manager

TAGS: software; GitHub; Android Studio

Why I Did This

A part of my software engineering training was to use GitHub as a basic version control software (for tracking changes), but GitHub has some amazing tools for the larger picture of project management. For my University course where I had to build an Android Studio application, I used GitHub as the main management tool for that app development.
GitHub has useful features like:
- Wiki pages for documenting the plans of our app;
- Project Boards for tracking task completion schedules and any development issues;
- Organization designations for allowing other team members to separately interact with the same project;
- GitHub Actions DevOps tools for allowing automated continuous-integration scripts for new repo changes.
...And, of course, the obvious version control features like commit history, and push/pull requests, etc.

Building An Android Studio App For QR Code Collecting

TAGS: software; Android Studio; Android; smartphone; Google Firebase; Open Street Maps; GitHub

Why I Did This

Some of my engineering courses taught me about some fundamental concepts of software engineering (through an object-oriented style using the Java language); In doing this, I was also guided on how to use Android Studio, a standard application for developing Android based apps using the Java language.
Here I will go over the application my team and I built called QR Hunter, an app for translating any QR or bar codes you find with your smartphone camera.

Reflecting On Embedded Systems Concepts With Arduino And FreeRTOS

TAGS: electronics; software; FreeRTOS; Arduino; nano; stepper motor; UART;

Why I Did This

In one of my university’s courses, we learned about real-time embedded systems. Real-time operating systems are systems that strive to complete tasks within hard time limits; these can be both scheduled and interrupt triggered tasks. They are important systems because not only do they express high performance with their ability to respond, but they are suitable for mission or safety critical systems (like vehicle accident black boxes, aircraft systems, medical devices).
FreeRTOS is an example of a real-time operating system (it’s in the name). I learned that you could import the FreeRTOS library on the Arduino IDE, so I wanted to reflect on the concepts in learned in my course and how I could apply them to an Arduino project.
The main concepts our course focused on were: multi-tasking/concurrency and priorities; queue containers; UART and SPI communications; device control (motors with opto-isolator, displays, buttons, leds); hardware interrupts and polling;

Building a Cheap Website for Free (or $13 a Year), using GitHub Pages, Namecheap, Html5up, and Unsplash

TAGS: software; website; GitHub Pages; Namecheap; Html5up; Unsplash

Why I Did This

I wanted to understand more about the basics of building and hosting a website; this included: html files that are the bones of the website (provided for free by Html5up), optional free photos from Unsplash, an optional domain name (for $6 to $13 from Namecheap), and from web hosting service from GitHub Pages.
Many popular website builder’s (like Squarespace, Wix and Wordpress) are good at setting up nice looking, fast generated websites, but they require a monthly service fee for hosting it. Typical website fees stem from: holding a domain name (like ‘myexample.com’) for a yearly fee of ~$13; using web hosting servers (like Wordpress or HostPapa) for a monthly fee of ~$2; HTML theme files for free or ~$55 for fancy ones.
The website building method I chose can get you all elements you need to host your own website for free (but I spent the extra few dollars to get a nice domain name instead of 'username.github.io’). Note that GitHub Pages is a static website, which means it’s primary usage it to display consistent content regardless of user (while dynamic websites can display content dynamically for different user profiles, like Netflix). For me right now, GitHub Pages is fine.

Hosting a Website From My Own Raspberry Pi Using Nginx

TAGS: electronics; software; website; Raspberry Pi; Nginx server;

Why I Did This

I had a cheap Raspberry Pi 3B and learned they were capable of hosting web servers. I was learning more about web servers and figured this would be a good pi project; additionally, I figured this project might teach me more about the intricacies of non-cloud web servers.
Cloud based web servers aren’t free (for the most part; you can get an exception to this by using GitHub Pages, but apparently the level of service is limited); the costs arise from the power and service time allocated from companies to have their computers serve the cloud requests (think of it like charging for virtual parking and virtual valets of your website or other internet services). To get around this (at least at the individual tinkerers’ level) you can host your own website on your own hardware.

Converting my Android TV box into a Linux distro Armbian, then using it for a OpenMediaVault NAS Server

TAGS: electronics; software; NAS network attached storage server; Android TV box; Linux distro Armbian; OpenMediaVault

Why I Did This

In a previous experience I had converted my useless Android TV box (used to make TVs into pseudo-Smart TVs) into a Linux distro Armbian. The RK3318 Armbian distro could also download an ‘armbian-config’ library package that allows quick integration of third part software (from a predefined list), so I wanted to see what I could install to make use of the box.

Using An Esp8266 And Cayenne As An IOT Sensor Monitor

TAGS: electronics; software; Esp8266; Arduino; WIFI Web Server; Cayenne

Why I Did This

I wanted to test a free IOT server service that allows me to monitor my microcontroller sensors from the web (from my smartphone). Cayenne (powered by myDevices) allows a user to add arduinos, esp devices, and raspberry pis to its server so you can monitor whatever sensors you attached to them from their website.

Testing NRF24L01 Radio Module Communications

TAGS: electronics; software; Arduino nano; NRF24L01 radio module

Why I Did This

I love the ‘magic’ of remote communications (i.e. being able to control items from long wireless distances). I wanted to test out some widely popular radio communication modules known as the NRF24L01 (I specifically have the longer-range PA/LNA ones, but the wiring and coding techniques are the same as the original). NRF24L01 modules operate under the widely popular 2.4GHz unlicensed radio band.

Testing A Firebase Realtime Database with Two ESP8266 Microcontrollers

TAGS: electronics; software; Firebase database; ESP8266; Arduino;

Why I Did This

I wanted to see how well internet connected microcontrollers could work with the simple and powerful Google Firebase.
I’ve used Firebase before but never with microcontrollers and it could be a great candidate for simplifying data servers with Arduino devices.

Experimenting With My Cheap 12V 50W Solar Storage System

TAGS: electronics; nature projects; solar; 12V batteries; MPPT

Why I Did This

I wanted to experience owning a solar storage system. I had the opportunity to receive some free 12V batteries, and I found a cheap basic maximum power point tracking (MPPT) solar charge controller and 50W solar panel online. The system totalled about $100. I also have a cheap 12V inverter (used in vehicles to get a 120V AC supply).

Using AdafruitIO And An Esp8266 As An IOT Sensor Monitor

TAGS: electronics; software; Esp8266; Arduino; WIFI Web Server; AdafruitIO

Why I Did This

I wanted to test a free IOT server service that allows me to monitor my microcontroller sensors from the web (from my smartphone). I had previously tested the Cayenne service, which was ok but seemed to not display well on my smartphone. Now I’m testing the AdafruitIO IOT server service. It, like Cayenne, can allows a user to add arduinos, esp devices, but seems to only allow raspberry pi picos (their ‘arduino nano’ microcontroller version of raspberry pi) to its service; this is probably because they are a microcontroller service and not focused on microprocessors, but I’m speculating on that.

Testing LoRa Communication Using My TTGO LoRa ESP32 Microcontrollers, Smartphones, and the Meshtastic App

TAGS: electronics; nature projects; TTGO Esp32 LoRa; Meshtastic app; smartphone; Bluetooth;

Why I Did This

Wanted to experience the impressive long-range (LoRa) abilities of the TTGO esp32 LoRa technology. I figured a perfect use for pair of these is a messaging network that doesn’t use cellular nor WAN-wifi service (like if I’m hiking in deep woods); I would program the LoRa esps to each pair with separate smartphones (via wifi access points or Bluetooth), then use the LoRas to communicate with each other over long distance; The smartphones could then send messages to each other through their LoRa counterparts.
But… it turns out someone already made that!
The Meshtastic project is an open-source project design to build mesh communication networks using low powered devices.

Building a Simple Website Server from an ESP8226

TAGS: electronics; software; website; webserver; ESP8266; Arduino

Why I Did This

I wanted to see if I could monitor and control a small microcontroller from a privately owned web server and website that is hosted on that same microcontroller.
One of the beauties of having Wi-Fi on a tiny microcontroller is that you can monitor and control the sensors from a separate smartphone or computer display (so no need to hook up an LCD, and you get to view the information remotely). Another cool thing is that some smart developers created libraries for the Arduino/Esp compatible microcontrollers that allow a person to host html code so you can view it from the web.

Remotely Accessing Linux Servers Using A Desktop Client And SSH Protocol

TAGS: software; X2GO client; Windows; Linux; Unix; SSH; remote access; XFCE

Why I Did This

I needed to access my university’s Linux servers from my own computer. I needed to access them to complete Unix compatible assignments that needed to function on those particular servers. I was presented with a desktop client, X2GO, but then later learned about VSCode’s SSH extension.

Controlling Lights via WIFI Access Point from an Esp8266 Web Server

TAGS: electronics; software; ESP8266; Arduino; WIFI Web Server

Why I Did This

I wanted to make an ESP8266 into a WIFI access point so that anyone who connects to it could control its webpage server; I figured that a fun example could be to control a string of holiday scenery lights (so any passerby stranger could change the flickering mode of the lights).

Experimenting With My Cheap Garden Irrigation System

TAGS: electronics; software; nature projects; esp8266; arduino; relays; water solenoids; irrigation

Why I Did This

I have a garden, old irrigation supplies, rain collection barrels, and wanted to see if I could apply my computer skills into creating an automated watering system.

Simple Solar Bird Bath

TAGS: electronics; nature projects; solar; water pumps;

Why I Did This

Wanted to build a bird bath for my flying neighbours that was also self sustaining with solar power and made from spare parts I had.

My Experience With Using Unity To Develop Scenes In UAlberta's AR App

TAGS: software; Unity; University of Alberta; Augmented Reality; smartphone

Why I Did This

I had the opportunity to work with some fine people on the University of Alberta’s Augmented Reality app called “UAlberta AR”. The app showcases many engineering course concepts that students and teachers can use as an aid in visualizing/ experiencing said concepts. It was a great experience to develop my Unity skills but also develop team collaborations skills especially with DevOp style git version control (we had our project on a git repo and used Unity’s Continuous Integration checker to check our updates everything we made a revision to the app). We also followed a sprint team review style when setting project goals.

My First Unity Experience While Doing A Pedagogical Research Study

TAGS: software; Unity; research; pedagogy; Augmented Reality; Undergraduate Student Research Initiative (USRI); Fusion 360

Why I Did This

After my first year of engineering, I was asked by my MacEwan University teacher, Dr. Davis, if I wanted to participate in an Undergraduate Student Research Initiative (USRI) study. The study was centered around researching if augmented reality tools could aid in a student’s learning.
I wanted to participate mostly because it was an opportunity to learn the Unity game engine (which I have never used before, but heard it was great for developing games and simulations). In this study I researched what other articles focused on AR for pedagogical use and if I could develop scenes in Unity (and Fusion 360 for drawing) that reflected engineering course concepts that could be better explained with AR model scenes.

Arduino Indoor Garden Box with Data Logger

TAGS: electronics; software; nature projects; Arduino Uno; data logger shield; real time clock; relay; water pump; DC motor fan;

Why I Did This

One of my passions is with nature related automation (because I like growing food plants and I love the idea of them being cared for through automation). Normally I can achieve this with minimal equipment (like a bubbler alone), but I have an Arduino, lots of sensors, and data logger shield; and, as an engineer, I figured this would be a perfect project for testing all of this equipment.

Testing a Portable UV Index Meter

TAGS: electronics; software; Arduino nano; GUVA-S12SD UV sensor

Why I Did This

I bought the cheap GUVA-S12SD UV sensor because I figured it could be a useful sensor for a myriad of solar projects (weather station; garden solar quality measurement; solar panel monitors; UV research projects) so I wanted to test out its measuring qualities with a simple portable meter.

Arduino Weather Station, with Anemometer, Built for an Engineering Course

TAGS: electronics; software; nature projects; Arduino; DHT22; Anemometer; Rotary Encoder; 3D modeling; 3D printing; product reporting

Why I Did This

It was the project of one of my engineering courses where the focus was to learn some Arduino electronics building and to learn how to brainstorm and report projects (for imaginary customers). We were tasked with building a wind speed sensor (turbine) using a rotary encoder and Arduino, plus 2 additional sensors of our choice. I was able to build on my Fusion 360 3D modeling and printing skills by printing some wind blades and housings. Finally, we had to summarize our project into a report PDF.

Home Page

Let's go to the start page.

Featured Articles

Let's see what I've experienced lately.

Archived Articles

Let's see ALL of what I've experienced.