Big thanks to WeWork for hosting.
We are sponsored today by the pseudo-anonymous Jay Kay! Thanks Jay Kay!
Want to be an official sponsor? Check out
Notes copied directly from the hackpad!
The first calculator I made was big and bulky so I’m working on a much smaller one called Tiny Calculator that is business card sized.
Less powerful but much, much smaller!
To do that, started with a circuit board, asking: what can I get rid of?
2 MCU chips, 1 big RAM chip, 2 buffers, 1 keypad, 4 batteries.
Without the RAM, we can get rid of the buffer chips, and if we can live with 30 keys, we don’t need the keypad chip. Final: 1 MCU and 1 battery.
Simplifying the software means
Writing C -> Assembly
Assembly is hard to read, tedious to read and write
Calculator takes two bytes to store the number
Huge amount of wasted space
If you took the time to type in 100 digits of Pi, you probably had a good reason.
Using a much more compact format – storing the numbers in reverse order
Using Cordic algorithm to split the cosign and it
Previously, storing two decimal places per byte
Main software differences.
1 MCU Chip & 1 watch battery, could use it for 12 years
128x64 pixels, 1.5 inch
Uses an MSP 430 Launchpad for the circuitboard
Predicting Dissolved Oxygen Levels
Time-series of dissolved oxygen in water
It’s an important indicator of stream health! It could be because of nitrogen or
Being on the board of stream protectors < not sure I’m saying that right
Low oxygen in the water leads to lots of fish dying off! That’s bad – and it’s a local problem too, afflicting the Chesapeake Bay. Hypoxia
Getting data from a stream in Pennsylvania, that feeds into the Susquehanna, and it’s outside of Carlisle.
The Letort Regional Authority has been collecting data at 13 sites once a month since 1992.
Dissolved oxygen is seasonal, it’s worse in the summer, best in the winter
To build the time-series model, aggregated the data with average values of all testing sites.
233 data points from 1996 to 2018, and built a SARIMA (seasonal) time-series model
Blue is the trained data, yellow is the test, green is the predicted.
Forecasting the dissolved oxygen levels tell you: are there going to be levels that will cause fishkills? If a development/discharge changes dissolved oxygen levels, the deviation from prediction would indicate the impact of that development/discharge.
Pollution and volume are the two main components – impervious surfaces are bad (like streets, houses, even grass) because they increase the volume of water that goes into the stream and limits the amount of dissolved oxygen that can enter the water.
Pollutants (like nitrogen in fertilizers) and dog poop will increase algal growth, which decreases the dissolved oxygen. Forecasted values will give cities and individuals the ability to actually use real metrics when making a case for stronger stormwater protections.
LSTM - a recurrent neural network to predict. Rain gardens and rain barrels are really important, and so is picking up your dog poop!
Don Undeen - @donundeen
Digital signage made from an old LCD monitor & Raspberry Pi
Georgetown MakerHub [email protected]
Salvaged monitors, saving them from the trash! (Don’t throw out electronics!) Office buildings, law firms, people just throwing them out!
Strip the monitor down to its main parts – remove the frame and screws
Makeabox.io - laser cut a box custom fit to your exact specifications
Created a digital signage on the cheap!
Set the Raspberry pi to boot to google chrome, fullscreen, set to a specific slide deck.
Biggest work was in creating the startup script that boots directly to the Google Chrome in kiosk mode (this is harder than it needs to be!)
Just change which local HTML page you want to load
Create any signage you want – it’s just fullscreen
All told, about $60 for the Raspberry pi, memory card,
Typically, a comparable digital signage
Nathan Epstein - @aeium
Generative art project
Colorfall is a generative art project, aimed at producing flowing colors from elementary operations.
Project based on rule 30 automaton: https://aeium.github.io/blog/Wolframs-Atoms/
Basic coloration technique uses accumulating values for cells instead of 0 and 1, as described in this sequence: https://oeis.org/A323179
Wolfram Cellular automata
Each cell checks its local neighborhood, applies the rule (how many neighbors do I have?) and checks the box on/off
C considers zero to be false, and any nonzero number to be true
So you could see a history of what’s going on with the automation by looking at the color values
Once you’re accumulating values, you can apply new rules based on the values. If you use a certain combination (and check to see whether it’s congruent to 3 or 14), you see a glitchy kinda streaks of color.
Mistakenly the mod 255 instead of the mod 256.
Repeating division / mod 256 to get three digits
If you take mod 256, you’re just left with the low bits in the color data. But taking mod 255 you get more interesting results!
It needs the BIGINT Chrome tool, so right now it only works in Chrome.
You can also customize the settings to get the exact automata you want to do.
Paints on an HTML5 Canvas, paints the bottom-most line and shifts everything before it up
CNN to predict DC road quality from google street view images
The roads are horrible – lots of potholes. What is the impact of road quality on injury-producing traffic accidents? Can we build a program that uses computer vision to categorize road quality?
Took 117,000 accidents where police showed up, got Lat/Lon, types of injuries,
Paired it with DC DDOT data to get road quality
Paired that with Google to get computer vision
Road quality is using a qualitative “Pavement Condition Index” 0-100. H0: PCI has no effect on injury rate. H1: PCI has an effect on injury rate.
Road quality and injury accidents: reject Null Hypothesis and accept H1. Finding was kind of counter-intuitive. The better the road quality, the more likely you are to get injured (you’re going faster?)
Trying to automate road quality collection – can see the difference in road quality; can a convolutional neural network tell the difference?
A CNN got 50% – not better than a coin flip.
Can you increase the contrast of the images with CLAHE to improve the results? But running it again, it still wasn’t any better.
Issues with the data - ghosting cars, side of the bus, people. With 10k images, there were problems with the data.
If you purposely build something with the intent of capturing this data, you might be able to do it – but it’s not currently likely with Google maps. Machine can more objectively classify PCI than human.
How accurate are the human qualitative researchers doing the surveying of the road?
Considered using satellite data, but Google wasn’t very helpful – they throw in a lot of noise with satellite data; if there was high-resolution data from a better source it might work better.
There’s also a roughness index of the roads.
Speed data would make for a better analysis
Shannon Turner - @svthmc
Metro Map Maker version 4 - what’s new!
Inspired by Article about dream metro maps.
Version 1: very MSPaint pixelated. Each ‘pixel’ was an HTML element. Up to 6400 pixels, means 6400 HTML elements. . Version 2: Faster and sleeker. WYSIWYG. Increased the size you could chose. However Larger sizes were slower due to many HTML elements.
Version 4: Goodbye HTML elements, hello 100% canvas. Resizing is 11-15x faster. Recentering is 100x faster. Zooming in is 230x faster, without changing HTML elements. No limit in zoom level of canvas. Added new features for map making