Category Archives: measured

Raspberry Pi Zero weight & power consumption

Measured weight:

Raspberry Pi Zero + SD card 8.8 grams
Raspberry Pi Zero + SD card + pin header 11.8 grams
Raspberry Pi Zero + SD card + USB wlan adapter (Asus USB-N10 without covers) 11.9 grams

Measured power consumption at 3.3V fed directly to header:

150mA without USB devices
350mA with Asus N10 during ping in weak network connection

Novation Launchpad USB descriptors

Device descriptor:
Descriptor Length: 12
Descriptor type: 01
USB version: 0100
Device class: FF
Device Subclass: 00
Device Protocol: FF
Max.packet size: 08
Vendor ID: 1235
Product ID: 000E
Revision ID: 0002
Mfg.string index: 01
Prod.string index: 02
Serial number index: 00
Number of conf.: 01

Configuration descriptor:
Total length: 0020
Num.intf: 01
Conf.value: 01
Conf.string: 00
Attr.: 80
Max.pwr: D7

Interface descriptor:
Intf.number: 00
Alt.: 00
Endpoints: 02
Intf. Class: FF
Intf. Subclass: 00
Intf. Protocol: 00
Intf.string: 00

Endpoint descriptor:
Endpoint address: 81
Attr.: 03
Max.pkt size: 0008
Polling interval: 0A

Endpoint descriptor:
Endpoint address: 02
Attr.: 03
Max.pkt size: 0008
Polling interval: 0A

Uneven throttle on MultiWii

Uneven throttle is probably caused by differently calibrated ESCs. You might find strange need to trim your copter heavily.

Few tips if you have uneven throttle or strange banking or flipping when giving throttle:

– New copter: clean EEPROM (Arduino example eeprom_clear: change the value 512->1024)
– New copter:add line “#define MOTOR_STOP” to config.h
– New copter: always calibrate the ESC’s using the define ESC_CALIB_CANNOT_FLY (REMOVE PROPELLERS!)
– Now upload, run calibration, remove ESC_CALIB_CANNOT_FLY and upload again
– Use MultiWiiConf: calibrate ACC (and MAG too..)
– Check trims: ROLL, PITCH, YAW should all be 1500 when sticks in neutral
– Check functionality without propeller’s
– Remember: SimonK ESC’s CAN be calibrated to different throttle range

I’m using:
#define MINTHROTTLE 1064
#define MOTOR_STOP
#define MAXTHROTTLE 1850
#define MINCOMMAND 1000

MultiWii + Mongoose + Tricopter

If you’re using MultiWii at Mongoose-board you might wonder how to connect motors to pins.

Pinouts for tricopter:

Yaw Servo: MultiWii pin=3 = PD3 => Mongoose-pin:3
Front Left: MW=11 = PB3 => Mongoose-pin: spi-header (MOSI)
Front Right: MW=10 = PB2 => Mongoose-pin: 10
Rear: MW=9 = PB1 => Mongoose-pin: 9
RX ppm sum: mw=2 = PD2 (soldered straight to atmega328p)


Arduino Due performance on sin()

Tested running 100.000 sin() calls and it took 2594 milliseconds. That means you make call sin() at 38.55kHz. If you want to make 44.1kHz sound in real-time there’s no way you can use the sin() method.

Here’s the code I used

void SpeedTest()
float f = 1.23;


for (uint32_t i=0; i<10000; i++) { f=sin(f); f=sin(f); f=sin(f); f=sin(f); f=sin(f); f=sin(f); f=sin(f); f=sin(f); f=sin(f); f=sin(f); } Serial.println(millis()); Serial.println(f); }

Few tweaks for Raspberry Pi

Use Adafruit’s Occidentalis distro as your base system. It has all neat stuff done for you (sshd running pi/raspberry). It also includes wlan driver for Asus USB-N10 USB WLAN-adapter (which is great and goes through one celement floor).

Make your system up to date by running this command sequence:

rm /etc/ssh/ssh_host_* && dpkg-reconfigure openssh-server
apt-get -y update
apt-get -y install locales
apt-get -y install ntpdate
apt-get -y install ntp fake-hwclock
apt-get -y dist-upgrade

Make a temp filesystem to store logs and all running stuff. Add this row to /etc/fstab:

tmpfs /var/tmp tmpfs nodev,nosuid,size=50M 0 0

Edit /etc/rsyslog.conf and replace all /var/log/ instances with /var/tmp/

One last warning: Your SD card WILL corrupt some day if you don’t do a proper shutdown. Make a backup of your SD card when it’s all set up! If you don’t believe: try it. It’s the nature of SD card that makes this and there’s no easy way out.