Didier Stevens

Tuesday 3 November 2026

Quickpost: Banana Equivalent Dose

Filed under: Hardware,Quickpost — Didier Stevens @ 0:00

From the Banana equivalent dose article in Wikipedia:

The major natural source of radioactivity in plant tissue is potassium: 0.0117% of the naturally occurring potassium is the unstable isotope potassium-40. This isotope decays with a half-life of about 1.25 billion years (4×1016 seconds), and therefore the radioactivity of natural potassium is about 31 becquerel/gram (Bq/g), meaning that, in one gram of the element, about 31 atoms will decay every second. … Since a typical banana contains about half a gram of potassium, it will have an activity of roughly 15 Bq. Although the amount in a single banana is small in environmental and medical terms, the radioactivity from a truckload of bananas is capable of causing a false alarm when passed through a Radiation Portal Monitor used to detect possible smuggling of nuclear material at U.S. ports

Of course, when I read this, I wanted to measure bananas with my meters.

When looking at instant measurements (CPS and µSv/h), I noticed no increase.

And the spectrum measured with my Radiacode 103 over 24 hours showed a minuscule little bump.

It’s almost not noticeable in this spectrum, but when switching from log to linear, it stands out better:

This bump is around 1460 keV, which corresponds to potassium 40:

But it turns out that this bump is most likely not caused by potassium in the bananas, because it also shows up in a spectrum I measured of the background radiation, away from the bananas:

Although this spectrum is measured at the same location as the banana measurement was done, it was measured 24 hours later, so there is no absolute guarantee that the background radiation was the same at that time.

But I do know that my meter can pick up radiation from potassium 40. Here is a spectrum over 5 hours that I took with my meter stuck in low-sodium salt. In this salt, the sodium in sodium chloride has been replaced by potassium. Thus the concentration of potassium 40 is much higher than in bananas.

Here you can see a little bump that doesn’t show up in the background radiation spectrum.


Quickpost info

Monday 2 November 2026

Quickpost: Rad Pro

Filed under: Hardware,Quickpost — Didier Stevens @ 21:10

While researching the inner workings of Geiger-Müller counters, I stumbled upon Rad Pro.

It’s an open-source project developing firmware for cheap GM meters.

You get yourself a GM meter and replace its firmware with Rad Pro.

For some meters (like FNIRSI), it’s as simple as mounting the meter as a USB storage device and copying the Rad Pro firmware to it. Others (like Bosean) require a programmer.


Quickpost info

Saturday 31 October 2026

Quickpost: WT20 Welding Electrodes & Radiation

Filed under: Hardware — Didier Stevens @ 11:31

I found another material that I can buy freely and test with my Radiacode 103 radiation detector: WT20 Welding Electrodes.

These are tungsten welding electrodes with 2% thorium. Thorium is a little bit radioactive and shows up in the spectrum that I measured over a period of 3 hours with a Radiacode 103 device:


Quickpost info

Quickpost: Ghost USB-C

Filed under: Hardware,Quickpost — Didier Stevens @ 0:00

You’ve probably encountered devices that are powered via a USB-C connector, but that don’t work when you connect them to a USB-C charger or powerbank. They only work with a USB-A to USB-C cable, not with a USB-C to USB-C cable.

I used to encounter such devices regularly a couple of years ago, but far less nowadays. Until we went on holiday this summer, and my wife used a small portable fan. She connected it to her USB-C charger, and it didn’t work. So I fixed this with a USB-A to USB-C cable plugged into a charger with USB-A connector.

But this got me thinking: surely, there must be a small USB-C adapter that solves this problem? The problem occurs because in the USB-C standard, a power source doesn’t put 5 Volts on VBUS, until it detects there is a device connected that requires power. It detects the presence of such a device because of current flowing between the CC pins and GND. This happens because the device has resistors between the CC lines and GND. And some devices, like this fan, lack these resistors, and thus no power is present on VBUS. While with USB-A, there is always power on VBUS, whether a device is connected or not.

I did find such an adapter:

I has a female and male USB-C connector, and it contains two 5.1 kΩ resistors, one between line CC1 and GND, and the other between line CC2 and GND. This instructs the power source to deliver 5V between the VBUS lines and GND.

