New Part Day: A BeagleBone On A Chip

The current crop of ARM single board computers have a lot in common. Everything from the Odroid to the Raspberry Pi are built around Systems on a Chip, a piece of silicon that has just about everything you need to build a bare minimum board. You won’t find many hardware hackers playing around with these chips, though. That would require putting some RAM on the board, and some other high-speed connectors. Until now, the only people building these ARM boards were Real Engineers™, with a salary commensurate of their skills.

This is now about to change. Octavo Systems has launched a new product that’s more or less a BeagleBone on a chip. If you can handle putting a PCB with a BGA package in a toaster oven, you too can build your own ARM single board computer running Linux.

Octavo’s new System in Package is the OSD335x family, featuring a Texas Instruments AM335x ARM Cortex A8 CPU, up to 1GB of DDR3, and peripherals that include 114 GPIOs, 6 UARTs, 2 SPIs, 2 I2Cs, 2x Gigabit Ethernet, and USB.

The chips used in commercially available single board computers like the Pi and BeagleBone have hundreds of passive components sprinkled around the board. This makes designing one of these single board computers challenging, to say nothing about actually assembling the thing. Octavo is baking a bunch of these resistors, capacitors, and inductors right into this chip, allowing for extremely minimal boards running Linux. [Jason Kridner] – the BeagleBone guy – is working on a PocketBone, a full-fledged Linux computer that will fit inside an Altoids tin.

Of course, with this degree of integration, a BeagleBone on a chip won’t be cheap. The first part number of this family to be released, with the AM3358 CPU and 1GB of RAM, sells for $50 in quantity one.

Still, this is something we haven’t seen before. It’s a Linux computer on a chip that anyone can use. There is an Eagle symbol for this module. This is a chip designed for hardware hackers, and we can’t wait to see what people using this chip will come up with.

Pine64: The Un-Review

Even before the announcement and introduction of the Raspberry Pi 3, word of a few very powerful single board ARM Linux computers was flowing out of China. The hardware was there – powerful 64-bit ARM chips were available, all that was needed was a few engineers to put these chips on a board, a few marketing people, and a contract manufacturer.

One of the first of these 64-bit boards is the Pine64. Introduced to the world through a Kickstarter that netted $1.7 Million USD from 36,000 backers, the Pine64 is already extremely popular. The boards are beginning to land on the doorsteps and mailboxes of backers, and the initial impressions are showing up in the official forums and Kickstarter campaign comments.

I pledged $15 USD to the Pine64 Kickstarter, and received a board with 512MB of RAM, 4K HDMI, 10/100 Ethernet and a 1.2 GHz ARM Cortex A53 CPU in return. This post is not a review, as I can’t fully document the Pine64 experience. My initial impression? This is bad. This is pretty bad.

Continue reading “Pine64: The Un-Review”

Poor Man’s Time Domain Reflectometer

A time domain reflectometer, or TDR, is an essential piece of test gear when working on long cables. The idea is simple: send a pulse down the cable and listen for the reflection from the far end. The catch is that pesky universal constant, the speed of light.

The reason the speed of light is an issue is that, in a traditional system, the pulse needs to be complete before the reflection. Also, time is resolution, so a 1 GHz sampling rate provides a resolution of about 10 centimeters. [Krampmeier] has a different design. He sends variable length pulses and measures the overlap between the outgoing and reflected pulses. The approach allows a much simpler design compared to the traditional method.

Continue reading “Poor Man’s Time Domain Reflectometer”

Snake On A BBC Micro:bit

The first of the BBC Micro Bits are slowly making their ways into hacker circulation, as is to be expected for any inexpensive educational gadget (see: Raspberry Pi). [Martin] was able to get his hands on one and created the “hello world” of LED displays: he created a playable game of snake that runs on this tiny board.

For those new to the scene, the Micro Bit is the latest in embedded ARM systems. It has a 23-pin connector for inputs and outputs, it has Bluetooth and USB connectivity, a wealth of sensors, and a 25-LED display. That’s small for a full display but it’s more than enough for [Martin]’s game of snake. He was able to create a hex file using the upyed tool from [ntoll] and upload it to the Micro Bit. Once he worked out all the kinks he went an additional step further and ported the game to Minecraft and the Raspberry Pi Sense HAT.

[Martin] has made all of the code available if you’re lucky enough to get your hands on one of these. Right now it seems that they are mostly in the hands of some UK teachers and students, but it’s only a matter of time before they become as ubiquitous as the Raspberry Pi or the original BBC Micro.  It already runs python, so the sky’s the limit on these new boards.

