home.social

#r2r — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #r2r, aggregated by home.social.

fetched live
  1. It has been a busy winter so far for me, which is why I haven't been posting a lot here. But today I'm proud to share with you the fruits of some of that labor: The Colorado Democratic Party's platform for 2026. For those unfamiliar, a platform (in the US) is a statement of values that a political party stands for, generally agreed upon by people who stand for election as representatives of the party.

    I was elected during last year's party re-org to the Platform Committee. The chair of the committee asked if I would run the subcommittees for two of the "planks" (sections) of the platform: the Democracy section, and the New Tech & AI section. It was an honor to work on both.

    I'm going to share screenshots from the New Tech & AI plank because it's relevant to the work I do here, and I think a lot of people might be interested to see this statement of values. This plank is brand new, never before covered in prior Platform documents.

    I'm also pleased to report that the whole of the Platform Committee and the roughly 1500 delegates to last weekend's statewide party Assembly voted to approve this as-is, with no additional changes, on a vote of 98.9% in favor.

    There's a lot to like, but my favorite aspect of this is that I managed to get widespread approval for use of the term #enshittification in the official platform, both from the Platform committee and the larger party leadership. Thanks @pluralistic for the inspiration. (I believe this is the first time the term has been used in any official political party platform ever.)

    The full platform is readable at coloradodems.org/platform

    #AI #datasovereignty #privacy #infosec #techequity #R2R #RightToRepair #politics #COpolitics #Boulder #Colorado #Democracy #democrats

  2. Ich möchte bitte, dass ihr mich auf dem #39c3 alle mit meinem neuen offiziellen Namen ansprecht!

    In 🦦 words: meine SOS, ein Meetup zum Thema Reparatur ist jetzt im offiziellen #bitsundbäume Habitat-Programm gelandet.

    Wenn ihr was mit #rechtaufreparatur #r2r #reparatur #repaircafe zu tun habt (oder haben möchtet) schaut gerne an Tag 2 um 17 Uhr mal vorbei!

    events.ccc.de/congress/2025/hu

  3. Hoxe botamos unha tarde ben entretida no Mercado Solidario do IES Rosalía de Castro.

    Nós participamos cun espazo de reparación colectiva, onde pasaron polas nosas mans dende reloxos de parede até mandos de playStation. Para máis celebración, foi o primeiro espazo do voluntariado do novo Banco de Reciclaxe da ETSE. De seguro que prontiño haberá máis en Compostela.

    #DereitoAReparar #RightToRepair #R2R #HackersSenFronteiras

  4. AUDIOPHILE MAN - HiFi NEWS
    HiBy RS8 II drops with DARWIN III R-2R, AdaptiveAMP, Sankofa AI tone models + I²S out. Monster spec sheet.
    Click: theaudiophileman.com/rs8-ii-da
    #HiBy #RS8II #HiFi #DAP #Audiophile #R2R #HeadFi #MusicGear

  5. Debatt i Aktuell Hållbarhet: Så kan du undvika att kasta din dator ♻️

    Många datorer kan inte uppgraderas till Windows 11. Resultatet blir att 400 miljoner fungerande datorer riskerar att kasseras – något som skapar mer än 700 miljoner kg elektronikavfall och stora koldioxidutsläpp. Det skriver @mattiasaxell vid @okfse i #AktuellHållbarhet och ger alternativ 🙌

    👇 Läs debattartikeln här:

    aktuellhallbarhet.se/opinion/d

    #cirkulärekonomi #circulareconomy #deviceneutrality #eWaste #RepairEU #R2R

  6. Wie kann das #RechtaufReparatur Wirkung entfalten? Wie kann es verbraucherfreundlich gestaltet werden?
    Darum geht’s beim online-#Fachgespräch.

    Für Einwahldaten kurze Mail an: [email protected]

    #righttorepair #r2r #Kreislaufwirtschaft #Verbraucher

  7. 📣 Attention all custom ROM users and advocates for digital rights! 📣

    Google's Play Integrity is limiting access to certain functionalities and applications for those using custom operating systems. This is a direct attack on the open-source community and a step towards further consolidating Google's monopoly in the mobile ecosystem.

    The European Commission is aware of the situation, but has deemed it a low priority: europarl.europa.eu/doceo/docum

    It's time for us to take action and show Google and the EU how much we care about this issue! 💥

    Sign the petition now to stop Google from limiting access to custom ROMs: change.org/p/stop-google-from-

    #StopGoogleMonopoly #CustomROMs #DigitalRights #OpenSource #PlayIntegrity #Google #deGoogle #privacy #right2repair #rightorepair #r2r #EU

    Let's unite and fight for our right to use and develop custom operating systems! 💪

  8. Im Dezember startet das Förderprogramm „Reparieren statt Wegwerfen“ des @bmuv zur Förderung von #ehrenamt|lichen Reparaturinitiativen. Ein wichtiger Schritt für eine Kultur des Reparierens & #Ressourcenschutz|es!

    👉 bmuv.de/pressemitteilung/bunde

    #R2R #RechtaufReparatur

  9. This is actually a collection of previous projects with the code tidied up a little and combined to show a single sketch that can be configured for either PWM, an R2R ladder or the MCP4725 I2C DAC.

    There isn’t really anything here that hasn’t been talked about before somewhere, but hopefully this can act as a single reference point for a range of direct digital synthesis techniques from now on.

    Warning! I strongly recommend using old or second hand equipment for your experiments.  I am not responsible for any damage to expensive instruments!

    These are the key Arduino tutorials for the main concepts used in this project:

    If you are new to Arduino, see the Getting Started pages.

    Parts list

    The Circuit

    There is no specific circuit dedicated to this post, but it works well with the two audio experimenter PCBs listed above, which each contain options for the following:

    • PWM audio output on either D3 or D9.
    • R2R resistor DAC (in the case of the Uno experimenter PCB).
    • MPC4725 I2C DAC.

    Alternatively, the main elements for PWM operation can be put together on a solderless breadboard as follows.

    The Code

    As already mentioned the core elements of the code have largely been met before, but the main sections are described below.

    The general theory of direct digital synthesis operation is described fully in Arduino R2R Digital Audio – Part 3 so I won’t go over that again.

    This code implements simple additive synthesis by using potentiometers to set the amplitudes for a set of sine wave harmonics. The performance of the Arduino largely limits this to being a maximum of six sine waves to be added up, but that is enough for some simple experimentation.

    The code configures the first six harmonics: fundamental (f), f*2, f*3, f*4, f*5, f*6. There are some default ranges that can be used for testing without pots:

    #define SC  32
    int sine[MAXPOTS] = {SC*2,0,0,0,0,0};
    int saw[MAXPOTS] = {SC,SC/2,SC/4,SC/8,SC/16,SC/32};
    int squ[MAXPOTS] = {SC,0,SC/2,0,SC/4,0};

    There is no way to set the fundamental frequency – it is fixed at 440Hz. Making that controllable is left as an exercise for another day! The natural options are MIDI triggering or another pot.

    The basic properties of the synthesis code are as follows:

    • The sample rate depends on the technique, but in principle it could support 4096Hz, 8192Hz, 16384Hz or 32768Hz.
    • It uses a 256 entry, 8-bit wavetable to define the basic sine wave.
    • It uses 8.8 fixed point accumulators with the top 8-bits as the index into the wave table.
    • It uses a 16-bit sample value which is scaled down as required by the audio output method.

    The general pattern used in this code is as follows:

    // Audio output specific functions:
    dacSetup ()
    dacWrite (value)
    dacScan ()

    // Generic audio functions:
    dacPlayer ()
    Call dacWrite (last calculated sample value)
    For each potentiometer:
    Update accumulator for the DDS
    Add potval * sinetable[accumulator>>8] to the total

    setup ()
    Call dacSetup ()

    loop ()
    Call dacScan ()
    Every 10 loops update the pots

    Each audio output option will implement the three functions dacSetup, dacWrite and dacScan, but not all need to be used. Conditional compilation is used to select between audio output options by defining one of PWM_OUTPUT, DAC_OUTPUT or R2R_OUTPUT.

    Here are some notes for each option.

    PWM:

    • Output scaled to 8-bits for use with PWM.
    • PWM is configured to run at 65536Hz.
    • The TIMERn_OVF_vect interrupt is used to trigger sample updating via dacPlayer().
    • All four sample rates are possible so samples are not written out on every interrupt. For example, for a sample rate of 16384Hz a sample is written out on every fourth interrupt.
    • Can support either D9 (Timer 1) or D3 (Timer 2).
    • As updates are interrupt driven, dacScan () is empty.

    R2R:

    • Uses D8-D9, D2-D7 as bits 0 to 7 for the DAC output.
    • Output scaled to 8-bits for use.
    • PORT I/O is used to write to the data lines.
    • Code takes into account the fact that D0/D1 might be in use as the UART.
    • Updates are interrupt driven using the TimerOne library, calling dacPlayer() directly.
    • As updates are interrupt driven, dacScan () is empty.

    MCP4725:

    • The I2C address for the DAC is configured by defining MCP4725ADDR. It defaults to 0x60.
    • As the DAC can’t be written to from an interrupt routine, the output is set during dacScan() so the loop() has to run as fast as possible.
    • The sample rate is set by monitoring the micros() tick (note on an Arduino the resolution is 4uS at best).
    • Uses the non-blocking I2C library and fast analog read from Mozzi.
    • Uses the MCP4725 fast write mode, which only requires two bytes to be sent to the DAC.
    • The maximum sample rate is 8192Hz and even then it runs a little slow (i.e. the 440Hz tone is flat by around a semitone).

    General comments:

    • There is an optional timing pin that is configured by defining TIMING_TEST. This is toggled in dacPlayer().
    • There is an optional fixed set of amplitudes that can be used instead of potentiometers. These are set up in setDefaultAmplitudes() when DAC_TEST is defined.
    • The maximum number of pots supported is 6. The code skips using A4/A5 as these map onto I2C if the DAC is used. The number of pots to scan (and hence sine waves to add up) can be reduced by setting NUMPOTS to a number less than MAXPOTS (which is 6).
    • If the number of pots is reduced, then the scaling factors used to calculating the totals can be adjusted by changing SC and PSC accordingly. For 6 pots/waves they are set to 32 and 4 respectively. This means that analogReads have a maximum range of 0..31 which is set by
    val = analogRead(pot) >> PSC;

    Find it on GitHub here.

    Closing Thoughts

    This has been interesting to revisit. After all my experiments this is starting to finally make some sense. It has been interesting to contrast the three output methods both in terms of their computational performance and in terms of output waveform quality.

    The photo at the start shows the R2R output of the test sine wave. The photo below is the PWM output for a potentiometer-driven saw.

    This has also prompted me to revisit my Arduino PWM Output Filter Circuit and finally work out how to properly combine a low-pass filter and potential divider and still get something approximating the filter characteristics I wanted. I feel I understand quite a bit more about what is going on now.

    Now if I could just get a bit of a handle on impedance I might actually start to feel like I know a little about what I’d be talking about….

    Kevin

    https://diyelectromusic.wordpress.com/2024/03/06/arduino-direct-digital-additive-synthesis/

    #additiveSynthesis #arduinoNano #arduinoUno #dac #dds #mcp4725 #pwm #r2r

  10. ⏰ Det här är den sista nedräkningen för initiativet #RightToRepair och vi är oroliga för att nya regler kommer att missa chansen att låsa upp den europeiska #reparationsekonomin.

    ➡ Vi behöver EU-institutionernas stöd för Europaparlamentets version av artikel 5.3!

    ♻ Dela detta inlägg och kontakta dina EU-politiker för att låta dem veta att du vill se verkliga framsteg inom #CirkulärEkonomi!

    Läs vårt offentliga uttalande: dfri.se/reparationsforetag-och

    #RättenAttReparera #R2R

  11. Why are we so far from a 'circular economy' / why the #R2R (right to repair) doesn't work in real life?
    A recent experience:
    I wanted to fix my Bosch dishwasher. It's a small fix (door micro-switch). I couldn't buy the part online (Bosch shop) or contact the official repairman (won't pickup the phone). I could order it If I lived in UK or IE (for 50€), but I'm not. After several hours of research, I found out it is a generic microswitch (for 10€). Finally ordered from Amazon. So many obstacles.

  12. HIFIMAN Serenade Review

    In today's feature, we focus on another HIFIMAN Goldenwave high-end collaboration. This time it's the HYMALAYA Pro-equipped DAC/amp and streamer, the Serenade.

    Now published on Headfonics!

    headfonics.com/hifiman-serenad

    #review #audiophile #r2r #amplifier #streaming #headphones #xmas2023

  13. Right to repair - a new #EU law was finally adopted.

    They're talking about the availability of spare parts 10 years after the last model is released.

    Too little, too late.

    I have appliances which are 20 years old with only minor defects and I can't find spare parts anymore. 20+ years should be a normal period of availability of spare parts IMHO.

    eur-lex.europa.eu/legal-conten

    #R2R

  14. Do you develop #ROS 2 applications in #Rust with #r2r? In the new release, you can enjoy simplified parameter handling via #[derive(RosParams)] macro. AFAIK this is the easiest way to work with ROS parameters ever. github.com/sequenceplanner/r2r