Recipes - Tools - Community and Events - References - Inspiration - To do
Unlisted: PaPiRus (see Eink), PIcade, Petoi Bittle, ANAVI Fume Extractor, ANAVI Macro Pad 8, Lite3DP 3D Printer, Tomu
Precursor
PineTime
Gateway Things (WebThingsIO)
Formelly Mozilla Gateway Things
VR + Home Automation + Creativity for Mozilla Hubs Creator Meetup
PoCs
- IoT on HTC Vive for in-VR experiment environment modification
- wifi = micropythoN
- webrelp = python
Recipes
- NFC
- e.g. applying CognitiveEnvironments on phone and appliances (laptop, domotic and related appliances on current location)
- "physical" bitcoin wallet using RFID
- random music
- needs
- continuous on the go music stream aiming toward a personal auditive aesthetic
- solutions
- multiple tracks
- random generation
- decide what a sample is
- output sound (DSP?)
- limits
- required time to reach quality
- suggestions
- share result for live social interactions (Thomas)
- health
- needs
- know when to take a pill (and when not to)
- solutions
- input pill X, Y, ... taken at timestamp Tx, Ty, ...
- curves of upper limit and down limit
- output visual and/or vibration as warning signal
- limits
- suggestions
- quantitative life
- needs
- be able to record quickly and in a very private way (nobody else has to know an event has been recorded) a non-predefined series of event
- solutions
- register button pressed with timestamp
- output date
- limits
- memorization of the association of event/button required
- suggestions
- take a picture/scan of your own hand to really have the ideal shape
- replace button with EEG/fMRI/...
- ideas of applications
- smiles, X calories, ideas, feelings, steps, learn something, healthy behavior, ...
-
Raspberry Pi
- for proper headless usage
raspi-config
allows to configure the WiFi network
- this means setup in one place before going to another
- note that with typical DHCP the MAC address will allow the same IP to be re-allocated thus possible to connect directly without nmap
- the RPi Zero can't use the 64bits image, make sure to stick to 32 bits
- find a new device to connect back
alias newdeviceonnetwork="nmap -sP 192.168.0.* | grep report > /tmp/last; read -p 'Connect new device then press ENTER'; nmap -sP 192.168.0.* | grep report > /tmp/now; diff /tmp/last /tmp/now"
- in order to bring a new Pi on the local network,enabling ssh at boot and setting the WiFi
- the new version of rpi-imager official does support such options
- mount the
/boot
partition then cd /media/fabien/boot && ~/Prototypes/connectpi.sh
- note that you can also mount the home partition and add files already
- WPA supplicant is sorted by priority
- possible to put mobile hotspot first then home WiFi next
- scripts for WiFi to ethernet and vice versa
- headless setup of ssh and WiFi via /boot
- turn off system LED
echo 0 > /sys/class/leds/led1/brightness
- 3 LED lights
- LED web server accessible with / to verify it's on then /start and /stop
- onoff: GPIO access and interrupt detection with Node.js on Linux boards https://github.com/fivdi/onoff
- tutorial based on Freva (Belgium company) ~100e kit https://www.freva.com/tutorials/
- controlling GPIO with NodeJS https://www.w3schools.com/nodejs/nodejs_raspberrypi.asp
- verson of node is outdated but still well explained
WebXR AP on RPi0
If you rely on the image made for this project (620Mb) an open metaverse
WiFi should span. Connect to that new WiFi then to https://192.168.4.1/offline.html and see each other. If you want to add your own customizations connect using ssh fabien@192.168.4.1
and password metaverse
.
Process to setup environment
rpi-imager
to burn the 32bits image
- setup WiFi with ssh access via the expert option
- ssh in to install NodeJS and all dependencies
- setup AP https://www.raspberrypi.com/documentation/computers/configuration.html#setting-up-a-routed-wireless-access-point
- in
/etc/hostapd/hostapd.conf
use wpa=0
and remove what's after to make an open AP
- note that if you have a device with 2 interfaces, e.g desktop with Ethernet and WiFi, you can connect to the unbridged AP but still have Internet
- the AP won't though so commands like
apt install
or npm install
will fail
- for single person XR follow https://aframe.io/docs/1.4.0/introduction/faq.html#can-i-use-a-frame-offline-or-self-hosted
- for social XR follow https://github.com/networked-aframe/networked-aframe#offline-usage
- note https://github.com/networked-aframe/networked-aframe/issues/408 for easier setup
Process to generate image, useful to restore the state and make more copies.
- identify source microSD, replacing XXX with the right device from
lsblk
sudo dd if=/dev/sdXXX of=pi0.img bs=32M && sudo pishrink.sh pi0.img
- from https://github.com/Drewsif/PiShrink
- This is a fairly long process, e.g 8min on a 32Gb microSD.
- Optionally the resulting img can be compressed via
xz
(which supports multithreading, e.g xz -T9 pi0.img
) which here went from ~3Gb to 0.6Gb
- fairly long process, e.g 8min for a 3Gb file using 9 cores.
- copy to another microSD
dd if=pi0.img of=/dev/sdXXX bs=32M conv=fsync
- can be done via
rpi-imager
also, a GUI and thus more convenient for people unfamiliar with the CLI. It works also with the compressed image.
- finally boot on it
All this has been simplified as a regen
bash script that uploads the resulting image back here.
To inspect the resulting image uncompress it then use partx -v -a pi0.img
to make loops, e.g /dev/loop16, mount /dev/loop16p2 virtualimg
then after unmount virtualimg
ing them you can remove with partx -d /dev/loop16
again then losetup -d /dev/loop16
. See https://superuser.com/a/1559197 for details.
Small improvements
$(which node)
or /usr/local/bin/node
is required
setcap 'cap_net_bind_service=+ep' /usr/local/bin/node
to bind on port 443
export PORT=443
before starting ./server/easyrtc-server.js
sudo vi /etc/motd
allows to put a bit of documentation as a welcome message
- to make a smaller image remove
~/.npm
- unused locales via e.g
localepurge
- if you copy over on another larger microSD use
resize2fs
after using a partition manager to expand the partition
Arduino
Robotics
- Ethics#Robotics
- Willow Garage Open source libraries and tools for building robotics applications.
- #OpenRobotics hashtag on Twitter
- EU FP7 RoboEarth a World Wide Web for robots: a giant network and database repository where robots can share information and learn from each other about their behavior and their environment.
- note that this most likely require a proper self-model so that downloaded strategies can be adapted to a robot with different capabilities and physical apparatus (e.g. less precise hand grip)
- consider WithoutNotesJune11#CuriosityDrivenDevelopment as a way to explore and efficiently leverage packages from RoboEarth or ROS
- http://wiki.openhardware.org/Category:Robot
- Society of Robots aka SoR
- cloud robotics
- Robotic Open Platform (ROP) aims to make hardware designs of robots available under an Open Hardware license to the entire robotic community. It provides CAD drawings, electric schemes and the required documentation to build their own robot.
- RobotsAppStore.com targeting the most popular platform and taking a cut
- not public as of late December 2011
- Cloud Robotics, Google I/O May 2011
- ROBOT launchpad a robotics startup community and event
Add also conferences by MIT professor and Roomba CTO Rodney Brooks
Brain-Computer Interface (BCI)
Field-Programmable Gate Array (FPGA)
- Precursor XC7S50 https://www.crowdsupply.com/sutajio-kosagi/precursor
- FPGAs: cryptography and bioinformatics, CMSC 411 at The University of Maryland
- "Since FPGAs are better suited to computationally intensive tasks with little I/O, computer science fields based in mathematical algorithms (like cryptography) or dynamic programming algorithms (like bioinformatics) are instrinsically suited to FPGA use."
- Wikipedia:FPGA
- consider cellular automata as a model
- Wikipedia:VHDL
- interesting for me to learn since it goes from high level abstraction (functions) to low-level primitives (logic gates)
- Xilinx Programmable Logic Design Quick Start Hand Book
- History of FPGA by Ivo Bolsens, Xilinx 2007
- projects
- Milkymist open source solution for the live synthesis of interactive visual effects for VJs (video performance artists).
- NetFPGA.org
- FPGA Basics by Vineet, 2008
- QEMU open source machine emulator and virtualizer
- Seedea:Utopiahanalysis/HiTechCreativity-draft#Electronics
- An Actor/dataflow Programming Model for Platform FPGAs at CMU by Dave Parlour, Xilinx 2007
- FPGAs Enter The Third Dimension by William Wong, Electronic Design March 2010
- ABL Equipment AVNET, with an FPGA containing 12 mega gates and 60 floating point multipliers.
- Project-CORTEX:Neural network synthesis on FPGA by Bernard Girau, INRIA 2006
- fpga4fun.com where FPGAs are fun
- SHA-1,SHA-256 and MD5 Hashing, Fast (Helion) Xilinx
- Reconfigurable datapath array (rDPA) is a coarse-grained morphware unit for Reconfigurable computing.
- libhdlfltp FPGA coprocessor floating point math lib
- VHDL library of floating point operators, all of which are parametrized, synthesizable to FPGAs and cover a number of the core operators in math.h
- competitive advantage
- shortening prototyping cycle for new (eventually open) hardware
- parallel processing
- real-time signal processing
- motivation Needs#WikiOnAChip
- are there self-optimizing FPGA?
- predicting it's next "free" range
- no work based on previous history
- table of version and associated run time
- mutate the code
- run
- update table
- if time lower and result correct
- swap existing code with new code
- check if the time gained is worth the time spent and thus energy spent
- fpgaCAD Free CAD tool flows for FPGA research and education
- FPGA for HFT, moved from FinancialTools
- Xilinx acquisition of AutoESL High-Level Synthesis Tool, shared to Nicolas
- MyOpenFPGA a list of useful web resources and links.
- OpenCores community for development of hardware IP cores as open source.
Tools
Community and Events
References
Inspiration
To do
ContainsPersonalYoutubeContentToMigrate