SlideShare a Scribd company logo
1 of 11
Download to read offline
DLI Atomic Pi user guide
20190206T074743Z
CONTENTS 1
Contents
1 Overview 2
2 GPIO pin reference 3
3 BNO055 sensor reference 6
4 Custom bus configuration reference 7
5 Technical support 8
6 Open source code 9
DLI Atomic Pi user guide: 20190206T074743Z
2 CONTENTS
1 Overview
Congratulations on selecting Atomic Pi, an performant embedded controller with peripherals.
Atomic Pi has the following interfaces:
• HDMI for video and sound output;
• Additional XMOS Mayfield audio output;
• 3 user-accessible UART ports;
• USB 3.0 for connecting peripherals;
• microSD for storage (in addition to on-board eMMC);
• Ethernet, WiFi and Bluetooth connectivity options;
• 6 user-configurable GPIOs, with built-in support for running I2C or SPI bus masters over them.
The unit ships with a Bosch BNO055 absolute orientation sensor, connected via an internal I2C bus.
The firmware is based on open-source code which is provided to give you the option to build totally custom firmware.
Please contact technical support in case of any problems.
DLI Atomic Pi user guide: 20190206T074743Z
2 GPIO pin reference 3
2 GPIO pin reference
The Atomic Pi has 6 GPIO pins available to users, and additional lines connected to the BNO055 sensor. Here's a
overview of them.
2.1 Addressing
In order to use GPIO pins from Linux, it's important to understand how they are addressed in various situations.
Each GPIO has a global number in the integer GPIO namespace used with the legacy GPIO interface (e.g. through
sysfs). This is considered a legacy interface but there are currently no plans to remove it. However, in addition
to that, recent Linux kernels expose GPIO chips, which are basically named sets of GPIOs of the same hardware
origin with a single base number; GPIOs are numbered sequentially within a chip, but the global GPIO namespace
itself needn't be contiguous.
2.2 Pin description
Generally available pins:
Schematic name GPIO chip id Chip pin number Global pin number Connected devices
ISH_GPIO_0 gpiochip3 21 335
ISH_GPIO_1 gpiochip3 18 332 LED Green (active low)
ISH_GPIO_2 gpiochip3 24 338 LED Yellow (active low)
ISH_GPIO_3 gpiochip3 15 329
ISH_GPIO_4 gpiochip3 22 336
ISH_GPIO_7 gpiochip3 16 330
These signals are available on the Atomic Pi's 26-pin connector. If you have the Enchilada breakout board, the
signals are available as on it as well. Connector pin numbers are as follows:
Schematic name 26-pin connector number Enchilada connector number
ISH_GPIO_0 24 9
ISH_GPIO_1 25 10
ISH_GPIO_2 26 11
ISH_GPIO_3 18 3
ISH_GPIO_4 19 4
ISH_GPIO_7 20 5
Other pins (not on the 26-pin connector or the Enchilada connector):
Schematic name GPIO chip id Chip pin number Global pin number Connected devices
I2C2_3P3_SDA gpiochip0 62 476 BNO055 I2C SDA
I2C2_3P3_SCL gpiochip0 66 480 BNO055 I2C SCL
AU_MIC_SEL gpiochip1 0 341 XMOS Audio mi-
crophone loopback
selector
XMOS_RESET gpiochip1 8 349 XMOS Audio reset (ac-
tive low)
DLI Atomic Pi user guide: 20190206T074743Z
4 CONTENTS
Schematic name GPIO chip id Chip pin number Global pin number Connected devices
BN_INT gpiochip1 17 358 BNO055-generated in-
terrupt (active low)
BN_RESET gpiochip1 25 366 BNO055 reset (active
low)
The XMOS_RESET line is controlled by a system service, atomicpi-hold-xmos, to bring up the XMOS Audio
device.
The AU_MIC_SEL line must be configured to logical 0 to record audio from microphone, or to logical 1 for loopback
(recording audio being played back).
Using the interrupt and reset lines is not strictly required for BNO055 operation. Additional devices may be con-
nected to its I2C bus but that would require soldering.
Note that the system core contains other GPIO pins, some connected to internal circuits. Reading the datasheet is
strongly recommended before attempting to configure them!
2.3 Using GPIOs from the shell
GPIO pin constants can be pulled in by including /usr/lib/atomicpi.sh:
. /usr/lib/atomicpi.sh
The traditional sysfs way of manipulating GPIOs from the command line is documented at:
https://www.kernel.org/doc/Documentation/gpio/sysfs.txt
It is listed as deprecated but there are no plans to remove it.
. /usr/lib/atomicpi.sh
echo $ATOMICPI_ISH_GPIO_1 >/sys/class/gpio/export
echo $ATOMICPI_ISH_GPIO_2 >/sys/class/gpio/export
echo low >/sys/class/gpio/$ATOMICPI_ISH_GPIO_1/direction
while true; do
echo low > /sys/class/gpio/$ATOMICPI_ISH_GPIO_2/direction
sleep 1
echo high > /sys/class/gpio/$ATOMICPI_ISH_GPIO_2/direction
sleep 1
done
echo $ATOMICPI_ISH_GPIO_2 >/sys/class/gpio/unexport
echo $ATOMICPI_ISH_GPIO_1 >/sys/class/gpio/unexport
Constants storing global GPIO indices are prefixed by ATOMICPI_.
Additionally, several utilities allow GPIO control using the more modern interface (and chip id + pin index
addressing):
Constants storing "<chip id> <pin index>" are prefixed by ATOMICPICHIP_. Due to shell expansion rules,
${ATOMICPICHIP_ISH_GPIO_0} (without quotes) will expand to two arguments, the chip id and the pin index,
which is what most of the following utilities expect.
List all GPIO chips, print their labels and number of GPIO lines:
gpiodetect
Find a GPIO line by name (the output of this command can be used as input for gpioget/gpioset):
DLI Atomic Pi user guide: 20190206T074743Z
2 GPIO pin reference 5
gpiofind <name>
Print information about all lines of the specified GPIO chip(s) (or all chips if none are specified):
gpioinfo <gpiochip1> ...
Read line value(s) from a GPIO chip:
gpioget [-l] <chip name/number> <offset 1> <offset 2> ...
Options:
-l, --active-low: set the line active state to low
Set GPIO line values of a GPIO chip:
gpioset [OPTIONS] <chip name/number> <offset1>=<value1> <offset2>=<value2> ...
Options:
-l, --active-low: set the line active state to low
-m, --mode=[exit|wait|time|signal] (defaults to 'exit'):
tell the program what to do after setting values
-s, --sec=SEC: specify the number of seconds to wait (only valid for --mode= ←-
,→ time)
-u, --usec=USEC: specify the number of microseconds to wait (only valid for -- ←-
,→ mode=time)
-b, --background: after setting values: detach from the controlling terminal
Modes:
exit: set values and exit immediately
wait: set values and wait for user to press ENTER
time: set values and sleep for a specified amount of time
signal: set values and wait for SIGINT or SIGTERM
Wait for events on GPIO lines:
gpiomon [OPTIONS] <chip name/number> <offset 1> <offset 2> ...
Options:
-l, --active-low: set the line active state to low
-n, --num-events=NUM: exit after processing NUM events
-s, --silent: don't print event info
-r, --rising-edge: only process rising edge events
-f, --falling-edge: only process falling edge events
-F, --format=FMT specify custom output format
Format specifiers:
%o: GPIO line offset
%e: event type (0 - falling edge, 1 rising edge)
%s: seconds part of the event timestamp
%n: nanoseconds part of the event timestamp
See /usr/lib/atomicpi.sh for details.
2.4 Using GPIOs from Node.JS
var atomicpi = require("atomicpi");
var GPIO = require("sysfs-gpio");
DLI Atomic Pi user guide: 20190206T074743Z
6 CONTENTS
Control by signal ID GPIO.export(atomicpi.signals.ISH_GPIO_0.global_idx, (pin) => { pin.out(); pin.high(); });
Control with signal ID lookup on Enchilada connector first GPIO.export(atomicpi.signals[atomicpi.connectors.←-
enchilada.leds.green].global_idx, (pin) => { pin.out(); pin.low(); }); process.stdin.resume();
atomicpi.signals contains a mapping from the signal name (e.g. "ISH_GPIO_0") to {chip,chip_←-
idx,global_idx}. You will need global_idx most of the time as sysfs-gpio uses the legacy sysfs
interface.
See /usr/lib/node/atomicpi.js and sysfs-gpio documentation for details.
2.5 Using GPIOs from Python
import atomicpi
import gpio as GPIO
# Control by signal ID
GPIO_0=atomicpi.signals.ISH_GPIO_0.global_idx
GPIO.setup(GPIO_0, GPIO.OUT)
GPIO.output(GPIO_0, True)
# Control with signal ID lookup on Enchilada connector first
GREEN_LED=atomicpi.signals[atomicpi.connectors.enchilada.leds.green].global_idx
GPIO.setup(GREEN_LED, GPIO.OUT)
GPIO.output(GREEN_LED, False)
GPIO.cleanup(GPIO_0)
GPIO.cleanup(GREEN_LED)
atomicpi.signals contains a mapping from the signal name (e.g. "ISH_GPIO_0") to {chip,chip_←-
idx,global_idx}. You will need global_idx most of the time as gpio uses the legacy sysfs interface.
The gpio library largely mimics the Raspberry Pi RPIO library.
See /usr/lib/python/dist-packages/atomicpi.py and gpio documentation for details.
3 BNO055 sensor reference
The Atomic Pi has a BNO055 absolute orientation sensor attached to a custom GPIO I2C bus (configured as I2C
bus 50 by default). It combines an accelerometer, a gyroscope and a magnetometer.
You may need to calibrate the sensor to obtain desired accuracy. Consult the Bosch Sensortec reference
for details.
3.1 Using BNO055 from Node.JS
var BNO055 = require('bno055');
var async = require('async');
BNO055 is configured on I2C bus 50 in /etc/i2c-gpio-custom.d/bno055-bus by default var imu = new BN←-
O055({device:"/dev/i2c-50"}); imu.beginNDOF(function() { console.info('imu running'); setInterval(function() {
async.series({ calibrationStatus: imu.getCalibrationStatus.bind(imu), quaternion: imu.getQuaternion.bind(imu),
euler: imu.getEuler.bind(imu), linearAcceleration: imu.getLinearAcceleration.bind(imu) }, function(err, results) {
console.info( 'imu: ', JSON.stringify(results) ); }); }, 1000); });
See bno055 package documentation for details.
3.2 Using BNO055 from Python
DLI Atomic Pi user guide: 20190206T074743Z
4 Custom bus configuration reference 7
from Adafruit_BNO055.BNO055 import BNO055
from time import sleep
# BNO055 is configured on I2C bus 50 in /etc/i2c-gpio-custom.d/bno055-bus by ←-
,→ default
sensor = BNO055(busnum=50)
assert(sensor.begin())
while True:
print('Euler=%0.2f:%0.2f:%0.2f Quaternion=%0.2f:%0.2f:%0.2f:%0.2f Temp=%0.2fC ←-
,→ Mag=%0.2f:%0.2f:%0.2f Gyr=%0.2f:%0.2f:%0.2f Accel=%0.2f:%0.2f:%0.2f ←-
,→ LAccel=%0.2f:%0.2f:%0.2f Gravity=%0.2f:%0.2f:%0.2f'%(
sensor.read_euler() +
sensor.read_quaternion() +
(sensor.read_temp(),) +
sensor.read_magnetometer() +
sensor.read_gyroscope() +
sensor.read_accelerometer() +
sensor.read_linear_acceleration() +
sensor.read_gravity()
))
sleep(1)
See Adafruit_BNO055 package documentation for details.
4 Custom bus configuration reference
The Atomic Pi can act as a I2C or SPI bus master on a custom set of GPIOs. This is implemented using kernel
modules i2c-gpio-custom and spi-gpio-custom (sources in /usr/src/, editable and buildable using D←-
KMS).
The kernel modules are by default configured using systemd services i2c-gpio-custom.service and
spi-gpio-custom.service. Modules are loaded on service start and unloaded on service stop.
Services collect bus configuration items from /etc/i2c-gpio-custom.d and /etc/spi-gpio-custom.d
and set up command lines for the modules, which have form 'bus0=<id0>,<args...> bus1=<id1>,<args...>...'.
Every bus needs to have a unique numeric ID (DLI default ids start with 50; it's recommended to start custom bus
numbering with 100). GPIO pins referenced in the arguments must be specified using their global GPIO indices.
See the README files in those directories for more information.
DLI Atomic Pi user guide: 20190206T074743Z
8 CONTENTS
5 Technical support
To save time, please have a look at the product FAQ page solutions. You may FAX questions to (408) 541-8459 or
email: support@digital-loggers.com.
For phone support, call (408) 330-5599 with the following so we can better serve you:
• the firmware version level installed;
• a description of the Ethernet devices connected to your unit, for example, a 10/100 PC and crossover cable,
if it's relevant;
• a description of the WiFi or Bluetooth devices connected to your unit, i.e. their manufacturers and model
numbers, if it's relevant.
DLI Atomic Pi user guide: 20190206T074743Z
6 Open source code 9
6 Open source code
Open-source components used in the Atomic Pi are mostly unmodified, as they are in the Ubuntu Bionic distribution
(see apt list --installed).
Most additional components developed specifically for the Atomic Pi are provided in source form in the
firmware already. For example, avrdude support for the ATMega328PB is provided in source form as part
of /etc/avrdude.conf (it is not original).
Sources for the binary I2C and SPI custom-GPIO bus master kernel modules are provided in /usr/src in (configured
to be used by DKMS). Updated source versions will be available from Git repositories located at:
https://github.com/digitalloggers/i2c-gpio-custom.git
https://github.com/digitalloggers/spi-gpio-custom.git
Updated versions of the BNO055 sensor library for Node.JS will be available at:
https://github.com/digitalloggers/node-BNO055.git
DLI cannot provide warranty or technical support for modified units; this includes units with custom firmware.
DLI Atomic Pi user guide: 20190206T074743Z
Atomic pi Mini PC

