Hackaday Links: Remember, Remember

Buckle up, buttercup because this is the last weekly Hackaday Links post you’re getting for two weeks. Why? We have a thing next weekend. The Hackaday Superconference is November 11th and 12th (and also the 10th, because there’s a pre-game party), and it’s going to be the best hardware con you’ve ever seen. Don’t have a ticket? Too bad! But we’ll have something for our Internet denizens too.

So, you’re not going to the Hackaday Supercon but you’d like to hang out with like-minded people? GOOD NEWS! Barnes & Noble is having their third annual Mini Maker Faire on November 11th and 12th. Which Barnes & Noble? A lot of them. Our reports tell us this tends to be geared more towards the younger kids, but there are some cool people doing demonstrations. Worst case scenario? You can pick up a copy of 2600.

PoC || GTFO 0x16 is out! Pastor Laphroaig Races The Runtime Relinker And Other True Tales Of Cleverness And Craft! This PDF is a Shell Script That Runs a Python Webserver That Serves a Scala-Based JavaScript Compiler With an HTML5 Hex Viewer; or, Reverse Engineer Your Own Damn Polyglot.

In, ‘Oh, wow, this is going to be stupid’ news, I received an interesting product announcement this week. It’s a USB C power bank with an integrated hand warmer. Just think: you can recharge your phone on the go, warm your hands in the dead of winter, and hope your random battery pack from China doesn’t explode in your pocket. I’m not linking to this because it’s that dumb.

You can now cross-compile ARM with GCC in Visual Studio.

The iPhone X is out, and that means two things. There are far too many YouTube videos of people waiting in line for a phone (and not the good kind), and iFixit did a teardown. This thing is glorious. There are two batteries and a crazy double-milled PCB stack with strange and weird mezzanine connectors. The main board for the iPhone X is completely unrepairable, but it’s a work of engineering art. No word yet on reusing the mini-Kinect in the iPhone X.

Speaking of irreparable computers, the Commodore 64 is not. [Drygol] recently came across a C64 that was apparently the engine controller for a monster truck found on the bottom of the ocean. This thing was trashed, filled with rust and corrosion, and the power button just fell off. Prior to cleaning, [Drygol] soldered a new power button, bowered it up, and it worked. The crappiest C64 was repairable. A bit of cleaning, painting the case, and the installation of an SD2IEC brought this computer back to life, ready for another thirty years of retrogaming and BASIC.

The Zynq from Xilinx is one of the most interesting parts in recent memory. It’s a dual-core ARM Cortex A9 combined with an FPGA with a little more than a million reconfigurable gates. It’s been turned into a synth, a quadcopter, all of British radio, and it’s a Pynq dev board. Now there’s a new part in the Zynq family, an RFSoC that combines the general ARM/FPGA format with some RF wizardry. It’s designed for 5G wireless and radar (!), and one of those parts we can’t wait to see in use.

Do you keep blowing stuff up when attaching a USB to UART adapter to a board? Never fear, because here’s one with galvanic isolation. This is done with a neat digital isolator from Maxim

The Linux FPGA

It was never unusual to have a CPU and an FPGA together. After all, each has different strengths and weaknesses. However, newer devices like the Xilinx Zynq have both a CPU and an FPGA in the same package. That means your design has to span hardware, FPGA configurations, and software. [Mitchell Orsucci] was using a Zynq device on a ArtyZ7-20 board and decided he wanted to use Linux to operate the ARM processor and provide user-space tools to interface with the FPGA and reconfigure it dynamically.

This sounds like a big project and it certainly isn’t trivial by any means. However, the Xilinx tools do a lot of the heavy lifting, including setting up the Linux kernel and a suitable root file system. The bulk of [Mitchell’s] work was in developing user space tools for Linux programs to interact with the FPGA hardware. You can see a short video demo below.

Continue reading “The Linux FPGA”

Open Source Digital Cinema

Years in the making, Apertus has released 25 beta developer kits for AXIOM–their open source digital cinema camera. This isn’t your point-and-shoot digital camera. The original proof of concept from 2013 had a Zynq processor (a Zedboard), a super 35 4K image sensor, and a Nikon F-Mount.

The device today is modular with several options. For example, there is an HDMI output module, but  DisplayPort, 4K HDMI, and USB 3.0 options are in development. You can see several sample videos taken with the device, below.

Continue reading “Open Source Digital Cinema”

MATLAB and Simulink for Zynq

Although we see a lot of MATLAB use in industry and in academia, it isn’t as popular in the hacker community. That’s probably due to the cost. If you’ve ever wondered why companies will pay over $2000 for the base product, you might enjoy the video of a webinar covering using MATLAB and Simulink (a companion product) to program the CPU and FPGA on a Zynq Zedboard. Not interested because of the price? If you aren’t using it for commercial purposes, it isn’t as bad as you think.

