Simulating The AVR8 For A Browser-based Arduino Emulator

It’s always nice to simulate a project before soldering a board together. Tools like QUCS run locally and work quite well for analog circuits, but can fall short with programmable logic. Tools like Wokwi handle the programmable side quite well but may have license issues or require the cloud. The Velxio project by [David Montero Crespo] is quite an excellent example of an (online) circuit simulator with programmable logic and local execution!

It’s built largely around Wowki’s AVR8JS library for Arduino simulation. All CPU simulation occurs on the local computer, while sketch compilation happens on the backend using official Arduino tools. But this was certainly not the most impressive aspect of the project. Likewise, Velxio features RP2040 execution using the rp2040js library. It also features the execution of some ESP32 derivative boards built around the RISC-V architecture using the RiscVCore.ts library.

Continue reading “Simulating The AVR8 For A Browser-based Arduino Emulator”

Arduino Code? On My 8051? It’s More Likely Than You Think

The 8051 was an 8-bit Harvard-architecture microcontroller first put out by Intel in 1980.  They’ve since discontinued that line, but it lives on in the low-cost STC8 family of chips, which is especially popular in Asia. They’re cheap as, well, chips — under 1$ — but lack compatibility with modern toolchains. If you’re happy with C, then you’re fine, but if you want to plus-plus it up and use all those handy-dandy shortcuts provided by the Arduino ecosystem, you’re out of luck. Or rather, you were, until [Bùi Trịnh Thế Viên] aka [thevien257] came up with a workaround.

The workaround is delightfully Hack-y. One could, conceivably, port a compiler for Arduino’s  Wiring to the 8051, but that’s not what [Viên] did, probably because that would be a lot of work. There isn’t even a truly modern toolchain to put plain C on this chip. Instead, [Viên] started with rv51, a RISC-V emulator written in 8051 assembly language by [cryozap]. RISC-V is a lot easier to work with and, frankly, a more useful skill to build up.

Continue reading “Arduino Code? On My 8051? It’s More Likely Than You Think”

Arduino’s New AI-Centric Board Is The VENTUNO Q

There have been many questions about what direction Arduino would take after being bought by Qualcomm. Now it would seem that we’re getting a clearer picture. Perhaps unsurprisingly the answer appears to be ‘AI’, with the new Arduino VENTUNO Q SBC being advertised as ‘democratizing AI’ in the Qualcomm press release, although it also references robotics.

This new board is based around the Dragonwing IQ-8275 SoC along with an STM32H5F5 MCU, making it somewhat of a beefier brother of the previously covered Arduino Uno Q, which also offers an SoC/MCU hybrid solution. On the product page we can see the overall specifications for this new board, where the release date is specified as ‘soon’.

Its IQ-8275 SoC is part of Qualcomm’s IQ8 series, with eight 2.35 GHz ARM cores and an Adreno 623 GPU, paired with 16 GB of LPDDR5. The Cortex M33-based STM32H5F5 MCU comes with its own 4 MB of Flash and 1.5 MB of RAM, all on a board that’s significantly larger than the Uno Q and isn’t crippled by a single USB-C port as SoC I/O.

Although clearly more aimed at industrial and automation applications than the solution-in-search-of-a-problem Uno Q board, it remains to be seen whether this board will catch on with Arduino fans, or whether Qualcomm’s goal is more to break into whole new markets under the Arduino brand.

Gaming On An Arduino Uno Q In Linux

After Qualcomm’s purchase of Arduino it has left many wondering what market its new Uno Q board is trying to target. Taking the ongoing RAM-pocalypse as inspiration, [Bringus Studios] made a tongue-in-cheek video about using one of these SoC/MCU hybrid Arduino boards for running Linux and gaming on it. Naturally, with the lack of ARM-native Steam games, this meant using the FEX x86-to-ARM translator in addition to Steam’s Proton translation layer where no native Linux game exists, making for an excellent stress test of the SoC side of this board.

Technically, this is a heatsink. (Credit: Bringus Studios, YouTube)
Technically, this is a heatsink. (Credit: Bringus Studios, YouTube)

We covered this new ‘Arduino’ board previously, which features both a quad-core Cortex-A53 SoC and a Cortex-M33 MCU. Since it uses the Uno form factor, all SoC I/O goes via the single USB-C connector, meaning that a USB-C docking station is pretty much required to use the SoC, though there’s at least 16 GB of eMMC to install the OS on. A Debian-based OS image even comes preinstalled, which is convenient.

With a mere 2 GB of LPDDR4 it’s not the ideal board to run desktop Linux on, but if you’re persistent and patient enough it will work, and you can even play 3D video games as though it’s Qualcomm’s take on Raspberry Pi SBCs. After some intense gaming the SoC package gets really quite toasty, so adding a heatsink is probably needed if you want to peg its cores and GPU to 100% for extended periods of time.

