Fun projects (aka "I'm bored…")

Table of Contents

1. Reference To publish this:

(x-hugh-org-publish-fun-projects)

2. Reference Best place to buy used books https://www.betterworldbooks.com/

3. Reference Motors vs steppers vs servos

4. Reference How to program an Arduino Nano with an Uno

5. Reference Using the TP4056 for solar battery charging

6. Reference Re-using vape pen batteries

7. Reference Wiring, cabling, and stuff

8. Reference Working with Molex connectors

9. Reference 3D Printing

10. Doing Fun project: OMG Sonic tomography for trees

10.1. Rough plan:

Start with two nails on opposite side of tree. Hammer one; detect wave in the other; figure out time of flight between the two.

10.1.1. Step 0: Count time between button pushes

  • Press button; start timer
  • Press button again; stop timer
  • Print time between those two events.
  • Interrupts for both.
  • Step 0b: two buttons.

10.1.2. Step 1: count time between hammer and received wave

  • Hammer to ground
  • Nail to +3v
  • esp32 3v <-> pull-up resistor <-> ground 🔨--- esp32 GPIO <-----------------–—+

    long piece of wood

    esp32 other GPIO <------------–—> nail

11. Doing Solar lamp as power supply for ESP32

12. NEXT Fun project: Arduino "radar" ultrasonic display

13. NEXT Fun project: Ikea Air Sensor – use the pico for this!

14. NEXT Winogradsky column

15. NEXT Food computer

16. NEXT Thunderboard Sense

17. NEXT Finish up Russet

18. NEXT Finish Geiger counter!

19. NEXT Magnetic field surveying

20. Homebrew seismometer

Went with Raspberry shake in the end

20.2. Seismometer with MPU6050

21. ESP32 trailcam

22. Lolin32 3D printed case

23. Infragram: monitoring plant health via near-infrared light

24. CCS811: VOC + eCO2 sensor

  • https://www.sparkfun.com/news/2369

    One measurement that causes a lot of confusion is "Equivalent CO2." The CCS811 will report equivalent CO2 in parts-per-million, but that number can be a little bit deceptive. It's important to recognize that the CCS811 cannot measure CO2 and that the "equivalent CO2" being reported by the CCS811 has nothing to do with actual CO2 present in the area. So why the heck is it called "CO2 Equivalent Units" and why would anyone need it? The answer comes down to the use of indoor air quality sensors — like the CCS811 — in HVAC control.

    Building ventilation, it turns out, is all about occupancy. The more people present in a space, the more CO2 they're exhaling, and the more ventilation is required. Now, it's certainly possible to design and operate an HVAC system around the design occupancy of a building or room, in other words the number of people expected to use a space. But this means that you may be wasting energy at times when the building isn't actually occupied. To solve this problem, many HVAC systems will monitor the concentration of CO2 in a given area in order to calculate the amount of air exchange needed in a scheme called "demand-controlled ventilation."

    Makers of indoor air quality sensors that don't detect CO2 (in an attempt to market their devices for demand-controlled ventilation systems) have correlated rising CO2 levels in certain environments to rising VOC levels. It's important to recognize that this is a correlation of the change in levels and not a correlation of the levels themselves: High VOC concentrations are not analogous to high CO2 concentrations. But it can be said that if the VOC concentration of a given space begins to slowly climb above baseline, it probably corresponds to room occupancy and an increase in CO2 (because humans exhale both CO2 and VOCs). Therefore, the manufacturers of these devices report the "CO2 Equivalent Units" with respect to this correlation so that their devices might fit more easily into an existing demand-controlled ventilation scheme.

  • Library: https://github.com/maarten-pennings/CCS811

25. Balloons around the world

26. Floaters and buoys

27. Underwater glider - hackaday project winner for 2017!

28. Vancouver maker spaces & resources

29. Muon hunter kit

30. More particle detectors

31. Photo Upsampling

32. High-Resolution 3D Human Digitization from A Single Image.

33. OpenDataCam

34. Bird banding

35. openbot.org - smartphone + arduino robot

36. Open source water bottle floater & GPS tracker

37. Raspberry Pi Seismometer

38. https://github.com/plant99/felicette

39. Anthotype printing

40. NDVI with Arduino

41. https://publiclab.org/

42. Measuring wind speed with microphone noise 🤯

43. TinyML book

44. Long-lived Arduino data logger on batteries

45. Lightning detector

46. Nerdfeeder

47. CoSMO stream flow data

  • see CoSMoSpring2022newsletter.pdf in this directory

48. Solar charger night light – good reference for other projects

