@azonenberg@ioc.exchange
@azonenberg@ioc.exchange avatar

azonenberg

@azonenberg@ioc.exchange

Security and open source at the hardware/software interface. Embedded sec @ IOActive. Lead dev of ngscopeclient/libscopehal. GHz probe designer. Open source networking hardware. "So others may live"

Toots searchable on tootfinder.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

azonenberg, to random
@azonenberg@ioc.exchange avatar

Working with an artist to draw icons for as many of the processing and filter blocks in ngscopeclient as possible.

For most varieties of Ethernet we're going with the common connector (i.e. RJ45 or LC).

But I'm not sure what a good depiction of automotive Ethernet would be as those connectors aren't particularly well standardized. Ideas?

azonenberg, to random
@azonenberg@ioc.exchange avatar

Hey @ocornut are you aware of any simple/lightweight way to get vector graphics in imgui?

Source format is SVG but I'm not opposed to preprocessing to some other format before display (presumably ultimately ending up as ImDrawList calls). I just want something that I can scale nicely in the UI rather than using pre-rasterized bitmaps like I do now.

Ultimately it's going to end up in an imgui-node-editor node.

azonenberg, to OSINT
@azonenberg@ioc.exchange avatar

Time for another puzzle!

  1. Where was I? Be as specific as possible, this one should be possible to pinpoint to within a meter or two.

  2. When was the photo taken? You should be able to get +/- 1 day based on open source information (including, but not limited to, the photo itself).

  3. Why was I there?

Please CW guesses or comments to avoid spoilers.

azonenberg, to random
@azonenberg@ioc.exchange avatar

So apparently you can get the STM32L431 in 32 and 48 QFN. That's a decent bit of compute in a small, relatively cheap package.

Will have to add that to my inventory.

azonenberg, (edited ) to random
@azonenberg@ioc.exchange avatar

You write safe Rust.

I disabled SIGSEGV in my C++.

We are not the same.

In all seriousness, I'd love if anyone had a better solution to this problem. But there doesn't seem to be any SFR bit I can set to make the STM32H7 flash IP not throw a bus fault on an ECC failure.

So if you ever have a bug in your firmware that writes to the same flash ECC block twice without erasing it, that flash block will become toxic and any future attempt to deref any address within it will segfault. Not good if you're trying to make a robust, log-structured data store (in which any bug or unexpected power cycle poisons the entire key-value store, segfaulting future reads).

Turning off faults when writing, or when doing CRC checks on read data, allows graceful degradation when things go wrong.

Still trying to figure out why the bootloader seems to be stepping on non-blank flash cells (it should be appending at the end), but at least it's not soft-bricking the board by throwing the bootloader into a fault handler before it reaches the DFU flow.

azonenberg, to random
@azonenberg@ioc.exchange avatar

Cursed idea: AXI to RoCE bridge in FPGA, allowing you to memory map an off-board GPU over Ethernet

azonenberg, to random
@azonenberg@ioc.exchange avatar

What's the go-to option for RGB status indicator LEDs that contain an integrated controller so I can control a lot of them from a handful of pins? Are people still using the WS2812 or are there better options these days?

azonenberg, to random
@azonenberg@ioc.exchange avatar

Well, looks like it's doable! I have a draft pinout for the STM32H735 that hooks up one quad SPI channel to a flash chip, parallel trace, plus three different interfaces to an FPGA:

  • Octal SPI + DQS
  • FMC configured as 16 bit multiplexed PSRAM
  • RMII

Still have to figure out what other peripherals, if any, to hook up. This is mostly just a testbed for MCU-FPGA communications to see what interface I want to use for my next big embedded project, it won't actually do anything useful.

But if I can test as many things as possible, that will help avoid the need for more sandbox boards in the near future.

azonenberg, to random
@azonenberg@ioc.exchange avatar

First light on the Thunderscope beta after grabbing an upstream driver fix. There's definitely some rough edges I'm going to need to fix before it hits production, but I'm really excited - it's FAST!

With ngscopeclient running directly on the laptop the scope is plugged into (i9-10885H, Debian Bookworm, Quadro RTX 3000) I get 17 WFM/s for 4 channels @ 250 Msps with 10M points memory depth. That's 680 Ms/s (out of a theoretical 1000 coming off the ADC). At 8 bit sample size that's 5.44 Gbps, around double my previous record (PicoScope 6824E).

