|User info Bertrik Sikken|
|Tagline||heb ik niet|
You can reach me at email@example.com or firstname.lastname@example.org
Studied Electrical Engineering at Twente University.
- 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):
This is a list of ideas I'm thinking about, but have not fully developed into an actual project yet.
Understand Bluetooth AP
I'm trying to understand how to set up a bluetooth AP on a basic Linux system, such that you can connect to it using an Android phone or tablet.
The idea is that there is some kind of useful application running on the Linux system, and that the "app" on the tablet/phone provides the user interface, connecting to the Linux system using REST.
Possible useful links:
https://www.osnews.com/story/9836/Make_your_Arch_Linux_a_Bluetooth_Access_Point: quite old, uses rfcomm, basically a serial port over bluetooth
http://bluez.sourceforge.net/contrib/HOWTO-PAN: describes setting up a network using the "pand" utility, can't find that utility
- bluetooth device class calculator
- bt-pan script as referred by the link above
- Is Your Personal Area Network Giving You the BlueZ?
My starting point is:
- a Yocto based Linux distribution
- a Linux 4.1 kernel
- Bluez 5
Understanding the various Linux drivers and tools in the Linux bluetooth stack
- btusb: the Linux kernel driver module for many USB/bluetooth adapters, 'modprobe'-ing this module also magically takes care of downloading firmware needed
- hciconfig, low-level configuration utility for manipulating a bluetooth controller. A bit like ifconfig, it can bring the interface up or down, set options, etc.
- hcitool, yet another utility to perform low-level bluetooth operations, like querying the name of paired devices
- bluetoothd, the bluetooth daemon
- /etc/bluetooth/main.conf : supposedly (one of) the configuration files for bluetoothd
- bluetoothd can be accessed over DBUS apparently, see Bluez docs
- bluetoothctl, a more high-level configuration utility, basically a command line user interface towards bluetoothd as I understand it.
And some acronyms:
- NAP: network access protocol
- PAN: personal area network
- BNEP: bluetooth network encapsulation protocol
Getting somewhere: ?
dbus-send --system --type=method_call --print-reply --dest=org.bluez /org/bluez/hci0 org.bluez.NetworkServer1.Register string:'nap' string:'bnep'
- following this guide on the server-side (requires systemd): https://blind.guru/tag/bluetooth-pan.html#a-bluetooth-pan-access-point-with-systemd
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.
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".
Local date calculation:
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.
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.
Simple Doppler motion sensors
You can find basic doppler microwave motion sensors based on a single transistor, with some weird traces on the PCB very cheaply, for example
Typically the microwave part of these consists of a single transistor with a rectangular area on one leg and a meandering trace (with lots of vias to the other side) on the other leg. The output of this circuit seems to go into a chip very much like the ones used in PIR sensors.
See also https://github.com/jdesbonnet/RCWL-0516 for a reverse engineering effort of these doppler radar modules.
Investigate the rust language.
I have a Wemos "LOLIN32 V1.0.0" ESP32 board, play with it. Discover bluetooth capabilities, low power modes. Compare it with ESP32.
- ESP32 Arduino page by Wemos