Ytterligare ett år håller på att lida mot sitt slut, och vilket år det har varit! Vi har hunnit med massor av roliga saker och träffat intressanta personer.
Vi har bland annat träffat forskare och ingenjörer vid IRF i Kiruna. Vi har under våren arbetat intensivt mot satta deadlines för att se om vår “organisation” kan leverera under stor tidspress, det kan vi! Och nu under december månad fick vi möjligheten att hjälpa till i Musikhjälpens årliga insamling som i år samlade in 74 miljoner!!! till arbeten för att motverka barnsexhandel. Vår egen auktion drog in över 30 000 kr!
Nu ser teamet fram emot en välförtjänt semester över julhelgen och nyår.
Vi ses i januari!
God Jul och ett Gott Nytt År!
//Yet another year is looming to its end, and what a year it has been! We have had tons of fun and meet amazing people.
We have, as an example, meet up with scientists and engineers at IRF in Kiruna. During the spring we stress tested our organization and worked towards strict deadlines to see if we can deliver top quality under heavy time-press, and we did! We have also been helping Musikhjälpen with there annual fundraising. This years theme was to raise awareness and money to battle child trafficking. The total amount of donations accumulated to 74 million sek! And our own auction helped raise over 30 000 sek!
The team is now looking forward to an well deserved vacation and we will be back in full swing in January.
Merry Christmas and a Happy New Year!//
Här är ett urklipp från Musikhjälpen 2017 då vi gästade glasburen (det är på svenska).
//A cutout from the show Musikhjälpen 2017 when we visited the glas box (it is in Swedish).//
Likt förra året så medverkar vi i Musikhjälpen 2017! Till förmån för utsatta barn så auktionerar vi ut en möjlighet att få ett meddelande inetsat på ett kretskort i vårat instrument, som är tänkt att landa på månens yta! Gå in och buda på Tradera-auktionen genom att klicka på denna länk.
Vi kommer även att medverka i själva programmet Musikhjälpen klockan ett imorgon kväll dvs Fredag kväll dvs Lördag morgon 01:00. Vi kommer att berätta om vårat projekt samt såklart uppmuntra fler att gå in och buda på auktionen 🙂
Vi höres då!
It has been a hectic autumn with little time for updates, about time for one!
First of all we paid IRF a second visit, for vibration testing. This turned up one problem, an M4 nut coming slightly lose. To rectify this we’ve invested in torque wrenches and are working on an assembly manual with specified torques for every screw and nut. For the curious, the work-in-progress manual is up on our GitHub account here.
The second bit of news is that we have a master’s thesis student working with us, Clayton Forssén. His job at the moment is to write LabView code parsing output from our prototype instrument. The goal is to get a series of measurements done in our vacuum chamber with the new XYZ E-field applicating cube (a miniaturization of the capacitor plate plywood cube we have used in earlier tests).
The third news is that our deadline has been pushed at least another year into the future. This gives us some much-needed time to fine-tune the design, code, documentation and so on.
That’s all for this update. As always, keep watching this space for more interesting stuff 😎
This is a follow-up on the previous post. The central theme this time is “noise”.
After posting the last post in various places SA2KNG suggested “8bit float” on IRC, to which I immediately replied “µ-law”. µ-law and A-law are companding techniques defined in G.711 and primarily used in telephony. A-law is especially close to a binary floating point representation, including a subnormal range, but with no way to represent +/-infinity or NaN (not-a-number). Only 4 bits for mantissa is a bit restrictive however. A similar idea is to use 16-bit half-precision floats. This would give the same kind of compression ratio as the codec in the previous post, but with much simpler logic. The cost of this is some loss of precision. This isn’t a huge deal however, since our input noise is high enough to mask this effect.
The dominating form of electrical noise in our system is the Johnson-Nyquist noise from the 100 MΩ feedback resistors in our transimpedance amplifiers, which at room temperature contribute 1.3 µV/√Hz. Our analog-to-digital converter (ADS131A04) is configured with OSR=512 and gain=16, so the noise seen after the ADS131’s internal amplifier is √((1.3*16*√1800)² + 77²) = 886 µVrms (the 77 µVrms figure comes from the datasheet). With Vref=2.442 V this corresponds to an effective number of bits (ENOB) of 10.9. Hence an “seee mmmm mmmm mmmm” type of floating point representation should work well. It also leaves enough dynamic range for measuring very weak signals. The best of both worlds (:
I find it quite good to write these kinds of posts since it allows me to sanity-check my reasoning around things. Noise is an especially tricky subject with lots of traps. In writing this I discovered one error in my notes where I had not accounted for the J-N noise being amplified by the ADS131’s internal PGA. This helped explain the noise levels seen in some measurements.
No posts in a while, time for a technical writeup!
I (Tomas) did a small experiment around compressing 24-bit sample data today, in an effort to try to get more throughput out of the 115200 baud RS-485 connection we’ll have in our lunar electrostatic instrument.
Our hardware currently delivers three channels of 24-bit data sampled at around 1800 samples/s. With an overhead equivalent to about one channel’s worth of data this comes to 1800 * 4 * 24 = 172800 bit/s, more than our poor RS-485 bus can handle. The final version of our instrument will have as many as nine channels active simultaneously, which means spending 4-5x more time downloading than actually capturing data!
Since we want to get as much science out of our instrument as possible, I spent some time trying to investigate ways to increase throughput. Simplicity is key since we’re running on a 7.37 MHz 8-bit microcontroller.
The idea for a codec for this is based on two observations:
The combination of these two means that each sample can be “trimmed”, lopping off both most-significant and least-significant bits in a lossless process. An experiment with a 1027 B block of actual instrument data (7 B header + 1020 B data) yielded these results:
|lz4 v2||1018||data transposed prior to compression (least significant bytes first)|
|this codec||762||fuzzed with american fuzzy lop (afl)|
With the codec the samples compress to 16 bits each (from 24), which with overhead should result in a throughput increase of 34%. Not super great, but potentially useful. afl was quite useful for discovering bugs in the implementation. The other options performed worse (especially bzip2), and will most definitely not be worth the cycles.
TL;DR: a simple lossless codec can often work much better than a general-purpose compressor :]
RE: the project overall, we’re very busy getting our current prototype ready to send to IRF Kiruna. Hence the lack of updates lately.
See you next time!