FOSSPicks

Arduino IDE 2

The original Arduino IDE started life in 2005, before the launch of Twitter and before Facebook dropped its university-only invite policy. This text editor based IDE has since become synonymous with Arduino devices, being used for everything from uploading simple sketches (really, C files) to device management and fully fledged application development. At its heart, however, it was always a text editor with a lower panel for debug and compilation output, with few features to help with larger projects. This is why some projects created their own makefiles to automate the build, and partly why the arduino-cli tool was developed to unshackle the build process from the editor. More recently, arduino-cli has led to some excellent integration with Visual Studio (VS) Code, which can now develop, debug, build, and flash Arduino projects to the hardware better than the original Arduino IDE.

This means now is the time for an ambitious update to the humble Arduino editor, and the Arduino team has already been working on it for a couple of years. Gone is the Java dependency, gone is the one-window-per-file view, and gone is debugging via printing string messages. It's all been replaced by Arduino IDE 2, a modern Eclipse Theia and Electron-based front end to all the decoupled functionality of arduino-cli, transforming the default Arduino experience. This unification on a single build platform, arduino-cli, means you can choose whichever tool works best for you and easily migrate between them as your needs change. Edit from the IDE one day and build from VS Code the next.

The biggest difference is in the editor itself. It now uses an adaptive design that will scale to fit whatever space you want to give it. It feels similar to VS Code without the complexity or Microsoft telemetry, which is no surprise because they both use the same architecture. There are autocomplete suggestions as you type, allowing you to easily navigate between symbols and definitions in your code and refactor names at will. A left-hand pane includes tabs that show search results, the board manager, the library manager, and a debugging console. But it's this debugging console that represents the other biggest change in functionality, because it finally drags Arduino development into the 21st century. Debugging can now be performed "live," in real time, allowing you to run your code on a board while viewing its execution within the IDE.

For this to work, you do need one of the more recent boards (MKR boards, Nano 33 IoT, Nano 33 BLE, Portenta, and Arduino Zero devices) or a bridging device such as the SAM-ICE JTAG to interface. This is because debugging now uses two-way communication while executing your code, a process that was previously impossible. In the old IDE, after the code had been uploaded to the board, the only interaction between your device and the IDE was through the serial connection, often leaving developers to debug their code using println statements. The new process allows you to introspect the state of your application, including its variables and functions as they're lighting up LEDs, scanning inputs, and producing voltages, just as you do when debugging software running on your computer. All of this hopefully sets up the next generation of the Arduino IDE for the next 15 years of development, in that useful junction between simple editor and fully fledged IDE, and we can't wait to see what features they add next.Project Website

https://github.com/arduino/arduino-ide

One brilliant thing about the new Arduino IDE is that you can finally change the font size and theme without messing around with configuration files and CSS.
Debugging is no longer reliant on printing serial output but can instead use two-way communication while your code is executing on the device.

Chess simulator

Lucas Chess

It's been more than 20 years since IBM's Deep Blue defeated a reigning (human) world chess champion, and chess has since been through various troughs and peaks in popularity. But thanks to recent circumstances, and a particularly popular episodic streaming production, the humble game of chess is going through a huge renaissance. It's become difficult to even buy a decent chess board. Fortunately, there are plenty of computer chess engines and clients to choose from on Linux, including the widely regarded and ported PyChess with the Stockfish back end. But one of the most popular open source implementations has never had official support on Linux, until now. And that's the brilliant Lucas Chess. What makes Lucas Chess so popular, despite its antiquated graphics and long development periods, is the quality of the chess it plays. This isn't because it plays a particularly strong game of chess, although it can – Deep Blue and its descendents have also solved that problem – but because it plays a natural game of chess that can feel like playing a human. Alongside this, Lucas Chess also includes some of the best training modes to help you improve your game, which are difficult features to find on Linux.

Lucas Chess includes 61 different playing engines, all with differing levels of difficulty, from 0 to 3300 in the Elo difficulty rating scale. There are even special engines for younger players, with names like Monkey, Lion, and Stephen, and there are the brilliant training modes using the Stockfish or Komodo engines. You can pit your skills against specific challenges or receive scored feedback and analysis of every move you make. There are memory games, coordinate tests, a mode to help learn by repetition, and training positions, plus other tests and starting and ending resources for stronger players. The user interface is simple but includes a huge list of themes that can change the board, colors, and piece designs. It may all look a little austere, but then chess is old.

Project Website

https://lucaschess.pythonanywhere.com/home

Until now, if you wanted to play Lucas Chess on Linux, you needed to use Wine, but there's finally a version that runs natively.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News