Google map with Utah Repeaters
I thought it would be helpful to visualize where all the radio repeaters are in my area. I found a lack of map information available for this sort of thing but I found readily available CSV data with the information. Google Fusion Tables to the rescue!
I tried to embed the map in this post but for some reason the google map terrain data wasn't showing up when I combined everything with the template. For the time being, just access the separate page.
Enjoy
YUI Image Uploader works with YUI 2.8.1
I thought I'd better double check that the image upload still works fine with YUI 2.8.1 If you haven't read the original YUI Image Uploader page, start there. After that, you can use this page for an example getting the script to work with the latest YUI.
Debugging Linux Kernel Modules with VirtualBox and KGDB
I found a few different pages with information on debugging a Linux kernel with kgdb. There wasn't a single source with all the information I needed to get set up and working though. So here is how I set things up on my Linux host machine to debug a target Linux kernel running in a VirtualBox VM.
-
Set up the virtual machine
When setting up the VM, add a serial port and set it to use Host Pipe. You can check the box to have VirtualBox create the pipe too. Give a path to the file on the host where you want the pipe. This will become the virtual serial console that gdb connects to on the host machine.
Install VirtualBox with a VM containing the kernel you want to debug. Build the kernel with debug symbols, kgdb support, sysrq keys
Kernel hacking-> [*] Magic SysRq Key [*] Kernel debugging [*] Compile the kernel with debug info [*] KGDB: kernel debugging with remote gdb -> [*] KGDB: use kgdb over the serial console
Build your kernel and install the modules like you would any other kernel.
Add kgdboc=ttyS0,115200 to the kernel paremeters (ttyS[0-3] depending on which COM port you choose in the VM setup.)
Copy the vmlinux (uncompressed version to the host machine).
Also copy the .ko for the module you want to debug.Start VM.
-
Get the target VM ready for debugging
After your module is inserted, you need its .text address so that you can see the source lines in gdb.
cat /sys/module/XXX/sections/.text 0xffffffffa00c0000
When you're ready to start a debug session:
echo g > /proc/sysrq-trigger
-
Ready the Host to connect to the VM
You need to convert the pipe that VirtualBox created to a serial port like object. socat does that job:
Notice that your dev is pts/3.
Now we make a .gdbinit file so you can start gdb without typing the commands every time.
file vmlinux
set remotebaud 115200
target remote /dev/pts/3
You'll change your pts setting to whatever is relevant.
start gdb.
On the target, when you send the g to sysrq-trigger, you should drop to a breakpoint in gdb.
Next job is to load the module symbols.
> add-symbol-file
<path to module> <.text address>
> b some_file.c:NNN
> c
Now you can set breakpoints or press c to continue. The target should continue until it comes to a breakpoint or encounters an error.
A last tidbit, when I wanted to close gdb on the host, use detach instead of quit.
Happy debugging!
Graupner MX16-iFS vs Spektrum DX7
I started my RC hobby with a Graupner MX16-iFS. I've been quite happy with it and don't have any plans to change in the future. As part of a package deal I purchased, I obtained a Spektrum DX7. While I won't be keeping the DX7, I don't have a receiver for the Heli I bought yet so I'm using the existing radio system in the mean time. Having thus had a chance to play around with them both, I thought I'd post a few of my observations.
MX-16 Pros:
- 8 channels instead of 7.
- Rotary knob. This can be used for flaps or throttle limit.
- More customizable buttons/switches. You can tie any function to whichever switch you like. The DX7 has fairly standard switch assignments and I found it hard to change the functionality. e.g., your elevator dual rate functionality can't be assigned to the aileron dual rate switch.
- Push button. Just another different style selector switch the DX7 doesn't have. The DX7 and MX16 have the same number of extra switches but it's nice to be able to use different types as suite your personal tastes. For instance, I find using the push button to switch my gyro functionality nicer than using a switch. Not that big of a deal really though.
- Easier to program. I found the menu system on the DX7 a little difficult to get used to. You have to push two buttons to activate the menu for instance. The MX16 feels a little more intuitive.
- Automatic timer. I tie my timer to my throttle channel or auto-rotate for helis. With the DX7, I couldn't find any way to start the timer besides pushing the button. (And it's hard for me not to forget to do that.)
Spektrum DX7 Pros:
- DSM2. You can bind-n-fly.
- Slightly more complex radio functions are available. You can add expo to your pitch and throttle curves for a heli for instance. Also has Revo mixing. (The MX16 has more free mixes though so you can do the same thing as revo with the MX16).
- More complex heli setup. MX16 only has two flight modes for helis. Normal and IDLE-UP. The DX7 has normal, idle-1 and idle-2.
- More model memory. The DX7 holds 20 models and the MX16 holds 12.
Anyway, I can't talk to much on the reliability of either system. They are both 2.4 Ghz systems and are not subject to interference from other transmitters. They both have to have an adequate power supply to the Rx which will reboot if voltage drops too low (not good).
YUI Image Uploader gets a code repository
I've created a github project for the YUI Image Uploader.
You can download the scripts and example page here:
http://github.com/mulicheng/yuiupload
This will also facilitate user contributed changes and backend scripts.
MS Money and UBS Mappings for csv2ofx
I added the MS Money Report mapping from the csv2ofx wiki and merged in Arthur Liu's UBS mapping to csv2ofx.
A quick reminder for the way mappings work: The built in mappings are made to work as an example for your own CSV files. You might happen to have a CSV file from one of the banks or software used by the example mappings, but likely, you have your own bank and own CSV file format. Copy the src/csv2ofx/mappings.py file to your own location and name it csv2ofx_custom.py. Then edit/add mappings as you need to suite your own needs.
As always, contributed mappings are welcome back.