This post originally appeared on opensource.com

When people think about open source hardware, they often think about the general category of electronics that can be soldered and needs batteries. While there are many fantastic open source pieces of electronics, the overall category of open source hardware is much broader. This month we take a look at open source hardware that you can take out into the world, no power outlet or batteries required.

Hummingbird Hammocks

Hummingbird Hammocks offers an entire line of open source camping gear. You can set up an open source rain tarp

Tarp Picture

Image courtesy Hummingbird Hammocks

…with open source friction adjusters

Friction Adjusters

Image courtesy Hummingbird Hammocks

…over your open source hammock

Hammock

Image courtesy Hummingbird Hammocks

…hung with open source tree straps.

Tree Straps

Image courtesy Hummingbird Hammocks

The design for each of these items is fully documented, so you can even use them as a starting point for making your own outdoor gear (if you are willing to trust friction adjusters you design yourself).

Openfoil

Openfoil is an open source hydrofoil for kitesurfing. Hydrofoils are attached to the bottom of kiteboards and allow the rider to rise out of the water. This aspect of the design makes riding in low wind situations and with smaller kites easier. It can also reduce the amount of noise the board makes on the water, making for a quieter experience. Because this hydrofoil is open source you can customize it to your needs and adventure tolerance.

Openfoil

(CC BY-SA 4.0 Openfoil)

Solar water heater

If you prefer your outdoors-ing a bit closer to home, you could build this open source solar water heater created by the Anisa Foundation. This appliance focuses energy from the sun to heat water that can then be used in your home, letting you reduce your carbon footprint without having to give up long, hot showers. Of course, you can also monitor its temperature over the internet if you need to feel connected.

water heater

(CC BY-SA 3.0 Fred Frazelle)

Wrapping Up

As these projects make clear, open source hardware is more than just electronics. You can take it with you to the woods, to the beach, or just to your roof. Next month we’ll talk about open source instruments and musical gear. Until then, certify your open source hardware!

Open Source Hardware is International

This post originally appeared on opensource.com

The Open Source Hardware Association’s Hardware Registry lists hardware from 29 different countries on five continents, demonstrating the broad, international footprint of certified open source hardware.

OSHWA Certification Map

In some ways, this international reach shouldn’t be a surprise. Like many other open source communities, the open source hardware community is built on top of the internet, not grounded in any specific geographical location. The focus on documentation, sharing, and openness makes it easy for people in different places with different backgrounds to connect and work together to develop new hardware. Even the community-developed open source hardware definition has been translated into 11 languages from the original English.

Even if you’re familiar with the international nature of open source hardware, it can still be refreshing to step back and remember what it means in practice. While it may not surprise you that there are many certifications from the United States, Germany, and India, some of the other countries boasting certifications might be a bit less expected. Let’s look at six such projects from five of those countries.

Bulgaria

Bulgaria may have the highest per-capita open source hardware certification rate of any country on earth. That distinction is mostly due to the work of two companies: ANAVI Technology and Olimex.

ANAVI focuses mostly on IoT projects built on top of the Raspberry Pi and ESP8266. The concept of “creator contribution” means that these projects can be certified open source even though they are built upon non-open bases. That is because all of ANAVI’s work to develop the hardware on top of these platforms (ANAVI’s “creator contribution”) has been open sourced in compliance with the certification requirements.

The ANAVI Light pHAT was the first piece of Bulgarian hardware to be certified by OSHWA. Olimex’s first OSHWA certification was for the ESP32-PRO, a highly connectable IoT board built around an ESP32 microcontroller.

China

While most people know China is a hotbed for hardware development, fewer realize that it is also the home to a thriving open source hardware culture. One of the reasons is the tireless advocacy of Naomi Wu (also known as SexyCyborg). It is fitting that the first piece of certified hardware from China is one she helped develop: the sino:bit. The sino:bit is designed to help introduce students to programming and includes China-specific features like a LED matrix big enough to represent Chinese characters.

Mexico

Mexico has also produced a range of certified open source hardware. A recent certification is the Meow Meow, a capacitive touch interface from Electronic Cats. Meow Meow makes it easy to use a wide range of objects—bananas are always a favorite—as controllers for your computer.

Saudi Arabia

Saudi Arabia jumped into open source hardware earlier this year with the M1 Rover. The robot is an unmanned vehicle that you can build (and build upon). It is compatible with a number of different packages designed for specific purposes, so you can customize it for a wide range of applications.

