Project

General

Profile

LimeNET-micro

This is basically an embedded version of the LimeSDR-USB with the following key differences:
  • Raspberry Pi 3 Compute Module instaed of host PC
  • Integrated VCOCXO as stable clock source
  • Integrated GPS-DO to discimpline the VCOCXO
  • Integrated duplexers so Rx and Tx can (optionally) be on one SMA jack
  • Integrated PoE power supply (you can of course use a local DC supply)

Links to official documentation

Accessing onboard eMMC from host PC

  • The (non-Lite) Raspberry Pi CM3 modules ship with an onboard eMMC flash chip
  • In order to program this, you need to
    • ensure the J18 EXT USB jumper is not placed
    • ensure the J14 USB_BOOT jumper is present
    • connect the USB micro-B jack with a regular microB-A cable to your host PC
    • start rpiboot program from https://github.com/raspberrypi/usbboot
    • power up the LimeNET-micro

The rpiboot will now download some firmware into the CM3 which makes it re-enumerate ont he USB bus as a mass storage device:

Waiting for BCM2835/6/7
Sending bootcode.bin
Successful read 4 bytes 
Waiting for BCM2835/6/7
Second stage boot server
File read: start.elf
Second stage boot server done

From that point onwards, you can use regular host computer tools to access the eMMC, such as moounting it or using dd to copy images to/from it

We are using Raspbian 10 for our related development, so https://downloads.raspberrypi.org/raspbian_lite_latest should be used as the base OS image, with http://download.opensuse.org/repositories/network:/osmocom:/nightly/Raspbian_10/ as package feed for Osmocom stuff.

Image flash example with eMMC available as /dev/sdb:

$ wget https://downloads.raspberrypi.org/raspbian_lite_latest -O raspbian_lite_latest.zip
$ unzip raspbian_lite_latest.zip && rm raspbian_lite_latest.zip
sudo dd if=*-raspbian-buster-lite.img of=/dev/sdb bs=2M

Since raspbian currently comes with ssh disabled, you may want to enable it by creating systemd symlinks manually:

$ cd $RASPBIAN_ROOTFS_MOUNTPOINT
// yes, for some unknown reason it's linked as sshd instead of ssh:
$ sudo ln -s /lib/systemd/system/ssh.service ./etc/systemd/system/sshd.service
$ sudo ln -s /lib/systemd/system/ssh.service ./etc/systemd/system/multi-user.target.wants/ssh.service

Then power off the board, free the J14 jumper and power on again. Check your DHCP server to see the address assigned to the board. You should be able to ssh into it using user="pi" and password="raspberry".

Configuration on Raspbian 10

  1. use raspi-config to modify various bits
    1. change locale to en_US.UTF8
    2. change keyboard layout to en_US
    3. change hostname to limenet-microN
    4. change timezone to Europe/Berlin
    5. enable SSH server
    6. enable SPI interface kernel module autoloading
    7. enable I2C interface kernel module autoloading
  2. Add Osmocom nightly repository (https://projects.osmocom.org/projects/cellular-infrastructure/wiki/Nightly_Builds)
  3. apt-get install osmo-bts-trx osmo-pcu osmo-trx-lms limesuite telnet

Accessing the GNSS module

For some strange reason, R96+R97 (0-Ohm resistors in 0402 package) are not soldered on the board, resulting in the GNSS module not enumerating on the USB hub. If those two resistors are added, you will see it in lsusb and it will create a /dev/ttyUSBn device for talking NMEA or UBX protocol.

Add picture from clipboard (Maximum size: 48.8 MB)