More Related Content

Similar to Atomic pi Mini PC

[5]投影片 futurewad樹莓派研習會 141218
[5]投影片 futurewad樹莓派研習會 141218[5]投影片 futurewad樹莓派研習會 141218
[5]投影片 futurewad樹莓派研習會 141218CAVEDU Education
 
Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Dobrica Pavlinušić
 
Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Tom Paulus
 
Openwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 RomaOpenwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 RomaClaudio Mignanti
 
I made some more expansion board for M5Stack
I made some more expansion  board for M5StackI made some more expansion  board for M5Stack
I made some more expansion board for M5StackMasawo Yamazaki
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitSulamita Garcia
 
Custard pi 7 user information
Custard pi 7 user informationCustard pi 7 user information
Custard pi 7 user informationSeggy Segaran
 
Python-in-Embedded-systems.pptx
Python-in-Embedded-systems.pptxPython-in-Embedded-systems.pptx
Python-in-Embedded-systems.pptxTuynLCh
 
Raspberry pi technical documentation
Raspberry pi technical documentationRaspberry pi technical documentation
Raspberry pi technical documentationGR Techno Solutions
 
Learn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDev
Learn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDevLearn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDev
Learn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDevJian-Hong Pan
 
Raspberry Pi GPIO Tutorial - Make Your Own Game Console
Raspberry Pi GPIO Tutorial - Make Your Own Game ConsoleRaspberry Pi GPIO Tutorial - Make Your Own Game Console
Raspberry Pi GPIO Tutorial - Make Your Own Game ConsoleRICELEEIO
 