Sri Lanka

This project from Sri Lanka is part of a larger effort to improve traffic flow in urban areas. The team behind the Traffic Wave Disruptor read research about how many traffic jams are caused by drivers slamming on their brakes when they drive too close to the car in front of them, producing a ripple of rapid breaking on the road behind them. This stop/start effect can be avoided if cars maintain a consistent, optimal distance from one another. If you reduce the stop/start pattern, you also reduce the number of traffic jams.

But how can drivers know if they are keeping an optimal distance? The prototype Traffic Wave Disruptor aims to give drivers feedback when they fail to keep optimal spacing. Wider adoption could help increase traffic flow without building new highways nor reducing the number of cars using them.


You may have noticed that all the hardware featured here is based on electronics. In next month’s open source hardware column, we will take a look at open source hardware for the outdoors, away from batteries and plugs. Until then, certify your open source hardware project (especially if your country is not yet on the registry). It might be featured in a future column.

Searchable list of certified open hardware projects

This post originally appeared on opensource.com

In this article, and hopefully more to come, I will share interesting examples of hardware that has been certified by the Open Source Hardware Association (OSHWA).

As an introduction to this series, I’ll start with a little background.

What is open source hardware?

Open source hardware is hardware that is, well, open source. The Open Source Hardware Association maintains a formal definition of open source hardware, but fundamentally, open source hardware is about two types of freedom. The first is freedom of information: Does a user have the information required to understand, replicate, and build upon the hardware? The second is freedom from legal barriers: Will legal barriers (such as intellectual property rights) prevent a user who is trying to understand, replicate, and build upon the hardware from doing so? True open source hardware is open to everyone to do with as they see fit.

What is the Open Source Hardware Association?

The Open Source Hardware Association is the umbrella organization for the open source hardware community. In addition to hosting the formal definition (mentioned above), OSHWA puts on the annual Open Hardware Summit and maintains the Open Source Hardware Certification Program.

What is the Open Source Hardware Certification Program?

“Open source hardware” can mean different things to different people. The Certification Program makes it easy to identify hardware that fully complies with the community definition of open source hardware. Certification is free, and hardware that has been certified is allowed to use the OSHW certification logo and a unique identifier assigned by OSHWA. The certification process makes it easy to be sure that you have provided all of the information needed for someone else to make use of your hardware and removed any legal barriers to use it.

Show me the hardware! A searchable list

Take a look at the entire list of certified projects. In this post, I’ll share two of my favorites.

A conference badge

The first is the badge for the 2018 Open Hardware Summit. The Summit always has great badges, and last year they were fully open sourced and certified (UID: US000133). The badges have an ESP32 micro-controller with built-in WiFi and E-Paper displays for the wearer’s name (or any other information, as the text can be customized and updated via a web app), and they are powered by two AA batteries.

The badge is a good example of how Open Source Hardware Certification handles third-party components. The ESP32 and the WiFi chip are not open source. However, that is not necessarily a barrier to certification. Certification requires the creator to open source what is known as the “creator’s contribution.” In other words, the creators need to open source all the elements they are responsible for and have the ability to openly license. Non-open components are allowed as long as they are documented and freely available without having to sign a non-disclosure agreement (NDA).

A business card holder

The second is a concrete business card holder. Besides its elegance, it is an important reminder that open source hardware is more than things that need batteries and soldering. The world of open source hardware is incredibly broad and should not be thought of only in the context of electronics (although there are plenty of open source electronics). The documentation for the holder includes tips on how to 3D-print the mold and how to pour and finish the concrete. Complete documentation is a great thing!

Hopefully, this has given you a small taste of things to come. In the coming months, the open source hardware roundup will highlight the broad range of certified open source hardware. Want to be included? If you want your hardware to be featured in an upcoming roundup, the first step is to get certified!

Creating Map-Based Data Visualizations Is Getting Pretty Easy

By “pretty easy” I mean “even I can do it” - an exceedingly low bar. It appears that the secret is kepler.gl, New York City open data, and a little bit of python. Click here to play around with my map yourself.

I have been wanting to try and do a neat map-based thing for a while but did not really have a good project to use as a hook. That changed when I found out that New York City makes film permit data available as part of its (excellent) open data portal. My neighborhood is always having streets closed off for shooting and I was curious how it compared to the rest of the city.

Preparing the Data