As for dodging the RAM-pocalypse with one of these $44 boards, it’s about the same price as the 1 GB Raspberry Pi 5, but the 2 GB RPi 5 – even with the recent second price bump – is probably a better deal for this purpose. Especially since you can skip the whole docking station, but losing the eMMC is a rawer deal, and the dedicated MCU could be arguably nice for more dedicated purposes. Still, desktop performance is a hard ‘meh’ on the Uno Q, even if you’re very generous.

Despite FEX being a pain to set up, it seems to work well, which is promising for Valve’s upcoming Steam Frame VR glasses, which are incidentally Qualcomm Snapdragon-based.

Continue reading “Gaming On An Arduino Uno Q In Linux”

2WD robot

Two-Wheeled Arduino Robot Project For Beginners

Here’s a fun build from [RootSaid] that is suitable for people just getting started with microcontrollers and robotics — an Arduino-controlled two-wheeled robot.

The video assumes you already have one of the common robotics kits that includes the chassis, wheels, and motors, something like this. You’ll also need a microcontroller (in this case, an Arduino Nano), a L293D motor driver IC, a 9 V battery, and some jumper wires.

The video goes into detail about how the two wheels connected to one motor each can move the robot in various directions: forward, backward, left, and right. The motors can be made to spin either forward or backward, depending on the polarity of the power supply, using an H-bridge circuit.

The L293D motor driver IC powers and controls the motors connected to the wheels. The L293D takes its commands from the Arduino. The rest of the video is spent going over the software for controlling the wheels.

When you’re ready to go to the next level, you might enjoy this robot dog.

Continue reading “Two-Wheeled Arduino Robot Project For Beginners”

Any Old TV Can Be A Clock With Arduino

If you’ve got an old black and white TV, it’s probably not useful for much. There are precious few analog broadcasters left in the world and black and white isn’t that fun to watch, anyway. However, with a little work, you could repurpose that old tube as a clock, as [mircemk] demonstrates.

The build is based around an Arduino Nano R3. This isn’t a particularly powerful microcontroller board, but it’s good enough to run the classic TVOut library. This library lets you generate composite video on an Atmel AVR microcontroller with an absolute minimum of supporting circuitry. [mircemk] paired the Arduino with a DS3231 real-time clock, and whipped up code to display the time and date on the composite video output. He then also demonstrates how to hack the signal into an old TV that doesn’t have a specific input for composite signals.

You’ll note the headline says “any old TV can be a clock,” and that’s for good reason. Newer TVs tend to eschew the classic composite video input, so the TVOut library won’t be any good if you’re trying to get a display up on your modern-era flatscreen. In any case, we’ve seen the TVOut library put to good use before, too. Video after the break.

Continue reading “Any Old TV Can Be A Clock With Arduino”

Amiga? Arduino? AMeagerBall Gets The Uno Bouncing

When the iconic “Boing Ball” first debuted 40 years ago, it was a wonder to behold. There was nothing like it in the home compuing world upto that time, and it showed that Commodore’s new “Amiga” was a powerhouse sure to last the test of time. Forty years later, the Amiga as we knew it then might not be with us anymore, but [Mark Wilson] is recreating its iconic demo on a microcontroller– but not just any microcontroller. “AMeagerBall” is an Arduino Uno exclusive, and it even tells the time.

Like the original “Boing Ball”, the demo is running at 320×240, though on a touch LCD shield instead of a CRT. Unlike some microcontrollers, the Uno doesn’t have the horsepower to just brute-force emulate a 1980s home computer, so [Mark] has had to recreate the boing ball from scratch. He’s not doing it with any graphics libraries, either. On the Uno that would be too slow, so [Mark] is driving the LCD directly to its appropriate registers, to stay close enough to the metal to make it work. That means if you’re going to try the code on his GitHub repository, you’ll need to be sure to use matching hardware or be prepared to port it.

One of the things about Amiga’s demo that was so impressive is that it hardly made use of the CPU, allowing the Workbench to be pulled up while the ball bounced. That’s not the case here, as the UNO doesn’t have any extra graphics chips. Still, [Mark] was able to squeeze enough horsepower out of everyone’s favourite ATmega to present us with an Amiga-styled clock– either analog, digital, or in the workbench title bar in that iconic blue-and-white. To keep the clock accurate, he’s squeezed an RTC module in, too. Lovely! The different clocks can be accessed via the touchscreen.

Oh, did we forget to mention that the touchscreen is implemented? This certainly stretches the hardware far enough to be considered a demo. If just a bouncing ball doesn’t work the UNO hard enough for you, try booting Linux.

This isn’t the first bouncing ball demo we’ve seen on a microcontroller:  here are four of them bouncing in an ATtiny85.

Continue reading “Amiga? Arduino? AMeagerBall Gets The Uno Bouncing”