With the TS.NET bridge server on the laptop and a 10GbE Thunderbolt dongle connecting the laptop to my LAN, then ngscopeclient running on my main bench workstation, I "only" get 7-10 WFM/s - about half speed and competitive with the PicoScope.

There's likely room to optimize all of these numbers, this is just an initial sanity check.

azonenberg, to random
@azonenberg@ioc.exchange avatar

So apparently Murata makes high power, fixed ratio (6A, divide by 4) 2-phase charge pump step-down converters intended for 48V -> 12V applications.

It looks to have higher efficiency especially at low loads than the TDK module I'm using now. Seriously considering making a variant of my IBC to try it out. Non-regulating but that should be fine given my use case (generating 12V intermediate rail which will itself be fed to other buck modules).

Anyone have thoughts? I've always thought of charge pumps as ittty bitty things you use when you need a negative bias rail, not something you pull six amps from.

https://www.murata.com/products/productdata/8815194046494/MYC0409.pdf

azonenberg, to random
@azonenberg@ioc.exchange avatar

Starting to plan a new test board for my embedded platform to try a bunch more things I can't try or validate on the trigger crossbar. STM32H735 plus XC7S25 in FTGB196 since that's what I had lying around with enough block ram for plenty of ILA cores and comfortably routable on oshpark 4L (although I'm not yet sure if I'll be able to get all the STM32 signals out without going to a higher end process).

Probably won't have bench space to assemble it for a while, but I want to get it designed and ordered so that's out of the way.