Getting the data is pretty easy - just download it from the film permit data site. While that data set is good, it isn’t quite ready to be used. The data set has a lot of information about location - borough, zip code, streets closed, etc. What it doesn’t have is specific latitude and longitude. Those numbers are going to be key to placing the dots on the map so I needed a way to get them. Since there are tens of thousands of entries, I needed a robot to figure things out.

Fortunately there are robots that are good at this kind of thing. Reverse geocoding APIs allow you to submit address information and in return they will send you lat/long. They can even work with not-quite-address data, like cross streets and zip codes.

In order to make things work, I wrote a python script to open the file from the City, send the useful bits to the geocoding API, and add the lat/long to a new file. I decided to use the Mapbox geocoding API because Mapbox is great.

It turned out that the data needed some cleaning before the API would give me what I needed. The first issue was that I had forgotten how to deal with the fact that the first row was a header row. Since I am lazy and there was only one input file I just deleted the row in the input file and manually pasted it back into the output file at the end.

in terms of more substantive issues, sometimes there were many locations associated with a single permit, so I decided to break the entries up by location. This code breaks up multiple-address entries into individual entries:

addresses = list(row[6].split(',  '))

The for loop then works through each address to make it its own entry in the output file:

for address in addresses:

If there were multiple addresses there were also multiple zipcodes. I admit that I cheated here. Instead of figuring out how to map the multiple zipcodes to the multiple addresses, I just picked the first zip code and used it for all of the addresses. My hope was that it would be close enough:

zip_split = list(row[13].split(', '))
first_zip = zip_split[0]

After playing with some test data I realized that at least 30% of the addresses I sent were not recognized by the geocoder. Helpfully the geocoder returned some address in West Africa when it was confused, so it was easy to find the errors. After playing around a bit I figured out that stripping the ‘and’ and ‘between’ from the addresses made the geocoder more accurate:

address_no_between = address.replace('between', ' ')
address_fully_stripped = address_no_between.replace('and', ' ')

I also realized that the order of terms mattered for the geocoder. Specifically, putting the street names at the end of the term seemed to help:

geocoder_entry = borough + ' New York City ' + first_zip + ' ' + address_fully_stripped
print("GC entry = " + geocoder_entry)


#looks up the address and pulls the lat and long
response = geocoder.forward(geocoder_entry)
counter += 1
collection = response.json()
lat = collection['features'][0]['center'][1]
#writes it to the csv
#row.append(lat)
long = collection['features'][0]['center'][0]

That greatly reduced the number of errors from the geocoder, although it did not eliminate them. In order to try and salvage something, if the geocoder returned a bad lat/long I resubmitted the query with just the first street name:

short_geocoder_entry = borough + ' New York City ' + first_zip + ' ' + short_address
print("Short GC entry = " + short_geocoder_entry)
response = geocoder.forward(short_geocoder_entry)
counter += 1
collection = response.json()
lat = collection['features'][0]['center'][1]
long = collection['features'][0]['center'][0]
row.append(lat)
row.append(long)
output_writer.writerow(row)

That got the accuracy rate high enough for me to stop worrying about it.

Using the Data

Once I had a correctly formatted data set it was time to move over to kepler.gl. At this point things became comically easy. The steps were just:

  1. Go to kepler.gl
  2. Upload the output file (make sure you have re-added the header row)
  3. Add a filter tied to the field “StartDateTime”

That is the whole process. Kepler automatically recognized that I wanted to show the locations over time and added the timebar to the bottom of the screen (click here to play with the real one):

Dotmap

If I wanted to add hotspots over time (instead of individual dots) that was as simple as adding a new layer:

Heatmap

That’s basically it. I am excited to use this visualization for more things and I hope this post helps prove to you that pretty much anyone can make real looking map visualizations.

Earlier this week OSHWA announced that it would not be holding the 2019 Open Hardware Summit in Shenzhen, China. The stated reason for canceling the Summit is that China’s new foreign NGO law created logistical and bureaucratic barriers to holding the Summit in China. This reason is absolutely true – OSHWA was not going to be able to overcome the barriers created by the law.

However, there is also a second reason that I am wary of holding an event in China: China is currently holding one million ethnic Uyghurs in concentration camps, primarily because they are ethnically and religiously different from the Han Chinese majority. While OSHWA did not discuss the Uyghur situation in the Summit announcement, I believe that it is important to flesh out this concern for the community. I also believe that the open community should also consider this situation when it thinks about bringing major events to China.

The Situation