The result is that with this adapter, I can power these non-compliant devices with a classic USB-C power source and a classic USB-C cable.

With USB-A, it is clear from the difference in physical connectors, which device is a power source and which device is a power sink. With USB-C, that physical difference is gone. Both connectors on a USB-C cable are physically identical. Furthermore, with USB-C, the same device can adopt the role of a power source or the role of a power sink. For example, a laptop can be charged via its USB-C port (power sink role), and the same laptop can charge your phone via the same USB-C port (not simultaneously, of course). That’s the power source role.

Thus, with USB-C, a device must announce that it requires power before it receives power from a device that can act as a power source. And this fan doesn’t do this.

Be sure to only use this adapter between a power source and a power sink that is not compliant. If you would use this adapter to connect two power sources together, both power sources would energize the VBUS lines and one of the power sources would start to sink power. Power sources are not designed to sink power. Although this adapter turns a non-compliant device into a compliant device, the adapter itself is non-compliant.


Quickpost info

Wednesday 28 October 2026

Quickpost: Uranium Glass

Filed under: Hardware — Didier Stevens @ 17:03

I got the opportunity to measure the radiation emitted by uranium glass. Uranium glass is glass with uranium added to the glass mix for coloration.

My Bosean FS-5000 meter did not detect any radiation from the uranium glass. The counts per second (CPS) value was around the same on the uranium glass and away from it.

I know it is proper uranium glass (bought at a flea market), because it glows green under ultraviolet light.

My meter uses a Geiger–Müller tube, so the tube must not be sensitive enough to detect the radiation from the uranium glass.

I also have another meter to measure radiation, a Radiacode 103 meter. It looks like this:

It reads out a spot value of 9,57 CPS in the above picture: this is the amount of background radiation in that location, since no radioactive sources were nearby.

And here is my Radiacode 103 meter inside a glass made out of uranium glass:

The CPS value is 13,5, that’s noticeably higher than the background value of 9,57. Thus the glass is emitting some radiation that this meter is picking up. Strictly speaking, that doesn’t prove it’s uranium glass, because it could be another element that is the source of radiation.

But this meter is not only more sensitive, it can also differentiate between sources of radiation.

When my Bosean and my Radiacode meters give me a CPS value, for example 10, it means that they detected 10 ionization events per second (average). An ionization event is caused by ionization radiation: a ray or a particle.

My Bosean meter uses a Geiger–Müller tube, and such a tube can only measure the presence of ionization events. It can not measure the energy of the radiation or particle. It’s a binary measure.

While my Radiacode meter uses a scintillation crystal to measure ionization events. This crystal does not only detect ionization events (like a GM tube does), but it also measures the energy of the ionizing radiation that caused the ionization events. This amount of energy can be expressed in Joules, but since the values are so small, this amount is typically expressed in keV (kiloelectonvolt).

The Radiacode meter comes with an app that can display a chart like this one:

What you see here are CPS values set out per keV values. I let my meter run for 3 hours (3:02:21 exactly, see top-right corner of the image) while it was sitting inside the glass. For every ionization event, it measures the energy and builds a table of CPS per energy level. On the vertical axis, you have CPS, and on the horizontal axis, you have energy (keV). You can see a couple of peaks in this spectrum. The app has a library of spectra, and you can match that with your spectrum. That’s what I did here: the vertical purple lines come from a spectrum out of the library that I selected, and that is typical for Uranium (see top of image). The first 3 lines match a peak, the last 2 lines don’t match a peak.

Here is the info displayed by the app for the Uranium chain spectrum:

With the Radiacode meter, when I perform measurements over a long period, I can build up a spectrum of the energy of the ionizing radiations emitted by the sample, and then I can compare that with the app’s library, and when I have a good match, I have identified the element with a good probability.

This glass that I was able to test has a very high probability of being uranium glass: it has the appearance of uranium glass, it glows under UV light, it emits radiation and its radiation spectrum matches the uranium chain spectrum.

For reference, here is a spectrum of background radiation:

In the EU, uranium glass can be bought and sold freely (for example at flea markets). It contains radioactive material, but it is exempt from radiation regulations.


Quickpost info

