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: 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

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

Friday 21 November 2025

Quickpost: Power Requirements Of A Keylogger

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

I did some tests with a Keelog keylogger, the AirDrive Forensic Keylogger: I wanted to find out how much power that keylogger requires.

This is my test setup:

  1. This is the USB keyboard
  2. The USB cable of the keyboard is plugged into the USB breakout board
  3. This is the USB breakout board, allowing me to measure the voltage and current of the USB power lines
  4. This is specialized multimeter that can measure power (by measuring voltage and current simultaneously)
  5. The USB cable of the USB breakout board is plugged into a USB extension cable that is plugged into a computer

In this standby state, with all its LEDs turned of, the keyboard consumes 11 mW.

That’s not much power. Compare this with the Numlock LED turned on, and we have 4 times as much: 47 mW:

And here I have the keylogger plugged in (between the keyboard and the USB breakout board):

Now the total power measured is 383 mW: that’s for the keyboard (with LEDs turned off) and the keylogger.

That’s a huge difference with 11 mW for a keyboard without keylogger.

If this keylogger would be hidden into the keyboard, it would be easily detected using this measurement method, because this particular keyboard requires 30+ times less power than the keylogger itself.


Quickpost info

Saturday 25 October 2025

Quickpost: PEP 515 – Underscores in Numeric Literals

Filed under: Quickpost — Didier Stevens @ 8:07

While attending a great presentation of Kaitai Struct at Hack.lu 2025, I noticed a binary numeric notation during the demo, that I had never seen before. Something like 0b1000_0001.

I’m familiar with notations in Python like 0b10000001, but not with an underscore thrown in to make the number more readable.

Turns out this exists for almost 10 years in Python (since Python 3.6), and that it is known as PEP 515 – Underscores in Numeric Literals.

And it exists in other programming languages too.


Quickpost info

Sunday 6 July 2025

Quickpost: 12V Portable Power Station

Filed under: Hardware,Quickpost — Didier Stevens @ 9:18

In blog post “My Fridge & My Portable Power Station” I managed to get a maximum of 778 Wh out of my portable power station with a rated capacity of 1260 Wh.

Thinking that quite some power got lost in the AC inverter, I set out to measure the amount of power I can get with its 12V DC output.

I configured my electronic load to draw 5 A:

The portable power station displayed 65 W output:

And I only got 673 Wh out of it:

That’s even worse than for 230V with the inverter: 53% of the rated capacity.


Quickpost info

Wednesday 2 July 2025

Quickpost: Doorbell & Condensation

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

Remember that I broke the filament of the light-bulb in my doorbell?

Turns out there is another advantage to having a light-bulb in your doorbell: it prevents condensation:


Quickpost info
Next Page »

Blog at WordPress.com.