RSSAmplifier

Blog

Cynics Soapbox

Random thoughts...

blog.david-reid.comRSS feed ↗15 posts

Latest posts

hasRoute

While developing an app for Android I've been using the newest navigation version from compose, 2.8.3. This allows for much more flexibility around defining routes, but it did throw up an issue that took a while to figure out. Bottom Navigation Bar Looking at the sample

Zigbee Ethernet Gateway #2

After more experiments it became apparent that for current devices the bootloader has been locked down, so no amount of pressing the ESC key will enable you to gain access. Glitching It Plan B was to try the " glitch " method . This is much higher risk and more complicated,

Zigbee Ethernet Gateway

Having started to add some Zigbee devices to the home automation mix, I have a version of one of the "standard" Tuya ethernet gateway models. This same board appears in devices from all sorts of companies. Router Zigbee is provided by a Tuya TYZS4-IPEX which has online

Google aab signing

This is just a quick note to self :-) The profile used for the Build > Generate Signed App Bundle or APK in AndroidStudio needs to have the Debuggable option set to false or it will be rejected on upload with the rather unhelpful message The Android App Bundle was not

nginx

There is likely a better way to do this, but when asked to add a redirect catching some moved wordpress files in nginx , this was what I came up with. set $fix_redirect ""; if ($request_uri ~ '/wp-content/uploads(.*)') { set $fix_redirect $1; } if ($fix_redirect

Mobile Experiments

It's been a long, long while since I last looked at doing any development for mobile devices. My experiences were all disappointing and negative. While I could get things to build, they always seemed to have issues and installing onto an actual device was a nightmare of versioning

Starter for 10...

After looking at a lot of decompiled code things started to make more sense... AES? The STM32L100RC doesn't have AES functionality builtin, but the SPIRIT1 does so when I came across an AES implementation contained with the code I was a little surprised. This turns out to be

Radio Settings

Having the firmware image to decompile allowed me to find the settings for the radio. How close was I? Spirit Library? I had guessed that they may well be using the STM SPIRIT1 library and after some looking I found that this was the case. It took a little while

Decompiling

Before getting started I decided to grab the following binary data files from the device. Flash 0x08000000 - 0x08003FFF (256Kb) - flash.bin EEPROM 0x0808000 - 0x08081FFF (8Kb) - eeprom.bin SRAM 0x20000000-0x20007FFF (32Kb) - ram.bin System Memory 0x1ff00000-0x1FF01FFF (8Kb) - system_memory.bin Each was accessed using 8-bit data width. Suitably

Board ID

After looking at the binary dump for the RF controller I realised that I needed to identify the processor I was dealing with.  From what I had read the flash image contains the bootloader followed by the code i was interested in. There may also be some data sections.

Lots of Bytes

Having been trying to make sense of the broadcast packets from the heaters and controllers for a few days it became apparent that I wasn't making much progress. Some small pieces made sense and seemed to point to a structure, but there just wasn't enough to

RF Controller - Part 9

Following on from last night I decided to try turning off all bar one of the heaters to see if the 3 different "signatures" I was seeing were related to the 3 heaters. Timing 21:41:42 DEBUG receiver - receive: messsage of 40 bytes 21:42:22 DEBUG

RF Controller - Part 8

py-spirit1 I published the code I've been writing to github after refactoring it slightly to make it simpler to use and easier to expand from. There is still a lot missing but it's working for me and and as I delve further I will try

RF Controller Part 7 - It's alive!

After connecting the SPIRIT1 board to the RaspberryPi it didn't take long to start reading data from the chip via SPI. This was just the first step and to be honest the following days saw me going back and forth trying to comprehend what was needed and how

RF Controller - Part 6

Having received the SPIRIT1 development board (I bought a Nucleo-IDS01A4 ) I have been attempting to communicate via the SPI interface detailed in the datasheet. As I had a spare RaspberryPi 1 I'm using that as a starting point. Connecting? The MBed project has a very useful pinout