Good overview of calculating power requirements for solar charging a battery: https://hackaday.io/project/185217-diy-solar-bottle-lamp

49. Focus stacking!

50. Use arduino uno as FTDI for ESP32 Cam

51. Magnetometer surveying

52. Lollybot – good for web dev, maybe

53. Web development

54. Hydrogen line astronomy

55. Otto - simple, 3D printed arduino-based robot

56. Solar-powered, waterproof ESP32 camera

57. Bat ultrasonic tracking

  • Echo Meter Touch
  • Hooks up to smartphone, Ids calls like Merlin does for birds
  • apparently at Coquitlam library – but looked on [2022-08-22 Mon] and could not find any mention. They do have a tech centre with telescopes, binos, 3d printers, etc – so maybe just not up on their website?
    • Emailed Coquitlam Library to ask.

58. Car logger ODB2

59. Kmonad

60. Fun project: automatic rebooter for weather station, router

61. Fun project: Sign up as pull reviewer for $$$

62. Fun project: Go through opendata.aws

  • Also: aws.amazon.com/earth

63. Fun project: OpenCTD: open source ocean-going probes

64. Fun project: AI for detecting algal blooms

65. Fun project: Homebrew ocean floater with satellite modem

66. Fun project: Soaking pasta to cook it

67. Fun project: Arduino water quality monitoring station

68. Fun project: Lisp for microcontrollers!

69. Fun project: Join Queensborough biodiersity project on iNaturalist

70. ML - Open source LLMs are eating our lunch

71. Fun project: Set up DD-WRT on DIR-615 routers

72. Fun project: Write a python firefox extension

73. Fun project: Import Environment Canada wind data to Grafana

74. Fun project: Generate charts like this for weather

75. Fun project: Take a look at spotify data

  • Have a look in Downloads: …or just re-download

76. Fun project: Anecdata – citizen science platform

77. Fun project: NASA Javascript framework for maps, globes

78. Fun project: Arduino + Quaternions

79. Fun project: Python webdev projects, some react-like

80. Fun project: Sentinel timelapse

81. Fun project: DIY air purifier

82. Fun project: Emacs client for iNaturalist

83. Fun project: Shazam from CLI

  • https://github.com/loiccoyle/shazam-cli
  • "To use these scripts you'll need your own API key. It can be obtained from rapidapi you'll need a RapidAPI account and subscribe to the Shazam API (there is a free a plan). "
    • RapidAPI looks like fun on its own…

84. Fun project: Infinigen: procedurally generated worlds, Python+Blender

85. Fun project: Cloud chamber!

86. Fun project: vterm for Emacs

87. Fun project: Trees & strain gauges!

Enhancing TreeMMoSys with a high-precision strain gauge to measure the wind-induced response of trees down to the ground: https://doi.org/10.1016/j.ohx.2022.e00379

https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0245631

88. Fun project: bat detector!

89. Fun project: Play with Open-Meteo APIs: climate change, weather forecasts

90. Fun project: citizen weather reporting

91. Fun project: https://newscrewdriver.com/2023/08/23/solar-monitor-battery-charging-failure/

92. Fun project: Wyze v3 hacks project

93. Fun project: DIY magnetometer kit

94. Fun project: Citizen science: soil evaluation

95. Fun project: Efficient/tiny ML: online course

96. Fun project: Write an interpreter in golang

97. Fun project: Planktoscope

98. Fun project: Tote – simple servo-based 4-legged robot

99. Fun project: Cheap Yellow Display – ESP32 w/display & more

100. Fun project: Simplest quadruped robot

101. Fun project: Solargraphy: long-term pinhole camera of the sun

102. Fun project: Scientific American Book of Projects for the Amateur Scientist

103. Fun project: Emacs & LLMs

104. Fun project: Personal mp3/ogg player

105. Fun project: Bucket ponds – aquariums without much work (allegedly)

At a local fish store I bought some of their "aquarium soil" or whatever it's called – it's really rocks but very find. I got charcoal black color for no particular reason. I also bought 3 small freshwater plants with roots that would go into that substrate.

