Questions for the queue: What dev environ did you guys use (Linux… tools)? What magic automation was being used when Elliot walked around with the [vintage] laptop and micro USB connection to make “keyless updates” happen on the powered and unpowered badges?
|
Hey Andy! (Fires up laptop to see if he still has that script on it.)
|
Elliot, not sure if you caught the expression on my face when you upgraded my badge Friday night, but it was along the lines of a Keanu Reeves “Woah.”
|
Hi everyone!
|
That was super fun to walk around like the badge fairy waving my magic wand. (Ignoring that the initial bug was of my own making...)
|
Hi everyone, welcome to the final Hack Chat of 2023. I'm Dan, I'll be modding today along with Dusan as we welcome Elliot Williams and Voja Antonic to talk all about the 2023 Supercon badge.
|
Looks like it is time
|
And my apologies in advance if my fingers throw a y into Voja's name -- they have a mind of their own
|
It's OK, I had to change it to Voya on the Uber account, now it's properly pronounced!
|
How do i join the chat or see the video?
|
We usually do a tell us about yourself bit here, but I don't think either Elliot or Voja need my introduction
|
Hello everyone :-)
|
Greetings everybody.
|
I didn't contribute much, just a visual design and PCB project...
|
Hi Voja, welcome aboard! Elliot, are you out there too?
|
well, a few PCB bugs too... :))
|
Hi Voja!
|
Long time...
|
@Dan, unless I am mistaken, I think this session is Text only. I'm sure others will jump in if I am wrong.
|
Bugs are important too -- they keep us humble ;-)
|
Alright! Voja's probably on his way over. I'll start up with Andy's question, b/c it was fun, and b/c there's some good last-minute hacks. :)
|
@Andy Geppert The updates were done with mpremote -- basically the script just waited for a new device node to pop up, waited a second for it to settle down, and then pushed out the fixed file. The badge automatically would reboot after the copy operation completed, so it made it easy to tell when it was done.
|
Yes, I'm in digital hardware and firmware for a long time, and I can say that a few decades ago there were much less bugs
|
but today they are a normal thing
|
Then we die and the bugs eat us. Circle of life.
|
What do you think is behind that? Maybe the ease and low cost of producing a board make it more likely to ship off a design that's not ready?
|
You’ll be remembered for the features, not the bugs!
|
So the short version is: between Al's operating system and my demo code, there was a race condition. Both were calling the garbage collector, which pauses everything until it's sure which bits of memory aren't being used and cleans them out. This includes disabling all interrupts.
|
IOW, it's all PCBWay's fault...
|
But when my code _and_ Al's OS ran the GC at the same time, which happened every so often, but totally randomly, it would never wake up.
|
Could be, but I think that it could be matter of motivation to work on a project.
|
The fix was a simple stop garbage collection in the OS command, which I think Al even wrote a nice function for. I just needed to call it. :)
|
What kind of bugs did you have to deal with on the badge PCB?
|
At that time you were a real lover of your project and you had a lot of time to make it right, you were not pushed to finish it before a deadline
|
And the beauty of MicroPython on the badge -- it's just another file. So all I had to do was copy the supercon_menu.py file over.
|
And the magic: using mpremote, which lets you copy files across the serial line.
|
So what I did was write a quick one-liner, which is _still_ in the long history scrollback on my laptop, which looped forever, looked for a new serial connection on the laptop, copied that file over, and then waited for a new serial device.
|
The main and really frustrating one was when I switched Drain and Source terminals of the power switching MOSFET
|
`while true ; do if [ -f /dev/ttyACM0 ] ; then mpremote cp supercon_menu.py : ; fi ; done`
|
It didn't show up if you didn't have both batteries and USB power ON
|
BTW, looks like Elliot is on the wrong channel. I'm trying to get his attention to move over here
|
The real magic was Tom's flashing setup, though, which did basically the same thing and let us flash all 500 badges in about three hours. Same basic loop: look for a new USB thumb drive, copy the image over ; repeat. So we just held down the boot button, plugged them in, and waited 20 secs.
|
(Which is all to say, bunch of Linux on our side.)
|
Thanks for the details and script info. That is an area I want to grow in, automation of that sort.
|
Hello!
|
Can anyone hear me?
|
Hey all, I'm detecting some weirdness with the chat. I have to reload the page manually to get messages updated. Might be the same for everyone, @Tom Nardi reports the same thing. Sorry if this becomes a problem, I'll see if I can get some help
|
Same here - I’m getting out of sync and not realizing it.
|
(Yeah, I'm having to hit refresh too.)
|
Same here
|
Hello Elliot.nmy screen for the chat is not refreshing so I have to manually refresh. I also tried it on my phone with the same result. It is only a click, once in a while.
|
I pinged @Richard Hogben, hopefully he's around
|
I'm just hitting refresh continually and it seems to keep me up to date. Workaround!
|
Same with me. I was waiting too long until I refreshed it, just to see a million messages
|
hmmmm
|
Inquiring minds want to know: will more badges be produced?
|
And here I was thinking everyone had settled down for a long winter's nap already...
|
Imagine having a conversation with someone and you have to kick him to make him all his sentences from the FIFO
|
Anyway, I saw that question about the bugs, and let the record show that Voja's solution to the MOSFET pins was awesome -- you can desolder the SOP-23 or whatever, flip it over, and glob enough solder on that it works upside-down and mirror-imaged. But needless to say, that doesn't scale to 500 badges all that well.
|
So in the end, we found a diode array that did essentially the same thing, had the same footprint, and the only cost is the (shottky) diode drop in the voltage. No worries.
|
The bigger the gob, the better the job...
|
Funny story: I went googling for MOSFETS with the pin-order reversed, and found three different forum posts with people asking the same question b/c they'd switched drain and source too. (And sadly such a MOSFET pinout doesn't exist. Market niche?n)
|
Ha I just assumed the having to refresh thing was how hackaday.io's chat was supposed to work. It's kinda been like that for a while.
|
@Jose, it's a frequent question about producing more badges for non-attenders
|
@Jose Rodriguez More badges? Yes, actually for an upcoming Hackaday Europe. They'll be basically the same thing, but re-skinned.
|
Also in the end, the Supercon attendees had a blast with the badge even after the Con.
|
maybe needs to be discussed. We never produce more badges for market, but the project is open and everybody can make it
|
I just saw [Instant Arcade] wrote a circular pacman for it. Can't wait to try that out!
|
Thought. A circuitboard shim, half-millimeter thick, that swaps the pins.
|
@fid I hope so! (BTW: was nice to meet you there!)
|
One went on eBay for >USD160 last night!
|
With castellated edges to solder to the original pads. I like it.
|
I saw Voja above saying he just did the PCB -- but a lot of the coolest touches on the badge are his. That bike chain link to connect the expansion board? (Hell, the entire expansion board.) The multiplexing that let us use so many LEDs and buttons? The whole visual design? That's all Voja's good work.
|
@Thomas Shaddack That would work!
|
Did you (or the fab house) build a test fixture to test the assembled boards?
|
@Elliot Williams was glad to see you again.
|
@Andy Geppert Ooh.
|
Bruce, Giovanni and Kino did it in the Design Lab
|
The Design Lab folks did all of the testing on them. I don't know what they had for a fixture. I wrote some quick demo code that make the screen / buttons / LED light up, and I think they ran that.
|
@Voja Antonic do you know anything more about that?
|
laptop shut down with 40% battery. Had to switch to phone.
|
@Elliot Williams I don't know much, just saw it there. But there was so much job to do that I didn't have time to discuss
|
The most famous bug in the badge history was on the SDR radio on the DEFCON. I read that they had to bore a precise hole from the bottom to cut a track under the BGA chip on the top layer. The same on 15,000 badges!
|
:) I know they had a ton of volunteers from the local hackerspaces and the Design Lab community. They could have done it all by hand!
|
@Elliot Williams Missed post again. Now after refresh i see that I answered the wrong question.
|
@Voja Antonic All good. I think we're in sync now. :)
|
Sorry about all the fuss. One last reload should fix it though.
|
Yeah, timeline seems to be restoring itself to normality
|
I'll set it sit and see if I'll need to restart the browser. Not seeing refreshes, yet.
|
never stopped seeing them here. maybe there was a self-healed delay though.
|
I will say, with this badge, we really could have used another week or so to spend on the software. The hardware was really only half the battle, and we underestimated the time it would take for the software.
|
We could have _really_ used a week to just sit around, play with the software, and write up good docs to help all y'all get started easier.
|
Last time, Voja's computer badge, we had the advantage that it was designed during COVID. And Voja already had a full-fledged instruction manual written for it.
|
So should we expect the manual for this one?
|
Was nothing quite like seeing people show up with printed and bound copies of the badge documentation that year...
|
stupid question from an indoor-dwelling housecat. what's the cultural significance of this kind of badges? i see them talked about year after year...
|
This time out, we were still writing some of what would become the main firmware demos at 10:00 AM on Thursday. :)
|
A full manual for this badge could be community driven with all of the expertise in the Alley badge hacking and sharing.
|
@Voja Antonic I'll definitely put some time in on better docs before we re-run the badge in Europe.
|
@Elliot Williams That's good! I'd be happy to help.
|
@Thomas Shaddack Oh man. Badges. For this crowd, it's basically "we put together some fun toy for everyone to hack on".
|
@Thomas Shaddack Other conferences, they're more like puzzles or challenges.
|
@Thomas Shaddack If you go back long enough, the intent was to use them as a form of authentication at large cons -- basically a ticket for couldn't forge. But for Supercon, I'd argue it has become a central theme of the event itself. I think plenty of people come just to hack on the badge with like-minded folks in the alley.
|
A long ago, DEFCON had radioactive stone as a badge...
|
@Thomas Shaddack For the Hackaday folks, we try to make them a canvas for people to play with. The trick is making something that the hardware folks and the software folks can all enjoy equally.
|
Well, it's top of the hour, but I don't want to shortchange anyone given the tech problems we had. So let's keep things going as long as Elliot and Voja want
|