Difference between revisions of "User:Bertrik Sikken"

From RevSpace
Jump to: navigation, search
 
(42 intermediate revisions by the same user not shown)
Line 4: Line 4:
 
  |Tagline=heb ik niet
 
  |Tagline=heb ik niet
 
}}
 
}}
 +
 +
You can reach me at bertrik@sikken.nl or bertrik@gmail.com
  
 
Studied Electrical Engineering at Twente University.
 
Studied Electrical Engineering at Twente University.
 +
  
 
Main interests:
 
Main interests:
 
* reverse-engineering things (USB stuff, mp3 players), working on http://rockbox.org
 
* reverse-engineering things (USB stuff, mp3 players), working on http://rockbox.org
 
* studying bats and making electronics for recording/listening to bat sounds
 
* studying bats and making electronics for recording/listening to bat sounds
* software-defined radio
+
* radio stuff, in particular software-defined radio
 +
 
 +
 
 +
Projects I work(ed) on ([https://revspace.nl/index.php?title=User:Bertrik_Sikken&action=purge refresh]):
 +
{{#ask:[[Category:Project]][[Project Contact::bertrik]]
 +
|?Project Status
 +
|headers=show
 +
|link=all
 +
|order=ASC,ASC
 +
|sort=Project Status,Project Name
 +
}}
 +
 
 +
 
 +
== Project ideas ==
 +
This is a list of ideas I'm thinking about, but have not fully developed into an actual project yet.
 +
 
 +
=== investigate STM32F103 microcontroller ===
 +
The STM32 family of microcontrollers looks quite interesting.
 +
 
 +
You can buy inexpensive [https://nl.aliexpress.com/item/STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module/32327927921.html STM32F103] boards with the following functionality:
 +
* Cortex M3 processor running at 72 MHz
 +
* 64 kB flash, 20 kB RAM
 +
* 2x ADC with 1 microsecond conversion time
 +
* USB interface
 +
 
 +
The plan is to get a bunch of these and play with them, for example see if it is fast enough to sample ultrasonic audio and store it on an sd card (so it can be used as a super cheap bat call recorder).
 +
 
 +
See [http://grauonline.de/wordpress/?page_id=1004 this page] for more information on using these in the Arduino environment.
 +
 
 +
=== investigate quadcopter remote control ===
 +
It turns out that the typical little cheap Chinese quadcopters use a remote-control protocol that can be easily recreated using the famous NRF24L01+ chip (< $1 and easily connected to an arduino).
 +
This gives nice opportunity to either:
 +
# transmit our own control signal, to control a quadcopter from something different than the manual remote control, e.g. automatic control
 +
# receive the control signal, so the manual remote control that comes with a quadcopter can be used to steer other things (like a model car).
 +
 
 +
I haven't found a good overview of quadcopter remote control protocol specifications yet, there seem to be plenty examples of "here-is-the-code" however.
 +
 
 +
=== TTN gateway info panel ===
 +
Problem: if you're running a gateway for the-things-network (TTN), you can see packets coming in by following the packet forwarder log file, but it gives very limited and rather cryptic information.
 +
For example, you don't see which node sent a message, so you have no idea how many unique nodes are sending data through your gateway.
 +
 
 +
This idea is about creating a simple info panel that you can run directly on the TTN gateway itself.
 +
The plan is to write this in Python.
 +
A typical gateway probably already runs some sort of Linux distribution which has the python binaries available or allows them to be installed easily.
 +
Using Python also means that you don't need a compiler/Makefile/etc.
 +
 
 +
Basic operation of this utility:
 +
* the gateway software is configured to send its data not just to TTN but also to the gateway info panel utility (running on "localhost"), using the poly packet forwarder
 +
* the utility listens on a specific UDP port, accepting data according to [https://github.com/Lora-net/packet_forwarder/blob/master/PROTOCOL.TXT the Semtech v1 protocol].
 +
* it parses the plain JSON metadata (modulation parameters, like frequency, LoRa mode, SF, BW, etc.)
 +
* it also parses the payload bytes, part of the payload is not encrypted, so we can extract the message type, device address and sequence number (FCNT).
 +
* all incoming packets are shown in a table-like view in the console using the [https://en.wikipedia.org/wiki/Ncurses ncurses] library.
 +
 
 +
Initially, the utility will just keep the packets in memory, so it just shows things that happened since you last started it.
 +
Later, we can decide to store the data, for example in a database.
 +
 
 +
The information shown can be just the incoming messages in order of arrival, one line per message.
 +
Alternatively it could show a kind of node-centric view, one line per device with info only on the latest message from that node.
 +
 
 +
=== mini word clock in dutch ===
 +
Basically an monochrome 8x8 word clock, in Dutch, showing local time in the Netherlands.
 +
 
 +
[https://github.com/bertrik/miniwordclock This git repo] has the current code.
 +
 
 +
See [https://plus.google.com/103276078656203197145/posts/7ki7rpJzk3a here for a demo] running on an arduino nano.
 +
 
 +
The plan is to run this from an ESP8266 instead of an arduino nano, so it can get the time from the internet using NTP. The time offset will be fixed to Dutch local time, i.e. GMT+1 taking into account summer time. Summer time will be determined using the general rule "from 2:00 local time on the last sunday of March until 3:00 local time on the last sunday of October".
 +
 
 +
=== Inexpensive CO<sub>2</sub> sensor ===
 +
TODO: move this to its own page.
 +
 
 +
Status: works as a basic MQTT sensor, see topic "bertrik/co2" on test.mosquitto.org
 +
 
 +
See [https://github.com/bertrik/mhz19 this github repo] for code.
 +
 
 +
Use the [http://www.winsen-sensor.com/products/ndir-co2-sensor/mh-z19.html MH-Z19] sensor module (about E22,-) to measure the CO<sub>2</sub> concentration and an ESP8266 (like a WeMos D1 mini board) to push the measurement data over the internet to a MQTT server. Possibly I can use [https://www.esp8266.nu/index.php/ESPEasy ESPEasy] which makes configuration easy (through a web interface), I'd have to add support for this particular sensor -> ESPEasy seems pretty complicated to get changes accepted, has existing bugs that are not addressed, probably better to write my own custom code.
 +
 
 +
=== Understanding LoRa ===
 +
Ultimate goal is to create an SDR algorithm to decode LoRa without the need for dedicated LoRa hardware. This could be useful when tracking HABs transmitting LoRa for example. See [[DecodingLora]] and [[EncodingLora]].
 +
 
 +
=== Cypress PSOC5 ===
 +
Play with the Cypress PSOC5 platform, which combines a ARM Cortex-m3 processor with configurable analog blocks. I'm thinking of combining it with a 24 GHz doppler radar sensor, to process the signal and present it as a USB audio device (stereo signal contains I and Q parts). See [[RadarOnAStick]].
 +
 
 +
=== Android HabAlert app ===
 +
see [[HabAlertApp]]
 +
 
 +
=== Inexpensive ultrasonic player ===
 +
Bat netting results can be improved by playing back ultrasonic bat calls near the net.
 +
This project idea is about creating an inexpensive ultrasonic player by cleverly combining inexpensive sub-modules available already on the market.
 +
 
 +
The ultrasonic player consists basically of the following parts:
 +
# a device to store the bat calls (in wav-format) and playing them back in a particular sequence from storage, like a laptop, tablet or raspberry pi
 +
# a device to convert the digital audio into an analog audio signal, like a USB "sound card"
 +
# a device to amplify the analog audio signal
 +
# a device to reproduce the analog audio signal into actual ultrasonic audio, i.e. a speaker
 +
# a case to put everything together
 +
# a power supply
 +
 
 +
Ultrasonic audio from bats can range to well over 100 kHz.
 +
Sampling theory says that to reproduce a bandwidth of B Hz, you need a sampling rate of at least 2*B.
 +
 
 +
An USB sound card supporting 96 kHz playback would allow ultrasonic audio up to 48 kHz to be reproduced, possibly enough for use in a bat lure.
 +
A possible inexpensive candidate is [http://nl.aliexpress.com/item/SA9027-ES9023-24BIT-96KHZ-Asynchronous-USB-DAC-HIFI-Sound-Decoder-Case/32552457818.html this ES9023 based USB sound card], costs about E22.-
 +
Here's [https://nl.aliexpress.com/item/SA9227-PCM5102A-32BIT-384KHZ-USB-DAC-HIFI-Asynchronous-Decoder/32722112944.html a SA9227+PCM5102 based USB sound card] that appears to be capable of 384 kHz playback at a price of E29,-
 +
 
 +
To amplify the audio signal, I'm thinking of
 +
[http://nl.aliexpress.com/item/Power-Supply-TDA2030-Audio-Amplifier-Board-Module-TDA2030A-6-12V-Single/32652837701.html this TDA2030 based amplifier board], costs about E1,-
 +
The TDA2030 is an analog amplifier block. It takes (a minimum) of 12V and can output up to 14W. The datasheet claims it has a power bandwidth of 10 Hz to 140 kHz.
 +
 
 +
As a speaker, I'm thinking of this tweeter [http://www.parts-express.com/peerless-by-tymphany-xt25sc90-04-1-dual-ring-radiator-tweeter--264-1014 Vifa/Tymphany XT25SC90-04], costs about E22,-
 +
 
 +
As a case, I could create a simple box using our laser cutter, with some tie wraps to hold the parts inside the box.
 +
 
 +
Power supply:
 +
* the USB audio card uses USB 5V.
 +
* the amplifier needs 12V
 +
Perhaps we can use a switching power supply to create the 12V from the USB 5V?
 +
It would be nice if everything could be fed off the USB 5V.
 +
Possible candidate: [http://nl.aliexpress.com/item/2PCS-USB-DC-5V-To-12V-Step-up-Module-Converter-2-1x5-5mm-Male-Connector/32703956336.html 5V-to-12V step-up cable], costs about E3,-
  
Project ideas:
+
Another [https://nl.aliexpress.com/item/5W-USB-5V-to-12V-DC-DC-Converter-Step-Up-Boost-Module-for-LED-Moter-Wireless/32326312565.html USB 5V to 12V converter], switching at 1MHz.
* do cool stuff with NRF24L01+ modules, e.g. connect one to the SPI bus of a Raspberry Pi
+
* experiment with [http://mqtt.org MQTT], a light-weight publish/subscribe framework for telemetry data
+
* put the things above together in some kind of home automation project
+
* build a colinear antenna out of RG-6 coaxial cable for the 70cm band (for receiving high-altitude balloons)
+
* more radio stuff with the ham-it-up
+
* implement dominoex/thor radio mode for a balloon payload, perhaps build a light-weight reusable library
+

Latest revision as of 16:02, 25 September 2016

User info Bertrik Sikken
Name Bertrik Sikken
Nick bertrik
Tagline heb ik niet

You can reach me at bertrik@sikken.nl or bertrik@gmail.com

Studied Electrical Engineering at Twente University.


Main interests:

  • reverse-engineering things (USB stuff, mp3 players), working on http://rockbox.org
  • studying bats and making electronics for recording/listening to bat sounds
  • radio stuff, in particular software-defined radio


Projects I work(ed) on (refresh):

 Project Status
CO2MeterHackingCompleted
Secure iButtonCompleted
DecodingLoraIn progress
EncodingLoraIn progress
EspWifiTrackerIn progress
LoraWanNodeIn progress
RevRadioIn progress
HabAlertAppInitializing
RadarOnAStickInitializing
FrontDoorDisplayStalled
LaserCutterUsageCounterStalled
SolarBatLightStalled


Project ideas

This is a list of ideas I'm thinking about, but have not fully developed into an actual project yet.

investigate STM32F103 microcontroller

The STM32 family of microcontrollers looks quite interesting.

You can buy inexpensive STM32F103 boards with the following functionality:

  • Cortex M3 processor running at 72 MHz
  • 64 kB flash, 20 kB RAM
  • 2x ADC with 1 microsecond conversion time
  • USB interface

The plan is to get a bunch of these and play with them, for example see if it is fast enough to sample ultrasonic audio and store it on an sd card (so it can be used as a super cheap bat call recorder).

See this page for more information on using these in the Arduino environment.

investigate quadcopter remote control

It turns out that the typical little cheap Chinese quadcopters use a remote-control protocol that can be easily recreated using the famous NRF24L01+ chip (< $1 and easily connected to an arduino). This gives nice opportunity to either:

  1. transmit our own control signal, to control a quadcopter from something different than the manual remote control, e.g. automatic control
  2. receive the control signal, so the manual remote control that comes with a quadcopter can be used to steer other things (like a model car).

I haven't found a good overview of quadcopter remote control protocol specifications yet, there seem to be plenty examples of "here-is-the-code" however.

TTN gateway info panel

Problem: if you're running a gateway for the-things-network (TTN), you can see packets coming in by following the packet forwarder log file, but it gives very limited and rather cryptic information. For example, you don't see which node sent a message, so you have no idea how many unique nodes are sending data through your gateway.

This idea is about creating a simple info panel that you can run directly on the TTN gateway itself. The plan is to write this in Python. A typical gateway probably already runs some sort of Linux distribution which has the python binaries available or allows them to be installed easily. Using Python also means that you don't need a compiler/Makefile/etc.

Basic operation of this utility:

  • the gateway software is configured to send its data not just to TTN but also to the gateway info panel utility (running on "localhost"), using the poly packet forwarder
  • the utility listens on a specific UDP port, accepting data according to the Semtech v1 protocol.
  • it parses the plain JSON metadata (modulation parameters, like frequency, LoRa mode, SF, BW, etc.)
  • it also parses the payload bytes, part of the payload is not encrypted, so we can extract the message type, device address and sequence number (FCNT).
  • all incoming packets are shown in a table-like view in the console using the ncurses library.

Initially, the utility will just keep the packets in memory, so it just shows things that happened since you last started it. Later, we can decide to store the data, for example in a database.

The information shown can be just the incoming messages in order of arrival, one line per message. Alternatively it could show a kind of node-centric view, one line per device with info only on the latest message from that node.

mini word clock in dutch

Basically an monochrome 8x8 word clock, in Dutch, showing local time in the Netherlands.

This git repo has the current code.

See here for a demo running on an arduino nano.

The plan is to run this from an ESP8266 instead of an arduino nano, so it can get the time from the internet using NTP. The time offset will be fixed to Dutch local time, i.e. GMT+1 taking into account summer time. Summer time will be determined using the general rule "from 2:00 local time on the last sunday of March until 3:00 local time on the last sunday of October".

Inexpensive CO2 sensor

TODO: move this to its own page.

Status: works as a basic MQTT sensor, see topic "bertrik/co2" on test.mosquitto.org

See this github repo for code.

Use the MH-Z19 sensor module (about E22,-) to measure the CO2 concentration and an ESP8266 (like a WeMos D1 mini board) to push the measurement data over the internet to a MQTT server. Possibly I can use ESPEasy which makes configuration easy (through a web interface), I'd have to add support for this particular sensor -> ESPEasy seems pretty complicated to get changes accepted, has existing bugs that are not addressed, probably better to write my own custom code.

Understanding LoRa

Ultimate goal is to create an SDR algorithm to decode LoRa without the need for dedicated LoRa hardware. This could be useful when tracking HABs transmitting LoRa for example. See DecodingLora and EncodingLora.

Cypress PSOC5

Play with the Cypress PSOC5 platform, which combines a ARM Cortex-m3 processor with configurable analog blocks. I'm thinking of combining it with a 24 GHz doppler radar sensor, to process the signal and present it as a USB audio device (stereo signal contains I and Q parts). See RadarOnAStick.

Android HabAlert app

see HabAlertApp

Inexpensive ultrasonic player

Bat netting results can be improved by playing back ultrasonic bat calls near the net. This project idea is about creating an inexpensive ultrasonic player by cleverly combining inexpensive sub-modules available already on the market.

The ultrasonic player consists basically of the following parts:

  1. a device to store the bat calls (in wav-format) and playing them back in a particular sequence from storage, like a laptop, tablet or raspberry pi
  2. a device to convert the digital audio into an analog audio signal, like a USB "sound card"
  3. a device to amplify the analog audio signal
  4. a device to reproduce the analog audio signal into actual ultrasonic audio, i.e. a speaker
  5. a case to put everything together
  6. a power supply

Ultrasonic audio from bats can range to well over 100 kHz. Sampling theory says that to reproduce a bandwidth of B Hz, you need a sampling rate of at least 2*B.

An USB sound card supporting 96 kHz playback would allow ultrasonic audio up to 48 kHz to be reproduced, possibly enough for use in a bat lure. A possible inexpensive candidate is this ES9023 based USB sound card, costs about E22.- Here's a SA9227+PCM5102 based USB sound card that appears to be capable of 384 kHz playback at a price of E29,-

To amplify the audio signal, I'm thinking of this TDA2030 based amplifier board, costs about E1,- The TDA2030 is an analog amplifier block. It takes (a minimum) of 12V and can output up to 14W. The datasheet claims it has a power bandwidth of 10 Hz to 140 kHz.

As a speaker, I'm thinking of this tweeter Vifa/Tymphany XT25SC90-04, costs about E22,-

As a case, I could create a simple box using our laser cutter, with some tie wraps to hold the parts inside the box.

Power supply:

  • the USB audio card uses USB 5V.
  • the amplifier needs 12V

Perhaps we can use a switching power supply to create the 12V from the USB 5V? It would be nice if everything could be fed off the USB 5V. Possible candidate: 5V-to-12V step-up cable, costs about E3,-

Another USB 5V to 12V converter, switching at 1MHz.