1 of 50

A member-driven community workshop

2 of 50

About Us

  • The Halifax Makerspace is a non-profit group that helps local makers, individuals, organizations, groups design/make/repair a wide variety of things.
  • Making things can be as varied as your imagination including, but not limited to:
    • Sewing/fabric projects
    • Leatherworking
    • Electronics
    • 3D printing, CNC or woodworking fabrication
  • Makerspaces allow like-minded people to share tools, talent, technologies, equipment, supplies, experiences, etc. to the benefit of all who are interested.
  • We are, unfortunately, at the moment without a dedicated physical space but we continue to share information and encouragement while working towards the day we can once again open up shop for the benefit of all our members.

3 of 50

Show & Tell

Add your projects after this slide. Suggested components:

  • Project name
  • Your name
  • Short description
  • Photos

4 of 50

Portable Generator Weather Cover - Marcel Boudreau

  • Portable electric generators should not be left running outside in the rain/snow
  • Some people build small sheds or hard covers
  • Commercial ‘soft’ covers are available (see photo to right) but are expensive�(> $260.00 CAD)
  • I’m working on a DIY version of a commercial version to save significant cost
  • This is a work in progress

5 of 50

Portable Generator Weather Cover Marcel Boudreau

Commercial version

Pros:

  • Well designed
  • Fits well

Cons:

  • Fricken expensive
  • Plastic parts are delicate

6 of 50

Portable Generator Weather Cover Marcel Boudreau

7 of 50

Portable Generator Weather Cover Marcel Boudreau

8 of 50

Portable Generator Weather Cover Marcel Boudreau

Design details:

  • Same general concept as the commercial cover
  • I can use plastic banding stock I had on hand left over from earlier hydroponics project
  • I can design and 3D print the clamps/hardware

To do:

  • Prototype fabric cover out of cardboard and cheap vinyl tarp
  • Manufacture final cover out of flame resistant welding blanket
  • Design suitable method to hold fabric cover down to hardware - �probably with bungie cords

9 of 50

Portable Generator Weather Cover Marcel Boudreau

Questions

10 of 50

We felt the Tonga volcano eruption!

11 of 50

Extracting pulse

Eruption happened at

00:10 Saturday morning January 15th

If pressure wave travels at speed of sound, it would arrive at 11:42 AM.

A bit slower, seems like it arrived about 12:10PM

The second wave from east to west should arrive about 11:20PM. Again, a bit later.

https://github.com/morrowwm/weewx_tonga_browse

Great circle distance to Tonga: 13300.0 km

Speed of sound: 0.32 km/s

travel time: 11.5 h

Eruption: 00:10 Jan 15th

Local arrival: 11:42 Jan 15th

Circumference of Earth 40000 km

long way around 26700 km

2nd arrival: 23:20:38 Jan 15th

https://groups.google.com/g/weewx-user/c/kw6i-VZibc4

Raw barometric pressure at my house.

12 of 50

Austria

13 of 50

Sydney (Aus)

14 of 50

Utah (bad software)

15 of 50

Richmond VA

16 of 50

Paris

17 of 50

Calibrating Design Constants for 3D Printing

The Portability Problem

The Solution

  • When working with detailed functional parts across multiple slicers and/or printers you need subtle differences in your renders objects (STLs etc)
  • Maintaining multiple files to run your various production pipelines is cumbersome and haphazard

  • Using a top-down approach to calibrating design constants - mostly gap distances - is a clean solution to the portability problem
  • By working with openscad generated geometry we can defer specifying design constants until render time, at which point we can rely on well defined naming patterns for our STLs to understand target production pipelines

18 of 50

Calibratrices (Calibration Matrices) -

- Reusable, Templated, Self-Documenting Design Constant Calibration Aides

19 of 50

Calibratrix Library

  • Provides a simple workflow for defining new calibratrices
  • Has a set of features to with the flexibility to make new instances useful
  • Is driven by a simple python engine with a cleaner interface than openscad
  • Intelligent opinionated defaults maximize usefulness and minimize touches