Current plan (pinmux config permitting, I haven't done a pinout yet):

  • 1GbE Ethernet interface to FPGA
  • RMII from MCU to FPGA
  • One octospi channel from MCU to FPGA with all DQ and DQS pins hooked up
  • Second octospi channel to a qspi flash
  • FMC from MCU to FPGA
  • STM32L081 as supervisor/pmic (enough flash to fit a bootloader)

Things I want to test here:

  • Ethernet MAC on the STM32H7
  • Using octospi DQS/DM for memory mapped writes with byte masking
  • Using FMC to map the FPGA as (a)synchronous SRAM with no caching
  • SSH DFU of supervisor MCU without causing a reset of the board (i.e. not sequencing rails off and on again when rebooting in DFU mode, although supervisor mode will probably be temporarily unavailable)
  • Putting microkvs data in external QSPI flash

Trying to think if this is good or if there's anything else I should try to test on the same board.

azonenberg, to random
@azonenberg@ioc.exchange avatar

New ebay score!

No idea what condition it's in, need to find or make a breakout for it.

Anybody know of a readily available commercial or OSH breakout before I design one of my own?

azonenberg, to random
@azonenberg@ioc.exchange avatar

This is clearly not meant to be disassembled. Anyone have ideas? I assume the textured side has to be some kind of nut?

(It's fried and constantly trips with no load giving the "internal fault" LED code, curious what's inside and if there's any visible damage)

Rounded bolt head that doesn't look like a good entry vector

azonenberg, to random
@azonenberg@ioc.exchange avatar

I think this is next level cursed. But it actually worked.

azonenberg, to random
@azonenberg@ioc.exchange avatar

Well that was fun. Spent probably 45 minutes troubleshooting my RTL before looking at the post-synthesis netlist in Vivado and discovering that somehow incremental synthesis had got stuck on a stale version of the netlist, based on an old version of my RTL.

I was changing the source code and seeing the netlist completely unmodified. I tried being increasingly aggressive, to the point of deleting the entire .cache directory under the project, before finally finding the setting to completely disable incremental synthesis which seems to have solved the issue.

azonenberg, to random
@azonenberg@ioc.exchange avatar

New conspiracy theory: LLMs were invented as a secret project by a global cabal of compliance and IP attorneys seeking to ensure their continued employment prospects.

azonenberg, to random
@azonenberg@ioc.exchange avatar

Soooo I think I may have finally put a bookend on my UPS saga.

Background: during the power outages a few weeks ago, I had the UPS shut down twice (once during the initial outage, second during generator fuel tank refill) when the battery gauge suggested i should have had plenty of juice left.

The first Eaton support guy I talked to said the unit was defective and I had to scrap it and shell out >$4K for a new UPS. Obviously I decided to do a bit more digging before taking that step.

Well, turns out after talking to another support rep that I've been hit by a 9PX series firmware bug he's seen once in his career. Conditions which are not fully understood (but are possibly related to swapping the network management card) result in the "low battery warning" threshold being set to 90% instead of the default 20%. This setting is apparently confusingly named and is actually the low battery shutdown threshold.

So it was draining 10% of the UPS capacity then shutting down thinking the battery was empty.

azonenberg, to random
@azonenberg@ioc.exchange avatar

New toy just showed up in the mail... It's my beta ThunderScope!

Will start playing with it after work but here's some quick unboxing pics.

Black Pelican case labeled "ThunderScope" with "made in Canada" "OSHW", and "EEVengers" logos on it
Black instrument case in foam cutout with four BNCs on one side and two on the other, labeled "ThunderScope Beta 2"

azonenberg, to random
@azonenberg@ioc.exchange avatar

Optics nerds: What's the easiest, lowest cost way to build something that focuses a lot of light from a fairly wide (say 90 degree, give or take a bit) FOV into a spectrometer with a SMA 905 fiber input?

Goal is to collect UV-VIS-NIR spectra of the night sky (particularly interested in both light pollution and auroras) over as much of the 200-1200nm range as I can get with low-cost optics (i.e. I don't want to spend extra to get a bit further outside visible, but will take what I can get easily).

Since the device will be operated outside at night, it can be open frame (no need for any exterior light-shield tube, only mechanical support components).

My initial thought is some kind of 80/20 based frame holding a cheap Fresnel lens at one end, with the spectrometer mounted at the focal point (no fiber, directly bolted to a bracket at the focal point) with a cosine corrector on the input to increase the size of the entrance pupil and provide a bit of tolerance for misalignments.

azonenberg, to random
@azonenberg@ioc.exchange avatar

How did I just find out today that C++ supports digit separators in integer literals since C++ '14?

azonenberg, to random
@azonenberg@ioc.exchange avatar

Anybody else ever look at a distributed-memory architecture diagram and start humming "Dragostea Din Tei" to yourself?

azonenberg, to random
@azonenberg@ioc.exchange avatar

Looking for a new Linux image viewer to replace EOG (the default GNOME viewer, which I still use despite now being on XFCE).

Requirements:

  • Can handle large JPEG images (up to maximum 64K x 64K pixel)
  • Allows scrolling/zooming with the mouse wheel
  • Doesn't slow down horribly when running in folders with thousands to tens of thousands of files in them (i.e. https://gitlab.gnome.org/GNOME/eog/-/issues/299)
  • Allows easy left/right navigation through sorted files to quickly flip through a series of frames

Anyone have something to suggest?

azonenberg, to random
@azonenberg@ioc.exchange avatar

Burned through almost two camera batteries and shot close to 40GB of photos and video last night.

Will take a while to go through it all but I'll post some when I get around to it.

azonenberg, to random
@azonenberg@ioc.exchange avatar

Grr i wasn't planning on renovating the kitchen yet.

But this receptacle is turning into a fire hazard. Contact resistance from loose terminals is literally melting the plug to the toaster oven.

azonenberg, to random
@azonenberg@ioc.exchange avatar

Years ago I seem to recall there being a company that would sell seeds that had been laser-engraved, through the shell, onto the little leaf inside.

The idea was that you'd plant it then the leaf would grow with a discolored area where it got lasered showing a picture.

Am I imagining it? Are they still around?

I swear you could buy a literal face plant from them, but I haven't been able to find it since.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • cubers
  • DreamBathrooms
  • ngwrru68w68
  • Durango
  • osvaldo12
  • magazineikmin
  • mdbf
  • Youngstown
  • slotface
  • rosin
  • everett
  • kavyap
  • anitta
  • normalnudes
  • thenastyranch
  • khanakhh
  • cisconetworking
  • modclub
  • GTA5RPClips
  • InstantRegret
  • tacticalgear
  • provamag3
  • ethstaker
  • tester
  • Leos
  • megavids
  • lostlight
  • All magazines