Uyghurs are a predominantly Muslim ethnic minority who primarily live in western China. China has currently placed perhaps one million Uyghurs in what are commonly described as detention camps, re-education camps, or gulags. Uyghurs are in these camps because of their racial and religious identity. For Uyghurs not placed in camps, the Chinese government has ordered another one million Chinese citizens, known as “big brothers and sisters,” to live in the homes of Uyghurs and report their activity back to the government. Uyghurs are also being forced to shave their beards, eat pork, drink alcohol, and generally partake in activities that violate their religious beliefs for the purpose of distancing them from those beliefs.

Speaking out about these camps - even for people outside of China - can be dangerous. China has routinely placed the relatives of Uyghurs outside of China in camps as punishment for speaking out. This makes drawing attention to and discussing this practice highly fraught in general, and and all but precludes responsible discussion of them within China.

Even if one were inclined to draw a moral equivalence between China’s treatment of Uyghurs and any number of activities undertaken by the U.S. government today, the combination of massive human rights abuses and punishment for activists who dare to raise concerns about the abuses has no equivalent in the United States or any other western country that I am aware of. That makes the situation worthy of discussion within the open community.

OSHWA and Uyghurs

The Uyghur situation presented a potential problem for holding the Summit in China this year: should OSHWA hold its major event in a country engaged in this kind of activity? While an easy question to ask, I will not pretend that this is necessarily a question with a straightforward answer.

OSHWA is an organization organized around a community of open source hardware. Human rights issues are not obviously part of that primary mission. At the same time, the open community strives to be inclusive. OSHWA is rightly proud of the Summit’s code of conduct and the Ada fellowship. While these things are not directly related to making open source hardware in a narrow sense, we recognize as a community that it is important to fostering an inclusive and vibrant open source hardware ecosystem.

In light of that, how should OSHWA evaluate human rights abuses in potential Summit host countries? Is it OSHWA’s place to speak out on human rights issues? If so, how should it do so and what kind of legitimacy does it speak with? To the extent that OSHWA has a community mandate to speak about open hardware issues, does that mandate extend to human rights issues?

Furthermore, OSHWA has many community members in China. What does it mean for their safety if OSHWA begins speaking out against human rights abuses there? If OSHWA comes out against what is going on with Uyghurs, should agreeing with OSHWA’s stance on that issue be a prerequisite for supporting open source hardware? What would that mean for OSHWA supporters in China who support the government’s activities? If OSHWA was to get involved with this situation, how would it handle other non-open hardware-related situations in the world? If OSHWA is worried about the situation, is it better to go to China and engage with people about it or simply walk away?

These are mostly answerable questions, but they are questions where reasonable people could disagree. In light of that complexity, OSHWA decided to take a path of constitutional avoidance with regard to the Summit. Because OSHWA could decide not to hold the Summit on relatively non-controversial procedural grounds – the foreign NGO law effectively made it impossible to hold the Summit in China this year – OSHWA decided not to wade into the Uyghur situation as well.

What are the Ramifications?

I think this was the responsible decision by OSHWA. That does not mean that the community - as opposed to OSHWA as an organization - should necessarily ignore the Uyghur situation. In fact, I believe that the open source hardware community has a responsibility to understand what is happening in a country that is so important to it.

I certainly would not have been comfortable participating in a Summit held in China with one million people in concentration camps. That discomfort would have been compounded by the fact that even pausing for a moment to recognize the existence of the camps at a China-based Summit would have exposed the organizers - Chinese and non-Chinese alike - to potential punishment from the Chinese government. That would make it irresponsible to do so.

I also am not suggesting that a relationship with China is binary. I continue to use products made in China and engage with Chinese companies. It should go without saying that raising this issue is not an attack on the Chinese people, and that I enjoy and hope to continue to grow my relationship with many members of the Chinese open source hardware community. In fact, I hope that there are open hardware events in China as part of Open Hardware Month in October.

Nonetheless, holding the Summit would have been a special type of engagement. OSHWA chooses the city for the Summit in order to highlight the importance of that city for the community. Special types of engagement should bring with them special types of responsibilities and reflections.

OSHWA does not have to directly grapple with how the Uyghur situation interacts with the Summit this year. However, there are many other organizations in the open source hardware community (and the larger maker community) that are considering holding events in China this year. Assuming they can find a way to navigate the NGO law (or that the NGO law does not apply to them), I hope that they will at least pause to consider what their event might mean in a country with a million people in concentration camps.