Saturday 20 December 2025

Using a USB-C Trigger Cable To Power An FM Radio

Filed under: Hardware — Didier Stevens @ 0:00

The Dutch government is telling people to prepare to be self-sufficient for at least 72 hours in case of a major emergency when many services (electricity, water, internet) could be unavailable. This campaign is called “Denk Vooruit” (Think Ahead). An emergency booklet has been mailed to all inhabitants. The Belgian authorities are voicing similar concerns, but no emergency booklet has been mailed.

The booklet advises people to have a radio in their emergency kit, specifically one that works without mains power, like a battery-powered or hand-crank radio.

I have a battery-powered FM radio, and I wanted to know if I could power it with a USB powerbank and a USB trigger board (I have several high-capacity powerbanks).

It works: the radio has a 12V barrel jack connector, and I can power it with this USB trigger board/cable, without soldering connectors:

I’ll probably still solder a cable with a fixed 12V USB trigger board, because this setup is prone to accidentally pushing the button of the USB trigger board, and delivering 15V or 20V to the radio (a voltage that is too high, and might destroy the radio).

Although this setup is portable, it’s not very handy to carry around when you go away from home. So I looked around on Aliexpress for a small & cheap FM radio and selected a Junus J-555. It can be powered by two alkaline AAA batteries or by its built-in Li-Po battery. That Li-Po battery can be charged via a USB-C connector, and the radio also works while charging. But what is most important: it has a good reception of FM and AM stations when operating inside my home.

Thursday 18 December 2025

USB Trigger Boards

Filed under: Hardware — Didier Stevens @ 0:00

In blog post “Quickpost: USB Electric Razor” I mention USB trigger boards.

A USB trigger board is a small electronic device that receives power via a USB-C connector, and delivers power with a voltage that it negotiates with the USB power source.

This one for example is set to deliver 12V:

Left you have the USB-C connector, right you have positive and ground soldering pads with 12V between them.

Here is one that can be configured with DIP-switches (5V, 9V, 12V, …):

The USB-C connector is on the left, and you have screw connectors on the right for the output.

Here is one with cables, and a display and switch that lets you cycle between 5V, 9V, 12V, 15V and 20V.

The USB-C cable is on the right, and a cable with a barrel jack connector is on the left, delivering 12V in this example.

And here is one that is even more configurable:

A USB-C connector on the left, and a USB-A connector on the right with a USB-A cable with barrel jack connector. It’s configured for 5V.

This one can not only negotiate fixed voltages (5V, 9V, 12V, …), but also arbitrary voltages via Programmable Power Supply, provided your USB power source supports PPS. For example, one can request 5.5V, and also limit the current, to say 0.1A.

And finally, I also have this Fnirsi DPS-150, a portable power supply that can also be powered via a USB-C connector:

It’s not a USB trigger board, but more like a lab power supply. It is limited by the power it receives from the USB power supply. For example, on the picture above, you can see that it negotiated 20V (20.07V) with the USB power source, it is set to deliver 20V (Vset), and delivers 19.83V (unloaded). The dial button can be used to set a voltage between 0V and 19.83 (in this example). The maximum current can also be set (Iset).

These boards allow me to power devices with various power requirements, and be mobile.

Saturday 6 December 2025

Quickpost: USB-C Rechargeable Batteries

Filed under: Hardware,Quickpost — Didier Stevens @ 10:52

I discovered USB-C rechargeable batteries, and bought a set of AA and AAA batteries.

They have a USB-C connector for recharging, so you don’t need a separate charger like you do for NiMH batteries.

This post is not a full blog post, but more a collection of lab notes.

These USB-C batteries deliver 1,5 Volt (unlike NiMH batteries that deliver 1,3 Volt). And during discharge tests, I noticed that the voltage almost doesn’t change. So not only must they have battery charger electronics inside, but also converter electronics that deliver a constant voltage. Probably something like a switching-mode power supply circuit, because when I look at the ripple of the voltage with an oscilloscope, I see a pattern that makes me think of a switching-mode power supply:

That’s for a AA battery that delivers power to an electronic load that draws 0,100 A current:

The ripple could also come from the electronic load itself, or some electronic noise source in my lab. So to rule that out, I discharged an alkaline battery and got this:

