8devices Carambola
This device comes pre-installed with a custom version of OpenWrt.
Related devices: → freestation
Supported Versions
Hardware Highlights
Installation
Please add the installation procedure here.
Flash Layout
root@OpenWrt:/# cat /proc/mtd
dev: size erasesize name mtd0: 00030000 00010000 "u-boot" mtd1: 00010000 00010000 "u-boot-env" mtd2: 00010000 00010000 "factory" mtd3: 000e0000 00010000 "kernel" mtd4: 006d0000 00010000 "rootfs" mtd5: 004e0000 00010000 "rootfs_data" mtd6: 007b0000 00010000 "firmware"
Upgrading OpenWrt
LuCI Web Upgrade Process
- Browse to http://192.168.1.1/cgi-bin/luci/mini/system/upgrade/ LuCI Upgrade URL
- Upload image file for sysupgrade to LuCI
- Wait for reboot
Terminal Upgrade Process
- Login as root via SSH on 192.168.1.1
- Use the following commands to upgrade.
cd /tmp/ wget http://downloads.openwrt.org/attitude_adjustment/12.09/ramips/rt305x/openwrt-ramips-rt305x-carambola-squashfs-sysupgrade.bin sysupgrade /tmp/openwrt-ramips-rt305x-carambola-squashfs-sysupgrade.bin
- If sysupgrade does not support this router, use the following commands.
cd /tmp/ wget http://downloads.openwrt.org/attitude_adjustment/12.09/ramips/rt305x/openwrt-ramips-rt305x-carambola-squashfs-sysupgrade.bin mtd write /tmp/openwrt-ramips-rt305x-carambola-squashfs-sysupgrade.bin firmware && reboot
Bootlogs
OpenWrt bootlog
U-Boot 1.1.3 (Nov 3 2009 - 15:19:34) Board: Ralink APSoC DRAM: 32 MB relocate_code Pointer at: 81fb0000 flash_protect ON: from 0xBF000000 to 0xBF01D4A3 flash_protect ON: from 0xBF030000 to 0xBF030FFF *** Warning - bad CRC, using default environment ============================================ Ralink UBoot Version: 3.3 -------------------------------------------- ASIC 3052_MP2 (Port5<->None) DRAM component: 256 Mbits SDR DRAM bus: 16 bit Total memory: 32 MBytes Flash component: 8 MBytes NOR Flash Date:Nov 3 2009 Time:15:19:34 ============================================ icache: sets:256, ways:4, linesz:32 ,total:32768 dcache: sets:128, ways:4, linesz:32 ,total:16384 ##### The CPU freq = 320 MHZ #### SDRAM bus set to 16 bit SDRAM size =32 Mbytes Please choose the operation: 1: Load system code to SDRAM via TFTP. 2: Load system code then write to Flash via TFTP. 3: Boot system code via Flash (default). 4: Entr boot command line interface. 9: Load Boot Loader code then write to Flash via TFTP. 0 3: System Boot system code via Flash. ## Booting image at bf050000 ... Image Name: MIPS OpenWrt Linux-3.10.18 Created: 2013-11-24 19:45:33 UTC Image Type: MIPS Linux Kernel Image (lzma compressed) Data Size: 1014182 Bytes = 990.4 kB Load Address: 80000000 Entry Point: 80000000 Verifying Checksum ... OK Uncompressing Kernel Image ... OK No initrd ## Transferring control to Linux (at address 80000000) ... ## Giving linux memsize in MB, 32 Starting kernel ... [ 0.000000] Linux version 3.10.18 (openwrt@snapon) (gcc version 4.6.4 (OpenWrt/Linaro GCC 4.6-2013.05 r38899) ) #1 Sun Nov 24 11:45:05 PST 2013 [ 0.000000] SoC Type: Ralink RT3350 id:1 rev:2 [ 0.000000] bootconsole [early0] enabled [ 0.000000] CPU revision is: 0001964c (MIPS 24KEc) [ 0.000000] MIPS: machine is 8devices Carambola [ 0.000000] Determined physical RAM map: [ 0.000000] memory: 02000000 @ 00000000 (usable) [ 0.000000] Initrd not found or empty - disabling initrd [ 0.000000] Zone ranges: [ 0.000000] Normal [mem 0x00000000-0x01ffffff] [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x00000000-0x01ffffff] [ 0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes. [ 0.000000] Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 32 bytes [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128 [ 0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2 [ 0.000000] PID hash table entries: 128 (order: -3, 512 bytes) [ 0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.000000] Writing ErrCtl register=0003e000 [ 0.000000] Readback ErrCtl register=0003e000 [ 0.000000] Memory: 29224k/32768k available (2240k kernel code, 3544k reserved, 546k data, 220k init, 0k highmem) [ 0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 [ 0.000000] NR_IRQS:128 [ 0.000000] CPU Clock: 320MHz [ 0.000000] Calibrating delay loop... 212.58 BogoMIPS (lpj=1062912) [ 0.080000] pid_max: default: 32768 minimum: 301 [ 0.080000] Mount-cache hash table entries: 512 [ 0.090000] pinctrl core: initialized pinctrl subsystem [ 0.100000] NET: Registered protocol family 16 [ 0.150000] bio: create slab <bio-0> at 0 [ 0.150000] rt2880_gpio 10000600.gpio: registering 24 gpios [ 0.160000] rt2880_gpio 10000600.gpio: registering 24 irq handlers [ 0.170000] Switching to clocksource MIPS [ 0.180000] NET: Registered protocol family 2 [ 0.180000] TCP established hash table entries: 512 (order: 0, 4096 bytes) [ 0.190000] TCP bind hash table entries: 512 (order: -1, 2048 bytes) [ 0.190000] TCP: Hash tables configured (established 512 bind 512) [ 0.200000] TCP: reno registered [ 0.200000] UDP hash table entries: 256 (order: 0, 4096 bytes) [ 0.210000] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) [ 0.220000] NET: Registered protocol family 1 [ 0.220000] rt-timer 10000100.timer: maximum frequncy is 6510Hz [ 0.270000] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.280000] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc. [ 0.290000] msgmni has been set to 57 [ 0.300000] io scheduler noop registered [ 0.300000] io scheduler deadline registered (default) [ 0.310000] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled [ 0.330000] 10000c00.uartlite: ttyS0 at MMIO 0x10000c00 (irq = 20) is a 16550A [ 0.340000] console [ttyS0] enabled, bootconsole disabled [ 0.340000] console [ttyS0] enabled, bootconsole disabled [ 0.360000] 1f000000.cfi: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x0000c2 Chip ID 0x0022c9 [ 0.370000] Amd/Fujitsu Extended Query Table at 0x0040 [ 0.370000] Amd/Fujitsu Extended Query version 1.1. [ 0.380000] 1f000000.cfi: Swapping erase regions for top-boot CFI table. [ 0.380000] number of CFI chips: 1 [ 0.390000] 4 ofpart partitions found on MTD device 1f000000.cfi [ 0.390000] Creating 4 MTD partitions on "1f000000.cfi": [ 0.400000] 0x000000000000-0x000000030000 : "u-boot" [ 0.410000] 0x000000030000-0x000000040000 : "u-boot-env" [ 0.420000] 0x000000040000-0x000000050000 : "factory" [ 0.430000] 0x000000050000-0x000000800000 : "firmware" [ 0.440000] 0x0000001479e6-0x000000800000 : "rootfs" [ 0.440000] mtd: partition "rootfs" must either start or end on erase block boundary or be smaller than an erase block -- forcing read-only [ 0.460000] mtd: device 4 (rootfs) set to be root filesystem [ 0.470000] mtd: partition "rootfs_data" created automatically, ofs=0x340000, len=0x4c0000 [ 0.470000] 0x000000340000-0x000000800000 : "rootfs_data" [ 0.490000] eth0: done loading [ 0.500000] rt2880_wdt 10000120.watchdog: Initialized [ 0.510000] TCP: cubic registered [ 0.510000] NET: Registered protocol family 17 [ 0.520000] Bridge firewalling registered [ 0.520000] 8021q: 802.1Q VLAN Support v1.8 [ 0.540000] VFS: Mounted root (squashfs filesystem) readonly on device 31:4. [ 0.550000] Freeing unused kernel memory: 220K (802b9000 - 802f0000) procd: Console is alive procd: - watchdog - procd: - preinit - Press the [f] key and hit [enter] to enter failsafe mode [ 4.780000] usbcore: registered new interface driver usbfs [ 4.790000] usbcore: registered new interface driver hub [ 4.800000] usbcore: registered new device driver usb [ 4.820000] dwc_otg: version 2.72a 24-JUN-2008 [ 4.820000] dwc_otg: Core Release: 2.66a [ 5.030000] dwc_otg: Periodic Transfer Interrupt Enhancement - disabled [ 5.030000] dwc_otg: Multiprocessor Interrupt Enhancement - disabled [ 5.040000] dwc_otg: Using DMA mode [ 5.040000] dwc_otg: Device using Buffer DMA mode [ 5.050000] dwc_otg 101c0000.otg: DWC OTG Controller [ 5.050000] dwc_otg 101c0000.otg: new USB bus registered, assigned bus number 1 [ 5.060000] dwc_otg 101c0000.otg: irq 26, io mem 0x101c0000 [ 5.070000] dwc_otg: Init: Port Power? op_state=1 [ 5.070000] dwc_otg: Init: Power Port (0) [ 5.080000] hub 1-0:1.0: USB hub found [ 5.080000] hub 1-0:1.0: 1 port detected mount_root: jffs2 is ready [ 7.890000] jffs2: notice: (283) jffs2_build_xattr_subsystem: complete building xattr subsystem, 18 of xdatum (0 unchecked, 17 orphan) and 23 of xref (0 dead, 17 orphan) found. procd: - early - procd: - watchdog - procd: - ubus - procd: - init - Please press Enter to activate this console. [ 9.160000] NET: Registered protocol family 10 [ 9.180000] nf_conntrack version 0.5.0 (460 buckets, 1840 max) [ 9.200000] ip6_tables: (C) 2000-2006 Netfilter Core Team [ 9.240000] Loading modules backported from Linux version master-2013-11-05-0-gafa3093 [ 9.250000] Backport generated by backports.git backports-20130802-0-gdb67a3f [ 9.260000] ip_tables: (C) 2000-2006 Netfilter Core Team [ 9.340000] xt_time: kernel timezone is -0000 [ 9.420000] cfg80211: Calling CRDA to update world regulatory domain [ 9.420000] cfg80211: World regulatory domain updated: [ 9.430000] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 9.440000] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 9.440000] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 9.450000] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 9.460000] cfg80211: (5170000 KHz - 5250000 KHz @ 80000 KHz), (300 mBi, 2000 mBm) [ 9.470000] cfg80211: (5735000 KHz - 5835000 KHz @ 80000 KHz), (300 mBi, 2000 mBm) [ 9.480000] cfg80211: (57240000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 0 mBm) [ 9.580000] PPP generic driver version 2.4.2 [ 9.600000] NET: Registered protocol family 24 [ 9.660000] rt2800_wmac 10180000.wmac: failed to load eeprom property [ 9.670000] ieee80211 phy0: rt2x00lib_request_eeprom_file: Info - Loading EEPROM data from 'soc_wmac.eeprom'. [ 9.690000] ieee80211 phy0: rt2x00_set_rt: Info - RT chipset 2872, rev 0200 detected [ 9.700000] ieee80211 phy0: rt2x00_set_rf: Info - RF chipset 0005 detected [ 15.440000] device eth0.1 entered promiscuous mode [ 15.440000] device eth0 entered promiscuous mode [ 15.470000] br-lan: port 1(eth0.1) entered forwarding state [ 15.480000] br-lan: port 1(eth0.1) entered forwarding state [ 16.490000] IPv6: ADDRCONF(NETDEV_CHANGE): eth0.1: link becomes ready [ 17.480000] br-lan: port 1(eth0.1) entered forwarding state procd: - init complete -
Basic configuration
→ Basic configuration After flashing, proceed with this.
Set up your Internet connection, configure wireless, configure USB port, etc.
Specific Configuration
Failsafe mode
Hardware
Info
Rev ?
Architecture: | MIPS |
Vendor: | Ralink |
bootloader: | U-Boot |
System-On-Chip: | RT3050 (MIPS 24K V4.12) |
CPU/Speed | 320 Mhz |
Flash-Chip: | Macronix MX29LV640 |
Flash size: | 8192 KiB |
RAM: | 32 MiB |
Wireless: | RT3050 1×1 802.11n 2.4GHz |
Ethernet: | 2x 10/100MiBit/s |
USB: | Yes |
Serial: | Yes |
JTAG: | Yes (on test pads) |
I2C: | Yes |
SPI: | Yes |
GPIO: | Yes |
Since this is development hardware, plenty of SoC I/Os are accessible, among them JTAG, I2C, SPI and plenty of GPIO (also I2S and PCM codec interfaces).
Photos
Serial
JTAG
I2C
→ port.i2c
Example usage:
root@OpenWrt:/# insmod i2c-gpio-custom bus0=0,1,2 # sda=1, scl=2 are default I2C GPIOs for RT305x Custom GPIO-based I2C driver version 0.1.1 root@OpenWrt:/# insmod ina2xx root@OpenWrt:/# echo 'ina219 0x40' > /sys/bus/i2c/devices/i2c-0/new_device ina2xx 0-0040: power monitor ina219 (Rshunt = 10000 uOhm) i2c i2c-0: new_device: Instantiated device ina219 at 0x40 root@OpenWrt:/# cat /sys/bus/i2c/devices/0-0040/power1_input 15280000
SPI
→ port.spi
The SPI driver is called ramips-spi, but is disabled on this device. See for example target/linux/ramips/files/arch/mips/ralink/rt305x/mach-wnce2001.c for how to register the driver to be able to talk to SPI flash.
GPIO
GPIOs available for use on the Carambola devices are:
GPIO# | Carambola pin | Function | Name |
---|---|---|---|
1 | 34 | I2C | I2C_SDA |
2 | 33 | I2C | I2C_SCL |
3 | 13 | SPI | SPI_EN |
4 | 14 | SPI | SPI_CLK |
5 | 15 | SPI | SPI_DOUT |
6 | 16 | SPI | SPI_DIN |
7 | 29 | SERIAL/I2S | RTS_N/I2SCLK |
8 | 31 | SERIAL/I2S | TXD/I2SWS |
9 | 30 | SERIAL/I2S | CTS_N/I2SSD |
10 | 32 | SERIAL/I2S/PCM | RXD/REFCLK |
11 | 27 | SERIAL/PCM | DTR_N/PCMFS |
12 | 26 | SERIAL/PCM | DCD_N/PCMCLK |
13 | 28 | SERIAL/PCM | DSR_N/PCMDRX |
14 | 25 | SERIAL/PCM | RIN/PCMDTX |
15 | 35 | SERIAL2 | TXD2 |
16 | 36 | SERIAL2 | RXD2 |