lesson2 - Nodemcu course - NodeMCU dev Board
 lesson2 - Nodemcu course - NodeMCU dev Board lesson2 - Nodemcu course - NodeMCU dev Board
lesson2 - Nodemcu course - NodeMCU dev BoardElaf A.Saeed
 
Hardware interfacing basics using AVR
Hardware interfacing basics using AVRHardware interfacing basics using AVR
Hardware interfacing basics using AVRMohamed Abdallah
 
Embedded system lab work
Embedded system lab workEmbedded system lab work
Embedded system lab workJIGAR MAKHIJA
 
I2CUI4_V1 Datasheet EN – User Interface I2C keypad with 5-keys
I2CUI4_V1 Datasheet EN – User Interface I2C keypad with 5-keysI2CUI4_V1 Datasheet EN – User Interface I2C keypad with 5-keys
I2CUI4_V1 Datasheet EN – User Interface I2C keypad with 5-keysIoTdevices
 
Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013Tom Paulus
 

Similar to Atomic pi Mini PC (20)

[5]投影片 futurewad樹莓派研習會 141218
[5]投影片 futurewad樹莓派研習會 141218[5]投影片 futurewad樹莓派研習會 141218
[5]投影片 futurewad樹莓派研習會 141218
 
PPT+.pdf
PPT+.pdfPPT+.pdf
PPT+.pdf
 
Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !Linux+sensor+device-tree+shell=IoT !
Linux+sensor+device-tree+shell=IoT !
 
Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013Getting Started With Raspberry Pi - UCSD 2013
Getting Started With Raspberry Pi - UCSD 2013
 
Openwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 RomaOpenwrt, linux e GPIO al LinuxDay 2010 Roma
Openwrt, linux e GPIO al LinuxDay 2010 Roma
 
I made some more expansion board for M5Stack
I made some more expansion  board for M5StackI made some more expansion  board for M5Stack
I made some more expansion board for M5Stack
 
Getting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer KitGetting started with Intel IoT Developer Kit
Getting started with Intel IoT Developer Kit
 
Custard pi 7 user information
Custard pi 7 user informationCustard pi 7 user information
Custard pi 7 user information
 
Python-in-Embedded-systems.pptx
Python-in-Embedded-systems.pptxPython-in-Embedded-systems.pptx
Python-in-Embedded-systems.pptx
 
Raspberry pi technical documentation
Raspberry pi technical documentationRaspberry pi technical documentation
Raspberry pi technical documentation
 
Microcontroller part 2
Microcontroller part 2Microcontroller part 2
Microcontroller part 2
 
Learn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDev
Learn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDevLearn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDev
Learn How to Develop Embedded System for ARM @ 2014.12.22 JuluOSDev
 
Начало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev KitНачало работы с Intel IoT Dev Kit
Начало работы с Intel IoT Dev Kit
 
Raspberry Pi GPIO Tutorial - Make Your Own Game Console
Raspberry Pi GPIO Tutorial - Make Your Own Game ConsoleRaspberry Pi GPIO Tutorial - Make Your Own Game Console
Raspberry Pi GPIO Tutorial - Make Your Own Game Console
 
lesson2 - Nodemcu course - NodeMCU dev Board
 lesson2 - Nodemcu course - NodeMCU dev Board lesson2 - Nodemcu course - NodeMCU dev Board
lesson2 - Nodemcu course - NodeMCU dev Board
 
Utft
UtftUtft
Utft
 
Hardware interfacing basics using AVR
Hardware interfacing basics using AVRHardware interfacing basics using AVR
Hardware interfacing basics using AVR
 
Embedded system lab work
Embedded system lab workEmbedded system lab work
Embedded system lab work
 
I2CUI4_V1 Datasheet EN – User Interface I2C keypad with 5-keys
I2CUI4_V1 Datasheet EN – User Interface I2C keypad with 5-keysI2CUI4_V1 Datasheet EN – User Interface I2C keypad with 5-keys
I2CUI4_V1 Datasheet EN – User Interface I2C keypad with 5-keys
 
Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013Getting Started with Raspberry Pi - USC 2013
Getting Started with Raspberry Pi - USC 2013
 

More from Dwika Sudrajat

dolby-atmos-integrated speaker-compact-entertainment-systems.pdf
dolby-atmos-integrated speaker-compact-entertainment-systems.pdfdolby-atmos-integrated speaker-compact-entertainment-systems.pdf
dolby-atmos-integrated speaker-compact-entertainment-systems.pdfDwika Sudrajat
 
Dolby-Atmos-for-Sound-Bar-applications.pdf
Dolby-Atmos-for-Sound-Bar-applications.pdfDolby-Atmos-for-Sound-Bar-applications.pdf
Dolby-Atmos-for-Sound-Bar-applications.pdfDwika Sudrajat
 
Tanah 9ribu meter Babelan Bekasi Utara.pdf.pdf
Tanah 9ribu meter Babelan Bekasi Utara.pdf.pdfTanah 9ribu meter Babelan Bekasi Utara.pdf.pdf
Tanah 9ribu meter Babelan Bekasi Utara.pdf.pdfDwika Sudrajat
 
Hukum Universal Sukses Summary .doc
Hukum Universal Sukses  Summary .docHukum Universal Sukses  Summary .doc
Hukum Universal Sukses Summary .docDwika Sudrajat
 
Profile Dwika Consultant USA v3.pptx
Profile Dwika Consultant USA v3.pptxProfile Dwika Consultant USA v3.pptx
Profile Dwika Consultant USA v3.pptxDwika Sudrajat
 
Pitch Dwika Founder I-Hunter v2.pptx
Pitch Dwika Founder I-Hunter v2.pptxPitch Dwika Founder I-Hunter v2.pptx
Pitch Dwika Founder I-Hunter v2.pptxDwika Sudrajat
 
How_Come_That_idiots_Rich_and_Im_Not.pdf
How_Come_That_idiots_Rich_and_Im_Not.pdfHow_Come_That_idiots_Rich_and_Im_Not.pdf
How_Come_That_idiots_Rich_and_Im_Not.pdfDwika Sudrajat
 
