OHS18 badge: accelerometer demo, adapter board, Tindie listing

Updates for the 2018 Open Hardware Summit badge project:

MicroPython demo app for the Accelerometer

Want to use the KX122-1037 Accelerometer (datasheet) on the 2018 Open Hardware Summit badge?

USB-to-Serial adapter board

This adapter board to connects a USB-to-serial cable to the 2018 Open Hardware Summit badge.

Extra badges being sold on Tindie

The extra badges from the Summit are being sold here on Tindie as a fundraiser for the Ada Lovelace Fellowship which provides travel assistance to the Open Hardware Summit. All sales revenue will be 100% donated to the Open Source Hardware Association (OSHWA) for this purpose.

OHS18 badge: accelerometer demo, adapter board, Tindie listing

Open Hardware Summit badge: Magic 8-Ball app

Thanks to @Steve Pomeroy for creating this MicroPython demo app for the Open Hardware Summit badge:

ohs18apps/magic8ball.py

# created by Steve Pomeroy https://hackaday.io/xxv
# modified by Drew Fustini to run once and exit
#
# blog post:
# http://blog.oshpark.com/2018/10/04/open-hardware-summit-badge-magic-8-ball-app/
#
# photo gallery:
# https://photos.app.goo.gl/f1y8PSHfYAaa4xTu7
#
# transfer to Open Hardware Summit badge using FTP:
# https://oshwabadge2018.github.io/docs.html#uploading-over-ftp

import gxgde0213b1
import font16
import font12
from machine import I2C, Pin, TouchPad
import struct
import time
import urandom
from ohsbadge import epd
from ohsbadge import fb

class TouchButton(object):
   def __init__(self, pin, on_pressed, threshold=400, debounce_ms=50):
       self._touchpad = machine.TouchPad(pin)
       self._on_pressed = on_pressed
       self._threshold = threshold
       self._debounce_ms = debounce_ms
       self._down_ms = None
       self._pressed = False

   def read(self):
       if self._touchpad.read()  self._debounce_ms:
                       self._on_pressed()
                       self._pressed = True
       else:
           self._pressed = False
           self._down_ms = None

# from Magic 8-Ball app by Steve Pomeroy https://hackaday.io/xxv
# github.com/oshwabadge2018/ohs18apps/blob/master/magic8ball.py
class MagicBall():
   def clear_screen():
       epd.initPart()
       epd.clear_frame(fb)
       epd.display_frame(fb)

   def show_message(message):
       epd.init()
       epd.clear_frame(fb)
       epd.display_string_at(fb, 0, 52, message, font16, gxgde0213b1.COLORED)
       epd.display_frame(fb)

   def read_accel(i2c):
       i2c.writeto_mem(30, 0x18, b'\x80')
       x = struct.unpack("h", i2c.readfrom_mem(30, 0x6, 2))
       y = struct.unpack("h", i2c.readfrom_mem(30, 0x8, 2))
       z = struct.unpack("h", i2c.readfrom_mem(30, 0xA, 2))
       return (x[0], y[0], z[0])

   def get_orientation(i2c):
       new_orientation = None
       pos = MagicBall.read_accel(i2c)

       if pos[2] > 13000:
           new_orientation = "upright"
       elif pos[2] < -13000:
           new_orientation = "prone"

       return new_orientation

   def main(f):
           phrases = ["It is certain.", "It is decidedly so.", "Without a doubt.", "Yes - definitely.", "You may rely on it.", "As I see it, yes.", "Most likely.", "Outlook good.", "Yes.", "Signs point to yes.", "Reply hazy, try again", "Ask again later.", "Better not tell you now.", "Cannot predict now.", "Concentrate and ask again.", "Don't count on it.", "My reply is no.", "My sources say no.", "Outlook not so good.", "Very doubtful."]
           i2c = machine.I2C(scl=Pin(22), sda=Pin(21))
           epd.init()
           epd.set_rotate(gxgde0213b1.ROTATE_270)
           epd.clear_frame(fb)
           epd.display_frame(fb)
           prev_orientation = None

           keep_on = [True]

           def exit_loop():
               keep_on[0] = False

           exit_button = TouchButton(Pin(32), exit_loop)

           while keep_on[0]:
               exit_button.read()
               orientation = MagicBall.get_orientation(i2c)

               if orientation and orientation != prev_orientation:
                   if orientation == 'upright':
                       MagicBall.show_message(urandom.choice(phrases))
                   elif orientation == 'prone':
                       MagicBall.clear_screen()
               prev_orientation = orientation

ball = MagicBall()
ball.main()

This Python file can be transferred to Open Hardware Summit badge using the FTP server built into the MicroPython firmware.

Resources:

Open Hardware Summit badge: Magic 8-Ball app

Twenty Projects That Just Won the Human Computer Interface Challenge

