Black Magic Probe: The Best ARM JTAG Debugger?

We don’t always JTAG, but when we do, we use a Black Magic Probe. It’s a completely open ARM-chip debugging powerhouse. If you program the small ARM chips and you don’t have a BMP, you need a BMP. Right now, one of the main producers of these little gems is running a Kickstarter where you can get your hands on a nicely made one and/or a 1Bitsy STM32F415-based development board.

Why is the BMP so great? First off, it’s got a JTAG and a UART serial port in one device. You can flash the target, run your code, use the serial port for printf debugging like you know you want to, and then fall back on full-fledged JTAG-plus-GDB when you need to, all in one dongle. It’s just very convenient.

But the BMP’s killer feature is that it runs a GDB server on the probe. It opens up a virtual serial port that you can connect to directly through GDB on your host computer. No need to hassle around with OpenOCD configurations, or to open up a second window to run [texane]’s marvelous st-util. Just run GDB, target extended-remote /dev/ttyACM0 and you’re debugging. As the links above demonstrate, there are many hardware/software pairs that’ll get you up and debugging. But by combining the debug server with the JTAG hardware, the BMP is by far the slickest.

Full disclosure: we use a BMP that we built ourselves, which is to say that we compiled and flashed the firmware into a $4 STLink clone programmer that we had on hand. Breaking the required signals out required a bit of ugly, fiddly soldering, but we enjoy that sort of thing. If you don’t, the early-bird Kickstarter (with cables) looks like a good deal to us.

Running Intel TBB On a Raspberry Pi

The usefulness of Raspberry Pis seems almost limitless, with new applications being introduced daily and with no end in sight. But, as versatile as they are, it’s no secret that Raspberry Pis are still lacking in pure processing power. So, some serious optimization is needed to squeeze as much power out of the Raspberry Pi as possible when you’re working on processor-intensive projects.

This simplest way to accomplish this optimization, of course, is to simply reduce what’s running down to the essentials. For example, there’s no sense in running a GUI if your project doesn’t even use a display. Another strategy, however, is to ensure that you’re actually using all of the available processing power that the Raspberry Pi offers. In [sagiz’s] case, that meant using Intel’s open source Threading Building Blocks to achieve better parallelism in his OpenCV project.

Continue reading “Running Intel TBB On a Raspberry Pi”

DIY Coprocessors For The Game Boy Color

Back in the olden days, when video games still came on cartridges, the engineers and programmers making these carts had a lot of options. One of the most inventive, brilliant, and interesting cartridges to come out of the 90s was Star Fox for the Super Nintendo. Star Fox featured a coprocessor chip, the Super FX, that was effectively a GPU used to draw polygons in the frame buffer. Without this, Star Fox wouldn’t be 3D, Yoshi’s Island wouldn’t be as cute, and there wouldn’t be an always-on processor in your computer with the potential to spy on everything you do.

gameboy-coprocessor-cartridgeThe Super FX chip, the Capcom-developed Cx4 coprocessor, and the Nintendo DSP all lived in a cartridge, but the technology to put a better computer in a cartridge never made it to Nintendo’s handheld devices. Cheap, powerful microcontrollers are everywhere now, and it’s not that hard to make a board with card edge connectors, leading [Anders] to build a Super FX for the Game Boy Color.

Game Boy cartridges are simple — just a memory controller and some memory is all you need. Drop in a microcontroller, and you have a Game Boy coprocessor. This cartridge features the MBC1 memory bank controller, 512kB of Flash, and 8KB SRAM. These are fairly standard parts, but there’s one last trick up the sleeve of this board: a KE04 from NXP, an ARM Cortex-M0+ microcontroller running at 48MHz . This microcontroller is, effectively, the GPU for the Game Boy.

This ARM-powered coprocessor is able to convert the framebuffer into tiles in just 2ms, giving the system plenty of time for image processing and rendering. Due to the limitations of the Game Boy, the best resolution offered by this coprocessor is either 160×96 or 128×128 pixels, short of the complete 160×144 pixel display in the Game Boy Color.

Even though [Anders] is still working on programming this thing to show off the power of his Game Boy coprocessor, he has a few demos to show off. The most impressive is a Wolfenstein-like clone. That’s extremely impressive and categorically impossible on a stock Game Boy Color.

Continue reading “DIY Coprocessors For The Game Boy Color”

Orange Pi Releases Two Boards

A few years ago, someone figured out small, cheap ARM Linux boards are really, really useful, extremely popular, sell very well, blink LEDs, and are able to open the doors of engineering and computer science to everyone. There is one giant manufacturer of these cheap ARM Linux boards whose mere mention guarantees us a few thousand extra clicks on this article. There are other manufacturers of these boards, though, and there is no benevolent monopoly; the smaller manufacturers of these boards should bring new features and better specs to the ARM Linux board ecosystem. A drop of water in a tide that lifts all boats. Something like that.

