Hack-the-Planet Podcast: Episode 24

Wir haben uns wieder zusammengefunden – diesmal mit unserem Gast Philipp von nerdbude.com – und haben über Tastaturen, Github Arctic Vault, OCRmyPDF und einen selbstgebauten Arcade Automat gesprochen.

Wie schon bei der letzten Folge 23 haben wir zusätzlich zur Tonspure eine Videospur aufgezeichnet – allerdings nicht als “Talking-Heads” Episode sondern während wir über die Themen sprechen versuchen wir die Themen mit zusätzlichem Inhalt zu unterfüttern – Links und Bilder eben.

Link zu YouTube

Apple Watch repair attempt

After years of use the display of my trusty Apple Watch popped off. It seems the glue had given in and failed.

As there was nothing wrong with the watch otherwise I am attempting a repair.

I’ve got the new adhesive seal, a new force touch sensor and a new battery while I am at it.

Add opening and disassembling was an adventure in itself I had to give up for now as I am missing an exotic Y000 screwdriver.

While I wait for this to arrive – here is the screw I had to stop at:

multi-Protocol to MQTT tool

When you are dealing with IoT protocols, especially at hobby-level, you probably came across the MQTT protocol and the challenge to have all those different devices that are supposed to be connected actually get connected – preferably using the MQTT protocol.

Recently this little project came to my attention:

OpenMQTTGateway project goal is to concentrate in one gateway different technologies, decreasing by the way the number of proprietary gateways needed, and hiding the different technologies singularity behind a simple & wide spread communication protocol: MQTT.

OpenMQTTGateway

OpenMQTTGateway support very mature technologies like basic 433mhz/315mhz protocols & infrared (IR) so as to make your old dumb devices “smart” and avoid you to throw then away. These devices have also the advantages of having a lower cost compared to Zwave or more sophisticated protocols. OMG support also up to date technologies like Bluetooth Low Energy (BLE) or LORA.

Of course, there is a compatible device list…

Hack-The-Planet Podcast: Episode 17

Hack-The-Planet Podcast: Episode 16

Links:

Linux mac80211 compatible full-stack Wi-Fi design based on SDR

In a tweet we were given an early christmas present – open-sdr released an open source software Wi-Fi stack that utilizes software-defined-radio technology to implement actual working Wi-Fi.

Features:

  • 802.11a/g; 802.11n MCS 0~7; 20MHz
  • Mode tested: Ad-hoc; Station; AP
  • DCF (CSMA/CA) low MAC layer in FPGA
  • Configurable channel access priority parameters:
    • duration of RTS/CTS, CTS-to-self
    • SIFS/DIFS/xIFS/slot-time/CW/etc
  • Time slicing based on MAC address
  • Easy to change bandwidth and frequency:
    • 2MHz for 802.11ah in sub-GHz
    • 10MHz for 802.11p/vehicle in 5.9GHz
  • On roadmap: 802.11ax

See this demonstration:

TESLA PowerWall 2 Security Shenanigans

EXECUTIVE SUMMARY

  • GUI wide open.
  • Default password on WiFi and management interface
  • Attacker can cause financial damage to consumer
  • Attacker can dump entire PW Load into the grid at once
  • Attacker can oscilate between CHARGING and DUMPING (microseconds, the poor sub-station!)
  • Attacker can change grid codes.

More here. At least somebody looked into the security and attack potential of these things.

DIRECTIVE 2009/24/EC – Article 6 – Decompilation

Article 6
Decompilation

  1. The authorisation of the rightholder shall not be required
    where reproduction of the code and translation of its form
    within the meaning of points (a) and (b) of Article 4(1) are
    indispensable to obtain the information necessary to achieve
    the interoperability of an independently created computer
    program with other programs, provided that the following
    conditions are met:

    (a) those acts are performed by the licensee or by another
    person having a right to use a copy of a program, or on
    their behalf by a person authorised to do so;

    (b) the information necessary to achieve interoperability has not
    previously been readily available to the persons referred to
    in point (a); and

    (c) those acts are confined to the parts of the original program
    which are necessary in order to achieve interoperability.
  2. The provisions of paragraph 1 shall not permit the information obtained through its application:

    (a) to be used for goals other than to achieve the interoperability of the independently created computer program;

    (b) to be given to others, except when necessary for the interoperability of the independently created computer program;
    or

    (c) to be used for the development, production or marketing of
    a computer program substantially similar in its expression,
    or for any other act which infringes copyright.
  3. In accordance with the provisions of the Berne
    Convention for the protection of Literary and Artistic Works,
    the provisions of this Article may not be interpreted in such a
    way as to allow its application to be used in a manner which
    unreasonably prejudices the rightholder’s legitimate interests or
    conflicts with a normal exploitation of the computer program.

Original in english and german.