The greatest hardware competition on the planet is going on right now. The Hackaday Prize is the Oscars of Open Hardware. It’s the Nobel Prize of building a thing. It’s the Fields Medal of firmware development, and simply making it to the finals grants you a knighthood in the upper echelon of hardware developers.

via Twenty Projects That Just Won the Human Computer Interface Challenge — Hackaday

Quote

PewPew: Python-based micro game console

From Radomir Dopieralski (ꝺeshipu) on Hackaday.io:

538041535059272195 (1)

PewPew Standalone

A Python-based micro game console, optimized for game development workshops.

I really like the #PewPew FeatherWing as a platform for teaching game development, but the cost of Feather boards needed to use it makes it difficult to organize workshops for larger groups of people. I have previously tried to work around that problem by merging the FeatherWing with the schematic stolen from a Trinket M0 (with an additional flash memory), but the resulting design was complex, difficult to make and still a bit expensive. Now after having designed a few more CircuitPython boards I think I can really cut the costs and make a standalone device with all the functionality of the original shield, but optimized for workshops.

PewPew: Python-based micro game console

E-Paper Badge is a Hint at Great Things to Come

From All the Badges of DEF CON 26 (vol 3) on Hackaday:

36-epaper-hackaday-shoutout

E-Paper Badge is a Hint at Great Things to Come

Friend of Hackaday, Drew Fustini, came to our Breakfast at DEF CON meetup sporting a name badge of his own design. The E-Paper Badge uses a Teensy LC to drive a 2.15″ E-Paper display. The row of capacitive touch buttons to the left allow the image to be changed, and he just happened to have the Jolly Wrencher in the gallery of choices for this picture.

This badge gets me really excited for this year’s Open Hardware Summit which is at MIT on September 27th. This year’s badge is a collaborative effort between a group on Hackaday.io! It’s basically Drew’s badge on steroids, and he told me the experience of working with a team has been really positive. It seems each time the group hits a hard problem or a pile of work that needs to be done, someone on the team grabs it and runs with it. It’s a great example of both certified open hardware and team development.

Quote

Open Hardware Summit 2018 badge

OSH Park is producing electronic conference badges for the 2018 Open Hardware Summit.  The hardware has been designed Alex Camilo, based on concepts from the ESP trINKet by Mike Rankin.  The badge features an ESP32 microcontroller and a 2.13″ E-Paper display.

6202441533283525215

OSH Park shared project for the Rev 3 by Alex Camilo :

https://oshpark.com/shared_projects/8yeLK5gd

Order from OSH Park

a

b

We expect this to be the final revision.

Timeline:

It is ordered on Super Swift today and should be validated next weekend.  This will allow us to order the full quantity PCB panels in August 13th.  Assembly is estimated to be 10 business days from the day when all components and PCBs are received.

Rev 2 photos:

And for those interested, here is a link to a gallery:

https://photos.app.goo.gl/UhCUX7eRN38tAhsF7

IMG_20180805_031614

Terminal output on Rev 2 prototypes:

The Rev 2 prototypes have NodeMCU boards soldered on to the back to serve as a USB to serial adapter.

One of the Rev 2 prototype boards that Alex sent me has the default e-paper demo:

3633741533555804296

The other has MicroPython installed! 🙂

1079331533555818375

Resources for the 2018 Open Hardware Summit badge:

Open Hardware Summit 2018 badge

Micro TV-B-Gone

From Nicholas Junker on Hackaday.io

6009271515082893441.jpg

Micro TV-B-Gone

The Micro TV-B-Gone is based off of Adafruit’s original TV-B-Gone kit, except made to be as small as possible, using an LIR-2032 coin cell.

 

I based this project off of the Adafruit TV-B-Gone kit. I wanted to start getting into using surface mount components on my projects, and seeing as the TV-B-Gone was my first foray into soldering, I figured that it would be a great project to work on.

The device takes a rechargeable LIR-2032 battery, and is activated pressing the single button on top. It will run through all TV power codes, and then go into a low power mode, waiting for the next button press. The battery will last around 40 full cycles, before being reduced down to 3.5 volts.

Micro TV-B-Gone

PCB Artwork Hack Chat Transcript

The transcript has been posted from the Hack Chat last Friday with Andrew Sowa about Circuit Board artwork:

739811524251396115.png

PCB Artwork & Photo Conversions Hack Chat Transcript

PCB Art is likely as old as the manufacturing process itself. It has evolved over time from engineers hiding easter eggs in wasted space to whole companies devoted to the intricate authentic design. Andrew has created his own style by using each layer of the PCB to make multi-color images from computer generated designs.  In this chat he will talk about his process of turning photos into PCBs as well as tricks to getting high resolution results with KiCad.

 

In this chat, we’ll be talking about PCB artwork:

  • Bitmap to SVG Converstion (Inkscape and Illustrator)
  • Kicad Footprint creation
  • PCB Fabrication Limits
  • Backlighting
  • Halftones
PCB Artwork Hack Chat Transcript