🌈 ESP32-S3 Rainbow: ZX Spectrum Emulator Board! Get it on Crowd Supply →
Teaser Image
atomic14

atomic14

A collection of slightly mad projects, instructive/educational videos, and generally interesting stuff. Building projects around the Arduino and ESP32 platforms - we'll be exploring AI, Computer Vision, Audio, 3D Printing - it may get a bit eclectic...

Want to keep up to date with the latest posts and videos? Subscribe to the newsletter
  Â·     Â·     Â·     Â·     Â·   Posts  Â·   Videos  Â·   Tags  Â·   Support

How to Log

Logging errors and exceptions are often the bare minimum folks set-up but hey, it's time we optimized this! We need log trails that allow us to follow the code - the 'happy path'. Why, you ask? To be able to trace user reported bugs, have a visual of where the code went rogue and save tons of debugging time. Next time you set up your logging system, remember these words of wisdom.
28 August 2020

How do we debug?

Today, we dissected a classic programmer joke about the stages of debugging and why we find it funny while it reflects a dire situation. We pondered why our first instinct is to dismiss a bug, dug into invalid claims about machines, and appreciated the shift from denial and blame to accepting responsibility and finding solutions. After deconstructing the old stages of debugging, we reconstructed healthier, proactive stages with prime focus on problem-solving. Next, we explored different types of bugs from easy user interface bugs to the complex Heisenbugs. Lastly, I highlighted logging, debuggers, and good old human brainpower as instrumental...
25 August 2020

Augmented Reality In The Browser

This blog showcases the progress of my idea to create an augmented reality Sudoku solver using technology that enables us to solve puzzles in our browser rather than with dedicated apps. I have developed an AR Sudoku solver with a simple image processing pipeline. It identifies and extracts Sudoku puzzles from pictures, recognizes each cell's numbers, solves the puzzle, and renders the solution on top of the original image. This process is accomplished by converting the image to greyscale, conducting thresholding, OCR-processing, and puzzle-solving. I've also done parallel image location and extraction. It's a technical journey that's achieved some high-quality,...
25 July 2020

Self Organising WS2811 LEDs

I've successfully used addressable WS2811 LED strings and an ESP-CAM board to create an adjustable lighting system. The best part is that the image processing code can be duplicated in JavaScript which allows you to use a plain dev board to drive the LEDs instead of needing a camera on your ESP32 board. If you want to replicate this project, you'll need your own ESP32 dev board and some addressable LEDs. After figuring out the location of each LED in 2D space, it's easy to map from each LED's x and y location onto a pattern you want to show...
05 June 2020

Vision Kit and CoreML

In this technical tutorial, we walk through the process of wiring up the iPhone's camera to CoreML using Vision Kit, allowing us to run machine learning models against the camera input. We outline the necessary steps in creating a new Xcode project; capturing video frames; using AVFoundation, Vision, and CoreML; and dissecting the video frames using Vision magic. We also illustrate the process of running our Vision requests and displaying the expected outputs.
22 June 2017

Adding Swap to Elastic Beanstalk

In this post, I discuss how running Elastic Beanstalk on small instances may lead to memory exhaustion, particularly when deploying applications that rely on gems with native extensions. To combat this, I suggest adding swap to the instances, providing a file and code as a solution to the memory issue.
04 June 2017

Step 8: Set up Active Job on Elastic Beanstalk

This blog post walks through setting up a worker environment on Elastic Beanstalk and using SQS as our Active Job queue, using the active-elastic-job Gem. We start by creating a new queue in our AWS account via Simple Queue Service. Then, we provide our Elastic Beanstalk environments access to the queue and add an AWS_REGION environment variable. We proceed to creating and configuring our worker environment. In our Rails app, we instruct Active Job to use our active-elastic-job queue adapter and create an Active Job. Finally, we deploy our changes to both the web and worker environments, ensuring our ActiveJobs...
21 May 2017

Connecting PSQL and Rails Console to Elastic Beanstalk

In this post, we explore a solution to the challenge of running the Rails console against a PostgreSQL database housed in a private subnet for security reasons. While it's a good security practice, it can limit access for bootstrapping users or debugging issues. By tunnelling through a Bastion server, we can establish a connection to the database as if it was running locally. We walk through code examples of SSH tunneling, database connection, and how to run Rails console. A key point is to ensure the Bastion server is shut down after use.
21 May 2017

.Net Core and PostgreSQL on the Mac

In this blog post, we look at how to connect .NET Core's Web API with PostgreSQL on a Mac platform. We go through step-by-step instructions including setting up a new .NET project and creating a Web API, installing and using dotnet command line, installing required packages, setting up a PostgreSQL database, configuring the .csproj file, creating and integrating a database connection, and defining test entities and required methods for our API. The post also guides through the process of using the API to create, retrieve, and delete database entries. Overall, it shows how Microsoft is making strides in allowing cross-platform...
14 May 2017

