The Internet Of Things Will Radically Change Your Big Data Strategy

Companies are jumping on the Internet of Things (IoT) bandwagon and for good reasons. McKinsey Global Institute reports that the IoT business will deliver $6.2 trillion of revenue by 2025. Many people wonder if companies are ready for this explosion of data generated for IoT. As with any new technology, security is always the first point of resistance. I agree that IoT brings a wave of new security concerns but the bigger concern is how woefully unprepared most data centers are for the massive amount of data coming from all of the “things” in the near future.

More here.

EFM32 bootloader scripted FW update

The Silabs Energy Micro EFM32 ARM-Cortex microcontrollers support updating the firmware in the chip via a bootloader. The chips come with the bootloader pre-installed by default.

So far I haven’t had much luck using this bootloader as my quest to get it working usually was quickly suspended by me overwriting the bootloader and then failing to re-install the bootloader.

The problem with re-installing the bootloader is that you need to compile the bootloader for your specific device and Silabs only provides files to do this in the IAR development environment which I have no interest in using.

Luckily I stumbled upon the work of the f-watch team: Bootloader , and after some digging I found the corresponding code here .

They modified the bootloader not to copy itself to RAM, which I don’t need anyway (it is only useful if you want to be able to overwrite the bootloader) and besides that they changed the bootloader triggering procedure from pulling low the SWD pin to pressing two other. That change was quickly reverted.

After installing the bootloader I can now use minicom + xmodem to upload and boot a firmware and it works fine.

The only remaining problem is that I want it to work from within the makefiles I use for building. After some trial and error I found this trick using screen:

 

# upload via xmodem
xmodem: exe/$(PROJECTNAME).bin
    # open serial device
    screen -d -m -S 'serial' $(SERIAL) 115200
    sleep 0.1
    # say we want to Upload
    screen -x "serial" -X eval '!!!| echo u'
    sleep 0.1
    # execute xmodem transfer
    screen -x "serial" -X eval "exec !! sx -vv $<"
    sleep 2
    # say we want to Boot the installed firmware
    screen -x "serial" -X eval '!!!| echo b'

Not the nicest trick but it works fine. To be replaced one day by a python script.

IMG_20141116_091712