Easy Raspberry Pi Pico Microcontroller C / C++ Programming on Windows

Reading Time: 6 minutes

This tutorial covers setting up a pretty painless Raspberry Pi Pico C / C++ SDK development workflow on Windows using the Windows Subsystem for Linux (WSL) and Visual Studio Code (VS Code) with IntelliSense code completion!

With the Raspberry Pi Pico microcontroller being so new the current C / C++ SDK development process on Windows is a bit cumbersome. This tutorial should hopefully give you some ideas on how to go about programming the Raspberry Pi Pico the easy way with WSL and VS Code.

Note: This is not a beginner tutorial and assumes some minimal development experience.

Continue reading Easy Raspberry Pi Pico Microcontroller C / C++ Programming on Windows

Raspberry Pi Headless Access Using Built-in Serial Console

Reading Time: 3 minutes

It’s not very well known that the Raspberry Pi has a built-in serial console that provides a fully working Linux terminal over serial. This allows for network-free headless access, including the absolutely necessary tab auto-complete! This feature is extremely useful for those projects that don’t use a screen or need network access. It’s also quite necessary when you are using a Pi as a wireless access point for a LAN without internet sharing.

Continue reading Raspberry Pi Headless Access Using Built-in Serial Console

Reflow Soldering in Unmodified Toaster Oven?

Reading Time: 2 minutes

I’ve been designing a 4-layer PCB for a product for a few months now and I finally got to the stage of assembling the prototype after the PCB and components arrived. Most of the passive components I used were 0603 surface mount parts so reflow soldering was the only viable option (if I wanted to maintain my sanity).

Since I don’t have a proper reflow oven, I decided to use the next best thing I own: No not my hot air rework station, a toaster oven!

Continue reading Reflow Soldering in Unmodified Toaster Oven?

Designing an Advanced Autonomous Robot: Goose

Reading Time: 10 minutes

Update: This article was featured on Hackaday.com and on SDP/SI’s “Featured People and Organizations” page.

Goose is a mobile autonomous robot I designed and built over 6 months in my spare time for a robotics competition. This was a fully custom and challenging build that tested my competence in electrical engineering, mechanical engineering, control systems, and computer science.

Instead of focusing heavily on the competition, the goal of this article is to briefly go through the system design process. I’ll touch on my various design choices and discuss how I chose to address some of the common issues in designing an autonomous robot. This is not a tutorial (those will be coming later) but more of a case study.

Continue reading Designing an Advanced Autonomous Robot: Goose

4-Layer PCB Design in KiCad 5: Quick Thoughts

Reading Time: 2 minutes

I recently had to design a 4-layer PCB and I finally decided to give KiCad another try (after hearing great things about version 5). I’ve known about KiCad for years and even tried it once a few years back but it never felt quite “there” yet. After spending a few months designing a 4-layer board I have to say it has certainly won me over.

Continue reading 4-Layer PCB Design in KiCad 5: Quick Thoughts

Adding Swap Memory to the Beaglebone Black

Reading Time: 2 minutes

I recently needed to build Python 3.6 from source on the BeagleBone Black for a robotics project and discovered that the build would always fail after running out of memory. Who could have figured that 512MB of RAM wasn’t enough to build Python from source?! While I could have set up cross-compilation and performed the heavy lifting on my computer with more resources, I figured this was a perfect problem to solve by adding swap memory to the BeagleBone Black.

Continue reading Adding Swap Memory to the Beaglebone Black

Change the Default Cloud9 Workspace on the BeagleBone Black

Reading Time: 2 minutesThe BeagleBone Black ships with a really great browser-based IDE called Cloud9, which is accessed by going to your BBB IP address at port 3000. While I don’t use Cloud9 for heavy development, it’s handy for debugging and quick changes to scripts. It also has a built-in terminal which means I can do everything in the browser.

By default Cloud9 launches a workspace at /usr/lib/cloud9, which has useful examples and scripts for all sorts of applications. I want it to point, instead, to my personal projects folder so I’ll change the default Cloud9 workspace on the BeagleBone Black to /home/debian/projects.

Continue reading Change the Default Cloud9 Workspace on the BeagleBone Black

Connecting a BeagleBone Black to the Internet over USB

Reading Time: 4 minutes

Connecting a BeagleBone Black (BBB) to the internet over USB is a simple process thanks to the internet sharing capabilities of Windows. This is extremely convenient when developing because it allows your BeagleBone Black to have an internet connection as long as your computer or laptop has one, no matter the network, and SSH access over a single USB cable.

Continue reading Connecting a BeagleBone Black to the Internet over USB