This is a different pattern and it repeats with a different frequency, to the ripple we saw in the first scope picture must come from the battery.

I also did measurements with a spectrum analyzer:

Here you can see a peak (and its harmonics) around 1,20 MHz.

That too comes from the battery, as these peaks do not appear with an alkaline battery:

In the picture of the electronic load screen, one can see 1493 mWh: that’s for the discharge of an AA battery at 0,100 A until the voltage reaches 0,5 V. 1493 is far less than the 3400 mWh printed in a large font on each battery.

I did a series of tests with my AA (0,100 A discharge current) and AAA (0,025 A discharge current) batteries, and on average I get:

TypeMeasured output (mWh)Advertized outputMeasured input (mWh)RTE
AA15273400211472%
AAA478120075463%

Unfortunately, these batteries deliver far less electrical energy than advertized.

For comparison, I also discharged an fresh alkaline AAA battery and got 1380 mWh out of it.

I created a discharge graph for a USB-C rechargeable AA battery:

During more than 9 hours, the voltage stays around 1,45 V (for a 0,100 A discharge current). Then it abruptly drops to 1,05 V, and then 0 V.

Charging the AA batteries requires 2114 mWh on average, the AAA batteries require 754 mWh. This is also far less than the advertized capacity. This allowed me to calculate the Round Trip Efficiency (RTE) in the table above.

Despite the discrepancy in capacity, these batteries have advantages too:

  • the nominal voltage is 1,5 Volt
  • the voltage curve remains (mostly) flat while discharging
  • their chemistry doesn’t result in battery leaks that corrode your electronics
  • you don’t need a battery charger

Disadvantages:

  • far less capacity than advertized
  • very abrupt voltage drop when fully discharged
  • they can’t negotiate power with a USB charger (you can’t charge them with a USB-C to USB-C cable, you must use a USB-A to USB-C cable like the one included)
  • some electronic noise because of the switching power supply

Quickpost info

Friday 5 December 2025

Quickpost: USB Electric Razor

Filed under: Hardware,Quickpost — Didier Stevens @ 20:26

The USB Power Delivery protocol (USB PD) defines power negotiation.

For example, USB trigger boards negotiate power requirements with a USB power source (like a charger or a powerbank), and can ask for a higher voltage than the standard 5V of a USB source that does not support USB PD.

This also explains why there are (cheap) devices with a USB-C port, that can only be powered with a USB-A to USB-C cable, and not with a USB-C to USB-C cable. These devices are not capable to negotiate their power requirements, they expect 5.0 Volts on the VBUS pins. These devices do not support USB PD.

USB PD made it possible to invent all kinds of gadgets, adapters, …

One adapter I want to talk about in this blog post, allows me to charge my Philips electric razor with a USB-C powerbank.

My Philips electric razor has its own proprietary charger and connector, operating at 15 Volts. When I travel, I need to remember to bring along the charger (it does not fit in the razor’s case).

But now I have this adapter:

On one end, it has a USB-C receptacle:

And on the other end, it has the Philips proprietary razor plug.

The adapter negotiates 15 volts with the USB power source:

I didn’t know such adapters existed, but while experimenting with USB PD, I realized that it makes such adapters possible, and so I started to search and found one on AliExpress.

This allows me to travel without an extra charger, just with a very small adapter (and a USB power source).


Quickpost info

Saturday 29 November 2025

Quickpost: CR1225 vs CR1220

Filed under: Hardware,Quickpost — Didier Stevens @ 0:00

I had to replace a button cell, a CR1225, but I only had a CR1220.

So I just used that CR1220 in stead. This works, because a CR1220 and CR1225 differ in mechanical properties (dimension), but not in electrical properties (voltage).

Both cells have a nominal voltage of 3 Volts.

CR1220 means the following:

  • C: Lithium battery
  • R: Round
  • 12: 12mm diameter
  • 20: 2,0mm thickness

The difference between a CR1220 and CR1225 is the thickness: a CR1220 is 0,5mm slimmer than a CR1225. So a CR1220 fits in a CR1225 holder without problem.


Quickpost info
Next Page »

Blog at WordPress.com.