LayerOne 2015 Badge

This years LayerOne conference badge.

Similar projects worth following
After last years monumental effort, this year we're going for a slightly easier approach. Likely two badges, one a blinky toy with WS2812B's, wifi and a PSOC4, battery operated.

The other runs OpenWRT on the RT5350F with WIFI and two ethernet's, use your imagination as to what that'll be for ;)

I just got in the first PCB protos of the LED version, so going to build that up today. Feels like yesterday when we were sweat shopping the proxmark boards together.

take a ride with me why don't you as we try to get t-shirt designs made, pcb's designed , built and tested and hopefulyl not redesigned , then ordered from malaysia, sponsorships arranged and mysterious chipsets from china to be delivered in time for may 23-25 2015. Hopefully without turning my house into a production line again, with some very very unhappy spouses.

This comes out of two things, one people like blinky toys, no matter how cool a thing you make, blinkenlights just has a mass appeal. To make it a bit more interesting i've added the ESP8266 and some I/O ports.

It is basically a remix of my WiFi Xmas lights, i've switched it over to 3.3V for everything except the LED's, the middle revision of the xmas lights tried the simple transistor logic level shifter, but its only good for 400khz, so i ended up just swapping back to an IC which ends up being as cheap and just one part to solder on.

I back ported all the routines from the PC lightserver back into the PSOC and left the functionality for it to be driven by UDP as well, so either a pattern or block of 22 RGB values can be sent out from another wifi device.

It runs off two CR123As, which is interesting since they provide a lot of amperage, and since they are 3V, two at 6V and the LED's can take about 5.3V max, i added a diode to protect the circuit from putting the battery in the wrong way, which is a big problem with the CR123A.

First off i tried running off one battery at 3V to see what it happened, it worked until about 2.6V with the diode, and 2.3V without. (since 0.3V is typical voltage drop for this type of diode) I'm fairly amazed it worked for about 6-7 hours like this with no dimming. The blue drops out first, since least efficient, then green then RED just keeps going on and on ( and the PSOC)

About the brass stencil i use, this one i got from a pack on amazon since i'd used up the last of my K&S brass sheets on 23B sparklecon stencils. I tried a thinner sheet than the usual 3mil, it worked pretty well it's tough to spread solder on the round board like this without a jig. The actual badge has a flat side for the lanyards (and to help PNP)

Typically i'd use the method that i'd learnt from sparkfun years ago about shrinking the tCream layer in eagle with the DRC min/max setting, but as i was playing around with different levels of shrink and settings in my CNC software . I noticed that in Eagle the shrink origin is 0,0 top,left of the pad, and my CNC shrinks from the centre of the pad, which now makes me realise why in the past the solder had always seemed offset. Using a centre point to shrink from puts all the solder in the middle of the pad, versus on the edges. Now how that plays out we shall see, some components touch the edges more, some more middle, But it worked just fine for this test build, i definitely prefer middle of the pad.

Heat is really the enemy of these WS2818B's and either a couple arrived with issues, or i heated them up too much , typically i'm about 170F on the hot plate. The common fail was just missing or odd colours.

I'm doing extended batteries tests . without the ESP8266 since it draws a lot, and so far so good, with dimming levels i can get it down to a non daylight 20mA-40mA draw, which is great.

Oh and since i'd sent this in one day after i got out of ICU, i had made two mistakes.. one which always catches me in eagle is renaming a signal that is spread across multiple sheets, and its nearly always VCC/VDD , adding the logic IC needed a VCC named wire, so i did that but of course i severed the connections to the LEDs. At first i thought i had a ground problem since touching certain places on the board made the LEDs light, but it was simply they had no power supply, after the red herring of looking for missing grounds or non soldered pins or just a flaw in the design , especially at the 3v>5V logic converter, i looked at the schematic and it stuck out like a sore thumb.. The weird thing is that i have done this at least three times before ( once on a previous L1 badge) it just keeps catching me out, a simple rename of a net severs the connection. Add to the list (that never gets checked)