MathWorks is one of those companies that likes to market by virtually giving away products to students with the hope that they’ll adopt the same tools when they land jobs in industry. Their flagship product, MATLAB, is well-entrenched in the labs and offices of big corporations. We’ve often thought that MATLAB is sort of what FORTRAN would look like if it had been developed in the last 20 years instead of 60 years ago. It is true that a base license for MATLAB is over $2000. However, if you aren’t using it for commercial purposes, and you can’t score a student license, you can get a personal license of MATLAB for about $150. The extra modules are also similarly reduced in price. If you are a student, the price drops to about $100, although many schools have licenses students can use at no cost to them.

If you watch the video from [Noam Levine], you’ll see you get your money’s worth. If you are wanting to configure the FPGA directly, this isn’t for you. But if you just want to accelerate a program by pushing DSP or other algorithms that can benefit from hardware assistance, MATLAB makes it very easy.

Continue reading “MATLAB and Simulink for Zynq”

Custom Zynq/CMOS Camera Unlocks Astrophotography

Around here we love technology for its own sake. But we have to admit, most people are interested in applications–what can the technology do? Those people often have the best projects. After all, there’s only so many blinking LED projects you can look at before you want something more.

[Landingfield] is interested in astrophotography. He was dismayed at the cost of commercial camera sensors suitable for work like this, so he decided he would create his own. Although he started thinking about it a few years ago, he started earnestly in early 2016.

The project uses a Nikon sensor and a Xilinx Zynq CPU/FPGA. The idea is the set up and control the CMOS sensor with the CPU side of the Zynq chip, then receive and process the data from the sensor using the FPGA side before dumping it into memory and letting the CPU take over again. The project stalled for a bit due to a bug in the vendor’s tools. The posts describe the problem which might be handy if you are doing something similar. There’s still work to go, but the device has taken images that should appear on the same blog soon.

Continue reading “Custom Zynq/CMOS Camera Unlocks Astrophotography”

New Part Day: Pynq Zynq

FPGAs are the future, and there’s a chip out there that brings us the future today. I speak, of course, of the Xilinx Zynq, a combination of a high-power ARM A9 processor and a very capable FPGA. Now the Zynq has been made Pynq with a new dev board from Digilent.

The heart of this board, is, of course, the Xilinx Zynq packing a Dual-core ARM Cortex A9 processor and an FPGA with 1.3 Million reconfigurable gates. This is a dev board, though, and with that comes memory and peripherals. To the board, Digilent added 512MB of DDR3 RAM, a microSD slot, HDMI in and out, Ethernet, USB host, and GPIOs, some of which match the standard Arduino configuration.

This isn’t the first Zynq board out there by any measure. Last year, [antti] had a lot of fun with the Zynq and created the ZynqBerry, a Zynq in a Raspberry Pi form factor, and a Zynq Arduino shield. Barring that, we’ve seen the Zynq in a few research projects, but not so much in a basic dev board. The Pynq Zynq is among the first that will be produced in massive quantities.

There is, of course, one downside to the Pynq Zynq, and that is the price. It’s $229 USD, or $65 with an educational discount. That’s actually not that bad for what you’re getting. FPGAs will always be more expensive than an SoC stolen from a router or cell phone, no matter how powerful it is. That said, putting a powerful ARM processor and a hefty FPGA in a single package is an interesting proposition. Adding HDMI in and out even more so. Already we’ve seen a few interesting applications of the Zynq like synthesizers, quadcopters, and all of British radio. With this new board, hopefully a few enterprising FPGA gurus will pick one up and tell the rest of us mere mortals how to do some really cool stuff.

Zedboard Multiport Ethernet

The Zedboard uses Xilinx’s Zynq, which is a combination ARM CPU and FPGA. [Jeff Johnson] recently posted an excellent two-part tutorial covering using a Zedboard with multiple Ethernet ports. The lwIP (light-weight Internet Protocol) stack takes care of the software end.

Vivado is Xilinx’s software for configuring the Zynq (among other chips), and the tutorial shows you how to use it. The Ethernet PHY is an FPGA Mezzanine Card (FMC) with four ports that is commercially available. The project uses VHDL, but there is no VHDL coding involved, just the use of canned components.

The real issue when using an FPGA and a CPU is the interface between the processor and the FPGA circuitry. In this case, the ARM standard AXI bus does this task, and the Ethernet component properly interfaces to that bus. The IP application in the second part of the post is an echo server.

We’ve seen the Zynq used in flying machines and also in a music synthesizer. Although this project doesn’t use any Verilog or VHDL that you create, it is still a great example of configuring using Vivado and using common components in a design.