ev car dwika feb 2022.pptx
ev car dwika feb 2022.pptxev car dwika feb 2022.pptx
ev car dwika feb 2022.pptxDwika Sudrajat
 
1 Scrum Project Examples - Dwika V10.pptx
1 Scrum Project Examples - Dwika V10.pptx1 Scrum Project Examples - Dwika V10.pptx
1 Scrum Project Examples - Dwika V10.pptxDwika Sudrajat
 
1 Build Open Source Car Scrum - Dwika V1.pptx
1 Build Open Source Car Scrum  - Dwika V1.pptx1 Build Open Source Car Scrum  - Dwika V1.pptx
1 Build Open Source Car Scrum - Dwika V1.pptxDwika Sudrajat
 
Bisnis Properti FTUI 26 Sep.pptx
Bisnis Properti FTUI 26 Sep.pptxBisnis Properti FTUI 26 Sep.pptx
Bisnis Properti FTUI 26 Sep.pptxDwika Sudrajat
 
Mobil Otonom untuk Mahasiswa - Dwika v3.pptx
Mobil Otonom untuk Mahasiswa - Dwika v3.pptxMobil Otonom untuk Mahasiswa - Dwika v3.pptx
Mobil Otonom untuk Mahasiswa - Dwika v3.pptxDwika Sudrajat
 
CV Profile Dwika Consultant USA
CV Profile Dwika Consultant USACV Profile Dwika Consultant USA
CV Profile Dwika Consultant USADwika Sudrajat
 
CBTC Communications-based train control
CBTC  Communications-based train controlCBTC  Communications-based train control
CBTC Communications-based train controlDwika Sudrajat
 
Defense and Military Strategy with Agile - Scrum
Defense and Military Strategy with Agile - ScrumDefense and Military Strategy with Agile - Scrum
Defense and Military Strategy with Agile - ScrumDwika Sudrajat
 

More from Dwika Sudrajat (20)

dolby-atmos-integrated speaker-compact-entertainment-systems.pdf
dolby-atmos-integrated speaker-compact-entertainment-systems.pdfdolby-atmos-integrated speaker-compact-entertainment-systems.pdf
dolby-atmos-integrated speaker-compact-entertainment-systems.pdf
 
Dolby-Atmos-for-Sound-Bar-applications.pdf
Dolby-Atmos-for-Sound-Bar-applications.pdfDolby-Atmos-for-Sound-Bar-applications.pdf
Dolby-Atmos-for-Sound-Bar-applications.pdf
 
Atomic PI apug
Atomic PI apugAtomic PI apug
Atomic PI apug
 
Atomic Pi tips
Atomic Pi tipsAtomic Pi tips
Atomic Pi tips
 
Tanah 9ribu meter Babelan Bekasi Utara.pdf.pdf
Tanah 9ribu meter Babelan Bekasi Utara.pdf.pdfTanah 9ribu meter Babelan Bekasi Utara.pdf.pdf
Tanah 9ribu meter Babelan Bekasi Utara.pdf.pdf
 
SPIO ap26pin
SPIO ap26pinSPIO ap26pin
SPIO ap26pin
 
idiot kaya.doc
idiot kaya.docidiot kaya.doc
idiot kaya.doc
 
Hukum Universal Sukses Summary .doc
Hukum Universal Sukses  Summary .docHukum Universal Sukses  Summary .doc
Hukum Universal Sukses Summary .doc
 
Profile Dwika Consultant USA v3.pptx
Profile Dwika Consultant USA v3.pptxProfile Dwika Consultant USA v3.pptx
Profile Dwika Consultant USA v3.pptx
 
Pitch Dwika Founder I-Hunter v2.pptx
Pitch Dwika Founder I-Hunter v2.pptxPitch Dwika Founder I-Hunter v2.pptx
Pitch Dwika Founder I-Hunter v2.pptx
 
How_Come_That_idiots_Rich_and_Im_Not.pdf
How_Come_That_idiots_Rich_and_Im_Not.pdfHow_Come_That_idiots_Rich_and_Im_Not.pdf
How_Come_That_idiots_Rich_and_Im_Not.pdf
 
ev car dwika feb 2022.pptx
ev car dwika feb 2022.pptxev car dwika feb 2022.pptx
ev car dwika feb 2022.pptx
 
1 Scrum Project Examples - Dwika V10.pptx
1 Scrum Project Examples - Dwika V10.pptx1 Scrum Project Examples - Dwika V10.pptx
1 Scrum Project Examples - Dwika V10.pptx
 
1 Build Open Source Car Scrum - Dwika V1.pptx
1 Build Open Source Car Scrum  - Dwika V1.pptx1 Build Open Source Car Scrum  - Dwika V1.pptx
1 Build Open Source Car Scrum - Dwika V1.pptx
 
Bisnis Properti FTUI 26 Sep.pptx
Bisnis Properti FTUI 26 Sep.pptxBisnis Properti FTUI 26 Sep.pptx
Bisnis Properti FTUI 26 Sep.pptx
 
Mobil Otonom untuk Mahasiswa - Dwika v3.pptx
Mobil Otonom untuk Mahasiswa - Dwika v3.pptxMobil Otonom untuk Mahasiswa - Dwika v3.pptx
Mobil Otonom untuk Mahasiswa - Dwika v3.pptx
 