Step 7: Action Cable on Elastic Beanstalk

This blog provides detailed steps and configurations on setting up an application using Action Cable feature in Rails 5. It talks about setting up proper environment for the application to run and includes using both PostgreSQL and Redis as backend services for the ActionCable. The blog also shares troubleshooting commands in case of any issues encountered during the setup. Built on top of WebSockets, Action Cable was first announced at RailsConf 2015 and now a substantial part of Rails 5 providing real time communication with backend server.
11 May 2017

Step 6: Add a Custom Domain and SSL to Elastic Beanstalk

In this post, we successfully set up a custom domain name for our Elastic Beanstalk environment and secured it using SSL. By creating a CNAME or an ALIAS pointing at our environment URL (found on the dashboard screen), we made our app accessible via the new domain name. We then used AWS Certificate Manager to add SSL to our environment for access over HTTPS, which was confirmed by visiting the secured site. Now we have a Rails application that can not only be deployed by a CI server, but is also SSL secured with a custom domain.
07 May 2017

Step 5: Use CircleCI to Deploy To Elastic Beanstalk

In this blog post, we're going to set up an automated deployment pipeline using CircleCI, GitHub, and AWS Elastic Beanstalk. We'll begin by creating a GitHub repository for our Rails application. Next, we're going to help CircleCI understand our build environment by creating a `circle.yml` file to install the AWS EB CLI tools and to define commands for deploying our application. Lastly, we'll set up the required AWS credentials in CircleCI. Once completed, any changes pushed to the develop or master branch in GitHub will trigger a deployment to the respective environment in Elastic Beanstalk.
07 May 2017

Step 4: Deploy Rails App To Elastic Beanstalk from Command Line

This post guides you through the essential steps of creating and deploying a Rails application into Elastic Beanstalk environment. Topics include creating an AWS user, configuring AWS CLI for deployment, and setting up the environment variables for your app. Also, it provides you the valuable knowledge of connecting your Rails app to RDS instance and ensuring it successfully connects with the dev database.
07 May 2017

Step 3 - Configure RDS: Deploying a Rails Application to Elastic Beanstalk

We're moving on and tightening our database security in step 3. We're running our database in private subnets within a created RDS instance on our VPC, making sure our data isn't accidentally left in the open. After setting up our network and security settings, we'll dive into creating our databases manually via our secure Bastion server. With a few commands, we set up our dev and prod databases, don them with strong passwords and grant them access to our master username. Voila, our RDS instance is ready to go! Stay tuned for step 4, where we unveil the real deal,...
07 May 2017

Step 2 - Setup Elastic Beanstalk: Deploying a Rails Application to Elastic Beanstalk

In this post, I describe how to set up, configure and deploy an Elastic Beanstalk application on a VPC in Amazon AWS, using Rails 5 and Ruby, using Puma for deployment and configuration of Public and Private subnets in Elastic Load Balancer. I also cover the details of network card settings, the selection process for subnets and security groups for Load Balancer and Instances, and finally shared the result of deploying the sample application on Elastic Beanstalk.
07 May 2017

Step 1 - Setup VPC: Deploying a Rails Application to Elastic Beanstalk

In this blog post, I am guiding you through the process of deploying a Rails application to Elastic Beanstalk in a Virtual Private Cloud (VPC) on Amazon AWS. I detail the setup of a VPC, subnets, and internet gateways, as well as the configuration of NAT gateways and security groups. Ultimately, this will allow for a safe, internet-accessible environment for your application and its accompanying databases.
01 May 2017

Raspberry Pi BTLE Device

Just wrapped up the first iOSCon hackathon and had a blast tinkering with my Raspberry Pi, turning it into a full-fledged Bluetooth device in sync with an iPhone app. Used node for setting up and Bleno for creating Bluetooth low energy peripherals. Penned down each step for you to replicate, right from writing strings on my LCD to reading temperatures and getting notified of IR remote button clicks. Ran it on an app store or GitHub test application. Also, explored the Core Bluetooth framework for iOS app creation, for reading and writing data to the Raspberry Pi. Let's keep creating...
18 May 2014

Raspberry Pi iBeacon

In today's blog post, I successfully turned my Raspberry Pi into an iBeacon using a Bluetooth dongle and following an Adafruit tutorial. I had to go under the hood a bit to make sure my dongle was recognized, but after adding some udev rules, it was good to go. Then, with a string of terminal commands, I was able to set it up as an iBeacon broadcasting a specific UUID. Testing it out with a basic iOS app, I was able to detect the signal strength from the beacon! While it wasn't the flashiest project, it was definitely satisfying to...
13 May 2014
← Older posts Page 6 of 9 Newer posts →
Subscribe!
All content copyright Chris Greening © 2025 • All rights reserved.
Made with Jekyll

This website uses cookies to enhance your browsing experience and analyze site traffic.