Continue reading “Snake On A BBC Micro:bit”

Makerville Knit: Industrial-Strength WiFi Breakout

If you need an industrial-strength IoT product, you need an industrial-strength WiFi chipset. For our own household hacks, we’re totally happy with the ESP8266 chip. But if you need to connect to the big, scary Internet you’ll probably want state-of-the-art encryption. In particular, Amazon insists on TLS 1.2 for their Web Services (AWS), and we don’t know how to get that working on the ESP.

[Anuj] designed a breakout board called the knit which includes a Marvell MW300 WiFi SOC. This chip has an onboard ARM Cortex M4F running at 200 MHz, which means you’ve got a lot of everything to play with: flash memory, RAM, a floating-point unit, you name it. And Marvell’s got an SDK for using AWS that includes things like an operating system and peripheral support and other niceties. TLS 1.2 is included.

Cd_tjKoWwAApnU9_thumbnailBest of all, a MW300 breakout is reasonably affordable (though more expensive than the mass-produced ESP8266 modules, naturally) and it’s an entirely open design. [Anuj] also seems to be setting up for a production run, if you don’t feel like making it yourself.

The MW300 is in all sorts of commercial IoT designs, and it’s a battle-tested go-to for interfacing with “the cloud” securely. The only hobbyist-friendly board that’s similar is the Adafruit WICED WiFi Feather, but it’s more expensive, less powerful, and out of stock at the moment, which just shows the demand for something like this.

Of course, if you need more integrated peripherals, you could just hack up a “Hello Barbie” toy which has the same chip as well as sweet audio codecs and a nice fat flash ROM.

We think it’s neat that [Anuj] would make and test a breakout for this powerful little WiFi SOC. We don’t need one for our projects right now — we’re running in entirely insecure mode — but it’s good to know what your options are. (We’re also looking into esp-open-rtos for the ESP8266 — we know they’ve been working on TLS 1.2 encryption, but we don’t know what their status is at the moment. Anyone?)

Open source OBD-II Adapter

Automotive diagnostics have come a long way since the “idiot lights” of the 1980s. The current version of the on-board diagnostics (OBD) protocol provides real time data as well as fault diagnostics, thanks to the numerous sensors connected to the data network in the modern vehicle. While the hardware interface is fairly standardized now, manufacturers use one of several different standards to encode the data. [Alex Sidorenko] has built an open source OBD-II Adapter which provides a serial interface using the ELM327 command set and supports all OBD-II standards.

The hardware is built around the LPC1517 Cortex-M3 microprocessor and can accept a couple of different versions. Here’s the PDF schematic, and a set of Gerber files (ZIP archive) for the PCB layout, if you’d like to dig in to it’s internals. The MC33660 ISO K Line Serial Link Interface device is used to provide bi-directional half-duplex communication interface with the micro-controller. Also included is the TJF1051, a high-speed CAN transceiver that provides an interface between the micro controller and the physical two-wire CAN lines on the ODB-II connector. The serial output from the adapter board is connected to a computer using a serial to USB adapter.

The software is written in C++ for the LPCXpresso IDE – a GNU tool chain for ARM Cortex-M processors, but can also be compiled using a couple of other toolchains. He’s got instructions if you’d like to build the firmware from source, or if you’d like to program the adapter via Flash Magic.

We featured [Alex]’s inexpensive PIC based ODB-II interface way back in 2007, so he’s been working on this for a while and has a good grip on what he’s doing.

Embed with Elliot: ARM Makefile Madness

To wrap up my quick tour through the wonderland of make and makefiles, we’re going to look at a pair of possible makefiles for building ARM projects. Although I’m specifically targeting the STM32F407, the chip on a dev board that I have on my desk, it’s reasonably straightforward to extend these to any of the ST ARM chips, and only a bit more work to extend it to any ARM processor.

If you followed along in the first two installments of this series, I demonstrated some basic usages of make that heavily leveraged the built-in rules. Then, we extended these rules to cross-compile for the AVR series of microcontrollers. Now we’re going to tackle a more complicated chip, and that’s going to mean compiling with support libraries. While not required, it’s a lot easier to get an LED blinking on the ARM platforms with some additional help.

One of the main contributions of an IDE like Arduino or mbed or similar is the ease of including external libraries through pull-down menus. If you’ve never built a makefile-based project before, you might be surprised how it’s not particularly more difficult to add libraries to your project.
Continue reading “Embed with Elliot: ARM Makefile Madness”