A few weeks ago I gave a talk at the Geelong Radio and Electronics society (http://qrz.com/VK3ANR) about the history of the Linux operating system and some the applications relate to amateur radio. In this short article, I aim to follow up on that talk and address some of the feedback I've received from the members by presenting some of the applications mentioned and how they can be installed.
Most of the instructions here should work for those using a Raspberry Pi, although some packages may require additional repositories in this instance. I'm personally am writing this using Linux Mint as my distribution and inspiration, although most things will transfer directly to Ubuntu and it's many derivatives.
The slides from that presentation are available here
Continue reading Linux and Amateur Radio
Below is a review I wrote for the Geelong Radio and Electronics Society (VK3ANR) on the Raspberry Pi model B+ that was released earlier this year.
2 years ago, the Raspberry Pi foundation, launched the original Raspberry Pi Model B, a 700MHz ARM processor with 256MB of ram, USB, ethernet, HDMI and a whole host of other I/O and pins for good measure all in the area of a credit card. Since there have been three other Raspberry Pi’s released: the cut-down model A, aimed at schools; the model B - version 2 which brought out more of the GPIO that was previously inaccessible and doubled the amount of RAM to 512MB, and the compute module for embedding in devices.
Continue reading Raspberry Pi B+ Review
On a whim I went out and added a STM32F3-Discovery Development board to a rs-online order. The board contains an STM32F303 ARM-Coretex M4 processor capable of ~70MHz and has four 5 MSPS ADCs, 12 Fast DACs, hardware DSP and FPU; making it an ideal candidate for building a software defined radio. Although before I could get to that I had to setup the tools needed to actually program the thing. Having never programmed an ARM chip before (well not bare metal anyway). Here are the steps that I went through to get it working. Most of which are taken from articles published here: http://engineering-diy.blogspot.com.au/2012/11/stm32f3-discovery-eclipse-openocd.html . I'm just collating them all together for reference.
Continue reading Getting Started with the STM32F3 Discovery Board on Ubuntu 13.10
I recently purchased a small DDS board from ebay for $5 for use in a future project, I'd also seen on the internet a frequency counting library for the arduino and thought this the perfect time put the two together, just to see how they both worked.
Continue reading AD9850 - 40MHZ DDS
A while ago I decided to venture into the world of Ham Radio. Under the advice of George I went out a purchased a cheap DVB USB dongle to use as a Software Defined Radio (SDR). I had thought about using it with the Raspberry Pi I bought a while ago.
The software was pretty straight forward to setup, here are my instructions from a fresh install of the Raspbian distribution:
Continue reading RTL-SDR on the Raspberry PI
Having bought an RTL-SDR compatible dongle recently I thought I could see what I could make it do. So one for the first things I did successfully was tracking planes using ADS-B.
ADS-B or Automatic Dependant Surveillance Broadcast (http://en.wikipedia.org/wiki/Automatic_dependent_surveillance-broadcast) is used to track Aircraft, each plane is fitted with a transmitter which broadcasts its position, heading, altitude, identification and a number of other things on 1090MHz.
When playing with the raspberry Pi I noticed a couple of oddities. If I have a mouse and keyboard plugged into a usb hub the ethernet goes very slowly and as soon as X is run pretty much becomes unusable, filling the kernel messages with:
[ 2354.487491] smsc95xx 1-1.1:1.0: eth0: Failed to read register index 0x00000114
[ 2354.487530] smsc95xx 1-1.1:1.0: eth0: MII is busy in smsc95xx_mdio_read
[ 2359.487451] smsc95xx 1-1.1:1.0: eth0: Failed to read register index 0x00000114
[ 2359.487499] smsc95xx 1-1.1:1.0: eth0: MII is busy in smsc95xx_mdio_read
[ 2365.587487] smsc95xx 1-1.1:1.0: eth0: Failed to read register index 0x00000114
[ 2370.587541] smsc95xx 1-1.1:1.0: eth0: Failed to write register index 0x00000114
[ 2378.717626] smsc95xx 1-1.1:1.0: eth0: Failed to read register index 0x00000118
[ 601.380138] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.388141] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.396113] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.404137] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.412135] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.420139] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.428136] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.436114] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.444136] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.452137] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.460138] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.468140] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.476115] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
[ 601.484138] smsc95xx 1-1.1:1.0: eth0: kevent 4 may have been dropped
This can can also be noted in the ping times to the local router, which are of the order of 0.9ms normally and 500-2500ms when a mouse and keyboard are plugged into the hub.
This seems to have been attributed to noise from somewhere, either from the hub or from using the HDMI (As the errors only appear to happen when X is running).
This has been discussed at https://github.com/raspberrypi/linux/issues/60
Temporarily worked around this issue by plugging both mouse and keyboard into the PI itself, although long term this is less than ideal.
After acquiring a large ( 26cm x 13cm) 4 digit 7 segment display, from George (M1GEO) and not wanting to unpack I set about making it work under linux.
The board contains a SAA1064 - an I2c 4 digit 7 segement display driver chip. Ideal for connecting to my bus pirate.
After much stumbling around and trial and error I managed to get it to light each segment. The notable points(errors) were:
- I2C is an open collector bus, meaning each device only pulls the data lines low. This meant that I had to turn on the Bus pirates on board pull up resistors, as for some reason the ones I thought were doing it on the board weren't.
- When using the bus pirates pullup resistors, the Vpu(V pull up) lead should be connected to +5V.
- The board requires a large voltage inorder to get the Led's to light, my initial attempts used the bus pirate to power it, but this was both too low current 125mA and too low in voltage for anything to light. I then connected it to an external power supply and found it lights best at about 12V although the chip does get a little warm :S (The data sheet claims it's good till 18V)
- The digits are counted from the right hand side(with the chip and sockets at the bottom).
The Digits are are as follows:
0 - 0xfd
1 - 0x0c
2 - 0xda
3 - 0x9e
4 - 0x2e
5 - 0xb6
6 - 0xf6
7 - 0x22
8 - 0xff
9 - 0xfd
I once it's connected the bus pirate need to be set to I2c mode i found the default 5khz speed worked fine for me. The pullups and on board power supplies are turned on by sending 'Pn' and 'Wn' respectively. Then to write to all the digits at once I used the following command:
[ 0x76 0x00 0xf2 d1 d2 d3 d4 ]
Where 0x76 is the device address (determined by a potential divider connected to pin 1 of the chip). 0x00 Tells it i want to start writing at the control register. 0xf2 Tells it to refresh all digits and I want them at maximum brightness. then d1,d2,d3,d4 represent the digits in hex.
I recently received my Raspberry PI from RS a few weeks ago. Here I plan to document the oddities and things I learn. If only such that I can look them up when I forget.
I can wholly recommend the case sold by these guys it fits perfectly.
If you plan to have your root FS on a USB harddrive, you need to upgrade the firmware, either using the tool by hexxeh using his awesome util found (https://github.com/Hexxeh/rpi-update) or by manually pulling the latest from https://github.com/raspberrypi/firmware
If you want to play audio from mplayer, it's broken. Well very buggy there's currently an open issue https://github.com/raspberrypi/firmware/issues/2 addressing it in which anumber of things are suggested. Although it can be bodged round using "mplayer -ao sdl" to play viasdl which some reason gets round (from my understanding) the buffer underrun in the alsa module. - This was fixed! 😛
A good powersupply is vital, otherwise you can expect all of the issues mentioned over at: http://elinux.org/R-Pi_Troubleshooting#Troubleshooting_power_problems
Pointless Things Discovered:
LAMMPS (http://lammps.sandia.gov/) can be run on the PI, it is however very slow. Using stock debian-arm and lammps built with gcc -mfloat-abi=softfp. I managed to achieve 100ps NPT in 89 hours for alanine with 1728TIP3P water molecules. This could be improved if I moved to Raspbian (http://www.raspbian.org/) which is built to use the hardware floating point unit.