Difference between revisions of "User:Bertrik Sikken"

From RevSpace
Jump to navigation Jump to search
(Remove image, add link to wiki page)
(24 intermediate revisions by the same user not shown)
Line 26: Line 26:
  
  
Old project ideas:
+
== Project ideas ==
* Use two old satellite dishes to allow speech to be transferred over some distance
+
This is a list of ideas I'm thinking about, but have not fully developed into an actual project yet.
** Figure out focal point
 
** Create some kind of dish mount
 
  
Project ideas for 2016:
+
=== investigate STM32F103 microcontroller ===
* Understand LoRa modulation a bit better, 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]]
+
The STM32 family of microcontrollers looks quite interesting.
  
New project ideas:
+
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:
* Create a RFM69HW TNC, based on code by flok
+
* Cortex M3 processor running at 72 MHz
** Remove 'flok' framing, make it comply with KISS protocol
+
* 64 kB flash, 20 kB RAM
** Use 'infinite' package length mode to send typical TCP/IP frames (1500 bytes)
+
* 2x ADC with 1 microsecond conversion time
* Create a 'HabAlert' android app, see [[HabAlertApp]]
+
* USB interface
* add opus audio codec support to squeezeboxserver and/or squeezelite
 
** an opus web radio stream already seems to be redirected to the client, but squeezelite crashes on it
 
* create code for remote control of my ZwaaiLicht
 
** implement wireless protocol for the NOMZ message ("\x4NOMZ") on address 0x66996699L (no ack)
 
** possibly implement a more capable protocol on a different pipe (with ack, learn about extra pipes on NRF24L01+)
 
** possibly split control of the light and the motor
 
* Experiment with an ESP8266 serial-wifi module, WiFiBat project plan:
 
** attach an ESP8266 to a migrating bat/cat/hedge-hog/etc and program it to record a list of wifi APs every day, so the location over time can be determined from the AP-list (use Mozilla geolocation service to convert from AP-list to location), main challenge: keep weight and power consumption low.
 
* Create better algorithm for detecting heartbeat using this [https://pulsesensor.myshopify.com/ optical heart beat sensor]: sample the analog signal at 100 Hz and do an autocorrelation to get a continuous estimate of the heart rate.
 
* Play around with so-called [http://www.hoperf.com/rf/lora/ LoRa] (long range) RF modules. These modules have improved range owing to spread-spectrum modulation, error correction and 100 mW RF output.
 
  
Laser cutting:
+
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).
I would like to get more creative with the laser cutter, starting with cutting existing designs, for example:
+
 
* DONE! -> this [http://www.thingiverse.com/thing:36673 trebuchet]
+
See [http://grauonline.de/wordpress/?page_id=1004 this page] for more information on using these in the Arduino environment.
* DONE! -> this [http://msraynsford.blogspot.nl/2013/10/project-46-catapult.html catapult] or the [http://msraynsford.blogspot.nl/2014/08/emf-camp-mini-catapult.html mini catapult]
+
 
* a cool looking [http://www.robives.com/blog/display_box_moving_gears box with gears]
+
=== investigate quadcopter remote control ===
* [http://www.instructables.com/id/MSRaynsfords-Marble-Machine-11-Kit/ mini marble machine]
+
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).
* DONE! -> [http://www.thingiverse.com/thing:297758 bee puzzle]
+
This gives nice opportunity to either:
* the [http://www.thingiverse.com/thing:360108 MeArm], a simple robotic arm, parts fit on an A4 that can be cut in our [[Lasercutter]].
+
# 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".
 +
 
 +
=== 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]].
 +
 
 +
In particular, I should definitely check out [https://github.com/rpp0/gr-lora this gr-lora project].
 +
Perhaps make it work for decoding balloon telemetry modes.
 +
 
 +
=== 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 ===
 +
see [[UltrasonicPlayer]]

Revision as of 11:06, 22 October 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
FrontDoorDisplayAbandoned
HabAlertAppAbandoned
ISSOAbandoned
IbmPosDisplayAbandoned
Pico TrackersAbandoned
RadarOnAStickAbandoned
WifiLampAbandoned
A4PaperDispenserCompleted
BuildStatusTrafficLightCompleted
CJMCU-811Completed
CO2MeterHackingCompleted
CrawlSpaceSensorCompleted
DecodingLoraCompleted
DustSensorCompleted
ElectronicLoadCompleted
EspNowSkipCompleted
IntakefancontrollerCompleted
LichtKrantCompleted
LoRaGatewayCompleted
LoraBatBoxCompleted
LoraWanNodeCompleted
MHZ19Completed
MainsFrequencyCompleted
MiniSTM32F103ZECompleted
PowerLightCompleted
RC522HackingCompleted
RevRadioCompleted
STM32Completed
Secure iButtonCompleted
SoilHumiditySensorCompleted
StofAnanasCompleted
StofradarCompleted
TTNHABBridgeCompleted
VINDRIKTNINGCompleted
ZigbeeCoordinatorCompleted
Sensor-data-bridgeCompleted
AntiLostIn progress
AudioMothIn progress
CubeCellIn progress
EspAudioSensorIn progress
Esp32camIn progress
FMCWRadarIn progress
LoRa-E5-miniIn progress
LoraWanDustSensorIn progress
MainsFrequency2.0In progress
Msi2500SDRIn progress
Sim7020In progress
StereoBatRecorderIn progress
UltrasonicPlayerIn progress
EspNowAudioInitializing
... further results


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".

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.

In particular, I should definitely check out this gr-lora project. Perhaps make it work for decoding balloon telemetry modes.

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

see UltrasonicPlayer