20 of 50

Calibratrix Library

  • L-Matrix or 2D-Matrix options
  • Comes with examples to illustrate usage

21 of 50

Calibratrix Library - What’s Next?

  • Driving a broad content library with design calibration
  • Hooks in Blender to allow just-in-time replacement of objects at render-time

22 of 50

Working with donated SOC and carrier board

  • A local medical tech company donated many Arietta G25-based monitoring devices.
  • Learning about these, planning on educational series on embedded linux during endemic phase.

23 of 50

Appearance

Nice case

CamdenBoss ABS

Ready for wall mount

24 of 50

Specs of System-on-Chip

Acme Systems Arietta G25

Atmel AT91SAMG25 ARM9@400MHz MPU

256 MB RAM

16 GB SD card file system

2.4 GHz wi-fi module

USB 2 micro

on-board and external antenna

40 pin GPIO

debian buster is installed

Similar to Raspberry Pi Zero W.

25 of 50

Specs of carrier board

7 to 36V input Murata switched 5v regulator in 7805 form factor

Panasonic 64 pixel infra red grid eye

Bosch BME680 temperature, pressure, humidity, air quality sensor

microphone

ambient light

RGB bright LED

proximity/motion sensor

Cost of components about $200.

26 of 50

Experiences

Nice examples of python scripts to interact with carrier board.

Upgrading to buster was not too bad, bullseye require networking driver.

External antenna research - it’s voodoo!

Easy to add more USB. I2C needs some python library work.

Learned a bunch on debian linux (systemd, device tree) and python.

Not powerful enough to build kernel itself.

27 of 50

Experiences

Broken carrier boards are good source of parts.

Built demo web socket-based client-server.

Looking at adding to Adafruit library for peripherals.

https://pypi.org/project/Adafruit-Blinka/ - mostly defining GPIO pins.

28 of 50

Demo

29 of 50

Plans

Introduction to embedded linux

  • either at library, or virtual, if COVID never ends

More instruments around the house:

  • home monitoring
  • seismometer

30 of 50

Arduino-based SD Card Interface for the Commodore 64 - Doug Parsons

31 of 50

First off, a big thanks to the NS Power crews who worked so hard over the weekend to restore power to Beaver Bank! Without them, no SD interface!

32 of 50

Overview

  • As anyone who owned a Commodore 64 or 128 back in the day knows, the 1541 floppy drive was SLOW SLOW SLOW.
  • Several “fast loader” cartridges came out in the ‘80s to remedy the problem.
  • Even with fast loaders, the 1541 was not a practical solution for games and applications that required multiple diskettes and/or heavy disk usage.
    • In my case, the “Wizardry” series of games from Sir-Tech and Spinnaker Power C were virtually unusable with only a single 1541 drive, or even with two drives.
  • And then came …

33 of 50

The Creative Micro Designs (CMD) RAMLink

  • Battery-backed RAM drive (used old-style 30-pin SIMM cards)
  • FAST! What took two minutes on a stock 1541 only took two seconds on a RAMLink!
  • MEGABYTES of storage and ability to switch between multiple 1541 emulation “partitions” easily.

34 of 50

However, there was one LITTLE problem …

To get the 1541 disk images onto the RAMLink, you needed to use … a 1541 drive. The CMD “mcopy” utility was the standard app to transfer the contents of a 1541 disk to a 1541 emulation partition. It used a fast loader and could transfer a full disk in 53 seconds.

If you had one or two 1541 partitions, this wasn’t so bad. If you had 20 or 30 … not so much.

35 of 50

And then we entered the 21st century …

… and CMD was long out of business, but some of our fellow “makers” took it upon themselves to create new high-speed mass storage devices for the C64.

  • IDE hard drive interfaces
  • Compact Flash interfaces
  • And most recently, SD card interfaces.

Many of the recent SD card interfaces are implemented as part of “super cartridges” that also incorporate memory freezers, ML monitors, audio/video utilities, etc.

36 of 50

But I still love my RAMLink!

