
PSLab
fossasia/pslab-hardware
PSLab Hardware Design and Schematics https://pslab.io

The 2018 badge features WiFi connectivity, and all the badges are controlled by an MQTT server. The main controller is a WeMos D1 Mini, which uses the ESP8266 WiFi module.
OpenWest2018 is an open-source printed circuit board by compukidmike, from the compukidmike/OpenWest2018 repository on GitHub. It is a 2-layer board of 82.5 × 95.3 mm with 8 parts on 17 nets, routed with 105 tracks and 5 vias.
It is built around the WS2812B. Its parts include 2 diodes, 2 connectors and 1 IC.

The 2018 badge features WiFi connectivity, and all the badges are controlled by an MQTT server. The main controller is a WeMos D1 Mini, which uses the ESP8266 WiFi module.
A note on battery life: WiFi uses a lot of power. So do LEDs. The badges probably won't last more than a day on batteries. Take them out when you're not at the conference to avoid unnecessary battery drain. Also, don't connect a USB cable while the batteries are in the badge. Bad things could happen.
One of the fun things about this badge is that they're all controlled by this central server. There's no authentication on MQTT publications, so anyone can change what all the badges are doing. There are many programs to interact with MQTT servers. MQTTLens is a free chrome app that's very easy to use. If you want to learn more about MQTT go here https://www.hivemq.com/blog/mqtt-essentials-part-1-introducing-mqtt
We're using mosquitto (https://mosquitto.org/) for our local MQTT server. This server is only available at the conference. After the con is over, you'll have to connect the badge to your own server or an online service like adafruit.io. There are instructions below on how to do that.
The local MQTT server IP is 10.155.0.214, port 1883
The Feeds are setup as follows:
feeds/The retain flag is important. It tells the server to keep the last message, and give it to any new client that subscribes to a feed. That means your badge won't have to wait until a new message is sent out to start displaying the proper colors, etc.
(The Arduino IDE can be downloaded from https://www.arduino.cc/)
Add the ESP8266 to the boards menu
Add the required libraries
Mac users need to download the WeMos driver at: https://wiki.wemos.cc/downloads (restart required after install).
#define WLAN_SSID "OPENWEST-GUEST"
#define WLAN_PASS "Openwest2018!"#define AIO_SERVER "10.155.0.214" // IP or URL for MQTT server
#define AIO_SERVERPORT 1883 // use 8883 for SSL
#define AIO_USERNAME "test" // Adafruit.io username
#define AIO_KEY "1234567890" // Adafruit.io keyIf you attended my talk about the badge, I talked about how adafruit.io is an MQTT server that doesn't fit the spec. One of the things I said was that they retain messages by default. Well, they changed that, but still don't support the retain flag, so there's a workaround. Please keep in mind that they made this change on April 22, 2018. I've been working with the badge code since long before that. They've updated their libraries to handle this, but I haven't had a chance to mess with it. If you get it working with the new Adafruit IO library, please submit a pull request. Here's the blog post that talks about the change: https://io.adafruit.com/blog/notebook/2018/04/22/new-io-plus-and-mqtt-features/
<username>/feeds/<feed_name>/get at the end (I know, it's ridiculous).
Adafruit_MQTT_Publish color1get = Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/color1/get");Serial.println("MQTT Connected!");
color1get.publish('\0');
color2get.publish('\0');
effectget.publish('\0');
effectspeedget.publish('\0');
delay(1000); //delay for receiving the packetsI know this is an ugly workaround. I'm sorry. On the bright side, it does show how to setup and publish data back to the server.
If I missed anything, or you have something to add to this readme, please submit a pull request.
| Qty | Value | Footprint | References |
|---|---|---|---|
| 2 | Conn_01x05 | Socket_Strips:Socket_Strip_Straight_1x05_Pitch2.54mm | J1, J2 |
| 2 | WS2812B | WS2812b-HandSolder:WS2812B | LED1, LED2 |
| 1 | Battery | Battery-WireConn:Battery-WireConn | BT1 |
| 1 | LOGO | OpenWest2018:BadgeOutline | G*** |
| 1 | TEST | Wire_Pads:SolderWirePad_single_1mmDrill | DOUT |
| 1 | WeMos_mini | wemos-d1-mini:wemos-d1-mini-with-pin-header-and-connector | U1 |
It measures 82.5 × 95.3 mm and has 2 copper layers, 1.6 mm thick.
8 parts, built around the WS2812B. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
From the compukidmike/OpenWest2018 repository on GitHub, at the commit this page was made from: the board is Board Files/KiCad Files/OpenWest2018.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.
Its repository states no licence, so its author keeps all rights: ask compukidmike before reusing the design.

fossasia/pslab-hardware
PSLab Hardware Design and Schematics https://pslab.io

FrameworkComputer/ExpansionCards
Reference designs and documentation to create Expansion Cards for the Framework Laptop



PrintersForAnts/Micron
If you want to purchase full kits there are 3 available (Kits are slowly updating to R1 hardware just make sure to double check the included hardware in your kit and if you have any questions reach out in the discord)


