Small Computers Community Workshop January 2017
I'd like the meeting to be as useful as possible. And to that end, please feel free to edit these notes and add any topics that you would like the meeting to cover.
Notes and ideas for what to cover
- Overview of small computers available
- Operating system
- Microcontroller with/without bootloader
- Arduino
- Full Linux distribution
- Debian on CHIP
- Raspbian
- Custom Linux build with cross-compiling
- Buildroot
- Yocto (Intel Edison)
- Android Things
- Windows IoT
- Microcontroller with/without bootloader
- Microcontroller vs 'system on a chip' and general OS
- Startup time
- Remove power vs clean shutdown
- Filesystem cache
- Filesystem corruption
- Read-only root filesystem
- Journaling filesystem
- Security and managing patches/updates
- Hardware driver availability
- Size of current sourced and sinked to GPIO pins
- IOH = current when output is high
- IOL = current when output is low
- Arduino Uno ATmega328
- IOH: Max 40 mA, recommended 20 mA
- IOL: Max 40 mA, recommended 20 mA
- Also limitations on total for all pins
- http://playground.arduino.cc/Main/ArduinoPinCurrentLimitations
- PCF8574 on CHIP
- IOH: 30 to 300 uA (47 uA reported in forum)
- IOL: 10 to 25 mA
- http://www.ti.com/lit/ds/symlink/pcf8574.pdf
- https://bbs.nextthing.co/t/electrical-characteristics-of-chips-gpio/2590
- 5V vs 3.3V logic
- Arduino IDE and computer-hosted microcontroller tool chains
- Storage
- Internal
- SD card
- Networking
- Wifi
- Bluetooth
- Ethernet
- I/O
- Digital
- Analog (ADC/DAC)
- PWM
- I2C: https://en.wikipedia.org/wiki/I%C2%B2C
- Video (HDMI, DSI)
- Serial over USB
- USB On-The-Go
- 3 wire UART serial
- Power
- Power consumption
- Power source options
- USB (discuss non-standard current draw)
- USB 2.0: 5V max 500 mA
- Barrel jack DC
- AAA batteries
- LiPo batteries
- https://learn.adafruit.com/li-ion-and-lipoly-batteries?view=all
- USB (discuss non-standard current draw)
- Battery charging
- Add-on boards
- Raspberry Pi HATs
- Arduino Shields
- CHIP DIPs
- Feather Wings
- Sample boards
- CHIP
- Arduino
- Teensy
- Feather
- LilyPad: https://www.arduino.cc/en/Main/ArduinoBoardLilyPad
- FLORA: https://www.adafruit.com/product/659
- Raspberry Pi
- Beaglebone Black
- Micro:bit: http://microbit.org/hardware/
- Intel Edison
- ESP8266: https://en.wikipedia.org/wiki/ESP8266
- SAMD21
- Operating system
- CHIP
- Specs:
- Allwinner R8 CPU
- 512MB DRAM
- 4GB NAND storage
- Realtek RTL8723BS
- 802.11b/g/n
- Bluetooth 4.0 LE
- AXP209 power management chip
- USB A socket Host (500 mA)
- USB Micro B socket power and On-The-Go
- TRRS A/V connector
- 80 pin headers
- Battery connector
- Power button
- https://docs.getchip.com/chip.html#parts-and-pieces
- https://github.com/NextThingCo/CHIP-Hardware/tree/master/CHIP%5Bv1_0%5D/CHIPv1_0-BOM-Datasheets
- Allwinner R8 CPU
- Getting started with CHIP
- Powering CHIP: http://www.chip-community.org/index.php/Power
- Connecting to CHIP
- Serial USB to Micro B USB OTG
- UART
- SSH wireless or wired (wired requires USB ethernet adapter)
- https://docs.getchip.com/chip.html#headless-chip
- stty size
- stty rows M cols N
- http://unix.stackexchange.com/questions/16578/resizable-serial-console-window
- Default user configuration
- User: chip, password: chip
- passwd
- User: root, password: chip
- sudo passwd -l root
- On headless image, ssh service is enabled
- sudo systemctl disable ssh
- PermitRootLogin is "yes"
- /etc/ssh/sshd_config
- User: chip, password: chip
- Default hosname: chip
- /etc/hostname
- /etc/hosts
- Using a powered USB hub
- Wifi configuration
- List networks: nmcli device wifi
- Enabling UTF-8
- sudo apt install locales
sudo dpkg-reconfigure locales
In locales to be generated, select "
en_US.UTF-8 UTF-8
"- Select "
en_US.UTF-8 UTF-8
" as default - Reboot
- CHIP GPIO
- https://docs.getchip.com/chip.html#pin-headers
- XIO pins attached to a PCF8574 via I2C
- http://www.ti.com/lit/ds/symlink/pcf8574.pdf
- https://bbs.nextthing.co/t/electrical-characteristics-of-chips-gpio/2590
- http://www.chip-community.org/index.php/GPIO_Info
- https://github.com/chip-community/libsoc
- https://github.com/xtacocorex/CHIP_IO
- Device numbering varies with kernel version: https://docs.getchip.com/chip.html#gpio
- Lighting an LED on CHIP
- Circuit for Arduino: https://www.arduino.cc/en/tutorial/blink
- SparkFun tutorial on selecting resistor value for LED circuit: https://www.sparkfun.com/tutorials/219
- We cannot use the Arduino circuit on CHIP as the XIO pins cannot source enough current
- Instead we can either:
- Use XIO pin to control a current from another source (say using a FET)
- Or, reverse the circuit and sink to XIO rather than source
- https://bbs.nextthing.co/t/leds-with-gpio/1802
- Automate CHIP configuration: http://www.chip-community.org/index.php/Automate_CHIP_configuration
- Running stuff at startup with systemd
- How we are using CHIPs for Nexus
- Talk by Dave Rauchwerk of Next Thing Co on the history and design of the CHIP:
- Specs:
- Adafruit FTDI Friend: https://www.adafruit.com/products/284
- Arduino
- http://www.arduino.org/products/boards/arduino-uno
- https://www.arduino.cc/en/Tutorial/Memory
- Building an Arduino on a breadboard: https://www.arduino.cc/en/Main/Standalone
- Firmata: https://github.com/firmata/arduino
- ATmega328 specs
- 20 MHz AVR
- 32 KB flash (non-volatile, program)
- 2 KB SRAM (volatile, runtime data)
- 1 KB EEROM (non-volatile storage)
- 6-channel ADC