turn an Xbox 360 HD-DVD drive into an Fluorescent Scanning Thermal Microscope (FSTM)

Curtesy of Sam Zeloof I came around the fact that I’ve got a good part of a FSTM in a cupboard here.

Apparently my choice of purchasing the HD-DVD drive for the Xbox 360 will ultimately pay off!! As we all know Bluray won that format war back in the days.

But now it seems that this below would be useable for something:

Over the life of nuclear fuel, inhomogeneous structures develop, negatively impacting thermal properties. New fuels are under development, but require more accurate knowledge of how the properties change to model performance and determine safe operational conditions.

Measurement systems capable of small–scale, pointwise thermal property measurements and low cost are necessary to measure these properties and integrate into hot cells where electronics are likely to fail during fuel investigation. This project develops a cheaper, smaller, and easily replaceable Fluorescent Scanning Thermal Microscope (FSTM) using the blue laser and focusing circuitry from an Xbox HD-DVD player.

The Design, Construction, and Thermal Diffusivity Measurements of the Fluorescent Scanning Thermal Microscope (FSTM)

As mentioned, Sam Zeloof shows off the actual chip in more detail:

Xbox 360 HD DVD player photodiode chip reverse engineering, includes 49 bits of antifuse trimming from the factory

Hack-The-Planet Podcast: Episode 10

Shownotes

Odometer for the HUD

Since I am back at developing the Head-Up-Display app I was writing about in February (yeah, mornings got darker again!) I want to leave this nice looking Odometer Javascript library here:

Odometer is a Javascript and CSS library for smoothly transitioning numbers. See the demo page for some examples.

Odometer’s animations are handled entirely in CSS using transforms making them extremely performant, with automatic fallback on older browsers.

odometer

Hack-The-Planet Podcast: Episode 009

Hertzian Landscapes

I played with SDR – Software Defined Radio – back in 2013. I’ve still got the equipment around.

Now that I am thinking about it – there is a practical use-case that I will look into in the coming months for sure for it. And just to mention this use case here: With SDR I could create a more versatile 443/886 Mhz receiver.

Anyhow. SDR hardware allows you to access a whole spectrum of radiosignals at once. And a common way to visualize the spectrum is to draw the amplitudes in a line add each new measurement as a new line – color/brightness coded.

What you get is some sort of waterfall diagram that looks like this:

Hertzian Landscapes (2019) is a live visualization of the radio spectrum. Unlike visible light, waves in the radio spectrum cannot be perceived by us directly yet this space is teeming with human activity. Hertzian Landscapes employs a digital receiver to scan large swaths of radio spectrum in near real-time and visualizes thousands of signals into a panoramic electromagnetic landscape. Users can zoom in to specific frequencies by positioning themselves in front of the panorama as if controlling a radio tuner with their body, giving them a sense of walking through the spectrum.
From radio broadcasts to weather satellites and from medical implants to aeronautical navigation, the radio spectrum is divided into hundreds of designated slices each tied to a specific application. Based on a localized frequency database that describes these slices, signals are annotated to provide information about their theoretical type and application.

http://www.hertzianlandscapes.com/

C# PlayStation emulation

After looking into the NES emulation written entirely in C# I came across a similar approach using C# to emulate a full and much more complex PlayStation 1.

Scott Hanselman wrote:

I then stumbled on this very early version of a PSX Emulator in C#.

Now, if you were to theoretically have a Playtation SCPH1001.BIN BIOS and then physically owned a Playstation (as I do) and then created a BIN file from your physical copy of Crash Bandicoot, you could happily run it as you can see in the screenshot below.

Hack-the-Planet Podcast: Episode 006

Episode 006: “Monitoring Release Pipeline” ist fertig und steht bald zum Download und zeit-sourveränem anhören bereit.

Auf der Homepage, im Feed und auf YouTube:

Diesmal unterhält Andreas sich mit mir über:

QuickCharge 3 (QC3) enable your Arduino project

You might have asked yourself how it is that some phones charge up faster than others. Maybe the same phone charges at different speed when you’re using a different cable or power supply. It even might not charge at all.

There is some very complicated trickery in place to make those cables and power supplies do things in combination with the active devices like phones. Many of this is implemented by standards like “Quick Charge”:

Quick Charge is a technology found in QualcommSoCs, used in devices such as mobile phones, for managing power delivered over USB. It offers more power and thus charges batteries in devices faster than standard USB rates allow. Quick Charge 2 onwards technology is primarily used for wall adaptors, but it is also implemented in car chargers and powerbanks (For both input and output power delivery).

Wikipedia: Quick Charge

So in a nutshell: If you are able to speak the quick charge protocol, and with the right cable and power supply, you are able to get anything between 3.6 and 20V out of such a combination by just telling the power supply to do so.

This is great for maker projects in need of more power. There’s lots of things to consider and be cautious about.