And I thought it would be fun to create my own SD card interface that is designed specifically to transmit data to and from my RAMLink at high speed.

I read up on the Arduino “SD” library and bought an SD module/shield, and I was off!

I also purchased a C64 “user port” interface card (about $20) and wrote a short 6510 machine language driver.

The interface uses four “data” lines and four “handshaking” lines (two in each direction).

37 of 50

Some more photos:

38 of 50

… and I only got it working 100% at 11AM today!

And here’s the proof:

39 of 50

But is it FAST?

To transfer a 1541 disk image (171 kB) to the RAMLink:

  • 1541 drive using “mcopy” (with fast load driver): 53 s
  • ThunderDrive SCSI hard drive with “mcopy” AND RAMLink parallel interface: 18 s
  • RAMLink to RAMLink using “mcopy” (clone a partition): 10 s
  • My Arduino SD interface: 37 s

My first cut of the Arduino interface measures up very favourably, if I do say so myself! :-)

40 of 50

To-do list:

  • Write Arduino and 6510 routines to transfer data in the other direction (RAMLink to SD card)
  • Add a proper enclosure, nice flashy LED lights, an LCD alphanumeric display, etc.
  • Ultimately, it would be tres cool to write a full C64 “device driver” to allow the SD interface to function as a stand-alone disk device, accessible using standard BASIC commands and C library functions.
  • But my ULTIMATE ULTIMATE goal is to create a modified interface and connect it to:

41 of 50

The “holy grail” of early “home computing”!

42 of 50

Model Railroad train detection using a QT Py and a VNCL 4040 Proximity Sensor - Adam Cox

43 of 50

Components

  • Adafruit QT Py RP2040
    • https://www.adafruit.com/product/4900
  • Adafruit VCNL4040 Proximity and Lux Sensor - STEMMA QT / Qwiic
    • https://www.adafruit.com/product/4161
  • JST SH 4-pin cable
    • https://www.adafruit.com/product/4210
  • USB power bank

44 of 50

The Goal

  • Operate a grade crossing with flashing lights and servo-controlled crossing gates across three tracks
  • Under track IR sensors would require nine sensors
  • 2 pins for lights
  • 2 pins for servos
  • 9 pins for sensors

45 of 50

The Better Option

  • 2 pins for lights
  • 2 pins for servos
  • 2/5 pins for sensors

46 of 50

STEMMA QT / Qwiic

  • https://learn.adafruit.com/introducing-adafruit-stemma-qt/what-is-stemma-qt
  • https://learn.adafruit.com/introducing-adafruit-stemma-qt/sparkfun-qwiic

47 of 50

RP2040

  • Microcontroller from the makers of Raspberry Pi
  • Cheap $6 CAD
  • Programmable in MicroPython,�CircuitPython, C, and Rust

48 of 50

Code

# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries�import time�import board�import neopixel�import busio�import adafruit_vcnl4040

pixels = neopixel.NeoPixel(board.NEOPIXEL, 1)�delay = 1.0�pixels.fill((255, 255, 0))�i2c = busio.I2C(board.SCL1, board.SDA1)�sensor = adafruit_vcnl4040.VCNL4040(i2c)

while True:� distance = sensor.proximity� print("Proximity:", distance)� if distance < 3:� pixels.fill((0, 255, 0))� elif distance < 4:� pixels.fill((255, 255, 0))� elif distance < 10:� pixels.fill((0, 0, 255))� elif distance > 10:� pixels.fill((255, 0, 0))� #print("Light: %d lux" % sensor.lux)� time.sleep(1.0)

49 of 50

VCNL4040 Proximity and Lux Sensor

  • Measures proximity 0 to 200mm
  • Light sensor 0.0125-6553 lux
  • QT/Qwiic compatible
  • I2C
  • Python/CircuitPython guide
    • https://learn.adafruit.com/adafruit-vcnl4040-proximity-sensor/python-circuitpython

50 of 50

To Find Out More

Email us at info@HalifaxMakerspace.org

HalifaxMakerspace.org