Aquarium Controller Starring Arduino Gets A Long Video Description

There’s an old saying that the cobbler’s children have no shoes. Sometimes we feel that way because we stay busy designing things for other people or for demos that we don’t have time to just build something we want. [Blue Blade Fish] wanted to build an Arduino-based aquarium controller. He’s detailed the system in (so far) 14 videos and it looks solid.

This isn’t just a simple controller, either. It is a modular design with an Arduino Mega and a lot of I/O for a serious fish tank. There are controls for heaters, fans, lights, wave makers and even top-off valves. The system can simulate moonlight at night and has an LCD display and keys. There’s also an Ethernet port and a Raspberry Pi component that creates a web interface, data storage, and configures the system. Even fail safes have been designed into the system, so you don’t boil or freeze expensive fishes. No wonder it took 14 videos!

Continue reading “Aquarium Controller Starring Arduino Gets A Long Video Description”

Exostiv FPGA Debugging Might Be A Bargain

Got $4,000 to spend? Even if you don’t, keep reading — especially if you develop with FPGAs. Exostiv’s FPGA debugging setup costs around $4K although if you are in need of debugging a complex FPGA design and your time has any value, that might not be very expensive. Then again, most of us have a lot of trouble justifying a $4,000 piece of test gear. But we wanted to think about what Exostiv is doing and why we don’t see more of it. Traditionally, debugging FPGAs meant using JTAG and possibly some custom blocks that act like a logic analyzer and chew up real estate on your device. Exostiv also uses some of your device, but instead of building a JTAG-communicating logic analyzer it… well, here’s what their website says:

EXOSTIV IP uses the MGTs (Multi-Gigabit Transceivers) to flow captured data out of the FPGA to an external memory. EXOSTIV IP supports repeating captures of up to 32,768 internal nodes simultaneously at the FPGA’s speed of operation (16 data sets x 2,048 bits).

EXOSTIV IP provides dynamic multiplexer controls to capture even more data sets without the need to recompile. Dynamic ON/OFF controls of data sets let you select the data set and preserve the MGT’s bandwidth for when deeper captures of a reduced set of data is required.

In a nutshell, this means they use high-speed communications to send raw data to a box that has memory and connects back to a PC. That means they can store more data, have more data come out of the chip over a certain time frame, and do sophisticated processing. You can see a video about the device below, and there are more detailed videos on their channel, as well.

Continue reading “Exostiv FPGA Debugging Might Be A Bargain”

Free E-Book: Software Defined Radio For Engineers

We really like when a vendor finds a great book on a topic — probably one they care about — and makes it available for free. Analog Devices does this regularly and one you should probably have a look at is Software Defined Radio for Engineers. The book goes for $100 or so on Amazon, and while a digital copy has pluses and minuses, it is hard to beat the $0 price.

The book by [Travis F. Collins], [Robin Getz], [Di Pu], and [Alexander M. Wyglinski] covers a range of topics in 11 chapters. There’s also a website with more information including video lectures and projects forthcoming that appear to use the Pluto SDR. We have a Pluto and have been meaning to write more about it including the hack to make it think it has a better RF chip inside. The hack may not result in meeting all the device specs, but it does work to increase the frequency range and bandwidth. However, the book isn’t tied to a specific piece of hardware.

Continue reading “Free E-Book: Software Defined Radio For Engineers”

Linux Fu: Scripting For Binary Files

If you ever need to write a binary file from a traditional language like C, it isn’t all that hard to do. About the worst thing you might have to deal with is attempts to fake line endings across Windows and Linux, but there’s usually a way to turn that off if it is on by default. However, if you are using some type of scripting language, binary file support might be a bit more difficult. One answer is to use a tool like xxd or t2b (text-to-binary) to handle the details. You can find the code for t2b on GitHub including prebuilt binaries for many platforms. You should be able to install xxd from your system repository.

These tools take very different approaches. You might be familiar with tools like od or hexdump for producing readable representations of binary files. The xxd tool can actually do the same thing — although it is not as flexible. What xxd can even reverse itself so that it can rebuild a binary file from a hex dump it creates (something other tools can’t do). The t2b tool takes a much different approach. You issue commands to it that causes it to write an original hex file.

Both of these approaches have some merit. If you are editing a binary file in a scripting language, xxd makes perfect sense. You can convert the file to text, process it, and then roll it back to binary using one program. On the other hand, if you are creating a binary file from scratch, the t2b program has some advantages, too.

I decided to write a few test scripts using bash to show how it all works. These aren’t production scripts so they won’t be as hardened as they could be, but there is no reason they couldn’t be made as robust as you were willing to make them.

Continue reading “Linux Fu: Scripting For Binary Files”

Wired And IBM Explain Quantum Computing To Students From Grade School To Grad School

Have you ever heard the old axiom that if you want to design a simple system, ask yourself if your grandmother could use it? Maybe that was on Wired’s mind because they asked a quantum computing expert — particularly IBM’s [Dr. Talia Gershon] — to explain what exactly quantum computing is at 5 levels. In the video they shot, which you can see below, [Dr. Gershon] talks to a younger child, a teenager, an undergraduate computer science student, a graduate student, and then a physicist.

We enjoyed some of the analogies of spinning pennies and the way she was able to bring the topic to an appropriate level for each of the participants. Truthfully, the final segment with the physicist ([Dr. Steven Girvin] was more of a conversation than an explanation, but it was interesting to hear his views on fault tolerance and how likely certain things were to occur in the near future.

Continue reading “Wired And IBM Explain Quantum Computing To Students From Grade School To Grad School”

A Real Time Data Compression Technique

With more and more embedded systems being connected, sending state information from one machine to another has become more common. However, sending large packets of data around on the network can be bad both for bandwidth consumption and for power usage. Sure, if you are talking between two PCs connected with a gigabit LAN and powered from the wall, just shoot that 100 Kbyte packet across the network 10 times a second. But if you want to be more efficient, you may find this trick useful.

As a thought experiment, I’m going to posit a system that has a database of state information that has 1,000 items in it. It looks like an array of RECORDs:

typedef struct
{
  short topic;
  int data;
} RECORD;

It doesn’t really matter what the topics and the data are. It doesn’t really matter if your state information looks like this at all, really. This is just an example. Given that it is state information, we are going to make an important assumption, though. Most of the data doesn’t change frequently. What most and frequently mean could be debated, of course. But the idea is that if I’m sending data every half second or whatever, that a large amount isn’t going to change between one send and the next.

Continue reading “A Real Time Data Compression Technique”

LoRa With The ESP32

If you are interested in deploying LoRa — the low power long-range wireless technology — you might enjoy [Rui Santos’] project and video about using the ESP32 with the Arduino IDE to implement LoRa. You can see the video below. He uses the RFM95 transceivers with a breakout board, so even if you want to use a different processor, you’ll still find a lot of good information.

In fact, the video is just background on LoRa that doesn’t change regardless of the host computer you are using. Once you have all the parts, getting it to work is fairly simple. There’s a LoRa library by [Sandeep Mistry] that knows how to do most of the work.

Although the project uses an RFM95, it can also work with similar modules such as the RFM96W or RFM98W. There are also ESP32 modules that have compatible transceivers onboard.

This is one of those projects that probably isn’t useful all by itself, but it can really help you get over that hump you always experience when you start using something new. Once you have the demo set up, it should be easy to mutate it into what you really need.

We’ve been talking about LoRa a lot lately. We’ve even seen it commanding drones.

Continue reading “LoRa With The ESP32”