“Speaking” the protocol just got easier though. You can take this open source library and “power up your project”:

The above mentioned usage-code will give you 12V output from the power supply. Of course you can also do…:

Be aware that your project needs to be aware of the (higher) voltage. It’s really not something you should just try. But you knew that.

More on Quick Charge also here.

smart arduino fish pond feeder: TurtleFeeder

We’ve got several quite big fish tanks in our house. Mainly used by freshwater turtles.

say Hi! to Wilma.

These turtles need to be fed every once in a while. And while this is not an issue normally it’s an issue if you leave the house for travel for an extended period of time.

Of course there are humans checking on everything in the house regularly but as much as can be automated should and will be automated in our household. So the requirement wa to have the turtle feeding automated.

To achieve this is would be necessary to have a fixed amount of turtle food be dispensed into the tanks on a plan and with some checks in the background (like water quality and such).

It’s been quite a hassle to come up with a plan how the hardware should look like and work. And ultimately i’ve settled on retrofitting an off-the-shelf fish pond feeder to become controllable through MQTT.

The pond feeder I’ve found and used is this one:

It’s not really worth linking to a specific product detail page as this sort of feeder is available under hundreds of different names. It always looks the same and is priced right around the same.

If you want to build this yourself, you want one that looks like the above. I’ve bought 3 of them and they all seem to come out of the same factory somewhere in China.

Anyway. If you got one you can easily open it up and start modifying it.

Hardware

the wheel is turned by a DC motor and the switch is triggered by the wheels fins
I’ve added a connector to the switch and the motor cables for quick connect

The functional principle of the feeder is rather simple:

  1. turn the feeder wheel
  2. take the micro-switch status in account – when it’s pressed down the wheel must be pushing against it
  3. turn it until the micro-switch is not pressed anymore
  4. turn some more until it’s pressed again

Simple. Since the switch-status is not known on power loss / reboot a calibration run is necessary (even with the factory electronics) every time it boots up.

After opening the feeder I’ve cut the two cables going to the motor as well as the micro-switch cables. I’ve added a 4-Pin JST-XH connector to both ends. So I can reconnect it to original state if desired.

These are all the parts needed:

I am using a Wemos D1 Mini and a couple of additional components apart from the prototype board:

A PN2222 NPN transistor, a rectifier diode 1N4007 and a 220 Ohm resistor.

I’ve connected everything according to this schematic I’ve drawn with Fritzing:

I’ve then prototyped away and put everything on the PCB. Of course with very limited solderig skill:

As you can see the JST-XH connector on Motor+Switch can now be connected easily to the PCB with all the parts.

Make sure you check polarity and that you did correctly hook up the motor and switch.

When done correctly the PCB (I’ve used 40mm x 60mm prototype pcb) and all cables will fit into the case. There’s plenty of room and I’ve put it to the side of it. I’ve also directly connected an USB cable to the USB port of the Wemos D1 Mini. As long as you put at least 1A into it it will all work.

Software

Since the Wemos D1 Mini sports an ESP8266 and is well supported by Arduino it was clear to me to use Arduino IDE for the software portion of this project.

Of course everything, from schematics to the sourcecode is available as open source.

To get everything running you need to modify the .ino file in the src folder like so:

Configuration

What you need to configure:

  • the output pins you have chosen – D1+D2 are pre-configured
  • WiFi SSID + PASS
  • MQTT Server (IP(+Username+PW))
  • MQTT Topic prefix

Commands that can be sent through mqtt to the /feed topic.

MQTT topics and control

There are overall two MQTT topics:

  • $prefix/feeder-$chipid/state
    This topic will hold the current state of the feeder. It will show a number starting from 0 up. When the feeder is ready it will be 0. When it’s currently feeding it will be 1 and up – counting down for every successfull turn done. There is an safety cut-off for the motor. If the motor is longer active than configured in the MaximumMotorRuntime variable it will shut-off by itself and set the state to -1.
  • $prefix/feeder-$chipid/feed
    This topic acts as the command topic to start / control the feeding process. If you want to start the process you would send the number of turns you want to happen. So 1 to 5 seems reasonable. The feeder will show the progress in the /state topic. You can update the amount any time to shorten / lengthen the process. On the very first feed request after initial power-up / reboot the feeder will do a calibration run. This is to make sure that all the wheels are in the right position to work flawlessly.

So if you want to make it start feeding 3 times:

mosquitto_pub -t house/stappenbach/feeder/feeder-00F3B839/feed -m 3

And if you want to see the state of the feeder:

mosquitto_sub -v -t house/stappenbach/feeder/feeder-00F3B839/state

All in all there are 3 of these going to be running in our household and the feeding is going to be controlled either by Alexa voice commands or through Node-Red automation.

the appropriate case for your hackintosh

It’s been a year since Zenvent posted this:

