Here is a portfolio of my projects. This is but a fraction of the information and details behind each one of these creations so follow the links or contact me for any questions.
At each Java One the Java team have small tech demonstrations of Java running on embedded systems to impress Java developers. These tech demonstrations became popular and our budget increased to $20k USD and we were given approval for Java One 2017 to build something larger to excite audiences in the new Developer Experience Hub (HUB). We came up with the idea of building a Bullet Time camera rig similar to what was used in the film The Matrix. Rather than dozens of expensive DSLR cameras we built it hacker style with 60 Raspberry Pi and 8 mpix Pi Cameras.
The conference attendee stepped up to experience Bullet Time, enter their Twitter handle into a tablet running a JET web page on OCI and pressed the START button. a 10 second countdown started to get positioned. Each of the 60 Raspberry Pi are running a Python script listening for a multi-cast network message as the signal to take the photo. Each photo is uploaded to a web service via REST API to be processed using FFMPEG producing an MP4 movie that is uploaded to Twitter and the attendee is tagged. Because the orientation of each camera is critical a calibration process is manually performed in software to account for exact positioning. The index of each camera is located by using infrared receivers and transmitters.
Because of the success of Bullet Time, for Open World 2019 we received more funding so I created some new experiences, and one of those experiences was an escape room. Super Hero Escape and Duke's Lab were created. I built two 8ft square rooms that joined together to make one big rectangle that we branded with vinyl wrap, created two Arduino controlled countdown clocks with a linear actuator connected to a curtain and two big buttons for start and finish. Super Hero Escape had 4 puzzles and the goal was to finish in 5 minutes. This goal was to entertain and lightly use Oracle technologies. The challenge is to lift Thor's Hammer Mjölnir which is held to the floor with an electro magnet. The puzzle was to complete an SQL statement choosing a power source, Tony Stark's Arc Reactor and to jump start the target, Mjölnir using jumper cables.
The second escape room, Duke's Lab has the same automatic closing curtain and buttons to start and stop the escape room controlled by an Arduino. The puzzles are around hacking, solving problems by programming and a little bit of spy vs spy. The attendee is given some binary and a small computer that is locked, a fridge that has cutoff fingers and a crate with locks on it. Within the crate are two "bombs" that must be diffused to solve the escape room.
The Oracle IoT division introduced a supply chain offering backed by blockchain. We brainstormed how to make an experience around this and Blockchain Beer was born. We worked with a micro brewery to track all ingredients and built a website and IoT Raspberry Pi to track temperature and ingredients sending all the data to the blockchain and to the cloud. We then created a public facing read only website to demonstrate the source of the ingredients that were used to create beer handed out at conferences. A sticker was created with a QR code for the website and YouTube videos were created. I sketched a beer bottle and worked with an artist to draw it up in Illustrator to become a sticker.
This was a big endeavor involving a lot of people and a lot of engineering teams. I received this project halfway complete. It had been handed used at a conference but very little actually worked. I had to reverse engineering the code, rewrite the web services and fix the bugs in the PCB. We received $50k USD funding, found a supplier that could manufacture a custom PCB and worked with them to engineer and design an e-ink conference badge powered by an ESP8266 that we could get landed for $25 to hand out at conferences. This was called Code Card. It is a wireless IoT button. Well, two buttons. We built a digital twin cloud service and backed this by Oracle database using APEX and later JET for visualizations. Attendees singed up for the Code Card, an account is created and the two buttons on the card are programmed with serverless functions from a mobile app. We provided additional blogs and YouTube videos with things developers could do with the Code Card at home using Oracle Cloud. One attendee turned it into a garage door opener!
Pepper is a robot developed by SoftBank that has a display, voice recognition and text to speech. We worked with SoftBank to deploy a custom application to interface with a web service running Oracle Chatbot populated with information related to each conference to act as an automated information booth.
Every year I push the boundaries of the projects that I did the prior year and build something bigger than before. For Open World 2019 during our brainstorming, Raspberry Pi clusters was brought up due to a very successful tabletop demo with 12 Pi in Switzerland. I did some research, followed my guid to building a demo and found the largest Raspberry Pi cluster had 700 Raspberry Pi. After doing a feasibility study where I crunched a lot of numbers, I determined I could build one bigger. I put together a proposal, got a $250k USD budget approved and started building The Raspberry Pi Super Computer, World's Largest Raspberry Pi Cluster (that we know of).
There were seven major parts to the project:
Physical - The Raspberry Pi Super Computer consisted of 1050 Raspberry Pi 3b+ in four server racks, configured in a big box reminiscent of a British Police box or Tardis in the Dr Who TV series. 21 Raspberry Pis fit to 2U using 3D printed brackets and aluminum extrusion. The goal was to have everything be off the shelf components that the average person could purchase, we just bought a lot more of them.
Project Management and Supply Chain - Not only did we need 1050 Raspberry Pi, each of those needed a USB cable for power, networking, switches and everything to support the endeavor. Just the time involved is a monumental feat. If installing 1000 cables, the packages must be opened and unwrapped taking a minute or two each. Multiply this times the time to design, 3D print, order, verify...it is a time consuming project. We quickly realized SD cards was not going to work.
Networking - The biggest network challenge was with more than 256 hosts we needed a subnet larger than a class C. We wanted a single subnet to UDP multicast to all the Pis. It was a challenge but we got everything to run on a single class B subnet with mask 255.255.0.0.
Network Booting - The Pi 3 supports network booting or PXE boot, but there are some bugs with how it interacts with the DHCP server. It doesn't properly checkout IP addresses resulting in multiple Pi getting the same IP address. To solve this we hard coded all MAC addresses to an IP address in the dhcp.conf but we also found that in batches of 1000 Raspberry Pi there are duplicate MAC addresses.
Power - The power requirements are high. At conferences I would ask for 180a at 120v of power. Basically the same circuit for a single family home. Pi 3 require 2.5a at 5v and with all the other devices this isn't enough so we disabled as many things to get down to 1.2a as possible.
Software - The most common question is what is running on the world's largest cluster. At Open World 2019 in San Francisco we showed off what Java could do. JavaFX was displayed on a 12k video wall, an app that could send Java functions to the cluster to be executed on the cluster in parallel. At Cloud World 2022 in Las Vegas we showcased GraalVM running Python under GraalPython on the entire cluster and in the cloud. I wrote a DST for Twitter so code posted to Twitter would run on the cluster and the results published to an APEX web page. All telemetry data was sent to a Oracle database REST endpoint where we the data for a AR app on an iPad to show the status of each Pi, VR headset to put a digital twin of the Pi cluster wherever you are in the world, and a web site to display the status as well.
Operating System - We tried using Raspbian and Ubuntu and we got them to work but it didn't work well. Also Oracle has it's own operating system, Oracle Linux (OL), so we build custom versions of OL to run on each Pi and the server, optimizing and tuning everything used so it worked smoothly. Many of the changes were rolled back into the the main branch for OL.
A Temporal History of The World’s Largest Raspberry Pi Cluster
The Raspberry Pi Super Computer at Java One 2022
The World's Largest Raspberry Pi Cluster was extremely popular but difficult to ship, I made two smaller 84 Pi clusters called The Raspberry Pi Mini Super Computer. 1050 Raspberry Pi was a little difficult to ship around the planet, we tried, but the power requires are that of a house so we needed something that could run on one 15amp circuit and fit in a 30 inch door. At 150lbs, the maximum weight that FedEx will ship, I build two 84 Pi Pi clusters known as The Raspberry Pi Mini Super Computer. It is a portable server rack Pelican case with all the same 3D printed caddies to hold each Pi and the same off the shelf 60-port USB power supply.
The idea of this experience was to build a table top factory to be used to demonstrate the complete Oracle Supply Chain and IOT Applications suite of products. The attendee choose a product from an iPad and that product, a drink coaster, was made in front of them by the robot to take home as a customized piece of swag.
For Open World 2019 we wanted to have a similar experience of a customized give-a-way to the 2018 Personalized Manufacturing but to solve some of the logistic problems and simplify the setup and add AR with digital twin. The attendee could choose from between four types of wood to engrave a customized luggage tag using a laser and watch the process go through the supply chain with AR.
After the success of the Code Card sending 50,000 of them around the world at all the major Oracle conferences and hands on lab events, I proposed a smaller version to solve some of the problems we had with Code Card. This is when Code Watch was born. An open source e-ink smart watch. I worked with the same supplier to shrink it down, add bluetooth, created an iPhone app, triple axis accelerometer, vibrator and two additional buttons. The program was a triatholon hands on lab called Code Build Run. The attendees would get the watch, clone the GitHub repo, deploy a Cloud Service, install the app and flash the watch firmware making some customizations creating a fitness tracking app then go for a run across the Golden Gate Bridge, come back and analyze the data. This program was cancelled in 2020 since conferences were shutdown globally. The supplier crowd founded the watch and Watchy was born. I have since run labs at a few colleges demonstrating the engineering and computer science principals in a "Build a watch lab".
Watchy was used in the Apple TV series For All Mankind starting in Season 2 Episode 5 at about 22:44.
In 2020 I was asked to come up with some ideas for virtual conferences. One of the ideas involved F1 and became Oracle Red Bull Racing. The concept was simple, work with Red Bull, give them access to GPU cloud resources to run aero simulations for less money than what they were currently running and Oracle Database to store and process data then promote the success with cross promotions such as a racing simulator so drivers would see the data and increase their performance against actual F1 drivers, and create an internet connected LEGO race car that could be driven remotely.
Oracle Red Bull Racing Announcement
Using an off the shelf F1 video game, Sony playstation and race car simulator seat, petals and steering wheel, we hooked into the game and streamed all the data to Oracle Cloud and process it live for the driver to evaluate their performance and make decisions. This experience has been shipped and run around the world at conferences, paddock at nearly every F1 race since 2021 and has a permanent home at Experience labs in Sydney Australia.
Part of the proposal that became Oracle Red Bull Racing was to create an open source LEGO race car with RC car parts with 3D printed LEGO compatible bricks to accommodate the custom electronics, a Raspberry Pi, Arduino, custom PCB and Raspberry Pi camera where the driver should be, setup CICD and cloud services so the camera streams video to a web browser, build a track and run labs where developers can log in, get assigned a car, upload code to drive the car and control it over the internet using Oracle Cloud. We built plans and videos for how to build your own and planned to create an educational program around it so that schools could use it to teach STEAM. Teams of developers would be assigned a single car with the goal of getting the fastest time around a track using AI to assist the driving, but the lab could be modified to be fully autonomous or completely human controlled.
Take the LEGO race car above, modify it a little bit by 3D printing the LEGO bricks 10x their size, get a 5hp electric motor, and you have a LEGO Go Kart that a human can drive. The goal of this experience was to be a transition from virtual with the LEGO race care being controlled over the internet, to in person conferences with something that was impressive and inspiring. The pit crew would fix anything that broke on the go kart, and upload new changes to the code to allow the kart to perform better. This only got build in prototypes in my garage and is an on going passion project of mine.
Rockets are super cool so I built a few Estes model rockets with custom 3D printed nose cones to fit custom electronics containing a GPS, triple axis gyroscope accelerometer, Arduino and LoRa transmitter which sent the data to base station that then send the data to Oracle Cloud. From the data we could analyze and make predictions and measurements like apogee, acceleration, max height etc. Using OpenRocket I could verity the data and make better rockets with better recoverability, accuracy and safety. The nosecone is a custom 3D print in which I used nose cone equations creating a tangent ogive shaped nose cone. I have since scaled this up, built custom PCB boards and I'm in the process of getting my level 1 rocket certification.
Videos were produce and the model rocket was used at conferences as a conversation starter to talk about Oracle Cloud, Java, GraalVM, micro services, IoT and Oracle Database.