Tweets
I have no idea if this is going to do what I want it to do. But my first idea didn’t work, and there was a back to school sale at the walgreens, so ¯\_(ツ)_/¯
(original)
I’ve been saying that 2020 is that moment in SimCity where you get bored of building libraries and instead unleash all the disasters at once, but I have to admit, even SimCity 2000 didn’t have literal TORNADOES MADE OF FIRE https://www.accuweather.com/en/weather-news/california-wildfire-spawns-a-rare-firenado/795904
(original)
Replying to @fast_code_r_us
Seconding the MIT license, mainly to avoid GPL’s virality (i.e. including any GPL code in a project means the whole codebase has to become GPL). MIT also allows reuse in closed source / commercial projects, but I’m fine with that because my hope is just that the code gets used :)
(original)
Replying to @kkress
Sure thing! It’s up here. The examples folder is kind of a mess — I’m going to redo them for TFT screens since that’s what most folks have on hand — but despite that and a couple other things, I’m actually pretty proud of this code :) https://github.com/joeycastillo/babel
(original)
Replying to @kmshyamsundar
Awesome! I’m joey at joeycastillo dot com
(original)
Replying to @AlexejKowalew
I tried Rust once before; alas, I didn’t have a great project to keep me working with it. It’s on my TODO list though! Probably the next programming language for me to learn :)
(original)
Replying to @kkress
I’d love to know more! I also know a part of it is that I need to be in a better IDE than Arduino for my embedded work… when I work on iOS stuff Xcode gives me lots of tools and analysis to minimize foot-shooting opportunities. I haven’t yet found my best setup for C/C++ work.
(original)
Replying to @josecastillo
spoilers: Undefined Behavior. I didn’t return a value in a method that should’ve returned one, so I think the compiler optimized away my conditionals (since it can do whatever it wants). the funny part is this code had been working since last September, apparently by accident 🙃
(original)
Wow. Just spent an embarrassing amount of time on a really dumb bug. This loop. Ran fine on one board; on another, became an infinite loop. When I added trace statements, they just taunted me with their absurdity. Felt like I was taking crazy pills. Can you spot my dumb mistake?
(original)
RT @pdp7: I was with @GKMC18 and this was exactly what happened:
“While we were running for our lives, police officers were chasing us and…(original)
Replying to @josecastillo
Creating numerous I2C buses “sounds a bit hairy to the novice or newcomer to this line of work, but… using CircuitPython, spinning up multiple I2C buses can be done in as many lines of code. That’s about as simple as a declaration for an I2C bus as you’re ever likely to see!”
(original)
Thanks to @tomfleet and @Hacksterio for this writeup about my latest (admittedly super depressing) project! I appreciate the way it talks about the process, working through mistakes and the fact that things don’t always work flawlessly at first. Also the love for #CircuitPython! https://twitter.com/Hacksterio/status/1295085221763842053
(original)
So I’ve been working a bit with the new JPEG library from @fast_code_r_us and it’s awesome! A test on the Open Book with some images by Dorothea Lange. This is before his addition of 8-bit grayscale this morning; even dithering from 6 bits to 2 for the 4-color screen looks great!
(original)
Replying to @CycleMatch
I read a doomsday scenario last month that sounds so horrifying and undemocratic that I’m convinced it’s exactly what’s going to happen in a few months. https://www.newsweek.com/how-trump-could-lose-election-still-remain-president-opinion-1513975
(original)
It is happening here. https://www.nbcnews.com/politics/2020-election/trump-says-it-could-take-months-or-years-know-election-n1236878
(original)
Replying to @mr_rythom and @Elizbethperkins
(original)
Replying to @theavalkyrie
I don’t think I ever mentioned it, but your SAM D21 ADC post was a revelation. It showed me how much I had to learn, and then explained it in a super accessible way. I know reddit nonsense is infuriating, but you’re doing amazing work and people see it even if those mods don’t :)
(original)
I’ve been excitedly following this build all afternoon. So very awesome, congrats!! 🥳 https://twitter.com/ZxSpectROM/status/1294694118669549571
(original)
Replying to @alexuk86
That was a glitch unfortunately; solder bridge gave those two displays the same address (and a scripting glitch undercounted the COVID deaths on line four. Fixed it up yesterday 🙂 (or more accurately, ☹️)
(original)
Dear every website that does this: I’m not running ad blocking software. I’m running *tracker* blocking software. I wish I could make a response banner: “It appears your website is using tracking software. What are the consequences?” because one of them is me not seeing your ads.
(original)
Replying to @Jaxter184
Seems like a very specific hammer, but it happened to hit the very specific nail I had on hand. Apparently it can also manage data input from a keypad matrix. Which I’m realizing makes it the perfect IC for implementing this:
(original)
Replying to @Jaxter184
The HT16K33 only has three address select pins, so you max out at 8 modules per bus. I considered using an I²C multiplexer (like the one linked), but since the Feather M4 had enough sercoms to go around, figured I’d keep it simple this way. https://learn.adafruit.com/adafruit-tca9548a-1-to-8-i2c-multiplexer-breakout/overview
(original)
Replying to @Bricolo81
well this was fun: it was a server side error that caused the numbers on lines 4 & 5 to match, BUT ALSO a tiny solder bridge that did the same thing for the numbers on lines 5 & 6. Cleaned up a solder jumper & squashed the bug; fixed at the top of the tech stack and the bottom :)
(original)
Replying to @Bricolo81
Oh dang, that looks like a bug in the server side script, thanks for pointing it out! This is what you get when you code while tired :/
(original)
It is happening here. https://twitter.com/mims/status/1294230884623712256
(original)
Replying to @josecastillo
Next steps: I need to 3D print some kind of enclosure, then I’m mounting it in a window facing the JMZ train to remind folks not to screw around with this virus (which is is on track to kill more people this year than AIDS). NYC beat the virus back; now we have to keep it at bay.
(original)
Replying to @josecastillo
finally the code. CircuitPython feels like a constant “well that was easy!” More I²C buses? Pick any valid pins and you can have one. Wifi? Simple and well documented. I did have to hack the segmented display driver, but hey, it’s all python; just edit it! https://gist.github.com/joeycastillo/a2ef23566188c3e1bce9268421a7794d
(original)
Replying to @josecastillo
Data is coming from a static Jekyll website I made in pandemic’s early days, http://thebigboard.cc. The planet earth picture frame I posted the other day is actually part of the critical infrastructure for this; that’s the raspberry pi with the cron job that updates the data.
(original)
Replying to @josecastillo
the featherwing is mostly just some pull-up resistors for the hilarious number of I²C buses required to pull this off. And some pin header to bring out power, ground and signals so I’m not permanently soldered to the board. wires are color coded as “whatever I could find at 3am”
(original)
Replying to @josecastillo
So, the displays. Inspired by Adafruit’s segmented display backpacks, I added more digits, pins to chain them together, and a 3.3V regulator on each module to keep a consistent supply across the grid. Confession: I mostly used the autorouter on this one 🙃 https://github.com/joeycastillo/Feather-Projects/tree/master/Totally%20Not%20Feather%20Related
(original)
Well that part was easy by comparison. Yeah, I did it: it’s a real-time scoreboard of death. I had worried that it could be seen as offensive, but it’s far less offensive than the actions of our leaders that have led to this rolling calamity. (thread, maybe; I’m pretty exhausted)
(original)
Replying to @voteblake
Each row’s color is fixed; alas I think an RGB version of this would have a crazy number more pins! but for the thing I’m displaying I have a plan where the fixed colors make sense
(original)
the thrilling conclusion! I was thrilled, anyway. Pulled an all nighter finishing up the 14-segment display display. Was gonna call it a night when all the modules were assembled; ended up going into overtime to make a featherwing to drive them all at once. Next stop: wifi.
(original)
Finally getting around to assembling my army of 14-segment displays. Had been timelapsing it; this is as far as got before my battery died.
(original)
It is happening here. https://twitter.com/therecount/status/1293896544668782592
(original)
Replying to @fast_code_r_us and @adafruit
I was briefly toying with porting over picojpeg, but ran into some challenges (mostly running out of memory). Still reading JPEGs is a definite goal.
(original)
Replying to @fast_code_r_us and @adafruit
Oh that’s awesome! At the moment the only format I’m using is an indexed 2-bit bitmap format similar to what lvgl uses (linked); four pixels per byte, 00 is black, 01 is dark gray, etc. It’s simple but it works. https://lvgl.io/tools/imageconverter
(original)
Replying to @fast_code_r_us and @adafruit
The display supports a 2-bit grayscale mode for four shades of gray, which works reasonably well for photographs, although the 300x400 resolution can be a bit limiting.
(original)
What a difference a year makes. https://twitter.com/josecastillo/status/1159847800697434112
(original)
So that first photo of the air quality monitor was just me holding the thing up to the HEPA filter’s air outlet. This is much more realistic: 24 hours, sensor on the other side of the room, 1 pixel = 10 minutes. I kind of love this UI. Inexact, yet immediately grokable.
(original)
It is happening here. https://twitter.com/scarylawyerguy/status/1291881047265882113
(original)
House just got a HEPA air filter, so of course I wanted to see how well it worked. Repurposed an old Open Book prototype + a new @adafruit air quality breakout to make a #CircuitPython air quality monitor. Steep drop in particles when turned on; good news! https://gist.github.com/joeycastillo/e70529e759756d3994640dee444d62d6
(original)
Replying to @AlexGilbertson and @ahzwawld
It’ll be a couple weeks, most likely. I want to evaluate a potentially easier-to-solder SD card slot for the next rev of the wing, and I had ordered some to evaluate, but they got lost in the mail. so I’m going to order them again (sans @USPS), and try to move as fast as I can.
(original)
RT @ProgressBar202_: 2020 is 60% complete.
(original)
So cool! Earth selfie featuring Australia on a digital picture frame, via Python and the Himawari-8 satellite. https://twitter.com/jameswood/status/1291555037852733440
(original)
Replying to @jameswood
That’s so rad!!
(original)
Replying to @josecastillo
also (4/3) because i see this could be misread: the context that he was Hasidic matters because the Hasidic community in NYC was in fact hit hard. No data exists to suggest 97% of that community had COVID-19, but I needed to mention it because it was the background to that claim.
(original)
Replying to @josecastillo
“I do this with everyone,” I said as I walked away; “You don’t have to be afraid of us,” he insisted as he did the same. I should have said “I’m not afraid of you, I’m afraid of the virus,” but I don’t know if it would have mattered. I wish I knew how to get people to care. (3/3)
(original)
Replying to @josecastillo
(context for that bit: he was a Hasidic man) “If I were to spit on you right now it would make you healthier,” he explained, which for the record is NOT how the immune system works, but i was too busy calculating the likely trajectory of his droplets to really get into that.(2/3)
(original)
Stepped away from a maskless man in a hallway today and he was NOT having it. “So you know, I have very high antibodies,” he called out. “OK,” I said, “but when I see someone with no mask on, I make room.” He refused to accept this. “97% of my community had COVID,” he said…(1/3)
(original)