Tweets
Replying to @josecastillo
Shopification complete! And just in time for the weekend. Up to thirty of you can buy this gadget right now and it’ll ship out first thing tomorrow! Also while you’re there you can pick up an LCD FeatherWing if you want to hack along on the gossamer clock. https://shop.oddlyspecificobjects.com/products/button-and-buzzer-featherwing-kit
(original)
Replying to @VE7FIM
Oh I almost forgot about that! Yeah, DHL was going to be like $50, but instead I intentionally chose the slowest, cheapest option since I knew I wouldn’t get to this one for a few weeks.
(original)
Replying to @josecastillo
(also side note would you believe these were shot with the new iPhone? like, I used to use a DSLR with a macro lens for this, and now my product shot powers are just always on me)
(original)
Replying to @josecastillo
Blow out them highlights.
(original)
Replying to @josecastillo
Overcast day + stack of white printer paper = free sky-scale softbox for product photography.
(original)
Replying to @josecastillo
OKAY! Shopification underway! You can technically buy this right very now, tho I do want to go outside and shoot a photo of the kit in its antistatic bag; I don’t want to give folks the idea that it comes fully assembled, because it doesn’t. https://shop.oddlyspecificobjects.com/products/button-and-buzzer-featherwing-kit
(original)
Replying to @josecastillo
so now I guess I need to do e-commerce stuff. to the Shopify!
(original)
Replying to @josecastillo
if I round my COGS up to $2 (accounting if nothing else for wear and tear on the heat sealer) I’d get 2*2*2 = $8. I’m thinking $8.95 makes sense:
• competitive analysis: it’s $4 more than a proto wing, and you get other stuff
• wholesale price: $5 nets me $3 and a retailer $4(original)
Replying to @josecastillo
the other piece is wholesale. I want to set a price such that, if someone like Adafruit wanted to carry the product, I could sell it in bulk to them for less than retail, so they can make margin too. @pencerw always advised me to take COGS and double it twice as a guideline.
(original)
Replying to @josecastillo
next I want to look at the landscape of what’s out there. Adafruit sells a protoboard wing for $4.95, which is what you’d be buying instead; then you’d be wiring buttons to it and burning yourself. I sense there’s a value add to having a PCB and all these parts in a bag.
(original)
Replying to @josecastillo
first off this doesn’t account for the pink antistatic bag (10¢) or the bubble mailer they’re going to be sent in (50¢). My time? Equipment? We’ll work on that later. For now let’s say I can send you one of these and it’ll cost me $1.50 (you pay postage). that’s one part of this.
(original)
Replying to @josecastillo
things like this next thing, the part of my TED talk where I sense folks are going to yell at me: pricing the gadget. Let’s look at the financials of this production run. The parts were cheap; all told the COGS for this kit is under a buck. There are of course other expenses tho:
(original)
Replying to @josecastillo
…and increases the number of finished gadgets I have on hand! So I have 30 fewer pin headers, and 90 fewer buttons… but I have 30 more FeatherWing kits, and NOW I can do stuff with them.
(original)
Replying to @josecastillo
All these parts in inventory can be used for different things. Like, today I’m using these pin header strips in Button / Buzzer kits, but in the past they’ve also gone into LCD FeatherWing kits. Every production order deducts the appropriate number of each part from inventory…
(original)
Replying to @josecastillo
This is where Production Orders come in. Back in Manager, I’ve created a production order that transforms 210 parts from the parts bin into 30 finished gadgets. This is actually a fun moment, and I’m going to dwell on it for a minute…
(original)
Replying to @josecastillo
30 kits! They exist, they are real, they have been made. So now we have them, right? Well, not exactly. From my accounting and inventory system’s perspective, they’re still parts in a box full of bags. We need to transform them into a new inventory item.
(original)
Replying to @josecastillo
One down! (My heat sealer setting was a bit very on this one, but the rest will be cleaner)
(original)
Replying to @josecastillo
random side note: the Swiss Army knife really is the ideal every day carry item. I don’t have scissors at the office except oh wait, I do have scissors at the office!
(original)
Replying to @josecastillo
Thirty boards? Thirty anti-static bags. And baby heat sealer (doo doo doo).
(original)
Replying to @josecastillo
Anyway! Now we have parts. This next step is going to take a minute: I’m going to kit these parts. Every Button and Buzzer FeatherWing is going to need a board, 3 square buttons, 1 buzzer, a reset button and a strip of pin header. i should make these kits so I can sell these kits
(original)
Replying to @tablatronix
it’s a piezo buzzer, capacitive load, works fine!
(original)
Replying to @josecastillo
in addition to matching up with the transaction in my bank account and business expenses for the year, it manifests on my “Inventory On Hand” report as stuff I have available for making stuff. here you can see all the button-oriented things I have on hand.
(original)
Replying to @josecastillo
ANYWAY. Step 1: we need some parts. For this one I ordered from LCSC, and before we show off the bag of parts, we have to pay for them and account for them. Earlier this month I ordered some stuff for this and the Open Book, and entered them into my accounting software, Manager.
(original)
Replying to @josecastillo
It does have one trick up its sleeve: a solder jumper that lets you connect button A to pin A0, which happens to be (IIRC) the only external wake pin on Feather M4 boards. This lets the wing wake your CircuitPython sketches from Deep Sleep.
(original)
Replying to @josecastillo
but first: what is it? It’s an extremely simple kit that simplifies something I’m always doing with a protoboard FeatherWing: getting some simple button inputs. It connects three buttons to pins 5, 6 and 9, and a buzzer to pins 10 and 11. That’s it. Well, almost it…
(original)
Friday afternoon project: let’s launch a product. Specifically, this board at the bottom: the Button and Buzzer FeatherWing. In this thread I’ll go through all the logistics, production and accounting involved, and hopefully by the end you’ll be able to buy one yourself. 🧵 1/?
(original)
Replying to @dcelectr, @fast_code_r_us and @adafruit
like, I have an on/off switch on my LCD Wing tester (Feather M0 Basic with a 400 mAh battery); since July I haven’t charged it, and it’s always been ready to go. Back of napkin math suggests 7 or 8 months with enable pulled low; feels like a decent tradeoff for keeping it simple.
(original)
Replying to @dcelectr, @fast_code_r_us and @adafruit
huh what feather is this? I’ve always seen a 100K resistor there, so I’d expect to see 42 µA thru EN and then a bit more through the VBAT divider. Testing with an Adalogger here on my desk I’m seeing 72 µA with EN low, which to my mind is a totally adequate number for most folks.
(original)
Replying to @mattk
I had not been planning to, but for a different reason: lack of native USB. The “ease of use” factor is greatly improved by being able to flash over USB with the UF2 (or in SAMD11’s case, DFU) bootloader, which is where my head is at for this project.
(original)
Replying to @josecastillo
update: not asleep, but the EIC works on all targets now. This is the kind of thing I’m talking about: the SAM D calls its control register “CTRL”, but the L uses “CTRLA”. Or stuff like how you get a clock to the thing. Subtle differences, now papered over.https://github.com/joeycastillo/gossamer/commit/2da7c44542f8a55b3849c66e23efabdf8634d362
(original)
It’s a rather motley crew of gadgets, running on (clockwise from clock) SAM D21, D11, L22 and L21 microcontrollers. But here on night two, they’re all running firmware based on the new gossamer framework — and it only gets more powerful from here. https://github.com/joeycastillo/gossamer
(original)
Replying to @RealTimeKodi
they say cherenkov blue is very soothing
(original)
Replying to @josecastillo
actually, scratch that. I should probably get the RTC and EIC compiling for all my targets before I add anything new. But maybe I should sleep on it first; I’ve been going too hard the past few days, and I do have all morning free tomorrow before I take a much-needed weekend off.
(original)
Replying to @josecastillo
straight to blinky! So, so far I have one sketch compiling for four chips using two different bootloaders, with nothing more than a make && make install each time. This feels like a good start. Next up, I’d like to get from blinky to beepy with a PWM peripheral.
(original)
Replying to @josecastillo
actual, sincere life pro tip: if you put the documentation on your circuit board, you’ll never be confused when it comes time to do stuff with it.
(original)
Replying to @josecastillo
oh mega-duh: I don’t need to find my one SAM L22 feather prototype. the Sensor Watch uses a SAM L22. And I still have a couple of blue Special Edition boards on hand.
(original)
Replying to @josecastillo
next up: SAM L22.
(original)
Replying to @josecastillo
blinky!
(original)
Replying to @josecastillo
well that was a freebie. admittedly had to #ifdef out both the RTC and the EIC, but I’ll get them back; the main thing was dealing with a different register to fetch CPU speed. https://github.com/joeycastillo/gossamer/commit/d1a9b90305d2bd2f057e4532107da5aeab668e54
(original)
Replying to @josecastillo
side note, life pro tip: instead of keeping a lab notebook, you can live-tweet the documentation of what you were working on, and find it later by keeping a mental index of how incredulous you were about it when it happened.
(original)
gossamer update: building for SAM D11 and the external interrupt controller works! dealing with a frustrating hang in the RTC though. Current plan: ignore it (lol) and move on to the SAM L21. I want to at least get to blinky on all four targets before I spend time on peripherals.
(original)
RT @JenMsft: “Do you want to hop on a quick call about this?”
N
O
O
o
o
o
o
。
。
.
.
.(original)
Replying to @fast_code_r_us and @adafruit
Doesn’t the enable pin mostly address that? On a Feather with a prototyping area, an on-off switch is quick to add, and if designing a wing for a project, I’ll often add a footprint for one. It turns off the device whether on battery or USB, but that seems like what you’d want…
(original)
Replying to @theavalkyrie
Haha for Sensor Watch I did, but using the ASF library, which isn’t ideal; I’m trying to avoid bringing into this new project. Anyway I’ll likely get by without a read command here for a while still :)
(original)
Replying to @josecastillo
oh, birdsite. how many UX designers do you have on staff? and your alt tag manages to blockatiel the most important information. anyway, I guess you’ll just have to trust me.
(original)
Replying to @josecastillo
quick power profile before I turn in: gossamer clock draws 59.98 µA with the modded Feather M0, the LCD Wing and the external interrupt controller running. (in theory I could cut another 660 nA by clocking the EIC at 1024 Hz instead of 32 kHz; either way, we’re doing good so far)
(original)
Replying to @josecastillo
anyway the goal is to make this kinda cross-platform: have the same code be able to work on a SAM D21 or L21 or L22… but so far everything’s hardcoded for the Feather M0. next I suppose I should make a board definition for the little SAM L21 gadget and get it building. Tomorrow.
(original)
Replying to @josecastillo
all of the above + real-time counter means that y’all: we have a clock! this is the baseline for a lot of projects: often you need a sense of the time in order to know what to do and when.
(original)
Replying to @josecastillo
EIC + I²C peripheral + Oddly Specific LCD driver means the display is working. For the record I cribbed the I²C driver entirely from @theavalkyrie’s wonderful Gemini firmware, which I learned a lot from (and is part of her gorgeous Castor & Pollux module): https://winterbloom.com/shop/castor-and-pollux
(original)
Replying to @josecastillo
pushing as I go: https://github.com/joeycastillo/gossamer
(original)