AI and Neural Networks¶
- Big Picture Machine Learning - getting started with Tensor Flow and Neural networks for classifying text: https://medium.freecodecamp.org/big-picture-machine-learning-classifying-text-with-neural-networks-and-tensorflow-d94036ac2274
- https://www.tensorflow.org/ - Google's machine learning engine
- TensorFlow for Java: https://www.tensorflow.org/install/install_java
- Theono is also for deep learning, but is math oriented more than task oriented. It's easier to get started with Tensor Flow.
- Neural Network Libraries
- Deep Learning for java
- Deep Neural Networks with GPU Support
Protocols and Standards¶
- WebOfThings - General standards for IoT device management; a bit overkill as usual
- Advanced Message Queuing Protocol (AMQP)
- Constrained Application Protocol (CoAP) - see microcoap for Arduino
- Extensible Messaging and Presence Protocol (XMPP)
- OASIS Message Queuing Telemetry Transport (MQTT)
- Very Simple Control Protocol (VSCP)
- OpenWSN - repository for open-source implementations of protocol stacks based on Internet of Things standards, using a variety of hardware and software platforms.
- Link local address
- Broadcast example code - broadcast is probably better than multicast for IoT discovery.
- WiFi AP + client describes how to setup a wifi dongle as both an AP and a client, routing between the two. We don't need to route from the sensors to the internet, however.
- Mozilla IoT - Mozilla's IoT software based on WoT; provides a sample implementation that might be useful to follow for IronMan, at least in the UI.
- Qeo Tinq
- PrivateEyePi - General home automation using Raspberry Pi
- RaZberry - Using Raspberry Pi with Z-Wave devices
- Home Assistant
- Deep Sleep Mode
- Door Alarm w/ deep sleep mode - This allows using both a software timeout and an alarm interrupt to wake from deep sleep. Design is similar to this PIR-based implementation (diagram only)
- See these discussions
- Securing Embedded Linux
Software updates¶Three parts to a software update: bootloader, kernel and rootfs/apps.
- This adds u-boot as 3rd stage bootloader to Pi. First stage (in hardware) doesn't change and 2nd stage (binary blobs) only change with new SD cards.
- u-boot is used to swap between kernels and partitions, test sanity of new images.
- kernel fallback capability is required
- rootfs/apps fallback capability is required
- Building Murphy-compatible embedded Linux systems
- Implementing update system for embedded Linux discussion on stackoverflow
- On the field software updates in Deploying Embedded Linux Systems
- Updating Firmware in Linux Based Devices in Linux Journal, discusses use of A/B partitions and pointing boot loader at current release.