Today we have a HUGE project, one that will likely take you several hours to put together but will reward you with years of service.
We are going to build a Linux workstation that is specifically set up for developers and experimenters who want to tinker with microcontrollers and microcomputers. In other words, people like us!
I’m going to put together a “barebones” computer system, which is really easy, and then I’ll install Ubuntu Linux on it. After doing some “fine-tuning” I’ll proceed to install a large number of software applications – all of them free and of use to developers.
Of course, you don’t need to build a computer from scratch, you can repurpose an existing one or just use the article and video to expand on your existing Linux workstation.
And even if you do build one from scratch you can certainly use different parts, and you could also install another distribution of Linux instead of Ubuntu. You’ll still find a lot of valuable information here for putting together or expanding a developer’s workstation.
Making Things Easier!
This is a big article, and there is a very long video that compliments it. It can be a lot to digest in one sitting.
Building the computer, installing and configuring Linux, and adding the software for your developer’s workstation can be an all-day project, and you may want (or need) to break it into more than one session.
To assist you I’ve provided a couple of simple but very useful free resources for you:
A Cheat Sheet – This is just a text file with a list of all of the command-line commands and download URLs you’ll find in this article. Just paste a copy onto your new computer’s hard drive or desktop and then copy-and-paste all of your installation instructions. It will save a lot of typing!
A Printable PDF Document – This article, in a printable PDF document. You may want to print it (or view it on a tablet) to use while putting together your workstation.
Both of these are in a ZIP file that you can download here.
Hopefully, this will make your task a lot easier!
Obviously, we are going to need to build or repurpose a computer for use as a workstation. And by a “computer” I mean:
- Not a tablet.
- Not a phone.
- Not a Chromebook.
In other words, a board capable of running a desktop operating system like Windows. Mac OSX or Linux.
It can be a desktop or notebook computer, either will work well. The requirements are not that strict, here are a few considerations:
- It needs to be powerful enough to run common IDEs and other software.
- It needs to have sufficient graphics capabilities to use with CAD and PCB programs.
- It should have a reasonable amount of fast internal storage.
- It should have both WiFi and wired networking.
- It needs at least 1 USB port with sufficient current to run a microcontroller.
You could easily repurpose an existing computer for this task, or you could put together a new one (which is the route I am taking). And if you have an existing Linux workstation you could simply use this article to install some of the software you may be missing.
You can also install Ubuntu (or another distribution of Linux) on an existing Windows computer as a dual-boot system.
What about Single Board Computers?
Some high-end SBCs (Single Board Computers) are powerful enough to use as developer’s workstations, so you can certainly use them as well.
You can run Ubuntu on several SBCs, you may want to download an SBC-specific version if there is one available for your board.
If you want to use a Raspberry Pi there is a Raspberry Pi version of Ubuntu available. The 8GB version of the Raspberry Pi 4 would make a very usable workstation for most applications.
If you do decide to use an SBC pay attention to the power supply, remember that it will need enough current to run both the SBC and the microcontroller attached to it.
I will be using Ubuntu Linux for my developer’s workstation, but there are several other distributions that would work just as well. If you have a lesser-powered computer then you might want to use one of the “lightweight” versions of Linux instead of Ubuntu.
The following is certainly not a comprehensive list of Linux distributions, it’s just an outline of some of the more popular builds.
Ubuntu Linux is probably the most popular distribution of Linux today, and it’s the version of Linux that we will be using today. It’s popularity is an advantage when searching for information, something to consider when choosing a Linux build.
Ubuntu is based upon Debian Linux and is the head of the “Canonical family”. Other Canonical family members include distributions such as Kubuntu, Xubuntu, and Lubuntu.
Debian is the root of the Ubuntu OS, as well as several other builds of Linux. This is the “pure operating system” without a lot of frills, it is stable and dependable and can be configured with a variety of options to create the perfect Linux experience.
Debian is very popular for running servers, but the desktop version is also gaining popularity.
Another very popular Linux distribution, Linux Mint is a lightweight version of Linux that is based upon Ubuntu and Debian.
This version of Linux allows you to choose from several different desktops during installation, and it comes complete with a full set of multimedia applications. It’s a great version of Linux for beginners, or for those more familiar with Windows.
One “Windows-like” feature that Linux Mint has is Timeshift. This is similar to the Windows Restore, it lets you revert your computer settings to a previous version.
MX Linux bills itself as a “midweight” build of Linux, providing an attractive KDE-based desktop that will run on virtually any piece of computer equipment that you can find.
This is another Debian-based distribution that has become very popular due to its ease of use and elegant desktop.
Manjaro Linux is another popular distribution that promises to be both lightweight and full-featured.
Unlike most of the other distributions, Manjaro Linux is not based upon Debian. Instead, it is a derivative of Arch Linux, itself a lightweight and stable Linux build.
Manjaro comes with a number of audio and video applications pre-installed, making it an ideal choice for media-heavy users.
Build & OS Install
OK, so now we have our hardware selected and we know which distribution of Linux we wish to use. All that is remaining is to roll up our sleeves and get building!
Building the Workstation
I’m building a computer from scratch, which is a really easy task since I’m using a “barebones computer” as my base. These devices are essentially computers without RAM or hard disk (or SSD). There are several to choose from.
You certainly don’t have to use the same components that I did for your workstation, but in case you want to duplicate my project exactly here is what I purchased:
- Intel NUC 10 with Intel i7 processor.
- 1 TB Samsung EVO V-NAND SSD – this is an M.2 SSD used to hold the OS.
- 1 TB Western Digital Blue SSD – this is a SATA SSD used as a work drive (a work drive is optional if your main drive is large enough)
- 2 x 32GB Vengeance DDR4 2666MHz RAM chips.
Now I’ll show you how I assembled this hardware.
The Intel NUC series of computers are tiny but powerful devices that leverage Intel’s notebook computer hardware to create desktop computers. They are available with a range of Intel processors, and the lower-priced units are quite competitive with SBCs when you factor in the cost of a case and power supply.
The NUC “barebones” models come fully assembled but without memory and SSDs. You can also buy NUCs that are assembled and configured with Windows 10.
The NUC also comes with hardware to mount it on the wall or onto the back of a video monitor that has 75mm VESA mounting holes.
In order to mount the additional components (drives and RAM), you need to open the NUC by loosening the four screws on the bottom. The bottom and top are joined with a ribbon cable, it’s long enough so that you don’t need to disconnect it.
Once you have it open you can install the memory.
The NUC I purchased has two memory slots for DDR4 memory, and it can address a maximum of 64GB.
I purchased two 32GB DDR4 memory chips, these are made specifically for laptops and notebooks, which makes sense as the NUC uses notebook hardware.
The memory chip installation is pretty simple. Make sure you are wearing an anti-static strap and insert the chips, bottom one first, into their sockets. They should go in very easily, if you encounter any resistance back off and try again – you may have just come in at the wrong angle.
Make sure that the memory chips are inserted correctly, the socket should “snap” to hold them securely.
After that, we can install the two SSD drives.
I purchased two SSD drives for my workstation, they use different interfaces:
- The M.2 interface is used for the boot drive.
- The SATA interface is used for the second (work) drive.
Both SSDs had a 1TB capacity. I don’t need a huge amount of local storage as I keep most of my files on my NAS, but you do want to use a local drive for the best results while coding.
A second drive is optional, you may certainly get by with just one. If you purchase one of the “thin-form” NUCs then you can only mount an M.2 drive.
The M.2 SSD goes into a socket on the main NUC board. There is a screw that you need to remove first, this is the screw that holds down the SSD. The NUC comes with an extra screw and spacer, that can be used if you have a half-size M.2 SSD.
The SATA SSD is mounted on the bottom of the NUC, it slides into a metal housing. There are two screw holes near the front (connector side) of the drive, Intel provides a couple of screws that you can use here to secure the SSD.
Once the two drives are mounted you can reassemble the case.
Installing Ubuntu Linux 20.04
Now that you have a computer built or procured it is time to install Linux.
I’m using Ubuntu Linux 20.04, which is the latest long-term release of Ubuntu. If you also use Ubuntu I would suggest using one of the long-term releases, as they are supported for a long time. These versions all have “04” at the end and an even number at the beginning, and they are released every two years. So the next long-term release (as of this writing in December of 2020) should be 22.04.
Getting the Ubuntu Installation Media
The first step in our installation is to get the installation files and transfer them to our installation media. The installation media can be either a USB stick or DVD-ROM, however, I strongly suggest the USB stick.
Either way, you will need another computer and some software to burn the image to the installation media.
You may already have some software to burn images on your computer. If you don’t then I recommend Balena Etcher, a free application that is available for Windows Mac and Linux. We will actually be installing Etcher on our development workstation later, as it also is perfect for writing images to SD and microSD cards.
So with your other computer visit the Ubuntu website and download the image for the latest long-term support version of Ubuntu, which as of this writing is version 20.04.
The download is pretty large, so if you have a slow Internet connection it may take a few minutes (or more).
Once you have your image burn it onto your installation media, which needs to be at least 4GB in size. These days it would be pretty hard to find a USB stick that small, so it shouldn’t be a problem meeting that requirement!
Booting the Installation Media
Hook up a keyboard, mouse, and video monitor to your workstation. Also, make sure to connect an ethernet cable to the computer. Insert the USB stick (or DVD-ROM) with the Ubuntu image on it and then power up the workstation.
If this is a new computer with a blank hard disk then the installation media should boot up and start loading.
If this is a computer with an existing operating system then it may not boot and the machine will startup with its existing operating system. If that happens then you need to reboot and go into your BIOS utility, which generally involves holding down a key (or two keys) during the start-up. Different models of computers use different keys, most print the BIOS startup key sequence on the screen when they first start.
Once the BIOS utility has loaded then you’ll need to look for the section regarding the “boot sequence”. Here you will be able to set the startup sequence, i.e. what drive does the system look to first when booting up? You’ll need to change the sequence to have your installation media start before the computer’s hard disk (or SSD).
Again different BIOS programs do this differently, but they all have this feature. When you are done you need to save the settings and reboot. This time the installation media will load and the Ubuntu installation program will begin.
Installing Ubuntu Linux
Once the installation media boots then it’s time to install Ubuntu Linux.
When the media starts it will bring you to an Ubuntu desktop, with buttons to install Ubuntu or to just give it a try. We obviously want to install it, so select that button.
You will then need to select the type of installation you want to perform. You may install Ubuntu in addition to an existing operating system (i.e. Windows) or you may erase the disk and install Ubuntu upon the entire computer.
As I have a brand new machine with no OS installed I am going to select the latter, if you want to create a “dual-boot” machine and have already reserved a partition then make the other selection.
The rest of the installation is pretty straightforward. You’ll be asked to confirm your keyboard type (make sure you get that one correct), let Ubuntu know your desired username and password, and select your location so the system time can be set.
The installation wizard will then proceed to install Ubuntu Linux.
After installation, you’ll be prompted to remove the installation media and then reboot.
Once it reboots you can log into your new workstation and start configuring it!
After you have logged into your new workstation you can start exploring the Ubuntu desktop to get familiar with it.
But before you get too cozy there are still a couple of installation tasks to complete.
The first thing you should attend to is to see if you need any additional 3rd party drivers for things like your video card or other peripherals. Ubuntu allows you to use these instead of the open-source ones they provide, and with some graphics cards, this can improve performance by a huge factor.
To perform this check go to the bottom left corner of the screen and click on the icon that looks a bit like a keypad – this is the Show Applications icon, which brings up an overlay window with all of the installed applications.
At the bottom of this window, you’ll see a selection to choose between Recent and All applications. Select All to see the applications already installed on your new workstation.
Look for the Software & Updates application, don’t get it confused with the Software Updater application, which has a similar icon. We’ll be using that one later, but right now it’s the Software & Updates application that we want.
This application sets the sources for the software that is installed on the computer. This allows the computer to obtain updates for these applications.
The first thing we are going to do is ensure that we can install the software packaged by Canonical for their partners. Canonical is the publisher of Ubuntu.
Navigate to the Other Software tab and look at the first entry, Canonical Partners. If it is not checked off then do that. Once you do the Software & Updates application will refresh itself, be patient as this can take a few minutes.
After that move to the Additional Drivers tab. This is where non-Ubuntu drivers for your hardware will be listed, and you can select to use them instead of the Ubuntu drivers. Give the screen a moment to refresh and see if any drivers are listed, in my case there were none. If there are, you might want to switch to them, as in many cases it can improve performance.
Close the Software & Updates application.
Now we can open that similar-looking icon application, the Software Updater application.
This application, as its name implies, checks for and installs any updates available for Ubuntu, the Linux core, or the applications taken from the sources defined in the previous step.
There are likely several updates to run, items that have been updated since the installation media was published by Ubuntu. You will likely see a notice saying that updates are available, but if you don’t then click the Check for Updates button and you’ll likely find many of them.
Click Install to install the updates. If any of the updates happen to be Linux Kernel updates then you’ll be asked to type your password, otherwise, the updates will install and the utility will display the installation progress.
Once the updates are completed you may be prompted to reboot, this usually happens if a Linux Kernel update was performed. Reboot the computer if instructed to do so.
Finally, there is one more task to complete before we can start setting up our software.
Thus far we have been using an Ethernet cable for our workstation, which is much preferred over WiFi as it’s faster and more secure. But we also need to have WiFi capability on our workstation.
Why would you need both? If you are working with microcontrollers or microcomputers then there is a very good reason to have both.
Controllers like the ESP32 and ESP8266 have built-in WiFi capability. You can use these as WiFi clients, or you may use them as access points.
When used as access points you’ll need a computer or other device (phone, tablet) to connect to them via WiFi. If you have WiFi AND Ethernet on your developer’s workstation you can connect to the microcontrollers access point and still remain connected to the Internet (and your local area network). This is very convenient.
WiFi Configuration is very easy, pretty well the same as any other operating system. In order to set this up, you’ll need to use the Settings application, which you’re going to become pretty familiar with if you aren’t already.
There are a couple of ways to get to the Settings application:
- You can click on the top bar where the speaker and battery icons are. The menu that drops down has a link to the Settings application.
- You can open the Show Applications window and look for Settings.
You’ll find the WiFi Settings right at the top of the Settings menu, it will display the detected WiFi networks. Select the network you wish to join and supply the password to connect to it.
Setting up Ubuntu Linux
The Ubuntu Linux Setup Wizard does an excellent job of setting up your hardware and locale, as well as your user account. After the first boot and update, you are ready to get started.
You can, of course, spend some time customizing your desktop to suit your tastes, you might also want to install printers or other peripherals. How you do all of that is beyond the scope of this article, but with about a million articles and videos on the Internet about using Ubuntu Linux you probably will be just fine!
What I want to show you, before we start installing applications, is how to set up some of Ubuntu Linux’s features to make your development environment a bit more streamlined.
Some of these settings and choices are personal preferences, so feel free to customize everything exactly the way you want it.
Installing Software on Ubuntu Linux
Before we begin creating the ultimate developer’s workstation you’ll need to know how to install applications on Ubuntu 20.04.
Windows users generally run either EXE or MSI files to install new software, while Mac users work with DMG files. On Ubuntu 20.04 you can install applications using one or more of four ways:
- Using the Ubuntu Software application, that’s the icon which looks like a suitcase with an ”A” on it.
- Using Snap files at the command line. This is in many ways similar to the above, as the Ubuntu Software app now uses Snap (older versions of Ubuntu did not).
- Installing apps at the command line from the Ubuntu repository.
- Installing apps at the command line from 3rd-party repositories, which you’ll need to add first (also from the command line).
We will be using a mixture of all of these methods to install software on our development workstation.
Working at the Linux Command Line
If you are not familiar with working at the command line then I have great news for you – you’re about to become very familiar with it!
Unlike Windows and Mac OSX, a lot of software installation and permission modifications are performed at the command line.
It’s nothing to be scared of, all you need to do is open your Terminal application (we will discuss that in a bit) and type the commands shown here in this article or on the ”cheat sheet”.
When you work at the command line you are using your own Linux account, which is that of a regular user. For many tasks a regular user won’t have sufficient permissions, so you’ll need to work as a “super-user”.
Giving your account “super-user” status is not a very good idea, as you could easily break something accidentally. A better way is just temporary “act” as a super-user.
This is the function of the sudo command. It literally means “super-user do”, and commands typed after it will be run with super-user authority.
When you first use sudo in a session you’ll be prompted to type in your password, the same password that you used to login to your workstation. Note that as you type it the cursor doesn’t move, it’s a bit eerie but you’ll get used to it!
After that, you’ll be elevated to super-user, and all the commands you type in will be run as such.
Updates and Upgrades
Before installing new software at the command line it’s a good idea to make sure your system is up to date. Although you could run the graphical Software Updater that we used earlier, it is easier to do this from the command line.
Open a Terminal and run the following two commands:
sudo apt update
sudo apt upgrade
The sudo command lets you run the update and upgrade commands as a super-user, which is required. The next statement, apt, is a Linux command-line utility that installs, updates, and removes packages in Debian-based Linux distributions,
You should run “sudo apt update” before you install new software. I’m NOT going to repeat the sudo apt update command throughout this article, you should take it as a given that you should run this first.
As for sudo apt upgrade it doesn’t need to be run every time, but it’s a good idea to run it once in a while. It updates the packages on your machine, so any software installed from repositories will get upgraded if there is indeed a newer version.
Incidentally, you’ll also notice that sometimes we use “apt-get” instead of ”apt”. Essentially “apt” is a subset of “apt-get”, it doesn’t have as many options but it is supposed to provide a “better user experience”. They are not always interchangeable, and you’ll find both used in the following instructions in this article.
Essential Included Software
Right out of the box Ubuntu Linux has some useful tools that you’ll likely want to make a Favorites (taskbar icon) for.
Creating a Favorites Icon in Ubuntu 20.04
The Ubuntu desktop has a Dock that can hold all of your favorites, this would be called a “Toolbar” by some people. A few icons will already be in there right after installation, you can leave them or remove them as you wish.
The Docks position and behavior can be adjusted in the Settings screen. If you have multiple monitors you may choose to show the Dock on only one or on both displays.
To add more items to the Dock, or to just open up applications, click the Show Applications grid symbol on the bottom end of your taskbar (assuming you have your taskbar installed on the left side).
The Show Applications window will overlay the desktop, displaying a collection of icons arranged alphabetically. A control at the bottom allows you to view all of the applications, or just the ones you use the most.
You can launch an application just by clicking on its icon.
You can also add the icon to your Dock, for easy access later.
- Right-click on the icon.
- Choose “Add to Favorites” from the resulting menu.
I would suggest adding your most frequently used application to the dock for easy access. You may also place icons on the desktop if you wish. You can preposition the hotels on your Dock by dragging them with your mouse.
Probably the most useful utility provided in Ubuntu is the Terminal. You will be using this to install software and to do some system maintenance, so it’s a good idea to add this to a prominent place in your Dock.
You can find the Terminal by clicking on the Show Applications icon and typing “terminal” into the search box. This is definitely an application that belongs in your Dock favorites, in my setup, I put it near the top.
You can use the Preferences dialog box in the Terminal to adjust the colors and fonts used, you can display this dialog box by clicking the menu icon (next to the Search button) and choosing Preferences.
I have always considered a Text Editor to be one of the most useful programs included with any operating system. On my Windows machines, I always have a Notepad icon on my Taskbar, and my Macs all have TextEdit in their Docks.
So it should come as no surprise that I always put a link to the Text Editor in my Dock favorites.
It’s as easy to add as Terminal – just open the Show Applications and search for “Text Editor”, and add that to your favorites.
The Text Editor included with Ubuntu 20.04 is Gedit, a very popular Linux editor for the GNOME desktop. Using it is pretty well the same as using any text editor.
A text editor is super handy when transferring code snippets or making a quick list. You can even write simple programs with it, although I’ll be installing better applications for that.
Here are a few “tweaks” that I like to make whenever I set up a new workstation. As these are personal preferences you’ll want to be sure you agree with my preferences before performing these modifications yourself.
Nemo File Manager
A File Manager is an essential utility in any operating system, and there are several file managers available for Linux. One of my favorites has always been Nemo.
I like Nemo because it has both tabs and dual-pane mode, two features that I use extensively. It also has an easy-to-manage Bookmark system, and it works well on networks.
Installing Nemo is pretty simple, and you can do it using the Ubuntu Software application.
- Open the Ubuntu Software application (the “suitcase” with an “A” on it).
- Click on the Search icon at the top.
- Type “nemo”
- A listing for “Files” will appear.
- Install “Files”
Now go back into your Show Applications, you’ll now see two icons for applications called “Files”! Nemo is the one with the dark folder, assuming you’re still using the standard color scheme.
Open the new Files program, you can go to the Help-About dialog box to confirm that you are indeed using Nemo.
Try it out – explore your computer and your network. Try the tab mode (Ctrl-T) and the dual-pane mode (F3), they can also be used together.
I replaced the Files application in my Dock with Nemo.
While I am a pacifist by nature and generally abhor violence of any sort, there does come the occasional moment when I really, really need to kill something. Fortunately, nobody is in any danger during these fits of rage, as all I really want to do is kill an unresponsive program so I can regain control of my computer and my life!
This next modification will come in handy if you ever find yourself evolving into a homicidal task-killing monster.
We are going to use a program called XKill to be our hired assassin, and we will assign a hotkey sequence to it so it’s available whenever we need it. XKill comes bundled with pretty well every distribution of Linux, so there is nothing to install. We just need to make XKill easier to use.
You can set up a custom hotkey for XKill as follows:
- Open the Settings app.
- Scroll down on the left pane to the Keyboard Shortcuts item.
- Scroll down the keyboard shortcuts, there is a box with a “+” symbol. Click it to add a custom shortcut.
- A Custom Shortcut Editor box will open.
What you are going to do here is call the “xkill” application when you press a custom keycode.
- Type “xkill” in both the Name and Command text boxes. Use all lowercase.
- Click the Set Shortcut button bar.
- Press a unique shortcut for Ubuntu to remember. I used Ctrl-Alt-K for mine.
- Once the shortcut is set you’ll see it displayed below the textboxes. Press the “Add” button to add the shortcut.
- Close the Custom Shortcut Editor.
Now try out your new function. Press your custom shortcut keys, in my case I pressed Ctrl-Alt-K. Your cursor should change from the default arrow (or whatever you customized it to) into an “x-shaped” cursor.
Position your x-shaped cursor over the window of an app you want to close, try it with the Settings windows if you still have it open. Click it and the app will vanish, and your cursor will revert to its original appearance.
If you ever have an application “lock-up” you can now use your new shortcut to kill it.
Turn off Caps Lock
This sort of falls into a personal preference, but I really detest the Caps Lock key!
If you are someone who loves the Caps-lock key or are perhaps related to this nuisance’s inventor, then I apologize and give you permission to skip forward to the next section.
Otherwise, I really have a bad habit of hitting that key and not realizing it until I look at what I’ve been typing and see it is all in an inverse case to what I’d intended it to be.
I’m sure I’m not alone in this, but sometimes I suspect I am when I see just how difficult it is to turn Caps-lock off. If it was a common complaint surely they would make it easier to fix?
Aside from ripping the key off of the keyboard your ability to stop Caps-Lock is based upon your operating system:
- On the Mac, it’s actually pretty easy to do.
- On Windows it’s like pulling teeth, you actually need to perform a couple of registry edits.
- On Linux, it’s somewhere between the above.
There are a few methods of accomplishing this under Linux, one of the more common ones involves the use of the key-mapping utility xmodmap.
I went about slaying the Caps-Lock monster by opening a terminal and typing the following on my new Ubuntu Linux 20.04 workstation:
xmodmap -e "keycode 66 = Shift_L NoSymbol Shift_L"
This made my Caps-Lock key function as a shift key and brought joy to my heart.
But my joy was short-lived, as I found that once I rebooted the Caps-Lock was back in full force.
To make the change permanent you’ll need to have this command run every time you start your computer. To do this you’ll need to add this to the Startup Applications.
Open the Show Applications screen and search for “startup”. The icon for the Startup Applications Editor will be displayed. Click it to open the editor.
You are going to want to add a new program to the list of startup programs. Do this as follows:
- Click the Add button. A dialog box will pop up.
- In the Name field type something like “Caps Lock to Shift”
- In the Command field type xmodmap -e “keycode 66 = Shift_L NoSymbol Shift_L”
- Click the Save button.
You will now see your new command in the list of programs to start whenever the computer is started.
This will slay the evil Caps Lock monster for good!
I only “discovered” this handy application a few months ago, but I’m already hooked.
ChaseApp is a free application that runs on Linux, Windows, and Mac OSX. It connects to services you use like Google, GitHub, Trello, Todoist, AWS, Dropbox, and a bunch of others, and it lets you search across these.
So say I search for “ESP-32”. In my case, I have articles I wrote about ESP-32 in Google Docs, entries in GitHub, tasks in Trello, and files in AWS. ChaseApp shows me these as my search results.
Quick summary – it’s a search bar for your own stuff! If you create code and documentation it really comes in handy.
ChaseApp is very easy to install, as it is in the Snap store. To install it just type the following in your command line:
sudo snap install chaseapp
Once the installation is completed locate the ChaseApp icon using the Show Applications button.
Click on the icon to launch ChaseApp.
You’ll need to connect with your Google, Microsoft, or LinkedIn account to get started. The authorization process will open up your web browser.
Once you are authorized you can begin using ChaseApp. You can click on the ChaseApp icon that is now in your top menu bar and a search box will open, you can also launch the search box by pressing Ctrl-E.
Of course, you will want to configure some places to search, so one of the first things you’ll need to do is click on the menu at the end of the search box. This will open up a screen that allows you to connect ChaseApp to a myriad of data sources.
I’ve found this to be a very handy application for sorting through all of the content I’ve created, and the inclusion of Github makes this a great tool for developers.
Format Work Drive
If you have installed a second hard drive or SSD (as I did) in your workstation then you’ll need to format it so that it can be used.
To do this you will be using the Disks application. Open your Show Applications window and look for it, then click on its icon.
This application shows you the disks attached to the computer and the partitions on each of them. On the left pane, you can navigate between the disks, and the right pane displays the partitions.
Select the hard disk that you intend to format (the “work” drive) and click on the Drive Options icon, which is on the taskbar of the application on the right side.
One of the options is Format Disk, which is what we want to do, so select it. This will bring up a dialog box with some options to choose from. You’ll need to name the drive, for the drive format type keep the suggested type. If this is a new drive you don’t need to activate the erase feature.
Click the Next button to confirm the details. Then click Format to begin formatting the drive.
Once the drive has been successfully formatted you can open the Files (Nemo) application. You should see the new drive listed on the left pane, and you can begin using it.
Now we are ready to start installing some development software!
Integrated Development Environments, or IDE’s, are a primary tool for any developer working with microcontrollers, websites, application development, or other code-intensive tasks.
It is not uncommon to have several IDE’s, each one focused on a specific development platform. On the other hand, many developers like an IDE that can adapt to many different environments, so that they can maintain some consistency between projects.
There are a wealth of IDE’s to choose from, and you can install virtually as many as you wish. I’m going to focus on a few that are useful for working with microcontrollers and microcomputers.
The Arduino IDE is the first Integrated Development Environment that many people work with, having used it with their first Arduino projects. While it is not the most powerful or full-featured IDE it is nonetheless an essential tool for anyone working with Arduino AVR boards, as well as a number of other 3rd-party boards.
Install Arduino IDE
There are actually a couple of ways to install the Arduino IDE on Ubuntu Linux 20.04.
- Using the Snap store
- Downloading the latest version and manually installing it.
I’ll show you both methods:
Arduino IDE – Snap Store
This is by far the easiest way to install the IDE. Open up your terminal and type the following:
sudo snap install arduino
And that’s all there is to it, the installer will launch and you’re on your way to installing the Arduino IDE.
But one thing you should be aware of is that the version of the IDE that installs from the Snap store runs in a “sandbox”, and does not have access to your Python libraries. Instead, a version of Python and some associated libraries are installed within the sandbox, these are then used by any Arduino libraries that require them.
For the most part, you don’t need to worry about this, but it may cause some issues with additional board managers that you add to the Arduino IDE.
Arduino IDE – Manual Install
A manual installation is a bit more work, but it’s not really that much of an effort.
The first thing you need to do is to find out what the latest version of the IDE is and to get a copy of it. You can accomplish all of this on the Arduino Software Download page.
At the time of writing the latest version was 1.8.13, which you’ll need to note as you’ll be using version number shortly.
Download the installer file from the Arduino Download page, make sure to select the 64-bit Linux version (if you are using a Raspberry Pi or other SBC you may need the ARM version instead).
Unless you specified otherwise your downloaded file should have been saved in the Downloads folder under your Home directory. Confirm that by opening the Files application (nemo) and navigate to the Downloads folder using the link on the left pane. You should now have a file named arduino-1.8.13-linux64.tar.xz , with the “1.8.13” perhaps replaced with a newer version number.
Right-click on the file and select Open with Archive Manager. The Archive Manager, as its name implies, is a utility for working with archived files.
It will take a couple of seconds for the Archive Manager to read the file, after which it will display the contents – in this case, a folder containing the Arduino IDE installation files.
Click the Extract button, which will extract the folder and its contents to your Downloads folder.
Close the Archive Manager and go back into your Files application. Look for the folder that the Archive manager just created, it will be named something like arduino-1.8.13.
Right-click inside the Downloads folder (NOT the archive file or new folder) and select “Open in Terminal” from the list of options. The Terminal will open and you’ll note that you’re in the Downloads folder.
While we could leave the extracted folder inside our Downloads folder it really isn’t a good idea, as it could easily be deleted. It would be better if we moved it to a safe location, and in Linux that usually means the opt folder.
You’ll need to use the command line to move the folder, as you require super-user permissions to write into the opt folder. Make the move as follows:
sudo mv arduino-1.8.13 /opt
(remember to change the version number if you have a newer version of the IDE)
Now change into the new folder inside the opt folder:
Type “ls” and press Enter, this will list the files in the folder you are in. One of them is install.sh, this is the installer program.
At the command prompt type the following and then press Enter:
(don’t omit the period at the beginning of the command).
The installer will launch. Follow the prompts and install the Arduino IDE.
Once the IDE has been installed you can look for the icon in the Show Applications window and add it to your Dock favorites.
Fix USB Port Permissions
After you install the Arduino IDE you’ll want to test it out, and the easiest way is to just load a simple sketch to an Arduino board and see if it works.
Grab an Arduino board and connect it to a USB port on your new workstation.
Now fire up the old faithful Blink Sketch. Since most Arduino boards come running Blink right from the factory it’s probably a good idea to modify the timing somewhat so that you can confirm your “modified Blink” was truly loaded to the Arduino. So change the time value from 1000 to something else – 300 for a fast blink or 3000 for a lazy blink!
Upload the modified Blink sketch to your Arduino. Chances are it will fail and you’ll have an error message.
The upload fails because your Linux account does not have sufficient permissions to use the serial USB port. Let me show you how to fix this!
First, you need to understand that there are actually two types of serial connections used by Arduino boards, the type used depends upon the type of serial driver the board uses. Different Arduino Unos have different drivers.
In the error message you received in the Arduino IDE a port name was specified, it will either look like “ACM0” or “USB1”. It’s the ”ACM” and “USB” that determines the type of serial chip your board is using, the number that follows may be different.
Armed with that knowledge, open a Terminal (and keep the Arduino plugged into the USB port).
If your error message specified insufficient permissions to an “ACM” port then type the following:
ls -l /dev/ttyACM*
Otherwise, if it specified a “USB” port then type this:
ls -l /dev/ttyUSB*
Either way, you will get back a response, something like this:
crw-rw—- 1 root dialout 166, 0 Dec 7 16:57 /dev/ttyACM0
The letters at the beginning of this response indicate the file permissions for this port, but you don’t really need to be concerned about that. What you really want is to get the name of the Linux Group that the port belongs to, and in this example, it is “dialout”.
You’ll probably get “dialout” as a result as well, but it is best to check.
Now in the Terminal type the following, replacing “username” with your own username.
sudo usermod -a -G dialout <username>
This will add you to the “dialout” group. If you received a different result in the previous test then modify the command accordingly.
For the change to take effect you’ll need to logout and login again, or you can just reboot.
Now try and use the Arduino IDE to upload the modified Blink sketch. You should find that you are able to upload your changes. Try a few different boards if you have them to make sure it is working on all of them.
The Arduino IDE is now working on your new developer’s workstation!
Visual Studio – PlatformIO
Another very popular IDE for working with microcontrollers is PlatformIO.
Platform I/O is actually a plugin that extends the functionality of another very popular development environment, Microsoft’s Visual Studio Code.
Although most of us associate Microsoft with commercial products that run (mostly) on Windows, Visual Studio Code is an open-source product that runs on Windows, Mac OSX, and Linux.
Install Visual Studio Code
We begin by installing Visual Studio Code.
Before we do that we will want to install the Python3 Virtual Environment, as PlatformIO will require this. Open a Terminal and type the following:
sudo apt-get install python3-venv
Now we can begin the installation of Visual Studio Code.
There are a couple of methods of installing Visual Studio Code on Linux, but the easiest is to install the Snap package. By installing using this method your build will be kept up-to-date with regular updates that you’ll be prompted to install.
Installation using Snap is really simple, open your Terminal and type the following:
sudo snap install --classic code
Once you have it installed, open the Show Applications window and look for the VS Code icon, probably near the end as the icons are arranged alphabetically. You’ll want to add the link to your favorites.
Now open up Visual Studio Code and get ready to install PlatformIO
PlatformIO is available as a package for Visual Studio Code. You will be using the Visual Studio Package Manager to install it:
- Click the Extensions icon on the left panel (it’s the bottom icon)
- Search for “platformio ide”.
- The PlatformIO IDE for VS Code extension will display.
- Click Install to add the extension to Visual Studio Code
And this will install PlatformIO on your new workstation.
There are a number of IDEs you can use if you’re programming in Python, including the Visual Studio IDE you installed to run PlatformIO.
Here are a couple of others you might want to try:
PyCharm is a very popular Python IDE that comes in Professional, Educational, and Community editions. The Community Edition is free, while the Professional one is paid software with several advanced features and the Educational one requires a special license to use.
There are two ways to install PyCharm – from the Snap Store and by downloading the latest version and installing it at the command line.
In this instance, I would recommend using the Snap Store, as it is maintained with the latest stable version of PyCharm and will be updated in your standard Ubuntu updates.
The Snap Store method is quite simple (it generally is). You can install the Community PyCharm with this line:
sudo snap install pycharm-community --classic
Once the PyCharm files have finished installing the PyCharm setup utility will open.
The utility starts by having you accept a license agreement, then it allows you to choose a desktop theme and create a “Launcher Script”.
Once the Pycharm Setup utility is finished you can start PyCharm and begin working on a new Python project. You can also install some plugins if you wish.
PyCharm also has some built-in “learning projects” that can assist you in learning to use the IDE
Another popular and much simpler IDE for Python is the Thonny IDE.
This is an ideal IDE for Python beginners, and if you have dabbled with Python on the Raspberry Pi then it’s the same IDE you are used to there.
Although you can use the Ubuntu Software application to install Thonny IDE you are better off building the package and installing it yourself, as the IDE in the Ubuntu Software application is not the latest release.
Building and installing Thonny IDE is quite easy. Enter the following command in your Terminal:
bash <(wget -O - https://thonny.org/installer-for-linux)
This will download, build, and install Thonny IDE all in one shot.
After the installer is finished you’ll need to press Enter to close it and go back to the command line. Now open the Show Applications window and look for Thonny IDE. You can add the icon to your Dock if you wish.
Install Text Editors & File Management Tools
Working with code really means working with text files. Sometimes lots of text files. This group of programs will assist you in editing, comparing, and synchronizing text files.
There are many text editors available for Linux, and we have already added Gedit to our dock. But Gedit is a very simple text editor and it lacks many features that a developer would use when creating code files.
Selecting a proper text editor is a bit like selecting a web browser, your personal tastes and preferences really come into play as most of them do the same thing.
My “go-to text editor” is Geany. I like Geany for a number of reasons, not the least being that it is available for Mac, Windows, and Linux so I can move from computer to computer and use the same software. I also like how it keeps track of variables and how it highlights code in color, making it easier to spot errors.
Installing Geany is very simple. Open the Terminal and type the following:
sudo apt-get install geany
I said it was simple!
Now go to your Show Applications window and look for the yellow Geany Icon. Give Geany a try, I think you’ll agree that it’s a vast improvement over Gedit!
Meld is a “visual diff and merge tool” according to their website, and that’s a pretty good definition of this useful utility.
Meld lets you compare the contents of two files (or two folders) to see what the difference between them is. It also lets you merge those differences manually.
It’s perfect for comparing two versions of the same code, to see what has been changed between them. It is also useful if you are working with a code repository and some of your code gets “out of sync”.
Meld has been packaged for most Linux distributions and the best way to install the latest stable version is to use the package manager that comes with your OS.
In Ubuntu, that means opening up the Ubuntu Software application and searching for “meld”. Once found simply use the Install button to install it.
An alternate method of installing meld is to use the command line:
sudo apt-get install -y meld
After you use Meld a few times you’ll see how valuable it can be, so you’ll likely want to add it to your Toolbar for easy access.
Install Balena Etcher
You probably used Etcher on another computer to create your Ubuntu Linux installation USB stick, so you are familiar with it. Etcher definitely deserves a place on your new workstation, especially if you do a lot of work with Single Board Computers (SBCs) like the Raspberry Pi.
There are a couple of ways to install Etcher.
The standard way to install Etcher is to use the “AppImage package” that you can download directly from the Etcher website. An AppImage package is a package that will run on just about any distribution of Linux, however, in order to run it, you need to manually give it permission to run first.
Another way is to add the Etcher repository to your Linux installation, and then install Etcher in the standard “apt install” fashion.
The advantage of adding the repository is that Etcher will automatically get updated whenever you run an update on your system. So although it requires more than one step I think it’s worth the (small) extra effort.
The first step is to add the repository to your system. Open a Terminal and type the following:
echo "deb https://deb.etcher.io stable etcher" | sudo tee /etc/apt/sources.list.d/balena-etcher.list
Another way of adding the repository is to open the Software & Updates application and navigate to the Other Software tab. You can add the following entry:
deb https://deb.etcher.io stable etcher
Either method works just as well, and you only need to perform one of them.
Next, you need to add a Repository Key, which provides a signature so that Ubuntu can verify that this is truly the real repository and not one that is trying to spoof it. Ad the key as follows:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61
Next, we need to do an Update, so that Ubuntu can include our new repository:
sudo apt update
Finally, we can install Etcher.
sudo apt install balena-etcher-electron
After the installation finishes, you will find a Balena Etcher icon in your Show Applications window.
Git File Management
As a developer, you will likely want to make use of GitHub or another similar file repository to exchange and synchronize code files.
You can do all of this from the Linux command line, however, many developers prefer the convenience of a GUI. And there are several to choose from, however many of them are paid products.
The GitHub Desktop, which is my personal favorite GUI for working with GitHub, is only available for Windows and Mac OSX, so sadly it’s not an option.
There are, however, a few good choices for a free open-source Git manager for Linux. I’m going to list a few of them here, you may want to try them out and see which one is more to your liking.
GitG is a GUI client for the GNOME desktop that lets you work with Git repositories.
You can easily install GitG as it is in the Ubuntu Software application – just search for GitG. Click Install to add this application to your workstation.
This is a fairly basic Git client, but it may be exactly what you’re looking for.
This is a free GUI for Git that is built with Python, and it has become very popular.
While there is a version of Git Cola in the Ubuntu Software application it is not the latest version, at least it wasn’t when I checked it out. You are better off installing it from the command line.
Open your Terminal and type the following:
sudo apt-get install git-cola
This will run the installation package and will install GitCola on your new Linux workstation.
You will see two icons for Git Cola in the Show Applications window.
- Git Cola – The actual Git Cola repository manager.
- Git Dag – A utility that reads the Git log files and displays historical changes
The GitCola interface is fairly simplistic, but it gets the job done and the price is certainly right!
GitKraken & SmartGit
These have become two of the most popular Git clients for Linux. Both are commercial products, but both of them also have a “freemium” plan that lets you use a reduced-feature version for free.
If you’d like to use one of these clients here are the links to their sites, where you’ll find instructions for installing them.
Install Communications & Network Tools
Communications and Network tools have become very important, especially when constructing IoT or remote sensing and surveillance devices.
Here are a few you should have on your developer’s workstation.
If you ever work with a web server or file server then you’ll likely require an FTP program. FTP, or File Transfer Protocol, is the standard method used to send data to and from servers on the Internet, as well as on your own Intranet.
These days SFTP, or Secure File Transfer Protocol, is more popular, as it exchanges data in an encrypted fashion.
There are many FTP utilities available, and one of the most popular is Fiilezilla. It is available for all operating systems and can be installed from the command line.
If you have Ubuntu 20.04 then this should be all you need to do to add Filezilla to your workstation:
sudo apt install filezilla
If you are on an older version of Ubuntu or another distribution of Linux then you may need to add a repository before you can install Filezilla. Here is one you can try:
sudo add-apt-repository ppa:sicklylife/filezilla
Once installed you’ll see the Filezilla icon in your “Show Applications” window, and you can launch it from there. It’s a very stable and well-polished utility that has everything you should require from an SFTP and FTP client.
A Terminal application emulates one or more popular data terminals, such as the DEC VT102 or VT420 and Tektronix 4014 devices.
A very common terminal application that runs under Windows is PuTTY. It’s the go-to utility for working on the command-line of remote servers.
You actually can install PuTTY on Linux if you use WINE, the Windows Emulator for Linux. PuTTY is one of those utilities that actually runs quite well under WINE, so if you are hooked on PuTTY then you can give this a try.
Another choice is to run a native terminal application. Obviously, the built-in Terminal would be your first choice, but for those who want to work with remote systems, you might want to give XTerm a try.
XTerm may be installed at the command line as follows:
sudo apt-get install -y xterm
Once installed you can search for the XTerm icon in the “Show Applications” window and run it from there.
Incidentally, when you first start XTerm you’ll observe that the screen is pretty bare, and there don’t seem to be any controls or options. In order to bring up the options menu you’ll need to do the following:
- Hold down the Ctrl key and left-click to get the main terminal menu.
- Hold down the Ctrl key and right-click to get the font menu.
I found the font to be extremely small and ended up setting mine to “huge”.
Install Angry IP Scanner
This next utility has a bit of a strange name, and I’m not too sure what all the anger is all about.
The Angry IP Scanner scans your IP network and reports back all of the details it can find regarding the attached devices. You’ll see all of your computers, tablets, phones, computer peripherals, Smart TVs, and IoT devices – their hostname and their current IP address.
This is very handy when installing products like MotionEye OS, which boot up using DHCP (Dynamic Host Control Protocol) and grab an address. With the Angry IP Scanner, you can now find that magic address.
So don’t get angry, just go to the Angry IP Scanner download page and download the 64-bit DEB Package to get the latest version.
Once you have it download just click on it to run the Ubuntu Software Installer, which will walk you through the installation.
After the installation is completed find the icon and run the scanner and wait while it scans your network. You can repeat the scan any time you want to.
Install Schematic & PCB Tools
Advanced experimenters may wish to design printed circuit boards for their projects. There is a lot of software designed to do this, both commercial and open source.
The choice of a PCB editor is a personal thing and it will usually involve factors like your previous experience and, to some degree, the requirements of the PCB manufacturer whom you are dealing with.
Here are a couple of editors you can try if you haven’t committed to one yet.
KiCad is one of the most popular open-source PCB editors, and it’s available for Mac OSX, Windows, and a variety of Linux distributions including Ubuntu.
KiCad also includes an integrated schematic editor called Eeschema.
To install KiCad you’ll need to add another repository to your software sources. Open a Terminal and enter the following:
sudo add-apt-repository --yes ppa:kicad/kicad-5.1-releases
Next, we do an update to refresh our queue to include the new repository:
sudo apt update
And now we can install KiCad! This command will install KiCad, along with all of the recommended extras:
sudo apt install --install-recommends kicad
Please note that the above instructions were current as of December 2020, you may want to visit the KiCad download page to see if there is a more recent version. The installation steps will be the same, but the version number will be different.
After installation, you can find the KiCad icon in the Show Applications window. Click on it and start using KiCad!
Another popular PCB CAD program is EasyEDA. This program can be run in two modes:
- On your desktop, Windows, Mac, and Linux are all supported.
- Using an Online editor.
You can edit the same project online as you do on your desktop, and as you’re saving a copy online you have the security of an offsite backup of your work.
EasyEDA’s PCB editor is just part of an entire infrastructure that lets you create printed circuit board designs and then have actual PCBs created and mailed to you.
EasyEDA is free to use, however, there are also paid plans that offer support and that remove the advertising that you need to put up with on the free version. But feature-wise the free version isn’t really crippled in any major way, and you can use it for either personal or commercial projects.
Visit the EasyEDA download page and download the 64-bit Linux version of the program. Now go into your file manager (nemo) and navigate to the Downloads folder, where you should see the file you just downloaded.
Right-click on the file and open it in the Archive Manager, just as you did with the Arduino installation files. When the archive is open click the Extract button to extract the files.
While still in your Downloads folder open a Terminal session by right-clicking and selecting the Open in Terminal option. In the terminal type the following:
sudo bash install.sh
The EasyEDA installation program will run, it will extract files and move them into a new folder inside the /opt folder.
After that, you can open EasyEDA. You will need to log in with an account, which you can set up on the EasyEDA website.
One nice thing about EasyEDA is that because your account is synchronized with their website you can work on your projects both online and on your local desktop, this also opens up the possibility of working on the projects on the desktop client on another computer.
Install Graphics & Media Tools
An important part of creating projects is documenting them so that other people can share your work, which is exactly what I do here in the DroneBot Workshop.
The final set of applications we’ll be installing on our Developers Workstation are programs that will help you document your work through the creation of videos, images and animated GIF files.
VLC Media Player is a full-featured media player that can also record your desktop or take snapshots from videos. It can handle a wide range of video formats, as well as audio CDs and DVDs.
This makes VLC useful not only for playing media but for recording it as well.
The best way to install VLC is to use the Snapcraft Store, as this will ensure that you always have the latest stable release. Open your Terminal and type the following:
sudo snap install vlc
After installation, you can find the VLC icon using Show Applications.
When you first run VLC you’ll need to decide if you want to give VLC consent to go to the internet to get metadata for the videos and audio files you play. This is optional, VLC does not share your data with anyone otherwise.
And after that, you’re all set and ready to enjoy VLC Media Player!
Shutter is an application that I have been using for years, it is my favorite way of taking screenshots. You can select between the full screen, a specific window, or a manually-selected area to take a screenshot of.
Shutter also has a built-in editor that will allow you to add text and symbols to the screenshots you have taken. You can save your work in a variety of formats.
Unfortunately, the development of Shutter seems to have been stalled, and Ubuntu took it out of its distribution channel a few versions back. But you can still install it using a third-party repository, which you can add by opening a Terminal and typing the following:
sudo add-apt-repository ppa:linuxuprising/shutter
After you add the repository it’s a good idea to do an update, then you can install Shutter.
sudo apt install shutter
And this should install Shutter. As always, you’ll find its icon using Show Applications.
There is an addition to Shutter to allow for the capturing of a full web page (including the part below your screen fold). You can install it as follows:
sudo apt install gnome-web-photo
After installation, this will add a “web’ item to the treaty icon. Clicking it will prompt you to add the hURL of the page you want to take a snapshot of,.
The last application we are going to install, at least for now, is a small application that lets you record your screen as an animated GIF. This can be extremely useful for producing dynamic documentation.
Like most screen recorders, Peek lets you highlight an area of your screen and record the action. The result is then saved as an animated GIF.
To install Peek on the workstation we will need to add another repository, as follows:
sudo add-apt-repository ppa:peek-developers/stable
After we add the repository we need to perform an update, as we have many times before (although with Ubuntu 20.04 this isn’t really necessary anymore):
sudo apt update
And finally, we can perform the Peek installation:
sudo apt install peek
Once you have performed the installation you’ll find Peek inside your Show Applications window. Give it a test by making a quick recording, it uses a simple and intuitive GUI that makes creating animated GIFS a breeze.
If you made it to the end of this article you deserve a medal, as it’s really more like a small book! And while I can’t actually send you a prize I do hope that you have been rewarded with a functional Developers Workstation that you can use to build amazing devices.
Make sure you download the Cheat Sheet, it will make setting up your new (or old) workstation a lot easier.
Of course, we have really only covered some of the many applications you can add to your workstation. There are a myriad of other programs that you might find useful in your work with microcontrollers and microcomputers, but the applications we have installed will at least get you started.
Enjoy your new Linux workstation!
Cheat Sheet & PDF – Get the free “cheat sheet” text file with all of the command-line instructions and download URLs. Also includes a PDF version of this article.
Ubuntu Linux – The download page to get a copy of the Ubuntu Linux image.
Linux Mint – Download Linux Mint.
MX Linux – A page listing repositories and sources for downloading MX Linux.
Manjaro Linux – The download page for Manjaro Linux, with an intro video.
Debian – Listing of options for obtaining Debian Linux.
Customizations & Included Software
ChaseApp – An excellent “personal” search tool, available for Linux, Windows & Mac OSX
Integrated Development Environments
Arduino IDE – Download the Arduino IDE or check the current version number.
Visual Studio Code – Download the Visual Studio Code IDE from Microsoft.
PlatformIO Installation Guide – From the PlatformIO documentation.
PyCharm Download – Download the latest version of PyCharm Python IDE from Jetbrains.
Thonny IDE – A simple Python IDE for beginners.
Editors and File Management Tools
Geany – Programmers text editor, available for Linux, Windows & Mac OSX.
Meld – A file comparison tool.
Balena Etcher – An essential utility for burning images to a USB drive and to SD cards.
GitG – Git repository management tool.
Git Cola – Another tool for working with Git.
FileZilla – Download the FileZilla FTP & SFTP utility.
Xterm – A terminal emulator for Linux.
Angry IP Scanner – Download the scanner software.
Schematic & PCB Tools
KiCad Download – Download KiCad for a variety of operating systems.
EasyEDA Download – Download the desktop client for EasyEDA.
Graphics & Media Tools
VLC Media – Download the VLC Media application to play and record video.
Shutter – A screenshot utility, now community-supported.
Peek – A utility to capture your screen as an animated GIF.