Ben V. Brown

Electronics & Embedded Engineering

Setting up the PineDIO LoRaWAN Gateway

The PineDIO unit. Modified to have external WiFi antenna for range. Setting up the PineDIO LoRaWAN gateway with TTN The PineDIO is a LoRaWAN gateway solution from Pine64. Announced on May 6th, these units have been slowly sent out to lucky early developers. It consists of a Pine64 A64-LTS SBC + an adapter hat to hold a RAK2287 module. The RAK2287 is a low-cost concentrator module that provides all of the LoRa goodness required for this unit to work....

July 28, 2021 · 16 min · Ben V. Brown

Driving WS2812 LED's with STM32 DMA+Timer

The WS2812 aka the Neopixel is a very well know LED, it combines a fully self-contained PWM driver ic with RGB led’s in a cheap and (relatively) painless to work with package. The downside to these is their not-very-fun protocol that requires effort to ensure you drive it at the correct timing. Other fantastic people have already done a deep dive into this protocol. The TL;DR is that the protocol works out to encode the bit as 0 or 1 based on the pulse length, with minimum off times between bits....

July 1, 2021 · 12 min · Ben V. Brown

Fixing stupid JMS578 HDD Enclosure issues

The stupid state of JMicron drive interface IC’s If you have ever tried to use a USB3.0 hard drive enclosure based on a JMicron chipset with TrueNAS (formerly FreeNAS); you may have come across multipath errors or serial numbers that make no sense. Or simply SMART and TRIM not functioning. Additionally, you may have run into the stupid way these units power down the drives after 10 minutes of inactivity forcefully....

January 10, 2021 · 5 min · Ben V. Brown

PCBWay review

As mentioned in part four of the STM series, that development board was sponsored by PCBWay. For this review, they agreed to allow for assembly of two of the boards which is excellent as I can compare their assembly service. Since the Elecrow review, I have used their assembly service a few times for projects and generally been very impressed with the quality and contact. At a high level, the PCBWay ordering process was a lot more personal than I have worked with other unnamed vendors; which is fantastic if you are unsure in your designs and would like someone to review the design to make sure it’s actually manufacturable....

May 29, 2020 · 5 min · Ben V. Brown

STM32 Hardware & Software Design Part 4

Where we left off Part 1 covered the quick rundown of selecting the STM32 and assigning a rough pinout in STMCube. Part 2 provided a quick through the schematic capture process and PCB layout at a high level. Part 3 covered exporting the PCB for manufacture and a quick run through the ordering process with PCBWay. Disclaimer In this section, I’m using PCBWay for the ordering process example. They have kindly offered to cover the cost of the production of these PCB’s before this series actually went live....

May 26, 2020 · 5 min · Ben V. Brown

H2O N2 Part 1

H2O N2 - Water Cooling an Odroid N2 In mid-2018, I started to move all of my home server use and compute from an HP microserver G8 over to ARM-based SBC’s. This move was inspired initially as a power-saving exercise to save the idle power draw of the microserver (50-100W). The original setup consisted of an Odroid C1 running standard developer services and the microserver moving to just acting as a backup device that only powered on to handle backing up computers in the house....

May 4, 2020 · 12 min · Ben V. Brown

STM32 Hardware & Software Design Part 3

Where we left off Part 1 covered the quick run down of selecting the STM32 and assigning a rough pinout in STMCube. Part 2 provided a quick through the schematic capture process and pcb layout at a high level. Part 3 here will cover the exporting the PCB for manufacture and a quick run through the ordering process with PCBWay. Disclaimer In this section I’m using PCBWay for the ordering process example....

April 22, 2020 · 4 min · Ben V. Brown

STM32 Hardware & Software Design Part 2

Where we left off Part 1 covered the quick run down of selecting the STM32 and assigning a rough pinout in STMCube. Part 2 here will run through the schematic capture process and pcb layout at a high level. Schematic Capture I design exclusively in KiCad now, having completely moved off other platforms over the past few years. As such this guide will only cover KiCad related design work. I highly reccomend using hierarchical sheets in your design, to allow for both (some) reuse, as well as make the seperate building blocks clearly definied....

April 11, 2020 · 8 min · Ben V. Brown

STM32 Hardware & Software Design Part 1

Outline This is a half walkthrough / half hints guide to taking a base concept for a STM32 from idea to (somewhat) working hardware. The goal is to roughly document the path I use, but not bogging down into the details on things that are easier to google. For this series, I’m looking at designing out a small development board, designed to mount to the quite nice ILI9486 LCD unit. I’m designing this mostly so that its in a nicer form factor than other development boards, and so I can use USB-C as I really dislike USB mini-B....

April 10, 2020 · 6 min · Ben V. Brown

Setting up Intel GPU HuC & GuC on Pop!_OS 19.04

The intel i915 driver does not load the GuC and HuC binary blobs automatically due to previous issues / security concerns with the binary blobs. However, without loading these blobs, more of the processing is performed on the CPU. I use a Dell XPS 9360 as my portable laptop, and its CPU isn’t aging well with only the dual core processors (plus HT). I use PoP! OS as my main linux OS on all of my machines, however this same process should work the same for Ubuntu and family....

September 29, 2019 · 2 min · Ben V. Brown