Smart Car ApolloAuto
Smart Car ApolloAutoSmart Car ApolloAuto
Smart Car ApolloAuto
 
CV Profile Dwika Consultant USA
CV Profile Dwika Consultant USACV Profile Dwika Consultant USA
CV Profile Dwika Consultant USA
 
CBTC Communications-based train control
CBTC  Communications-based train controlCBTC  Communications-based train control
CBTC Communications-based train control
 
Defense and Military Strategy with Agile - Scrum
Defense and Military Strategy with Agile - ScrumDefense and Military Strategy with Agile - Scrum
Defense and Military Strategy with Agile - Scrum
 

Recently uploaded

Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesChandrakantDivate1
 
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...vershagrag
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayEpec Engineered Technologies
 
fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptAfnanAhmad53
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...drmkjayanthikannan
 
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...gragchanchal546
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxSCMS School of Architecture
 
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesLinux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesRashidFaridChishti
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Call Girls Mumbai
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Ramkumar k
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxkalpana413121
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...ronahami
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiessarkmank1
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptDineshKumar4165
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.Kamal Acharya
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 

Recently uploaded (20)

Computer Graphics Introduction To Curves
Computer Graphics Introduction To CurvesComputer Graphics Introduction To Curves
Computer Graphics Introduction To Curves
 
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
💚Trustworthy Call Girls Pune Call Girls Service Just Call 🍑👄6378878445 🍑👄 Top...
 
Standard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power PlayStandard vs Custom Battery Packs - Decoding the Power Play
Standard vs Custom Battery Packs - Decoding the Power Play
 
fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .ppt
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
Ghuma $ Russian Call Girls Ahmedabad ₹7.5k Pick Up & Drop With Cash Payment 8...
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesLinux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 
Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)Theory of Time 2024 (Universal Theory for Everything)
Theory of Time 2024 (Universal Theory for Everything)
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptx
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
 
PE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and propertiesPE 459 LECTURE 2- natural gas basic concepts and properties
PE 459 LECTURE 2- natural gas basic concepts and properties
 
Signal Processing and Linear System Analysis
Signal Processing and Linear System AnalysisSignal Processing and Linear System Analysis
Signal Processing and Linear System Analysis
 
Thermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.pptThermal Engineering -unit - III & IV.ppt
Thermal Engineering -unit - III & IV.ppt
 
Integrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - NeometrixIntegrated Test Rig For HTFE-25 - Neometrix
Integrated Test Rig For HTFE-25 - Neometrix
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 