Created a custom case for my hackintosh, it resembles a minified Power Mac G5. I have uploaded the parts to Thingiverse in case you’d like to make one of your own. 

https://www.zenvent.com/blog/hackintosh/

Hackintosh (a portmanteau of “Hack” and “Macintosh”), is a computer that runs macOS on a device not authorized by Apple, or one that no longer receives official software updates.

https://en.wikipedia.org/wiki/Hackintosh

Hack-The-Planet Podcast: Episode 003

Wir haben wieder etwas aufgenommen. Der Release heute ab 15 Uhr wie gewohnt hier und hier sogar mit Live-Chat.

Diesmal geht es um:

  1. Scanner Pro auf iOS – https://apps.apple.com/us/app/scanner-pro/id333710667 
  2. Scanbot auf iOS – https://scanbot.io/en/index.html 
  3. Abo-Modelle bei Software und Diensten
  4. RING Kamera und Überwachungssystem – https://de-de.ring.com/
  5. Canary Indoor Camera – https://canary.is/
  6. Surveillance Station – https://www.synology.com/en-global/surveillance
  7. Ring has more than 400 police “partnerships” – https://arstechnica.com/tech-policy/2019/08/ring-has-more-than-400-police-partnerships-company-finally-says/
  8. Jumbo Privacy – https://blog.jumboprivacy.com/ – App Store: https://apps.apple.com/us/app/jumbo-privacy/id1454039975?ls=1
  9. Tim Berners-Lee Projekt “Solid”: https://solid.mit.edu/https://en.wikipedia.org/wiki/Solid_(web_decentralization_project)https://solid.inrupt.com/how-it-works 
  10. Ubuntu – https://ubuntu.com/
  11. Throw-Away Remote VNC Linux Desktop in a Docker container – https://www.schrankmonster.de/2019/08/27/a-throw-away-linux-desktop-in-a-container/ 
  12. Virtual Network Computing – https://en.wikipedia.org/wiki/Virtual_Network_Computing
  13. Stephen Wolfram – https://blog.stephenwolfram.com/
  14. Speed of Light in Medium – https://en.wikipedia.org/wiki/Speed_of_light

paint it (very) black

You might, or might not be aware of my passion for black clothing. I like the simplicity and absence of noise.

Anyway. You might not be aware of the wonderful world of black as-in paint.

Apparently the current record holder in blackness (measured in percent absorption of visible light) is a product called “Vanta Black”.

Wikipedia: Wrinkled aluminium foil with a portion—equally wrinkled—coated in Vantablack

Vantablack is a material developed by Surrey NanoSystems in the United Kingdom and is one of the darkest substances known, absorbing up to 99.96% of visible light (at 663 nm if the light is perpendicular to the material).
The name is a compound of the acronym VANTA (vertically aligned carbon nanotube arrays) and the color black.

Wikipedia: Vantablack

Unfortunately this blackest-of-black coating is not readily available for purchase. Export rules apply and so it’s usually not sold to civilians at all.

“What is the next best thing?”, you ask. Well it’s BLACK 2.0.

a throw-away remote VNC linux desktop in a docker container

I am running most of my in-house infrastructure based on Docker these days…

Docker is a set of platform-as-a-service (PaaS) products that use operating-system-level virtualization to deliver software in packages called containers. Containers are isolated from one another and bundle their own software, libraries and configuration files; they can communicate with each other through well-defined channels.

All containers are run by a single operating-system kernel and are thus more lightweight than virtual machines.

Wikipedia: Docker

And given the above definition it’s fairly easy to create and run containers of things like command-line tools and background servers/services. But due to the nature of Docker being “terminal only” by default it’s quite hard to do anything UI related.

But there is a way. By using the VNC protocol to get access to the graphical user interface we can set-up a container running a fully-fledge Linux Desktop and we can connect directly to this container.

I am using something I call “throw-away linux desktop containers” all day every day for various needs and uses. Everytime I start such a container this container is brand-new and ready to be used.

Actually when I start it the process looks like this:

As you can see when the container starts-up it asks for a password to be set. This is the password needed to be entered when the VNC client connects to the container.

And when you are connected, this is what you get:

this is what you see after connecting to the desktop container by VNC

I am sharing my scripts and Dockerfile with you so you can use it yourself. If you put a bit more time into it you can even customize it to your specific needs. At this point it’s based on Ubuntu 18.04 and starts-up a ubuntu-mate desktop environment in it’s default configuration.

When you log into the container it will log you in as root – but effectively you won’t be able to really screw around with the host machine as the container is still isolating you from the host. Nevertheless be aware that the container has some quirks and is run in extended privileges mode.

Chromium will be pre-installed as a browser but you will find that it won’t start up. That’s because Chromium won’t start up if you attempt a start as root user.

The workaround:

“–no-sandbox” parameter for Chromium

Now get the scripts and container here and build it yourself!