This week, Orange Pi, not the largest manufacturer of these small ARM Linux boards, has released two new boards. The Orange Pi Zero is an inexpensive, quad-core ARM Cortex A7 Linux board with 256 MB or 512 MB of RAM. The Orange Pi PC 2 is the slightly pricier quad-core ARM Cortex-A53 board with 1 GB of RAM and a layout that can only be described as cattywampus. We all know where the inspiration for these boards came from. The price for these boards, less shipping, is $6.99 USD and $19.98 USD, respectively.

The Orange Pi Zero uses the Allwinner H2 SoC, and courageously does not use the standard 40-pin header of another very popular line of single board computers, although the 26-pin bank of pins is compatible with the first version of the board you’re thinking about. Also on board the Orange Pi Zero is WiFi provided by an XR819 chipset, Ethernet, a Mali400MP2 GPU, USB 2.0, a microSD card slot, and a pin header for headphones, mic, TV out, and two more USB ports.

The significantly more powerful Orange Pi PC 2 sports a quad-core ARM Cortex-A53 SoC coupled to 1 GB of RAM. USB OTG, a trio of USB 2.0 ports, Ethernet, camera interface, and HDMI round out the rest of the board.

Both of Orange Pi’s recent offerings are Allwinner boards. This family of SoCs have famously terrible support in Linux, and the last Allwinner Cortex-A53, that we couldn’t really review, was terrible. Although the Orange Pi Zero and Orange Pi PC 2 are new boards and surely software is still being written, history indicates the patches written for this SoC will not be sent upstream, and these boards will be frozen in time.

If you’re looking for a cheap Linux board with a WiFi chipset that might work, The Orange Pi Zero is very interesting. The Orange Pi PC 2 does have slightly impressive specs for the price. When you buy a single board, though, you’re buying into a community dedicated to improving Linux support on the board. From what I’ve seen, that support probably won’t be coming but I will be happy to be proven wrong.

The Micro:Bit Gets A Foundation

It has been announced that the BBC are to pass their micro:bit educational microcontroller board on to a non-profit-making foundation which will aim to take the project to a global audience. The little ARM-based board with its range of simple on-board peripherals and easy-to-use IDEs was given to every British 13-year-old earlier this year with the aim of introducing them to coding at an early age and recapturing some of the boost that 8-bit BASIC-programmable computers gave the youngsters of the 1980s.

Among the plans for the platform are its localization into European languages, as well as a hardware upgrade and an expansion into the USA and China. Most excitingly from our perspective, the platform will henceforth be open-source, offering the chance of micro:bits finding their way into other projects. To that end thay have placed a reference design in a GitHub repository.

We’ve covered the micro:bit story from the start here at Hackaday, from its launch to the point at which it shipped several months late after a few deadlines had slipped. We reviewed it back in June, and found it a capable enough platform for the job it was designed to do.

This is an interesting step for the little ARM board, and one that should take it from being a slightly odd niche product in one small country to the global mainstream. We can’t help however thinking that price is it’s Achilies’ heel. When it costs somewhere close to £13 in the UK, it starts to look expensive when compared to the far more capable Raspberry Pi Zero at £5 or a Chinese Arduino clone at about £2.50. Here’s hoping that economies of scale will bring it to a lower price point.

Germans React to UK’s micro:bit

Getting kids interested in programming is all the rage right now, and the UK is certainly taking pole position with its BBC micro:bit, just recently distributed to every seventh-grader in the land. Germany, proud of its education system and technological prowess, is caught playing catch-up. Until now.

The Calliope Mini (translated here) is essentially a micro:bit clone, but one that has learned from the experience of its spiritual forefather — the connection points are spread around the outside of the board where the crocodile clips won’t accidentally touch each other.

Not content to simply copy, the Calliope also adds additional functionality. A microphone and speaker are integrated onboard, as is a Grove-style I2C connector. They’ve even added a TI DRV8837 H-bridge motor driver, so students could make a rolling robot straight out of the box.

Continue reading “Germans React to UK’s micro:bit”

Hackaday Prize Entry: Explore M3 ARM Cortex M3 Development Board

Even a cursory glance through a site such as this one will show you how many microcontroller boards there are on the market these days. It seems that every possible market segment has been covered, and then some, so why on earth would anyone want to bring another product into this crowded environment?

This is a question you might wish to ask of the team behind Explore M3, a new ARM Cortex M3 development board. It’s based around an LPC1768 ARM Cortex M3 with 64k of RAM and 512k of Flash running at 100MHz, and with the usual huge array of GPIOs and built-in peripherals.

The board’s designers originally aimed for it to be able to be used either as a bare-metal ARM or with the Arduino and Mbed tools. In the event the response to their enquiries with Mbed led them to abandon that support. They point to their comprehensive set of tutorials as what sets their board apart from its competition, and in turn they deny trying to produce merely another Arduino or Mbed. Their chosen physical format is a compact dual-in-line board for easy breadboarding, not unlike the Arduino Micro or the Teensy.

If you read the logs for the project, you’ll find a couple of videos explaining the project and taking you through a tutorial. They are however a little long to embed in a Hackaday piece, so we’ll leave you to head on over if you are interested.

We’ve covered a lot of microcontroller dev boards here in our time. If you want to see how far we’ve come over the years, take a look at our round up, and its second part, from back in 2011.