I went to a local fishing pond where I had been getting my water samples - the samples were always very diverse so I thought it would be a good location. I brought home several jugs of water (it's a 20L square tank that my neighbor gave me, but with the substrate in the bottom I figure I only needed perhaps 15L to get near the top). I also scooped a little mud from the edge of the pone (under the water) – I figured there would be beneficial bacteria in there and perhaps snails and other stuff. I found a small "log" floating near the edge of the pone that I floated across the top of my setup, providing a nice area for life to grow on.

And I brought a few small floating plants that were in the pond, including some roots. The first of these that I brought home were too short, and the bubbling from the air pump sprayed water on top of them as they floated, which kills them, so I went back a couple weeks later and got some that had grown taller (which you can see coming out the top of the tank in my photo). Finally, I bought a couple small rocks from the fish store just to make things look pretty.

To set things up, I spread just a little of the mud across the bottom of the tank, then covered that with perhaps 4" inches of the aqua soil (rock substrate). I placed the rocks, then the rooted plants, and filled the tank with water. I floated the tiny log, and also floated the floating water lettuce and a bit of duckweek. I put an air bubbler down about 1/3 of the way into the tank, using a suction holder to hold the air tubing against the side.

I already have plant lights as I grow chilis, so I placed the tank under those lights (which are on a timer, on 14 hours a day). After the water cleared, I saw I had a couple shrimp, and also 2 tiny fish that must have been in the water/mud from the fishing pond. One of the fish died last year, but the second lived almost 2 years before recently disappearing.

Every once in a while I go back to the fishing pond to get new water, and empty perhaps 50% of the tank and refill with the new sample and maybe a new floating lettuce plant. I did check the pH of the pond water, which fortunately was 8.0, the same as our tap water here, so I'm able to let some tap water sit out for a day to dechlorinate, then put it directly into the tank without stressing or affecting the natural life. As the water in the tank evaporates, I just replenish it with this tap water.

Depending on the pH of whatever pond water you use or your tap water you may need to adjust the pH of your tap water before adding it to the tank (pH Up or pH Down chemicals are very inexpensive and a small container will last a very long time. I have a pH meter, but you can use strips which are quite inexpensive, and probably accurate enough for this type of project. Hopefully I covered everything, let me know if you have questions.

Tap water in many places has additives (chlorine, fluoride, etc.) inimical to microorganisms.

Yes, I need to dechlorinate my water by leaving it open to air for 24+ hours, no other additives here. I've had a healthy environment for about 2 years now, so I'm lucky I don't have other chemicals to deal with.

I would start very simple, and just do your best to keep things stabilized. And yes, play around for sure – the nice thing is that it's mostly free and you aren't putting any expensive fish/life inside. Note that at one point a year ago the smails were going out of control, so I put in a few Assassin Snails and that cleaned things up.

The smaller the tank the harder it can be to keep things stable, and the quicker things can go south. So that's why I would keep it super simple to start, let it go for a while so that you're confident it can remain stable, then add a little more here and there. Also with only a 4L tank be mindful of water temperature (e.g. room temperature), it's much easier for temperature to swing with less water.

My tank is in an enclosed add-on porch. When nobody is in the room it equalizes with the outdoor temperature (around 85-90F daily) but when my office employees are in there during the week the air conditioning is on. The swings from hot to cold doesn't seem to harm my tank.

#+endquote

106. Fun project: How to make jungle music

107. Fun project: Add EU radiation data to Grafana

108. Fun project: UV imaging!

109. Fun project: locally-run LLMs with Bash

110. Fun project: TinyML

111. Fun project: Llama GPT on Pi4

112. Fun project: Lithium battery series on Hackaday.com

113. Fun project: 3d printed radio controller

114. Fun project: Spotify favourites -> genre playlists

115. Fun project: Continuous rotation servo reference

116. Fun project: Jellyfin media server

117. Fun project: Hacking a bluetooth speaker

118. Fun project: Build An Audio AI App Course

119. Fun project: UTC clock

120. Fun project: Bonsai trees

121. Fun project: http://avtanski.net/projects/

  • Neat stuff!

122. Fun project: tic-tac magnetometer

123. Fun project: Measuring atmosheric co2 with SCD40/41 sensor

124. Fun project: Migrating bird sounds at night

125. Fun project: Microscope photography

126. Fun project: One-servo walking robot

127. Fun project: Mothbox!

128. Fun project: Make a lisp

129. Fun project: Vancouver water levels

130. Fun project: Atari punk console

131. Fun project: auto bed levelling

132. Fun project: Tardigrades!

133. Fun project: 3d view for microscope

134. DONE Microscopy

135. DONE Weather vane + Arduino

136. SetAside ESP32 remote control for Spotify

137. DONE Fun project: Scrape pollen counts from this API

  • https://www.pollen.com/forecast/historic/pollen/98225
  • Request:

    {
      "GET": {
        "scheme": "https",
        "host": "www.pollen.com",
        "filename": "/api/forecast/historic/pollen/98225/30",
        "remote": {
          "Address": "52.23.90.186:443"
        }
      }
    }
    
  • Response:

    {
      "Type": "pollen",
      "ForecastDate": "2023-05-22T00:00:00-04:00",
      "Location": {
        "ZIP": "98225",
        "City": "BELLINGHAM",
        "State": "WA",
        "periods": [
          {
            "Period": "2023-04-23T05:30:32",
            "Index": 1.7
          },
          {
            "Period": "2023-04-24T05:30:32",
            "Index": 4.2
          },
          {
            "Period": "2023-04-25T05:30:33",
            "Index": 8.8
          },
          {
            "Period": "2023-04-26T05:30:32",
            "Index": 8.1
          },
          {
            "Period": "2023-04-27T05:30:32",
            "Index": 8.5
          },
          {
            "Period": "2023-04-28T05:30:32",
            "Index": 8.6
          },
          {
            "Period": "2023-04-29T05:30:33",
            "Index": 9.7
          },
          {
            "Period": "2023-04-30T05:30:33",
            "Index": 7.9
          },
          {
            "Period": "2023-05-01T05:30:32",
            "Index": 7.8
          },
          {
            "Period": "2023-05-02T05:30:32",
            "Index": 8.4
          },
          {
            "Period": "2023-05-03T05:30:32",
            "Index": 7.4
          },
          {
            "Period": "2023-05-04T05:30:32",
            "Index": 7.8
          },
          {
            "Period": "2023-05-05T05:30:32",
            "Index": 1.9
          },
          {
            "Period": "2023-05-06T05:30:33",
            "Index": 4.7
          },
          {
            "Period": "2023-05-07T05:30:32",
            "Index": 6.4
          },
          {
            "Period": "2023-05-08T05:30:33",
            "Index": 7.6
          },
          {
            "Period": "2023-05-09T05:30:32",
            "Index": 7.7
          },
          {
            "Period": "2023-05-10T05:30:32",
            "Index": 8.1
          },
          {
            "Period": "2023-05-11T05:30:32",
            "Index": 9
          },
          {
            "Period": "2023-05-12T05:30:32",
            "Index": 8.9
          },
          {
            "Period": "2023-05-13T05:30:32",
            "Index": 9.1
          },
          {
            "Period": "2023-05-14T05:30:32",
            "Index": 9.2
          },
          {
            "Period": "2023-05-15T05:30:32",
            "Index": 9.2
          },
          {
            "Period": "2023-05-16T05:30:32",
            "Index": 7.7
          },
          {
            "Period": "2023-05-17T05:30:32",
            "Index": 7.9
          },
          {
            "Period": "2023-05-18T05:30:32",
            "Index": 8.5
          },
          {
            "Period": "2023-05-19T05:30:31",
            "Index": 8.5
          },
          {
            "Period": "2023-05-20T05:30:32",
            "Index": 8.6
          },
          {
            "Period": "2023-05-21T05:30:32",
            "Index": 9
          },
          {
            "Period": "2023-05-22T05:30:33",
            "Index": 5.7
          }
        ],
        "DisplayLocation": "Bellingham, WA"
      }
    }
    

138. DONE GPS plotter

https://makersportal.com/blog/portable-gps-tracker-with-arduino

  • good example of what can be done w/the gps agent I got from dad

139. DONE Anemometer for weather station

139.1. [2021-03-05 Fri]

  • Did first pass at software
  • Had to use Arduino IDE to compile – compilation errors when compiling
    • arduino-wx-transmitter worked – suspect the Makefile I'm including there (that is, the upstream Arduino-Makefile) is diff from the one I'm including in the anemometer code.
    • Just for the record:
      • working with Arduino-IDE: /home/aardvark/dev/arduino/anemometer/sketchjan02a
      • Not working, fiddle with Makefile: /home/aardvark/dev/arduino-anemometer
    • Got it working!
      • 3 magnets taped in place
      • sensor in right place
      • interrupt handling for detection
      • rpm, interval time
    • Orientation of magnets & sensor will be important – these things need to go close. Poss there will be collisions if not careful. Will need to think about adjustable placement for sensor + repeatable placement for magnets
    • Next steps:
      • Collect & send to InfluxDB
      • Think about placement of sensor – some kind of arm that can be moved into place? Something on a screw?
      • Record orientation – marks on magnets, pictures, record placement of sensor

139.2. Whoah, been a while…

140. DONE Soil moisture probes

141. DONE Birdhouse camera

142. Fun project: Octoprint on an Android phone

143. Fun project: Lab power supply

144. Fun project: EFF RayCatchr

Author: Saint Aardvark

Created: 2025-05-16 Fri 12:41

Validate