I am curious to see what happens if i run these LEDs at 6V for a short while (basically til he batteries drop voltage!)

The other mistake i made was the orientation of the ESP8266 which is yet again another repeat...

Read more »

  • Building badges

    charliex05/22/2015 at 02:01 0 comments

    So far this year we've done a lot better, the kits are all made, speaker and staff badges are all built, and i'm putting together a bunch of the LED badges. I'm using the TM-220A pick and place, and actually getting it to run.

    Using DP-TM220A.ulp for eagle from Dangerous Prototypes. The first issue i ran into was that the rotations are different, after some poking around I realised we'd had this problem with our PickoBear PNP at NSL, that Eagle doesn't use an absolute rotation, the rotation the ULP sees is relative to the the rotation of the part in the library.

    Hmm not good..

    So i went through each of the parts manually and fixed the rotation myself. The firmware is a bit flaky and it crashes a lot on malformed files, i ended up using a Chinese formatted file to handle it.

    After that i did a run in single step and the rotation was a bit off and needed manual touch off, and on a full run the rotation got even worse, so i changed the machines speed to 50% and it rotated perfectly, so probably either the vibration or the nozzle size is too small, i've pulled out the nozzle pack and will try a larger one.

    Another thing we did, was to cnc out a chunk of aluminium put a couple of metal pegs in that matched the holes of the badge and put it on the bed of the PNP , the existing holder is not good at all. So now i can pop the board on, use the paste stencil, remove the stencil and run the pnp, take it off and put it on the hot plate. so far so good!.

    The badges are also chainable and they'll even run in parallel. Here its passing over VCC,GND and the logic output to drive the WS2812's.

    So close to the right number....

    hotplating at 176 setting

    of course if you have one, there are always reasons to use it



  • Using the $4 PSOC4 devboard as a programmer for PSOC4's

    charliex05/03/2015 at 18:42 0 comments

    This is just a link to a Cypress article showing how to use the cheap PSOC boards to implement a programmer to program other PSOC4's

    Don't upgrade the components when you load it into Cypress Creator, leave them as is.

    Arrow have these boards in QTY 16 for $3.21

  • first badges sent off for manufacturing

    charliex04/21/2015 at 04:19 0 comments

    After a few prototype runs, and a delay due to some artwork changes to the LED board, it's gone off for manufacturing, using itead instead of silver circuits for the first time, so hope it works out. this is always the most stressful part. I haven't opened up the LED reels either, since i don't want to bake them.

    CAM files are updated to the new drill format in eagle 7.2

    added the now infamous ft232rl to the board, the interesting thing is the badge has the right tool set to reset the usb vid/pid on a counterfeit chip, but here's hoping i get real ones.

    i left off some of the copper around the antenna but i doubt it'll do much of anything, i'm just curious. most of the breakouts are done, sd holders are in, waiting on usb micros to arrive, also wired up the phy eth1 leds.

    all that is left is to check, add artwork and teardrop it, well at least all that is left before sending to PCB house. i didn't break out a couple of the pins, due to space, but we'll see, i'm sure if i don't i will regret it.

    tent the vias, teardrops, check power classes, watch for crazy overlapped traces, hole sizes, miter the board corners, check the silks etc. we have a check list we always forget to check!

  • fixed the drill settings in eagle 7.2

    charliex04/16/2015 at 06:26 0 comments

    when i cut out a board last month or so, the drills were crazeeeee , anyway figured it out and i

    generated a new CAM file for ITead, this is only needed for Eagle 7.2

    basically change Excellon to Excellon_24, I haven't verified it yet since i'm just getting ready to send in the gerbers. But i emailed it to them as well.

  • setting up the vocore source code and changes etc.

    charliex04/13/2015 at 20:09 1 comment

    This would be the goto page for the setup of the badge (hopefully)

    clone out of git

    refer to this for complete instructions on setting up openwrt. on ubuntu 14.10 i needed gawk as well

    sudo apt-get update 
    sudo apt-get install git-core build-essential libssl-dev ncurses-dev unzip subversion mercurial

    ubuntu 14.x, the feed update will potentially warn you about a missing gnu awk

    sudo apt-get install gawk
    git clone git://
    Cloning into 'openwrt'...

    now head into the openwrt folder and setup the default config.

    menuconfig setup

    if you don't want luci, skip the luci parts. if luci fails, check for the awk version.

    cd openwrt
    ./scripts/feeds update -a
    ./scripts/feeds install luci
    ./scripts/feeds install -a -p luci
    make defconfig 
    make prereq 
    make menuconfig

    i'm using things like fuse, usb support and luci, haven't really fleshed this out yet.

    (Target System: Ralink RT288x/RT3xxx, Subtarget: RT3x5x/RT5350, Target Profile: VoCore)
    kernel/usb support/kmod-usb-storage *
    kernel/usb support/kmod-usb-storage-extras M
    (fuse isn't needed, its for me)
    block devices kmod-scsi-core *
    filesystems kmod-fs-ext4 *
    filesystems kmod-fuse M
    input modules kmod-hid *
    usb-support kmod-usb-hid *
    libraries/filesystem/libext2fs *
    libraries/filesystem/libfuse M
    luci/collections/luci(new) *
    luci/modules/luci-mod-admin-full *
    utlities/filesystem/e2fsprogs M
    utilities/disk/fdisk M (optional can opkg'd)

    Read some of the things below about configuring the root fs, and wifi setup etc before building

    building it, or make world

    make -j 9

    -j N number of threads (approx number of cores, adjust for machine)

    V=s verbose, for debugging make, if it errors out. usually a dirclean and rebuild fixes build errors ( after the first successful one)

    now wait a really long time, go read for a bit or something...

    If the build finishes the firmware will be in the bin/ramips folder the openwrt-ramips-rt305x-vocore-squashfs-sysupgrade.bin file

    for me on a virgin ubuntu install it failed on the first make, and when i re-ran it with V=s to see why, it compiled ok...

    writing firmware

    mtp -r write

    alternative way, which has been working for me for a few months and doesn't reset anything to stock except the password.

    scp binary to ram/tmpfs cannot be flash!, sometimes the wifi drops before it is able to flush the stdout, so doesn't always show the end, should be less than 60 seconds. I use winscp with sftp mode on windows.

    sysupgrade -v /tmp/openwrt-ramips-rt305x-vocore-squashfs-sysupgrade.bin
    Saving config files...
    killall: watchdog: no process killed
    Sending TERM to remaining processes ... ubusd askfirst logd netifd odhcpd ntpd dnsmasq
    Sending KILL to remaining processes ... askfirst
    Switching to ramdisk...
    Performing system upgrade...
    Unlocking firmware ...
    Writing from  to firmware ...
    Appending jffs2 data from /tmp/sysupgrade.tgz to firmware...
    Writing from  to firmware ...
    Upgrade completed
    Rebooting system...

    I've seen it not print out the last two lines, still seemed to work ok, the kernel just isn't flushing the print buffer.

    first time password

    change first password with telnet

    usb setup

    turn off firewall , security conference , remember?

    (ssh to vocore)

    /etc/init.d/firewall stop

    opkg update

    new config for opkg if using a version before april 2015

    src/gz base
    src/gz luci
    Read more »

  • Second Badge Prototype, LayerOne is closing in fast

    charliex04/12/2015 at 17:09 0 comments

    The VoCore based badge PCB's arrived, and i built one yesterday.

    worked except for the usb which was mirrored! i looked at the symbol in eagle and it was a box with USB written so edited that part with vcc/d-/d+/gnd so it'd be spotted (con-amp.lbr) booted up fine after that. If usb is backwards you'll see >3V on the d+/d- lines which at first we thought short or bad connector etc etc. Luckily its a thru hole part so we just installed it on the other side of the board and all good.

    I cut down a 10mmx10mm8mm heatsink on the bandsaw and that seemed to work fine too.

    Updated to the latest OpenWRT build and flashed it with sysupgrade.

    sysupgrade -v /tmp/openwrt-ramips-rt305x-vocore-squashfs-sysupgrade.bin

    luci didn't install for some reason i haven't looked into yet, even though i have it in the feed so

    opkg update
    opkg install luci

    after ssh/telneting into the vocore.

    So far so good. Should be an interesting build for people, and for us an easy build so we can actually go to the conference this year. Wifi + Two ethernet ports ( default same port)

    The other badge we've decided to drop the M74VHC1GT125DF2G in favour of a different 3v>5v converter, kris built three boards and one worked, the other two the fault lay in that chip, it is tiny and its a challenge to hand solder. I will make the pads a tad bigger for handwork but kris is an expert in soldering and if she had issues, the attendees definitely will.

    Haven't decided what to use instead yet, and i'll do it in parallel to the 125 since last minute board changes are never fun.

    The PSOC4 is amazing, when i was programming the chips with the 3.3v programmer the leds all started working (even blue) which is crazy, they were about 2.85V!. The PSOC4 can go to down to about 1.5V before it gives up. for a 5.5V top limit, it's hard to beat.

    Also we tested not having cap's per LED since its 22 extra caps to solder in, everything we've ever seen has that cap but it worked fine and checking with the scope the power and signal were just fine. the 5V to 3.3V VREG just needed a 450nF cap to smooth out the signal to the LEDs.

    We also did a test of the daisy chaining of the boards, and that worked. We've built a number of LED boards with daisy chain capabilities but none of them we've actually tried it on.

    Just need to add sponsor artwork (thanks HAD!) and get the boards in for final manufacturing

    We're also doing a hebocon at L1 next month.

    Ordered an additional 200 CR123A batteries, 300 battery holders, microsd card holders, mini usb connectors and heatsinks. Just need to track down another logic level converter that is fast enough, not too big, won't break the budge and is easier to solder.

    I'm using the same jumper + two pins for the on/off switch again, and there is a diode to protect against improper battery insertion CR123A's are no joke.

    The ESP8266 works, and they can talk to each other and the other badge, not sure where we'll go with that. I'm usually so busy getting the hardware ready i don't get time to code up awesome stuff for people to hack on. But I put all the basics in there, light patterns and code to talk to the wifi , the other is busybox+openwrt.

    This badge has more processing power than last years , but only in some ways. Since the last had cpu+fpga+asic. Much much less parts this time ( since we're using a prebuilt cpu module )

    The Ws2812b's have some interesting failures, usually an internal wire just comes loose and you can often put a little pressure in the front and it'll pop on but can only maybe be fixed by being super lucky and heating it, more likely it'll kill it so dump it. The other one is the data line gets shorted or something and it upsets the whole chain, so you get random colours on the other LEDs.

  • eagle stuff, derp stuff ,vocore

    charliex03/04/2015 at 02:57 0 comments

    I've been recreating the vocore dock and vocore schematic since as in a lot of "open source" projects people often only give gerbers and pdf schematics, i realise why that is , but if your product is meant to interface to something else its nice to have the board available in a format you can actually use in a PCB layout tool. they're on my github and the NSL 032 svn. I Also mapped out the BGA part , since i couldnt find a bsdl for the rt5350f so did it the hard way.

    anyway i started up the second badge, can only have two ethernets because the pins to the BGA aren't broken out, so that's a shame, also wondering why the phy ether0 leds aren't on the led's from the rt5350 pins.

    did a test cutout on single sided and then after it was done, thought hmm i forgot to do the drills, then for some reason eagle/my pcb mills software is no longer importing the drills properly so i just said screw it and made sure they lined up, i'll put the board back when i figure out what happened in the eagle -> gerber -> mill software ... only takes a few minutes to cut outy a board , and i have these really nice single sided pcb blanks from all electronics.

    for entirely no reason, some lowres closeup pictures of the board. sans holes,, which would be entirely useful right now.

    ok so once i figure out whats going wrong in the excellon i'll drill these out, and mount the board with the 1.27mm headers. (note to self add teardrops )

    the plan is two ethernet ports, wifi , usb host, uart ( with pads for a dare i say it, ft232r ) and break out the other pins and we're cooking with gas,,

  • ESP8266 added and working

    charliex02/08/2015 at 01:38 0 comments

    changed the pin since the original Xmas lights shared an SWD pin, turned on the WiFi chatter in the psoc code and streamed UDP traffic to the board. works great.!

    The esp8266 as i noted before is the wrong orientation (derp), however you can attach it to the back instead.

    so just one last step in figuring out the best way to handle the two 3V CR123As and we should be done for this version of it.

  • Eagle notes

    charliex02/07/2015 at 23:58 0 comments

    I've been converting more of the PADS layout to eagle, and one of the things that happened was that the layers reversed, i wanted the top side on layer 1, Surprisingly easy to do i edited the XML and changed all layer="1" to layer="16" and layer="16" to layer="1" and that was it. there might be an easier way to do it, but probably not as fast.

    exported all the parts to a LBR with exp-project-lbr.ulp and replaced the existing ones in the BRD, next step would be adding the schematic for those parts. if only people would release both files for the EDA package, and not as seems typical a PDF.

    Of course one day CadSoft will add a flip view to the board, right ?

  • VoCore side

    charliex02/07/2015 at 20:09 0 comments

    We decided to go with the VoCore as the base. Olimex had promised a board by January to compare, but they just stopped responding to emails, and its February so time ran out, i've been using the VoCore for a few months now.

    I converted the PAD boards to Eagle and put them in github.

View all 10 project logs

Enjoy this project?



Daniel S. wrote 04/29/2015 at 07:08 point

very excited about this. I love ws2812s like hippies live acid, and I've been looking for an excuse to dive into the esp8266. gotta get my toolchain ready, never worked with the cypress psocs before. 

  Are you sure? yes | no

charliex wrote 04/30/2015 at 04:07 point

yep ! i'll have to dig and see if theres alt toolchains as well

  Are you sure? yes | no

Mike Szczys wrote 04/24/2015 at 18:28 point

Hey @charliex, is there a schematic for the blink ring badge? I want to plan some hardware hacks for it. I also need to start thinking about how to abuse that ESP8266 module ;-)

  Are you sure? yes | no

Mike Szczys wrote 04/24/2015 at 18:33 point

Oh hey, I think i found it:

How are these reprogrammed? I haven't worked with this chipset before.

 Do you use PSoC Creator?

  Are you sure? yes | no

charliex wrote 04/24/2015 at 18:53 point

yessir, its in the 032 svn, i just added a link.

yep psoc creator, you can use the UART snap off of the $4 boards i was passing around to program it with the UART bootloader in psoccreator.

or a cypress miniprog. if you want one ahead of time, email me an address and i'll send you a prototype.

  Are you sure? yes | no

Mike Szczys wrote 04/24/2015 at 19:11 point

thanks for the offer. I need to figure out how to run this in Linux and I'll be fine with the boot loader method.

  Are you sure? yes | no

charliex wrote 04/24/2015 at 19:13 point

come to the dark side...we have cookies. you going to be at the next event in pasadena i can bring one along too

  Are you sure? yes | no

Mike Szczys wrote 04/24/2015 at 19:16 point

unfortunately that one I can't make. Three out of four consecutive weekends of hackathons is all I can survive ;-)

  Are you sure? yes | no

Jasmine Brackett wrote 04/24/2015 at 20:17 point

I'd love to see them though!

  Are you sure? yes | no

charliex wrote 04/24/2015 at 21:28 point

ok i'll bring a couple by.

  Are you sure? yes | no

Jasmine Brackett wrote 04/24/2015 at 21:30 point

I'm sure @Ben Delarre would love one. 

  Are you sure? yes | no

charliex wrote 04/24/2015 at 22:10 point

you mean you don't! ;)

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates