Stories
Slash Boxes
Comments

SoylentNews is people

Log In

Log In

Create Account  |  Retrieve Password


FTP: The New Rape

Posted by takyon on Friday July 26 2019, @01:19PM (#4454)
33 Comments
Career & Education

Forced penetration: If a woman forces a man to have sex, is that rape?

When a man has penetrative sex with a woman without her consent, that's rape. But what if a woman makes a man have penetrative sex with her, without his consent? That's not rape under the law of England and Wales, but the author of a new study of the phenomenon says perhaps it should be.

[...] Aspects of John's story are repeated in the experiences of some of the other men Dr Weare has interviewed. One of her findings is that the perpetrator in "forced-to-penetrate" (FTP) cases is often a female partner or ex-partner (her research focuses only on forced penetration involving men and women), and that the experience is frequently one element in a wider pattern of domestic abuse.

[...] One myth Weare's research dispels is that forced penetration is impossible because men are physically stronger than women. Another is that men view all sexual opportunities with women as positive.

A third myth is that if men have an erection they must want sex. In fact, Weare says, "an erection is purely a physiological response to stimulus".

"Men can obtain and sustain an erection even if they're scared, angry, terrified etc," she says. "There's also research that shows women can respond sexually when they are raped (e.g. have an orgasm) because their body is responding physiologically. This is an issue for both male and female victims that is not discussed enough, but there is clear evidence in this area."

A number of the participants in Weare's 2017 study reported FTP experiences after getting extremely drunk or high, and being unable to stop what was happening. One of those interviewed for the new study describes going home with a woman after a night out clubbing, and blacking out after being given what he suspects was a date rape drug. He says he was then forced to engage in non-consensual sex.

FTP is not rape, but all PIV is rape (of a female).

Puerto Rico's Governor Resigns After Mass Protests

Posted by takyon on Thursday July 25 2019, @05:46PM (#4451)
10 Comments

Starhopper Test (not)

Posted by takyon on Thursday July 25 2019, @12:16AM (#4450)
0 Comments
Techonomics

Watching the Everyday Astronaut stream.

Would be a nice palate cleanser after the scrubbed CRS-18 launch.

Oh, here's an official stream.

Edit: Confirmed not happening today.

Democrats Introduce Bill to Decriminalize Marijuana

Posted by DeathMonkey on Tuesday July 23 2019, @05:58PM (#4445)
49 Comments
News

Sen. Kamala Harris (D-Calif.) and Rep. Jerry Nadler (D-N.Y.) are teaming up on legislation to reform the nation’s marijuana laws and help victims of the War on Drugs, which disproportionately hurts communities of color.

The bill, titled the Marijuana Opportunity Reinvestment and Expungement Act, would decriminalize cannabis and require expungement of prior marijuana-based convictions on the federal level. Such proposals have been floated in the past and are supported by lawmakers on both sides of the aisle.

Kamala Harris, Jerry Nadler Introduce Bill To Decriminalize Marijuana

Augmented Light Controller

Posted by cafebabe on Monday July 22 2019, @08:52PM (#4442)
4 Comments
Hardware

I've been prototyping agricultural lights. The prototype design uses a laptop power supply, a colander, an ice cream tub and about 240 5mm circular LEDs. They look terible but they're really cheap to make because the power supply costs more than all of the other components. The prototype only consumes about 5 Watts of electricity. Given that the LEDs are about 30% efficient, that is about 1.5 Watts of visible light. That's completely inadequate for use as a grow light. However, it is sufficient for domestic lighting and other uses. It is also sufficient to develop the design further. Most importantly, the prototype currently lacks safety features. I also want to add networking. Although, after obtaining preliminary feedback from experts, LTS [Long Term Support] for networking isn't good and may be restricted to 9600 Baud serial.

Two of these lights were shipped to an agricultural/environmental gathering/conference hosted by Mitch Altman. There was space in the middle of two facing colanders for a spherical cow plushie. This invocation of rubber chicken protocol trivially confirmed delivery of the lights.

Before sending the prototype lights to the conference, I hawked the prototypes around my local lighting and hydroponic shops. The response was wholly underwhelming. At the lighting shop, before I had removed a prototype from a bag while asking "Would you be interested in a...", the first impression led to the terse response of "Nah." At my two nearest hydroponic shops, enthusiasm was also lacking, although I got as far as demonstrating powered lights to the owner each shop. In response to variable brightness LEDs, one said "They all do that." However, feedback was vaguely useful because one suggested researching the McCree curve and the other advised against working on yet another proprietary network protocol. Apparently, over the last four years, at least one protocol per year was commercialized before it failed. With the recent increase of Internet connected devices, I suspect that the quantity of failed protocols is greatly accelerating.

Hydroponic retailers are also underwhelmed by equipment which compliments natural sunlight and doesn't require any configuration beyond physical installation.

I sent extensive documentation to the conference and it is quite obviously written before I got feedback. Regardless, it describes the design with sufficient detail to maintain it or reproduce it. It also includes a large amount of speculation including ideas for a significantly larger version, a significantly smaller version and use of the agricultural lighting on an industrial scale in conjunction with other equipment. This is a tidied and hyperlinked version:-

#### Augmented Light Controller ####

==== Rationale ====

It is possible to boost plant growth with artificial light. This is prohibitively expensive for low value plants. It is especially expensive to grow illegal plants in a sealed environment in which natural light is completely absent. Methods to reduce cost include stealing electricity and use of sustainable energy.

Sustainable energy is popular because it allows "off grid" use. Furthermore, sustainable energy largely moves the unit cost of energy to the initial cost of installing hydro-electric, wind or solar collection. Although efficiency may decline over multiple years, replacement systems are increasingly efficient.

Indeed, after many decades of pioneering such systems, we are now at the knee of the curve where the collection, transportation, storage and usage of electrical energy at a domestic scale now exceeds 5% total efficiency. With improvements to solar panels and LEDs, total system efficiency may exceed 20% by 2050. This would allow "off grid" farming up to the Arctic Circle with less than 100m2 of solar panels per adult (and considerably less in tropical regions).

A neglected method of reducing energy consumption is augmenting natural light with synthetic light. Although C3 and CAM plants happily thrive on 2kW/m2 of light, there are advantages to staggering and extending the duration of light. To minimise damage to plants (for example, from lensing of dew on plant leaves), it is desirable for an augmented light cycle to lead or lag the natural light cycle. This is implemented with custom software running on fairly generic hardware.

[Diagram omitted. Graph of brightness over time. Bell curve (in pale red) "Natural Light" overlaps with bell curve (in pale green) "Synthetic Light". Sum of curves (in pale yellow) "Total Light".]

==== Implementation ====

---- Hardware ----

Circuitry is implemented on 5cm×7cm prototyping boards. Each light has one controller board and three LED boards. The 18×24 holes at 0.1 inch spacing are barely sufficient to host 12 strings of up to eight 5mm LEDs in series. (One row and column is unused.) This is achieved with triangular packing and (nominally) two heights of LEDs. Strings are arranged as pairs (which mostly work) and everything is powered from a replacement Sony laptop power supply which provides a regulated, unisolated, switched mode supply of 19.5 Volts. It is strongly recommended that a power supply targets an older laptop. New laptops require less Voltage than old laptops. However, energy efficiency can be maximised by minimising Voltage drop. Therefore, it is convenient to obtain a "replacement" power supply for an old laptop.

Use of a switched mode power supply is not suitable for agricultural use where water and electricity are often mixed inadvertently. However, it is suitable for further development.

Empirically, the 19.5 Volt supply is sufficient to power eight red LEDs, eight orange LEDs, seven yellow LEDs, seven olive/gallium green LEDs, seven gallium blue LEDs and/or six pink/purple LEDs. Presumably, infra-red, ultra-violet and white LEDs can be deployed in similar quantities.

[Diagram omitted. Pale green board has 12 columns of triangular packed circles. Two columns each have eight pale red circles. Subsequent pairs of columns each have seven or six pale circles and end with dashed circle outlines which raise the total in each column to eight.]

Each of the three LED wafers are soldered with common anode. Channels across all wafers are gated with 2N2222A transistors with current limiting resistors to Port D of a DIP [Dual In-line Package] Atmel ATMEGA328P. (Wiring/Arduino pins D0-D5.) The remainder of Port D, is connected to an LDR [Light Dependent Resistor] and a switch. Fly leads for the LDR and switch are quite fragile. Use of tack or tape is strongly recommended to provide strain relief.

Although D0 and D1 may be used with the micro-microtroller's dedicated UART rather than power switching, use of D0-D7 is more convenient on a small board. In the medium term, multiple channels of a custom wire protocol are required. This is not satisfied by reserving two UART pins.

At present, it is significantly more important that the micro-controller's dedicated I2C pins are not obstructed. This allows the least obstruction when experimenting with I2C thermometers. This is intended to ease implementation of thermal shutdown.

[Diagram omitted. Circuit diagram/block diagram has 20V and 0V rails. "Voltage Regulator" connects to both rails and "Micro-Controller" which connects to "Sensors". 20V rail connects to six strings of LEDs (in pastel rainbow) which connect to a diagonal of six NPN transistors which connect to "Micro-Controller" and 0V rail.]

With the current arrangement, one binary input is trusted and this input is used to switch all power. It is extremely bad practice to trust inputs in this manner.

An example of this practice is Toyota's accelerator pedal where two potentiometers were connected with a SIP [Single In-line Package] connector wired as ground, power, pot, pot, power, ground. Unobstructed paths and the use lead-free solder allows formation of tin whiskers. A tin whisker between power and ground quickly resolves itself. A tin whisker which gangs potentiometers effectively halves their resistance. A tin whisker between Voltage sense and the power rail spuriously indicates full acceleration.

Another example of this practice is the anti-stall system in a Boeing 737 Max. This was only connected to one of the two air speed sensors. Erroneous readings from a faulty sensor were not ignored but prevented an aircraft from gaining height. This led to two crashes and 346 fatalities.

The lighting controller should not be scaled without safeguards. The current implementation is for development of such safeguards.

---- Low Voltage Power Regulation ----

Power regulation is rather arcane and may be skipped.

[Diagram omitted. 10 pin ICSP connector and 6 pin ICSP connector commonly used with Atmel products.]

An Atmel ATMEGA328P (with optional six pin ICSP [In Circuit Serial Programming] connector) obtains a lesser Voltage via an LM317T. This controller board is suitable to drive six channels up to 800mA per channel at 30V. Future iterations of this design will push to envelope to 1.1A per channel at 48V.

The use of an LM317T variable Voltage regulator was a failed test. A series of floating Voltage regulators may power a micro-controller directly from mains electricity. Unfortunately, this requires a very large number of passive components. Furthermore, it is extremely inefficient with energy because the majority is wasted as heat. A further failure was the attempt to use an LM317 with an NE555. Use of a 555 usually indicates use of a dumb, stock circuit or something smart. An accepted use of a 555 is to only use its internal resistors. This potential divider circuit has the properties of matched values and close thermal coupling.

[Diagram omitted. Diagram of 555 containing potential divider connected to three external lines. Remaining 2/3 of block hatched with text "Other Stuff".]

Specifically, if a resistor value drifts due to Joule heating, the others rapidly follow due to their proximity. This occurs regardless of current flowing through each resistor. Unfortunately, a 555 fails to work with a 317 because a 317 specifically limits current to a maximum of 100µA while re-injecting it to the floating output. This specifically requires low value resistors otherwise the derived reference exceeds range and no Voltage regulation occurs. A dimensional analysis of current multiplied by resistance is Voltage. The current is drawn from the potential divider and cannot be sunk. Indeed, this is not desirable because it is not energy efficient. Unfortunately, the current drawn by the 317 and the resistance provided by the 555 leads to a value which is useless. Therefore, the devices are incompatible.

---- Metal Chassis ----

All hardware is mounted with electrical insulation in a metal chassis with ventilation grills. Specifically, the LED wafers are mounted in a triangular formation around the edge of a Poundland cooking colander and the insulation is cut from white plastic Sainsbury vanilla ice cream tubs. Although this looks laughably amateur, it is only intended to boot-strap a more serious design. The total BOM [Bill Of Materials] per light is approximately £16 (US$22). Of this, the 90 Watt PSU is £9.49 (US$14) and may be shared among multiple lights.

It is possible to mount six or more LED wafers in a colander. However, when a colander is mostly covered with LEDs, the reflective property of the colander is under-utilised.

Mirror image wafers were implemented with the intention of simplifying soldering. However, the lack of rotational symmetry is quite jarring. Therefore, mirror image wafers have been discontinued.

[Diagram omitted. Circle containing central block, three surrounding blocks with rotational symmentry and three dashed outlines which would form six way rotational symmetry. Peripheral blocks are wired to central block with rainbow lines.]

During use, LED wafers get quite warm; presumably about 40°C during sustained use. Thermal expansion and proximity of LEDs on wafers leads to cracking noises. In future iterations, LM75A I2C temperature sensors (with accuracy ±2°C) will be mandatory within each LED cluster. AVR micro-controllers also have a temperature sensor within the analogue section but the accuracy is only ±10°C. Other micro-controllers may not have a temperature sensor of any form.

---- Firmware ----

12 bit PWM [Pulse Width Modulation] with granularity of 1µs (cycle time of approximately 120Hz) is implemented across six channels in software. Although the target hardware provides PWM on some channels, software portability is paramount. Although development has greatly benefited from the idiot-proofing of the AVR processor architecture, it is significantly cheaper to deploy firmware on WCH's 8051 micro-controllers, such as a CH340 or CH554 (the infamous 25¢ micro-controller). This reduces micro-controller cost by a factor of 30 or 40.

A POST [Power-On Self Test] fades all channels from minimum to maximum in sequence. Modifications to this sequence will provide firmware version identification. Additional channels were planned for diagnostic lights. However, the main six channels have been sufficient for this task. For example, while diagnosing a compiler bug, one channel was used to provide indication of a bounds check. Underflow was displayed as 10Hz flashing with 1/3 duty ratio and Overflow was displayed as 10Hz flashing with 2/3 duty ratio. If this is not sufficient, a debug string can be emitted in Morse code.

The main algorithm maintains a delta summation (increments/decrements) as a 32 bit variable. Due to one of many compiler bugs in GCC 4.8.1 cross-compiling from armv6t to AVR, it was not possible to implement the 32 bit value as a global variable. Therefore the Wiring/Arduino loop() hook-back maintains state within its own endless loop. Other compiler bugs include -O3 eliminating endless loops and multiple calls from main() to loop().

Summation is used to implement an approximation of colour temperature by stepping through a rainbow of six colours and pulsing zero or one of the channels. This is intended to lag behind natural light by approximately four hours. It is also intended to moderately amplify a change of season. Therefore, plants boosted with augmented light should continue flower and fruit with the natural season.

In normal operation, the augmented light controller produces no visible output for the first hour of operation. This is correct behaviour but is quite tedious when testing. Therefore, a switch has been provide which accelerates the summation process by a factor of 240. (Four minutes are compressed to one second.) During daylight, this allows confirmation of LDR position within 20 seconds. It also allows the augmented light cycle to be manually advanced after installation or power failure.

Ensure that the LDR does not receive direct or reflected rays from any augmented light otherwise the light controller will be locked in an undesirable feedback loop where lights correctly switched on but never switched off.

Given that the rainbow of LEDs provide spectral peaks at 30nm or so throughout the human visible spectrum of light, it is possible to replace the firmware and generate arbitrary spectral peaks with the same hardware. When combined with A/B testing, it is possible to determine the most energy efficient lighting for different species of plants. This information may used to modulate augmented light output. Given that the six or more identified variants of chlorophyll are typically most sensitive to red and blue, it is expected that yellow, green and purple may be reduced but not eliminated.

It is unlikely but other arrangements of colour may be more suitable for agriculture. Cool white plus red and blue provides a generic base for agricultural lighting but re-emission of photons to provide a broad spectrum of yellow is not the most energy efficient arrangement. It also creates an unwanted spectral peak around green, blue or purple which may disrupt plant life-cycle.

[Diagram omitted. Pale green board has 12 columns of triangular packed circles. Pairs of columns represent red, white, blue, red, white, blue.]

---- Code Quality ----

Firmware is developed with the Wiring/Arduino digital I/O API. However, it is not linked, tested or deployed with the standard Wiring/Arduino LGPL library. The code quality of this library is objectively awful. As an example, digitalWrite() is slow and bloated due to indexing three look-up tables; one of which has 16 bit values. This requires adding a value to a base pointer then left shifting by one bit and then adding the value to another base pointer. Clearing a bit also requires inverting a value obtained from a table. In all cases, this can be reduced to accessing two of three tables with no shifts or inversions.

As a further example, pinMode() uses a macro from Arduino.h which uses pointer arithmetic. This is contrary to the MISRA standard which was originally developed to improve code quality in the automotive industry but is now used in other critical industries, such as aerospace and healthcare. Although agriculture is relatively dull compared to these industries, there is no excuse for lax practice which needlessly increases MTBF [Mean Time Between Failure].

Agricultural lighting may cause electrical fire. In a domestic environment, this may lead to homelessness. In many cases this reduces crop yield. It is for this reason that good practices will be followed rigidly. This includes watchdog timers, thermal shut-down, parity checks, strong CRCs, static analysis, assertions, fuzzing, redundant sensors, two phase commits and hardware interlocks.

==== Other Applications ====

Six channels of lights may be arranged as two redundant sets of three channels or three redundant sets of two channels.

---- Stage Lighting ----

Two sets of RGB [Red, Green, Blue] LEDs may provide arbitrary colour for stage lighting. This is most useful if the lighting controller works with a communication protocol, such as DMX.

[Diagram omitted. Pale green board has 12 columns of triangular packed circles. Pairs of columns represent red, green, blue, red, green, blue.]

---- Home/Office Lighting ----

If power output is restricted to half of the maximum, it is possible to control three sets of warm white and cool white LEDs in a pleasing manner. Specifically, colour temperature can be set independently of brightness. This allows home or office lighting to minimise sleep disruption. This may be set with switches and/or dials, set automatically via an LDR and/or configured via a network communication protocol.

[Diagram omitted. Pale green board has 12 columns of triangular packed circles. Pairs of columns represent cool white, warm white, cool white, warm white, cool white, warm white.]

---- Industrial/Event Lighting ----

Dumb arrangements of cool white light are typically used for flood lighting. This is not the most energy efficient arrangement. This is especially true if LEDs are retro-fitted to legacy light sockets. On large structures (bridges, tall buildings) systems using 370VDC are common to minimise Voltage drop across long spans of wiring. However, many of these systems would benefit from using narrow bands of LEDs to further improve efficiency.

==== Regulations =====

The light controller has been developed in anticipation of laws within multiple jurisdictions. The majority of competing designs do not fulfill these obligations.

---- Colour Rendering Index ----

European regulations require certain categories of lighting to attain 80% accurate illumination compared to sunlight. In the long term, this is likely to be raised to 90% and then 95%. CFL [Compact Fluorescent] lighting does not meet this requirement. White LEDs do not meet the long term objective either.

Test wafers have low chromatic coherence. Specifically, shadows have two rainbow fringes. However, sunlight also has low chromatic coherence due to white hot sunlight being split into direct yellow light (with a dark purple shadow) and indirect blue. Some experimental lights use nano-particles to simulate this scattering.

---- Right To Repair ----

Right To Repair legislation is intended to counter planned obsolescence, abandonware, proprietary lock-in, pollution and landfill of working electronics and frustration of customers who are unable to adapt or repair their own equipment. Proposed European regulations will ensure that all LEDs in luminaires can be replaced. This is vehemently opposed because it would eliminate the majority of products from the European market.

---- Recycling ----

Electronics manufacturers within Europe are required to pay towards disposal. If a minimal amount of electronics is manufactured (determined by weight), a flat fee is payed. This is believed to be £35 per year for one tonne or less of electronics. Larger quantities incur larger fees and the responsibility to accept returns. Although the regulation appears to be comparable to Data Protection costs and obligations, the fee is payed to a private contractor. In the UK, RecoLight has the majority of the market. However, recycling of LEDs is currently quite crude. Currently, boards are ground to dust and the dust is heated to extract gallium and other useful material. This is quite energy intensive but less intensive or damaging than mining more minerals.

==== Future Development ====

---- Network Communication Protocol ----

A 256 bit cell network protocol is being developed. It is intended to be a slow-speed ATM Lite protocol which can be implemented in the firmware of an 8 bit micro-controller. Specifically, it should be possible to implement an eight port network switch using a micro-controller with 2KB RAM. The use of cell networking (rather than packet networking) allows packets of arbitrary size to be switched. Indeed, using AAL5 (commonly used to implement PPPoE or PPPoA over ATM) or similar, it is possible to switch 9KB Ethernet jumbo frames via a micro-controller with 2KB RAM. Optimal choice of 32 bit CRC raises maximum packet size to almost 13KB.

In terms of the OSI seven layer network stack, layer one and layer two are implemented although efficiency improvements are desirable so that more throughput may be obtained with cheap, slow micro-controllers.

Many network communication protocols operate as an open loop or provide minimal signal integrity. Lighting controllers are intended to provide reliable operation in conjunction with water pumps or other equipment by implementing a protocol similar to XA distributed transactions.

Surplus bandwidth may be used for agricultural analytics, home security, voice communication and/or slow-scan video.

---- Nybble Virtual Machine ----

The target architectures have a 16 bit address space. Up to 56KB may be EEPROM or OTP [One Time Programmable] EPROM although many of these options are more expensive than 256KB of paged serial EEPROM and a 32 bit micro-controller.

As a contingency, a 32 bit stack based virtual machine with 4 bit instructions requires 2KB ROM. This allows up to 60 kilo-nybbles of code to be distributed without external storage and/or paging. Unfortunately, nybble code runs with significant performance and energy penalty compared to native code. Until a nybble compiler is written, it also requires writing an application in nybble assembly.

Regardless, it has several desirable features which makes it suitable for extended functionality. It works on most micro-controllers supported by GCC. It has better code density than x86. It is fast enough to implement software only PWM for lights and servos. It is fast enough to process network buffers and implement network switch routing. It is also possible to have multiple virtual machines within one micro-controller. One possible arrangement is a virtual router for the other virtual machines.

At present, this functionality will not be used. However, the option exists to make extreme manufacturing savings or add significantly more features. Indeed, confidently having the option to compact code and/or virtualise functionality may defer or avoid such necessity.

---- Industrial Agriculture ----

A six channel lighting controller is sufficient to develop an industrial version which may switch up to 3kW of LEDs with energy supplied from lead acid batteries, 110VAC, 220VAC or 440VAC. The toy implementation is sufficient to develop and test watchdog timers, thermal shut-down and staggered power switching co-ordinated over network.

The prototype will be re-implemented as a single-sided, copper clad, surface mount triangular wafer with an approximate length of 20cm. Six or more 48 Volt channels require 15-18 LEDs per string. This can be arranged as three sets of six clusters of LED rings in a space-filling fractal curve with three way rotational symmetry.

[Diagram omitted. Pale green triangle with 18 pale yellow circles; six per corner arranged in triangle formation, all connected in series. Magnified section shows six cricles in a circular rainbow representing LEDs. Wiring within magnified section is staggered to allow a maximum of one wire to pass between LEDs.]

One or more of these wafers may be bolted to a passive cooling chassis which optionally contains a Galvanically isolated, continuous mode Çuk transformer which is intended to operate safely at 100% humidity. To minimise signal noise, the transformer and LEDs will pulse at a common multiple of 50Hz and 60Hz. Transformer switching and power factor management may use an optically isolated channel from a micro-controller (which also functions as a network switch for the wafers). Obviously, power management requires a hardware interlock to ensure safe operation and boot-strap to power the micro-controller.

Customers may wish to use branded LEDs, such as Nichia, Cree, whatever Philips is this week - and all of the second tier brands. This may require replacing all of the LED surface mount pads in CAD software. Hopefully, this process is compatible with dumb auto-routing of the LED strings.

---- The Square Kilometre Problem ----

When designing an industrial network, people typically sketch tiers of network protocol (often including Ethernet and RS-485) without consideration of cost, bandwidth, long-term reliability or availability of parts. Systems involving radio communication often have no consideration for power, scale or security.

These approaches are wrong. Instead, a cost effective system can be obtained by considering an infinite plane of agricultural lights, water pumps, nutrient pumps and moisture sensors being used indefinitely. Horticulturists tend to be very practical people who have no time for infinities. Thankfully, an infinite plane of hydroponics can be approximated with a practical example. Some of the world's largest industrial greenhouses are suitably measured in square kilometres. Anything of this scale can tiled while approximating a system with optimal TCO [Total Cost of Ownership].

Assuming square packing of 30cm diameter buckets with no access paths and one moisture sensor per bucket, approximately 11 million sensors are required per square kilometre. From this consideration alone, use of almost every protocol with a small address space can be eliminated unless there is bridging to a larger address space. Anything with IEEE802.15.4 header compression will also fail.

Waterproofing and connectors are a significant cost which do not depreciate with Moore's law. Use of radio is an obvious attempt to reduce the cost of connectors and corresponding water traps. However, one micro-controller may have dozens of crimped moisture sensors which do not require connectors or waterproofing. We minimise cost by minimising the spanning tree of connectors and wire. The calculation is only tempered by the practicality of installing and maintaining each cluster of moisture sensors.

Another consideration involves water tanks. Ebb and flow systems have a reservoir of water which is pumped to and from plant roots every two, three of four hours during daylight. Most of the time, the water does nothing. It is possible to multiplex the reservoir. For example, it is possible to have one tank in the middle of eight clusters of plants. This raises many questions. Does the water get pumped directly between clusters, does it go via the tank, or both? What happens if there is a leak? What happens if a pump fails? What happens if re-planting requires one section to be skipped? Can tanks be pooled together? What happens if a virus, bacteria or fungus spreads between clusters of plants or pooled tanks? The simplest arrangement is for everything to go via one independent tank. However, every variation requires MTBF calculations based upon unknown figures.

For domestic use, water may be pumped with aquarium pumps. Although these have low throughput and are irreparably damaged by sustained dry pumping, they are cheap, waterproof, work with local mains electricity and widely available. Unfortunately, aquarium pumps are unidirectional and fairly unreliable. This can be overcome by redundancy. The typical arrangement is one outbound pump back-to-back with two return pumps. This reduces probability of sustained plant root flooding due to pump failure. Pipe junction leakage is also minimised because three way cross or swept splitters are only incrementally less reliable than T or Y splitters.

To further counter unreliability of water pumping, it may be possible to monitor back-EMF of aquarium pumps. Although this does not cover all failure modes, it allows near continuous operation when using commodity parts. In all cases, it would be particularly desirable if a pump controller switched multiple sets of two, three or four mains power aquarium pumps while working autonomously with moisture sensors.

---- Lighting Over USB ----

Some companies specialise in PoE [Power over Ethernet] lighting. At launch, PoE cost US$50 per port and this excludes cabling and equipment using the port. PoE is now cheaper. However, it remains significantly more expensive than USB. PoE has advantages with span and bandwidth but these are not a concern in the majority of cases.

The reliable network protocol fits within a 24 byte packet payload. Therefore, it may be tunneled over USB. This allows the minimal implementation to be a USB dongle of the same size as a BlueTooth dongle. USB protocol allows up to 63 devices per USB host port. PCI/USB bridges and similar typically allow four ports per card to be added to a computer. Dedicated USB bridges may significantly extend the address space. Leaf nodes may be manufactured for £0.20 (US$0.30) or less.

[Diagram omitted. Green rectangle has four pin USB A connector. "Oscillator" connects to "Micro-Controller" connects to a rainbow of six LEDs. Rectangle has dimensions 18mm×11mm.]

In the minimal implementation, PWM is capped at the LED's preferred Voltage. For example, if a 3.3V blue LED is powered from 5V USB, PWM for the blue LED is limited to 66% duty ratio. PWM for a 2.7V red LED is limited to 54% duty ratio. Inputs should be transparently scaled down otherwise the spectrum will saturate in an undesirable manner.

If none of the LEDs are driven at their maximum duty ratio, it is possible to implement Charlieplexing, an awful technique, presumably implemented by someone called Charlie, in which two LEDs may be wired back-to-back and selectively driven by the differential Voltage between two micro-controller pins. This can be extended such that n pins may drive up to n(n-1) LEDs. Examples with 60 or more LEDs have been implemented. It is possible to drive six LEDs with three pins and obtain an average of 33% duty ratio.

Devices connected via any network communication protocol should remember their state of operation so that useful behaviour is observed. This requires storing one integer or a small set of flags in persistent memory (after the oscillator trim value and thermometer trim value, if any):-

State 0: Device has never been connected to a valid network. For USB devices, device has never been suitably queried by a program running on the USB host. In this case, device should run default stand-alone behaviour. For an augmented light controller, input should be taken from the LDR. Water pump controller should run a default schedule. For USB lighting, LEDs should be set to full brightness. Animatronic controller should run default program.

State 1: Device has previously been connected to a promiscuous network. Effort should be made to re-connect to network. If network is not found then operation should revert to stand-alone behaviour.

State 2: Device has previously been connected to a promiscuous network. Effort should be made to re-connect to network. Diagnostics should indicate error condition. Device does not revert to stand-alone behaviour.

State 3: Device has previously exchanged keys with a host and paired. Effort should be made to re-connect with previously trusted host. Diagnostics should indicate error condition. Device does not revert to stand-alone behaviour. Operation in this state may require switch or jumper to be set. Clearing this state may require host releasing device from pairing, removing switch or jumper or re-flashing device. For some devices, leaving this state would be regarded as tampering with security. Therefore, some devices will only work in this mode and resist casual replacement of key material.

In many common configurations, a large number of interchangeable devices may be connected to a network. However, network addressing may be relatively transient. For example, connectors may be swapped or inadvertently jostled during gardening. Furthermore, USB devices may obtain addresses in a fairly random order. This can be countered by providing a name field and/or asset tag field. This allows devices and their location to be associated with a human readable text name while allowing numeric addressing.

Where the device name field is longer than the network protocol payload, the name is sent and received in chunks. When setting a name, the obvious method is to hold intermediate chunks in RAM. However, RAM is a premium commodity within a micro-controller. Therefore, double buffering should be used within the persistent memory and a flag should be used to indicate which version is live.

Despite writing approximately 4500 words, there were a few things that I forgot to include.

Firstly, I didn't mention why I started writing my own version of the Arduino library. I erroneously thought that an Arduino Nano was supplied with a 20MHz crystal oscillator. An Atmel ATMEGA328P works quite reliably at 20MHz if it has a reliable 5 Volt supply. However, it works quite reliably over a wide Voltage range if it is only clocked at 16MHz. Indeed, I confirm widespread reports that it works outside of the range specified by the datasheet. Unfortunately, it took a while to resolve timing problems and generally get experience, confidence and a feel for the capabilities of this architecture. Essentially, I was specifying the compiler constant -DF_CPU=20000000, deploying it on a slower system and then wondering why the timing delays were out by about 25%. Duh! After reading library code, header files, disassembling code and generally being frustrated by the incomplete interrupt driven Arduino time delay code, I wrote a more portable version which should hopefully work on an 8051 and other micro-controllers. A similar situation occurred after disassembling Arduino I/O functions. The result is a smaller, faster, more portable implementation of delay(), delayMicroseconds(), pinMode(), digitalRead() and digitalWrite(). This covers a surprisingly broad range of Arduino projects and isn't subject to LGPL terms.

Secondly, the arrangement of the 16MHz crystal and decoupling capacitors adjacent to the DIP micro-controller was unconventional but quite effective. On a 0.1 inch grid, a two pin crystal with 0.2 inch spacing was placed diagonally in the X, Y and Z plane. This allows the crystal to be placed very close to the micro-controller. Relevent pins on the micro-controller are power, ground, xtal1, xtal2. Without spreading pins of the crystal, one pin is placed 0.1 inches from xtal1 and the other is placed 0.3 inches from xtal2. Decoupling capacitors are connected from each pin of the crystal to ground. The crystal sits diagonally against board and DIP socket. It provides a thermal buffer when soldering and the surrounding micro-controller pins aren't particularly obscured. Furthermore, the decoupling capacitors fill a narrow region of the board which would otherwise be unused. This arrangement looks incongruent but it is compact, reliable and practical.

Thirdly, don't buy 28 pin narrow DIP sockets. Two 14 pin DIP sockets are cheaper. That's partly why Atmel popularized a 28 pin narrow DIP format. Admittedly, it allows a DIP scale micro-controller to be manufactured with less material. However, people who buy 28 pin narrow DIP sockets are imbeciles.

I also sent source code and compiled code. License unchanged from previous iteration. The major difference is that the PWM cycle frequency has been raised from 4 seconds to approximately 120Hz. It also has a fancy power-up sequence.

begin 644 augment-light20190527.ino.gz
M'XL(`*Q7'UT"`]58;6\;-Q+^[E]!(#A`2J18*\EYJ>,"0>PV`>PXB),&AR(M
MJ%VNQ'IWN4?N6A&*_/=[9LA=K23+;E/<H<V')$L.AS//S#PSU.%#\;*>YZJH
M5"+.]7Q1B5>K.%/B5.6F<)65E3:%>'AX</A0]%[UQZ/HN?BP4.(5=HVM=)T_
MIEW:CDVBA'8BT[$J8NBKBT19(0MA2E6(65V)1+O8ZEP7LC)VU4B*Y4+'"Y$8
MY41A*I$K58D*E\Q5H:S,LI60<:Q*LC%1J2XT&V52\</EU97X^0>KU$!<TB57
MIK90>&72:BFM^OPXF-[8%IN\A$LS>+C4U4*DD!=I7<2DT<'61%1+(V)<.IS)
M^-K1+63*2YO4NC#BY;LWHN?M=0M39XDP!>R;*>'JLLPT3)30T[K6N5#G9:8(
M:L:TSY>=__CN7,R,J8:9D4#+D7)E_3F=01M;;BQNJ"J@"1_:BRHC8*>0::IB
MPJ:4"(AR_<;IA5FJ&V4'K?<$[C8",&"R:0$N,W`9D;-6%G,VV>'^E8'!A%=L
MBLJ:;!O;-NXI-)3U#-^B=OX:@^!;LY)9M1(Z9;,#L*G),K/4Q9S4)CK$`0CD
MJOIN&*Z(A,@EHYR;1*<!Y:6QUT-<-EQHR!.<B2HSLU(4%"C7-AD2)BNQD#:A
M?.`D)$V$A"YB8TN#%,<!71":A$ZN;*QE)DIKDCJN&B_'`GA76,^X2N!02;IJ
M5[$R]2564!-=?Q(]4RAQK>&5K*J^Z.5*NMIB<[82*D.HK$9^42W@?S"(<KFT
M&J!Q0!%EE`<#4EL+[$6).")+98RB@858C'T&E<H'0\]K4R-P2Y2+6^B2L,T(
MCUYAJ-BH@L@H.<?5=5;5*"KA=,6)11NX_@8PB&2IL@Q7MRF$/\#147@3A4Q(
MD'UIJF--=G&<<:/!#0.@4`P[\"'RC9()08=JB@WIF5O8R=$R);G!UL76.#><
M$4J<E97)01'''`\NL.N"3SG>@:9&]U2(!,:C]#DN/G7.STZ=^-G3V5FN*T;S
M5"-/W6=A%>'.!0.\2R6OA2LI*C`:6:`*`+,2J36YF$:C(A>]LK:HW#Z)/WG&
M*["SA>A(X&HYTQD?`R1-Z5-^^5KS>_!]*6$J#C=GGVR?3:7.D"M=V4"C'@F$
M=2F0(3D3$Z1#-<IUHKK`?1M40;K5C<QJV5#G;J8S_1V2(+ZD#TTWC$ODA^%D
M-[/?`!CAX>J9JR0R$*+Q@MB"(N0IP;,DTI;<0W:Y#0LZUS07I+4EWLF-!9V#
M)70E9'(C@:5CJD`I#VZUPBJ94(@Y59UO`6Q"6U96#3?I=X<CH1=Y88HYU4JK
M&=C7JHO57.JBP2G7SJH2^=0H)5R)((F8VK9(+7,TB8Z@'@XT;$*+1^.)</)&
M;:Y-;UE[VJ[1(N(UMS)?-Q2*G)!M'_<,%7,?#UR=4>N@Y$Y",FQ002?(VUJL
MU(YC2M0G<U.C[HE=>'/.A4=5!+:!%00-H,X`QHT"CM2^Y_BG98Q<%EC:=Q<1
M<X904G)D<BY`@VP>[S:'S`V/!*248I2I8H[<"+T;Y)?"#C:'J(F&AA"71*XV
M]'A:V\@)NI0:W4+3&("$:PSP4+9NSW@>J?,Z\SQ-##H#S6*BT06Z0G,%\A=W
MJ"^E;\_50OJQIBOKAQ*@TA*2092XGA)]H[GRM8UK39T;U.3\C6BA(M5?<`3I
MAT4J)^Y`M!N-1M?B<I$S),B,\]/W#1N>JI)R`.B\#^<^MT36BTWFVSMXDI-D
MK0AT\ON,B'L@9AGFHH%8*>K;`S$W6?*5(K:U'_XQ/$($L<?]%GQUBZ-AH%I0
MJO-HL.G@!DSH(C4%W'A8I5C`/T'\PL1G9A4*E>;%VA(D3//;*>#C(S,HV0T2
M@8;=TFC.4+F4H2G0D$7YW"0F$QX-ML!.SA4H8RGY2(IPT`SYN.-TFS?8]\8F
MBN@<MCKQ[M.%^/E=G6%F^J03=,$+\'+&J?D9)ZE%<JXA^DY_:480HMU"9>[8
M$PQYRRV46@<E`.+=KLWH1I[.J*-U#6-RX"+0[!`XAH("8)LB0#L#S[IFT`H?
M*/F0-I7*47$DW%`_M;],!X)J>!G&WUK7T1AU@7H&$M(R%#`$Q,2S'$YC9*(9
M&YV$1E<>/3SIX"XLR!NC$S]%<I],K?I/C3:,>3A80^R"PJYA0[DPE1DZ;O5@
M*J%HU"X=[8M%#9)RC54S2S8B.*Z9GYD0.05]$M-H!I_&CX]H.B'P5B7-=Z`_
M,D';0+BL=XN3UMI;2@2SU7C?^'<'L./2:YD;M](,K)$+BL9E'M;9!G]@:3;H
MS1&_T;CLPGN"`*+PX3_7S?\M]>$@40<B!`ZP%F,90NQV6J4SL`M35^HIVR"G
MK:`^2:"0S>%)Y,-1<S$T=2AK:B?\SB))0O16P8XU[03^RWCD?7?!>;@8C:;/
M<[<6F>R*R!+)_$5CH*2>%#U]_!PB15VI[K'I/<>F<+\&RM.GVX<I#6ZD(RQ^
M,Y8&N29T%(&2N);[(J5T4F.[[29PU<,]'3U_4G,LT1GB)CM(L9,$=9!K;@P/
MBE!8R(]URDGX\HP4C7]!08%I*EWZRX@XPCUD"1O1]M1U`\.%=(#R6%[3JUU5
M2Z5:$WW\VHD0G`+?9D3%;A!:*M&$-PUF,$_XKUOIK\W[E!ZW;/1:`3*ME/2@
M!"6'^WO[@]D?\!54;X$2PYMQ#A/A<C=>VT)XJ-%<E]8HOT[)>ZMD,YC>FCOL
M='B<^K>L?^D1R`1[Z']MN[1`<^")F*K`,W%+XG@\8GQ$#Z)*X^E:;8X(_:X;
M@"(.U&3I`!$3UZW/U<9\AT>J[X8PX=9)I2Y`455=,*H\>P?U/&<RA*ZIS*:+
M4GC7FKG]LD[7S.=P558T!?JG\:85091&-W&C'?\>T;RIP_O<\PK-[S0+4&B<
MYW2U*=*6!7D>FH)_TN"8I<FIQ[,AC'!]@$M93?"'80X5GRNJ5&F=VHAJ`R^-
M\XZ2D"Z@?ES5";U0"EZ(,\Y&CF986L+QA7^;AU\T-O0N-:49VLX79+>=<370
M3/D'9GC?RD)C<5U,69X:35OTY8+8&Q=A575=A@D$YZISG`'2\X(F&P"(/7J%
M\2.,I]2EI/3:Z004F8YU"__3%_=$)H5F`L4SM%WBU\<V#X260#]]L;4>\N:7
M(_^R]".,%#^I`DS@?Z:D'-2YSJ3/@H,'.D6C3,6;MQ^>'3S@'PL5?[!WONKM
MP0.:B=*#5N#RXX>1&'4_(Q%U/\=BW/V<B$GW<RJFW<\C<=1^7KV\>">>M)^G
M9Q>7XNGZ\^/%Q;]%]&1MR<M7K\[.Q7BZ-@8\\NNKRX]O/XA>=/[B133NK[=>
MO[PZV]A\MM[\\/K]V=6O']^>GKT/F\^W-R]_ZNXUC:!M3PUG'M!H!:+"7-JC
M-TCE`>5!:#3HK'#@FQ7,+/031C7JB]\/!#*IYP^\8*?]HL#</,=$EWU"WU1!
M8'!^^:E_C-VO_IC7>L>Q<.WK-S^^;L\E>(2N+CH=O=?B./16'?\YHS:T_PFK
MNL[L&K4VQ2K,Q,7QP5>.0RHQ>H<7+L_`S?A$2H=U*=S*8=[&S.VJ3HRL+E'X
M?R1((2B(43:BZU%TO6QT,CK.1B]:I/#QZ&0R;MSS&1`T!O>R4>O=I@>VQ@P#
MJNY8AU96E[WNS8,LHM.E+O#243TJPP'^>O?Q0W]K/=JS/MZS/MFS/MVS?G3;
M.E7KX,W;[66JZ<[R1M39A2;FVSO1WIWQWIW)WIWIWIVC=H?#&E%8HQ=C_/7H
M41/,D"ILKT_BXZUUAGRTL\R(1SO+#/AX9YGQGNPL,]S3S66V@M:/[D@IJ_"2
M1]?(5IW$RHSIY-5D_&OE&\QQ9V&Y,)GJ+J3TFRDML.@)5P$_)7M1@Q'*/$#[
M7LF$X]X_.6$F"!(LPPI>=/CV48>8'SYYM";;];$=Y91K.\KI#VM_=,*-X;A=
M_RH4_4QPBV#4$3KH_KMUI#'\^]$W6S7\HU8-[[#J8!^*ZPOW5]AMN]&=N^,[
M=R=W[D[OW#W:W-W?@(+,%EB<H"<>K@X*C3Y.UQ,6^E<GO8YIXNEU%KY?7],]
M>7C2%3KLVO*`S.C*/CQ9VWK8.<6R/#AY88=Y+%[TV*8-N4X"T`\(8O3=1DK<
M';#[@W9_X.X/WOT!7'>\-4<.&)\-D1D>.=>[R1T\C^[VO#-6_&U=C[[1]?%?
M=CVZ7^1_[/OX&WV?_#]\']\O\I><GWRC\]._B?.3^T7N\'[ZC=X?_7.\G^Z*
GM.X?_7GW\;24=5;]H_W?39!=D7L;^YTXK:>>K0'WO_P_,^2*)0``
`
end

(Usual instructions for uudecode process.)

ASUS ROG Phone II

Posted by takyon on Monday July 22 2019, @04:57PM (#4440)
3 Comments
Mobile

ASUS Announces New ROG Phone II: 120Hz OLED, 6000mAh & Snapdragon 855+

12 GB of RAM, 802.11ad wireless. Phone size, thickness, and weight increased significantly.

Also features one of the new ARM DynamIQ core cluster configs, that I think I've seen on at least one other recent smartphone:

1x Cortex-A76 @ 2.96GHz
3x Cortex-A76 @ 2.42GHz
4x Cortex-A55 @ 1.80GHz

I imagine that in 10 years, every smartphone sold will have specs exceeding this and will be intended for use with a dock and monitor/TV so it can be used as a portable desktop replacement. Or forget the dock, and just use a successor to 802.11ad to connect to a display wirelessly, maybe while laying it down on a nearby charging pad.

Never forget.

Corsair 32 GB DIMMs: Where da ECC at?

Posted by takyon on Sunday July 21 2019, @04:22AM (#4436)
5 Comments
Hardware

Corsair Unveils 32 GB Vengeance LPX DDR4 DIMMs, 64 GB & 128 GB Dual-Channel Kits

$150 for 1× 32 GB @ 2400 MT/s, $155 for 1× 32 GB @ 2666 MT/s (price for 3000 MT/s not specified). Basically no additional charge for 64, 128, and 256 GB kits.

That's the equivalent of $37.50-$38.75 for 8 GB, which isn't so awful but shows how DRAM pricing has stagnated over the last decade. If we had scaled down, we might be looking at $1-2 per GB today. Hopefully we will reach a point where 128 GB costs $100-$150, and larger module capacities could help make that happen.

This one from last month is a bit more expensive: Samsung 32GB DDR4-2666 Non-ECC Memory at Retail: $168

So when do we reach the point when all DIMMs have ECC by default? 64 GB modules? 128 GB? We have to protect against all those cosmic rays, right? ?

1 TB SSD Launched at $88

Posted by takyon on Friday July 19 2019, @10:30AM (#4433)
3 Comments
Hardware

Patriot Launches P200 SSDs with Maxio and Silicon Motion Controllers: From $31.99

This is a launch of a budget line of SSDs. Not specified if it uses QLC NAND, but it has better rated endurance than Samsung 860 QVO (for the 1 TB models: 640 TB for P200, 360 TB for 860 QVO).

256 GB for $31.99 ($0.125/GB)
512 GB for $49.99 ($0.0977/GB)
1 TB for $87.99 ($0.088/GB)
2 TB for $189.99 ($0.095/GB)

That's newly released products, not sale prices.

A quick Slickdeals search finds:

$85: 1TB Intel 660p QLC 3D NAND NVMe M.2 2280 PCIe Internal SSD
$80: 1TB Crucial P1 3D NVMe PCIe M.2 SSD
$80.5: 1TB Samsung 860 QVO 2.5" SATA III Internal Solid State Drive
$80: Crucial 1TB BX500 2.5” SATA Internal SSD + F/S

Looks like $80 is a good sale price right now, with lower than $80 sure to come for drives like the Patriot P200 SSDs.

Even if you don't trust them as far as you can throw them, they might make good portable drives if you can insert them into an enclosure.

Nintendo Switch Followup

Posted by takyon on Thursday July 18 2019, @09:22PM (#4429)
0 Comments
Hardware

Following the Nintendo Switch Lite, they announced a refresh of the original. Same features, but longer battery life due to using a die shrink of the Tegra X1.

Someone somewhere speculated that it could improve performance a little bit by alleviating thermal limits.

You would have to wait for a "Switch 2" or "Switch Pro", but maybe that's a good thing.

Nintendo Announces New Version of Switch with Longer Battery Life

Nintendo Switch Delivers On Promises Of Streaming, Doug Bowser Says

Trump Directly Involved in Illegal Pornstar Payoff

Posted by DeathMonkey on Thursday July 18 2019, @07:16PM (#4427)
29 Comments
News

Donald Trump and his press secretary were directly involved in discussions that led to an illegal hush-money payment to Stormy Daniels during the 2016 election campaign, according to the FBI.

A court filing unsealed on Thursday said Trump and Hope Hicks spoke repeatedly with Michael Cohen, Trump’s longterm legal fixer, in October 2016 as Daniels – also known as Stephanie Clifford – threatened to sell her story of an affair with Trump.

“I believe that at least some of these communications concerned the need to prevent Clifford from going public,” an FBI agent wrote, in an application for a search warrant.

Cohen later admitted to making payments totalling $280,000 through a shell company to buy the silence of Daniels and the former Playboy model Karen McDougal, who also alleged she had an affair with Trump.

The new disclosures raise the possibility that Hicks lied to the FBI. Hicks told an agent in an interview that “she did not learn about the allegations made by Clifford until early November 2016”, the new filings said. Hicks, who is now a senior executive at Rupert Murdoch’s Fox Corporation, has denied wrongdoing.

The filings were released at the federal court in Manhattan, where Cohen pleaded guilty last year to campaign finance and personal financial crimes. Cohen began a three-year sentence in federal prison in May this year.

Trump directly involved in talks that led to Stormy Daniels payment, FBI says