newsletters:2024-10
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
newsletters:2024-10 [2024/10/31 06:22] – [RFID localization] osnr | newsletters:2024-10 [2024/10/31 10:04] (current) – [System improvements] osnr | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== October 2024 newsletter | + | ====== October 2024 newsletter ====== |
(Our next Folk open house is on **[[https:// | (Our next Folk open house is on **[[https:// | ||
Line 17: | Line 17: | ||
* {{: | * {{: | ||
* Some issues with the recording, but here's the video: | * Some issues with the recording, but here's the video: | ||
- | * [[https:// | + | * [[https:// |
* Omar [[https:// | * Omar [[https:// | ||
+ | * [[https:// | ||
==== Applications and demos ==== | ==== Applications and demos ==== | ||
- | * [[https:// | + | * [[https:// |
+ | * [[https:// | ||
+ | * He ended up making 8 programs: " | ||
==== Desksaver ==== | ==== Desksaver ==== | ||
Line 32: | Line 35: | ||
{{: | {{: | ||
- | ==== System | + | ==== Gadget/ |
- | Andrés and Omar have been showing the gadget a lot lately, both at outside presentations and at open houses, so we' | + | Andrés and Omar have been showing the gadget a lot lately, both at outside presentations and at open houses, so Omar has made a lot of small gadget-related fixes. |
- | (these all apply to the system more generally -- so the gadget is paying off for the normal ceiling systems as well -- but have been particularly acute or frequent with the gadget, because it has more tags at the fringe, it moves more, it has less RAM, etc) | + | These all come together to make the gadget feel much more like the computational flashlight we want it to be: |
+ | |||
+ | {{youtube> | ||
+ | |||
+ | |||
+ | (these | ||
* [[https:// | * [[https:// | ||
- | * Omar: I guess that we were just blowing out the stack with tens of thousands of iterations (and associated stack-allocated matrices) when tags are too off-camera since it just may never converge in that case | + | * I guess that we were just blowing out the stack with tens of thousands of iterations (and associated stack-allocated matrices) when tags are too off-camera since it just may never converge in that case |
* (normally you can get pretty good in 10-20 iterations, in my experience, so we could maybe reduce this cap further) | * (normally you can get pretty good in 10-20 iterations, in my experience, so we could maybe reduce this cap further) | ||
* evaluator: Did some heap profiling and [[https:// | * evaluator: Did some heap profiling and [[https:// | ||
- | * (at first heap profiled with [[https:// | + | * (at first heap profiled with [[https:// |
+ | * (and then finally just looked at the memory map in /proc and verified that the heap is the problem) | ||
+ | * {{newsletters: | ||
+ | * (then dumped the heap with gdb and looked at it in a hex editor and saw a lot of strings repeated, leading to the fix below) | ||
* Mostly just fixes in evaluator.tcl -- Omar had been lazy and was allocating new strings in various places that should just be allocated once and reused (for stuff like '':: | * Mostly just fixes in evaluator.tcl -- Omar had been lazy and was allocating new strings in various places that should just be allocated once and reused (for stuff like '':: | ||
* It still leaks, but way slower (the 2GB Pi 5 used to crash in 12 minutes or so, now //at least// 20-30 minutes uptime, could be much more). More to do here! | * It still leaks, but way slower (the 2GB Pi 5 used to crash in 12 minutes or so, now //at least// 20-30 minutes uptime, could be much more). More to do here! | ||
- | === camera-rpi improvements === | + | === Gadget-specific |
These apply only to the gadget camera (or to any other system that uses Pi cameras instead of USB webcams) -- they' | These apply only to the gadget camera (or to any other system that uses Pi cameras instead of USB webcams) -- they' | ||
* Massively sped up gadget camera (5fps-> | * Massively sped up gadget camera (5fps-> | ||
- | * We were literally spending 200ms each frame converting the RGB camera image to grayscale :-) | + | |
- | * Hack to fix dequeue timeout crash | + | |
+ | * {{: | ||
+ | * Hack to fix dequeue timeout crash (which sometimes makes camera stop working after a while): [[https:// | ||
+ | * {{newsletters: | ||
* Noticed that the Pi wide-angle camera has focus control, unlike the normal camera module, and we hadn't set the focus, so it was at [[https:// | * Noticed that the Pi wide-angle camera has focus control, unlike the normal camera module, and we hadn't set the focus, so it was at [[https:// | ||
+ | == EDID fix == | ||
+ | |||
+ | The combination of the Pi 5, ribbon-type micro-HDMI to HDMI cable, and pico projector (Ultimems HD305D1-C1) seems to sometimes (maybe only at the Linux fbcon level? outside when Folk controls Vulkan) produce garbled output. I figured out this is because the EDID data doesn' | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | == Vulkan fix == | ||
+ | |||
+ | Sometimes you only see llvmpipe (the not-useful software renderer) and not the actual Pi 5 GPU on '' | ||
==== Cat printer printing ==== | ==== Cat printer printing ==== | ||
- | Omar: I wanted printing that we could take on the go (to the SPC demo night and abroad), so I revived [[https:// | + | Omar: I wanted printing that we could take on the go (to the SPC demo night and abroad), so I revived [[https:// |
- | (only the layout changes | + | The receipts |
+ | {{: | ||
- | Folk sees the cat printer as just another CUPS printer (that you manually configure to use indexcard | + | (only the print layout |
- | {{:newsletters:pasted: | + | Folk sees the cat printer as just another CUPS printer (that you manually configure to use indexcard layout in setup.folk); |
- | {{: | + | {{: |
+ | {{: | ||
+ | |||
+ | === Cat printer cards === | ||
+ | |||
+ | Finally, I made cards to scan for and connect the printer, so you don't need a laptop to do it (in theory): | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Here's the " | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Its source code: | ||
+ | |||
+ | < | ||
+ | Wish $this is labelled [exec curl -s \ | ||
+ | -X POST http:// | ||
+ | </ | ||
Line 74: | Line 116: | ||
Omar: I've been picking this up again in October because I want to get it to work. | Omar: I've been picking this up again in October because I want to get it to work. | ||
- | And I have good news: I fixed the bug that had me stuck in [[https:// | + | And I have good news: I fixed the bug that had me stuck in [[https:// |
{{: | {{: | ||
Line 86: | Line 128: | ||
We need to build the OOB logic again (what samples to transmit and receive), which isn't too bad since it's much less intelligent than IB and not on a deadline, it's mostly just bookkeeping and hopping, and we also need all the server and synchronization stuff to boot OOB, timesync OOB with IB, feed the samples to the PC. | We need to build the OOB logic again (what samples to transmit and receive), which isn't too bad since it's much less intelligent than IB and not on a deadline, it's mostly just bookkeeping and hopping, and we also need all the server and synchronization stuff to boot OOB, timesync OOB with IB, feed the samples to the PC. | ||
- | Anyway, with the IB RFID reader working, I feel much more optimistic that we can bring this all together and release it in some useful form. | + | Anyway, with the IB RFID reader working, I feel optimistic that we can bring this all together and release it in some useful form. |
=== Unreliability of IB reader === | === Unreliability of IB reader === | ||
- | it's a little finicky | + | One issue has been that reading the tags is finicky (sometimes you have to move it, or it doesn't work as well on my home system, etc) because the new fast decoder is so much less robust. (maybe continuous reading instead of one-round will help with this once we get it?) |
+ | |||
+ | (the reader is live & on a deadline now, so it' | ||
+ | |||
+ | How to threshold something like this? So much stuff that's in the middle even on visual inspection. | ||
- | How to threshold this? | + | {{: |
- | {{: | + | You often get read failures when the tag responses are sketchy like that right now. |
==== Friends and outreach ==== | ==== Friends and outreach ==== | ||
Line 117: | Line 163: | ||
==== Some demo lessons ==== | ==== Some demo lessons ==== | ||
- | Hard-won experience from what things we needed (& what things broke down) at mobile demos over the last couple of months: | + | Hard-won experience from what things we needed (& what things broke down) (and what questions we got) at mobile demos over the last couple of months: |
(at Hex House or at home, we have a little more scope to just restart things, we have laptops and other tools around, the Wi-Fi is known-good, etc, so these problems are not as acute) | (at Hex House or at home, we have a little more scope to just restart things, we have laptops and other tools around, the Wi-Fi is known-good, etc, so these problems are not as acute) | ||
- | * Grayed-out | + | * Sometimes |
- | * Calibration gets knocked around, | + | * Calibration gets knocked around |
- | * Solution (not implemented yet): Need to make camera attachment to gadget more rigid | + | * Solution |
- | * Another solution: Need to make calibration fast and reliable on the go | + | * Solution 1: make camera attachment to gadget more rigid; put the threaded holes on the gadget chassis instead of on the separate panel |
+ | * Solution A: make calibration fast and reliable on the go | ||
* or have a fast, quick calibration refinement we can do, rather than the full calibration | * or have a fast, quick calibration refinement we can do, rather than the full calibration | ||
- | * Printer status not clear | + | * Printer status not clear, pressing Ctrl-P can be uncertain |
- | * Solution 1: Printer control cards | + | * Solution 1 (done): Printer control cards |
- | * Wi-Fi is questionable | + | * Solution 2: Ambiently show printer status, print job status once you hit Ctrl-P? |
- | * TODO: EDID fix | + | * Wi-Fi is questionable |
+ | * Solution 1: use Bluetooth Low Energy | ||
+ | * Solution 2 (achieved): carry portable wireless USB keyboard that can always go to a Linux terminal, enter Wi-Fi options, do other stuff | ||
+ | * Solution 3: some kind of wired serial terminal that you can drive from laptop? | ||
+ | * Solution 4: run an ad-hoc Wi-Fi always? haven' | ||
* Reliance on power outlets is very annoying -- what if you have a meeting at a cafe? what if you just want to carry the thing around the warehouse and point it at walls? | * Reliance on power outlets is very annoying -- what if you have a meeting at a cafe? what if you just want to carry the thing around the warehouse and point it at walls? | ||
* Solution: Waveshare makes a [[https:// | * Solution: Waveshare makes a [[https:// | ||
* {{: | * {{: | ||
* (maybe do a respin with a built-in battery hat? unit would get significantly bigger) | * (maybe do a respin with a built-in battery hat? unit would get significantly bigger) | ||
+ | * does this break the projector? | ||
* Calibration not reliable? | * Calibration not reliable? | ||
- | | + | |
+ | * -> "My arms kept getting in the way. I think more than occlusion, the tag masking wasn't working great for some of the programs I had out and that was getting misinterpreted as being an occlusion problem." | ||
+ | * -> "yeah, if you're leaning hard on tag masking I think you need 1mm accuracy -- often I would say that tweaking exposure is the key thing (and there' | ||
+ | * Daniel: | ||
* Recalibrate card | * Recalibrate card | ||
- | * Display camera frame on table card (to help adjust exposure) | + | * Display camera frame on table card (to help adjust exposure |
- | Escape | + | Daniel' |
===== What we'll be up to in November ===== | ===== What we'll be up to in November ===== | ||
Line 146: | Line 201: | ||
* New gadget design with built-in battery? with support for the off-the-shelf AnyBeam? maybe trigger button finally? second camera? | * New gadget design with built-in battery? with support for the off-the-shelf AnyBeam? maybe trigger button finally? second camera? | ||
* hope: we can actually make it turnkey to manufacture or sell or buy one, not be limited by imports | * hope: we can actually make it turnkey to manufacture or sell or buy one, not be limited by imports | ||
- | * Get RFID | + | * Get RFID out-of-band radio working, start localizing |
- | * New evaluator | + | * New evaluator |
- | * 3d calibration exposure | + | * Improvements to 3D calibration |
- | * Write in fields using 3d calibration | + | * Write in fields using the high-accuracy 3D calibration |
+ | * First example: geometry setter? | ||
* Upgrade documentation | * Upgrade documentation | ||
* Create printable booklets and exercises to interactively teach people Folk programming | * Create printable booklets and exercises to interactively teach people Folk programming |
newsletters/2024-10.1730355740.txt.gz · Last modified: 2024/10/31 06:22 by osnr