Atomic pi Mini PC

  • 1. DLI Atomic Pi user guide 20190206T074743Z
  • 2. CONTENTS 1 Contents 1 Overview 2 2 GPIO pin reference 3 3 BNO055 sensor reference 6 4 Custom bus configuration reference 7 5 Technical support 8 6 Open source code 9 DLI Atomic Pi user guide: 20190206T074743Z
  • 3. 2 CONTENTS 1 Overview Congratulations on selecting Atomic Pi, an performant embedded controller with peripherals. Atomic Pi has the following interfaces: • HDMI for video and sound output; • Additional XMOS Mayfield audio output; • 3 user-accessible UART ports; • USB 3.0 for connecting peripherals; • microSD for storage (in addition to on-board eMMC); • Ethernet, WiFi and Bluetooth connectivity options; • 6 user-configurable GPIOs, with built-in support for running I2C or SPI bus masters over them. The unit ships with a Bosch BNO055 absolute orientation sensor, connected via an internal I2C bus. The firmware is based on open-source code which is provided to give you the option to build totally custom firmware. Please contact technical support in case of any problems. DLI Atomic Pi user guide: 20190206T074743Z
  • 4. 2 GPIO pin reference 3 2 GPIO pin reference The Atomic Pi has 6 GPIO pins available to users, and additional lines connected to the BNO055 sensor. Here's a overview of them. 2.1 Addressing In order to use GPIO pins from Linux, it's important to understand how they are addressed in various situations. Each GPIO has a global number in the integer GPIO namespace used with the legacy GPIO interface (e.g. through sysfs). This is considered a legacy interface but there are currently no plans to remove it. However, in addition to that, recent Linux kernels expose GPIO chips, which are basically named sets of GPIOs of the same hardware origin with a single base number; GPIOs are numbered sequentially within a chip, but the global GPIO namespace itself needn't be contiguous. 2.2 Pin description Generally available pins: Schematic name GPIO chip id Chip pin number Global pin number Connected devices ISH_GPIO_0 gpiochip3 21 335 ISH_GPIO_1 gpiochip3 18 332 LED Green (active low) ISH_GPIO_2 gpiochip3 24 338 LED Yellow (active low) ISH_GPIO_3 gpiochip3 15 329 ISH_GPIO_4 gpiochip3 22 336 ISH_GPIO_7 gpiochip3 16 330 These signals are available on the Atomic Pi's 26-pin connector. If you have the Enchilada breakout board, the signals are available as on it as well. Connector pin numbers are as follows: Schematic name 26-pin connector number Enchilada connector number ISH_GPIO_0 24 9 ISH_GPIO_1 25 10 ISH_GPIO_2 26 11 ISH_GPIO_3 18 3 ISH_GPIO_4 19 4 ISH_GPIO_7 20 5 Other pins (not on the 26-pin connector or the Enchilada connector): Schematic name GPIO chip id Chip pin number Global pin number Connected devices I2C2_3P3_SDA gpiochip0 62 476 BNO055 I2C SDA I2C2_3P3_SCL gpiochip0 66 480 BNO055 I2C SCL AU_MIC_SEL gpiochip1 0 341 XMOS Audio mi- crophone loopback selector XMOS_RESET gpiochip1 8 349 XMOS Audio reset (ac- tive low) DLI Atomic Pi user guide: 20190206T074743Z
  • 5. 4 CONTENTS Schematic name GPIO chip id Chip pin number Global pin number Connected devices BN_INT gpiochip1 17 358 BNO055-generated in- terrupt (active low) BN_RESET gpiochip1 25 366 BNO055 reset (active low) The XMOS_RESET line is controlled by a system service, atomicpi-hold-xmos, to bring up the XMOS Audio device. The AU_MIC_SEL line must be configured to logical 0 to record audio from microphone, or to logical 1 for loopback (recording audio being played back). Using the interrupt and reset lines is not strictly required for BNO055 operation. Additional devices may be con- nected to its I2C bus but that would require soldering. Note that the system core contains other GPIO pins, some connected to internal circuits. Reading the datasheet is strongly recommended before attempting to configure them! 2.3 Using GPIOs from the shell GPIO pin constants can be pulled in by including /usr/lib/atomicpi.sh: . /usr/lib/atomicpi.sh The traditional sysfs way of manipulating GPIOs from the command line is documented at: https://www.kernel.org/doc/Documentation/gpio/sysfs.txt It is listed as deprecated but there are no plans to remove it. . /usr/lib/atomicpi.sh echo $ATOMICPI_ISH_GPIO_1 >/sys/class/gpio/export echo $ATOMICPI_ISH_GPIO_2 >/sys/class/gpio/export echo low >/sys/class/gpio/$ATOMICPI_ISH_GPIO_1/direction while true; do echo low > /sys/class/gpio/$ATOMICPI_ISH_GPIO_2/direction sleep 1 echo high > /sys/class/gpio/$ATOMICPI_ISH_GPIO_2/direction sleep 1 done echo $ATOMICPI_ISH_GPIO_2 >/sys/class/gpio/unexport echo $ATOMICPI_ISH_GPIO_1 >/sys/class/gpio/unexport Constants storing global GPIO indices are prefixed by ATOMICPI_. Additionally, several utilities allow GPIO control using the more modern interface (and chip id + pin index addressing): Constants storing "<chip id> <pin index>" are prefixed by ATOMICPICHIP_. Due to shell expansion rules, ${ATOMICPICHIP_ISH_GPIO_0} (without quotes) will expand to two arguments, the chip id and the pin index, which is what most of the following utilities expect. List all GPIO chips, print their labels and number of GPIO lines: gpiodetect Find a GPIO line by name (the output of this command can be used as input for gpioget/gpioset): DLI Atomic Pi user guide: 20190206T074743Z
  • 6. 2 GPIO pin reference 5 gpiofind <name> Print information about all lines of the specified GPIO chip(s) (or all chips if none are specified): gpioinfo <gpiochip1> ... Read line value(s) from a GPIO chip: gpioget [-l] <chip name/number> <offset 1> <offset 2> ... Options: -l, --active-low: set the line active state to low Set GPIO line values of a GPIO chip: gpioset [OPTIONS] <chip name/number> <offset1>=<value1> <offset2>=<value2> ... Options: -l, --active-low: set the line active state to low -m, --mode=[exit|wait|time|signal] (defaults to 'exit'): tell the program what to do after setting values -s, --sec=SEC: specify the number of seconds to wait (only valid for --mode= ←- ,→ time) -u, --usec=USEC: specify the number of microseconds to wait (only valid for -- ←- ,→ mode=time) -b, --background: after setting values: detach from the controlling terminal Modes: exit: set values and exit immediately wait: set values and wait for user to press ENTER time: set values and sleep for a specified amount of time signal: set values and wait for SIGINT or SIGTERM Wait for events on GPIO lines: gpiomon [OPTIONS] <chip name/number> <offset 1> <offset 2> ... Options: -l, --active-low: set the line active state to low -n, --num-events=NUM: exit after processing NUM events -s, --silent: don't print event info -r, --rising-edge: only process rising edge events -f, --falling-edge: only process falling edge events -F, --format=FMT specify custom output format Format specifiers: %o: GPIO line offset %e: event type (0 - falling edge, 1 rising edge) %s: seconds part of the event timestamp %n: nanoseconds part of the event timestamp See /usr/lib/atomicpi.sh for details. 2.4 Using GPIOs from Node.JS var atomicpi = require("atomicpi"); var GPIO = require("sysfs-gpio"); DLI Atomic Pi user guide: 20190206T074743Z
  • 7. 6 CONTENTS Control by signal ID GPIO.export(atomicpi.signals.ISH_GPIO_0.global_idx, (pin) => { pin.out(); pin.high(); }); Control with signal ID lookup on Enchilada connector first GPIO.export(atomicpi.signals[atomicpi.connectors.←- enchilada.leds.green].global_idx, (pin) => { pin.out(); pin.low(); }); process.stdin.resume(); atomicpi.signals contains a mapping from the signal name (e.g. "ISH_GPIO_0") to {chip,chip_←- idx,global_idx}. You will need global_idx most of the time as sysfs-gpio uses the legacy sysfs interface. See /usr/lib/node/atomicpi.js and sysfs-gpio documentation for details. 2.5 Using GPIOs from Python import atomicpi import gpio as GPIO # Control by signal ID GPIO_0=atomicpi.signals.ISH_GPIO_0.global_idx GPIO.setup(GPIO_0, GPIO.OUT) GPIO.output(GPIO_0, True) # Control with signal ID lookup on Enchilada connector first GREEN_LED=atomicpi.signals[atomicpi.connectors.enchilada.leds.green].global_idx GPIO.setup(GREEN_LED, GPIO.OUT) GPIO.output(GREEN_LED, False) GPIO.cleanup(GPIO_0) GPIO.cleanup(GREEN_LED) atomicpi.signals contains a mapping from the signal name (e.g. "ISH_GPIO_0") to {chip,chip_←- idx,global_idx}. You will need global_idx most of the time as gpio uses the legacy sysfs interface. The gpio library largely mimics the Raspberry Pi RPIO library. See /usr/lib/python/dist-packages/atomicpi.py and gpio documentation for details. 3 BNO055 sensor reference The Atomic Pi has a BNO055 absolute orientation sensor attached to a custom GPIO I2C bus (configured as I2C bus 50 by default). It combines an accelerometer, a gyroscope and a magnetometer. You may need to calibrate the sensor to obtain desired accuracy. Consult the Bosch Sensortec reference for details. 3.1 Using BNO055 from Node.JS var BNO055 = require('bno055'); var async = require('async'); BNO055 is configured on I2C bus 50 in /etc/i2c-gpio-custom.d/bno055-bus by default var imu = new BN←- O055({device:"/dev/i2c-50"}); imu.beginNDOF(function() { console.info('imu running'); setInterval(function() { async.series({ calibrationStatus: imu.getCalibrationStatus.bind(imu), quaternion: imu.getQuaternion.bind(imu), euler: imu.getEuler.bind(imu), linearAcceleration: imu.getLinearAcceleration.bind(imu) }, function(err, results) { console.info( 'imu: ', JSON.stringify(results) ); }); }, 1000); }); See bno055 package documentation for details. 3.2 Using BNO055 from Python DLI Atomic Pi user guide: 20190206T074743Z
  • 8. 4 Custom bus configuration reference 7 from Adafruit_BNO055.BNO055 import BNO055 from time import sleep # BNO055 is configured on I2C bus 50 in /etc/i2c-gpio-custom.d/bno055-bus by ←- ,→ default sensor = BNO055(busnum=50) assert(sensor.begin()) while True: print('Euler=%0.2f:%0.2f:%0.2f Quaternion=%0.2f:%0.2f:%0.2f:%0.2f Temp=%0.2fC ←- ,→ Mag=%0.2f:%0.2f:%0.2f Gyr=%0.2f:%0.2f:%0.2f Accel=%0.2f:%0.2f:%0.2f ←- ,→ LAccel=%0.2f:%0.2f:%0.2f Gravity=%0.2f:%0.2f:%0.2f'%( sensor.read_euler() + sensor.read_quaternion() + (sensor.read_temp(),) + sensor.read_magnetometer() + sensor.read_gyroscope() + sensor.read_accelerometer() + sensor.read_linear_acceleration() + sensor.read_gravity() )) sleep(1) See Adafruit_BNO055 package documentation for details. 4 Custom bus configuration reference The Atomic Pi can act as a I2C or SPI bus master on a custom set of GPIOs. This is implemented using kernel modules i2c-gpio-custom and spi-gpio-custom (sources in /usr/src/, editable and buildable using D←- KMS). The kernel modules are by default configured using systemd services i2c-gpio-custom.service and spi-gpio-custom.service. Modules are loaded on service start and unloaded on service stop. Services collect bus configuration items from /etc/i2c-gpio-custom.d and /etc/spi-gpio-custom.d and set up command lines for the modules, which have form 'bus0=<id0>,<args...> bus1=<id1>,<args...>...'. Every bus needs to have a unique numeric ID (DLI default ids start with 50; it's recommended to start custom bus numbering with 100). GPIO pins referenced in the arguments must be specified using their global GPIO indices. See the README files in those directories for more information. DLI Atomic Pi user guide: 20190206T074743Z
  • 9. 8 CONTENTS 5 Technical support To save time, please have a look at the product FAQ page solutions. You may FAX questions to (408) 541-8459 or email: support@digital-loggers.com. For phone support, call (408) 330-5599 with the following so we can better serve you: • the firmware version level installed; • a description of the Ethernet devices connected to your unit, for example, a 10/100 PC and crossover cable, if it's relevant; • a description of the WiFi or Bluetooth devices connected to your unit, i.e. their manufacturers and model numbers, if it's relevant. DLI Atomic Pi user guide: 20190206T074743Z
  • 10. 6 Open source code 9 6 Open source code Open-source components used in the Atomic Pi are mostly unmodified, as they are in the Ubuntu Bionic distribution (see apt list --installed). Most additional components developed specifically for the Atomic Pi are provided in source form in the firmware already. For example, avrdude support for the ATMega328PB is provided in source form as part of /etc/avrdude.conf (it is not original). Sources for the binary I2C and SPI custom-GPIO bus master kernel modules are provided in /usr/src in (configured to be used by DKMS). Updated source versions will be available from Git repositories located at: https://github.com/digitalloggers/i2c-gpio-custom.git https://github.com/digitalloggers/spi-gpio-custom.git Updated versions of the BNO055 sensor library for Node.JS will be available at: https://github.com/digitalloggers/node-BNO055.git DLI cannot provide warranty or technical support for modified units; this includes units with custom firmware. DLI Atomic Pi user guide: 20190206T074743Z