An oppression-proof image acquisition device

Similar projects worth following
Inspired by protests both local and afar, Democracycam is designed to make the effort of documenting events resilient against efforts to suppress the spread of information.

​The current iteration of Democracycam is designed to opportunistically join a shared open WiFi network with other Democracycams and automatically distribute any photos taken across the network as soon as they are captured.

This is done in the simplest way I could come up with, using built-in Linux functionality whenever possible and using the excellent Forban software to handle the distribution of images.

Currently the only code provided is for creating a very basic (and not very good) image preview & capture using the Raspberry Pi-based hardware, documentation on the rest of the configuration is yet to come.

At some point other devices & platforms could be supported, but I have some ideas that require lower-level access to the hardware than I think is possible using off-the-shelf devices like smartphones, etc.

View all 12 components

  • Time for a second generation

    jason.gullickson12/06/2016 at 16:03 0 comments

    I learned a lot from the first attempt at developing this device, but so much has changed that I think it's time for a new device with a similar mission.

    I've been noodling on exactly what that is, and I have a few ideas I like. Once I get some traction I'll be starting a new project and I'll post a link here.

  • Software Alternatives & jsfs

    jason.gullickson07/15/2014 at 19:10 1 comment

    I'm working on another project which is developing a distributed filesystem that runs under node.js.  It may be a good fit for the underpinnings of Democracycam if I can make node.js perform well on the Raspberry Pi (without severe resource consumption). 

    Still in the testing phase, but I thought I'd mention it in case anyone was looking down this path.

  • Case Options

    jason.gullickson04/14/2014 at 14:07 0 comments

    Gave the Adafruit-designed printed camera case a try, it's very well-designed, but doesn't quite fit the hardware I have.  I'm planning to pick-up a complete set of hardware from Adafruit for two cameras so I can build some field-ready units to really test and debug the software, which should run about $300.00.

    Now just to find a wealthy benefactor to underwrite the R&D ;)

  • Laziness Pays Off

    jason.gullickson02/23/2014 at 13:44 0 comments

    Looks like Adafruit has done a lot of the work for me while I took a break from this project.  The most time-consuming bits when I started out were fighting through getting the touchscreen to work with the camera, and it looks like they've wrapped all that up in a nice set of instructions here:

    They also offer a board that could take the place of the one I'm using (seems to work in a similar fashion, but has the software/drivers/kernel stuff figured out for you):

    Finally the O/S support for the Pi camera has improved much, so now it looks like getting it to work is simply a setup option, sweet!

    Based on all this I'm going to re-cobble my hardware and put together a software stack based on what's now available.  Once that's done I'll be turning my attention to the parts of the software that are not off-the-shelf (handling the network transparently and the Forban configuration).  I may also be able to pick up a second camera worth of hardware now that I have a convenient place to buy it all...

    Hardware-wise the case and battery still need to be sorted out, so there's work to do.  I also want to investigate some of the other tiny ARM platforms that have come out since I originally embarked on this project, as well as other types of devices that might participate in the network (storage-only nodes, mobile network uplinks, etc.)

View all 4 project logs

Enjoy this project?



Valery DJONDO wrote 11/01/2023 at 21:26 point

Today, in 2023 your system would be very Usefull
We are at the fate of a WWIII and we see in real time Israël cut all communication in Gaza so the WEST don't know what killing has taken place there.

So your system can't be using radio like Wifi it would be spoted and probably destructed.

I'd say there is no much left to communicate safely. Maybe a laser could aim far enough to be seen and copy the records of your device ? But then who/how would someone pick it up ?
The radio/internet Lock also happened in Paris in some situation, to block the population from organizing against the regime decisions.

Your project resemble to a spy project, or that could be used by any foreign country in an attack to disorganize a regime, right or wrong.

I happend to have an interest in your search for an even heartache situation: in case of a 4Nat, where there no more radio to emit, no more power to energize. This happened for one whole week in the french west indies in 2017 XMartin.
#HAND hacker against natural disaster has born from that.
You can contact for any reason.

I am MARSU from the FdG

  Are you sure? yes | no

Calvin Moore wrote 04/12/2017 at 02:38 point

It looks like this project has gone stale, but...

What type of network are you creating?  You mention both mesh and ad-hoc.  The former implies some sort of structure to the network in which there is dedicated routers with devices that come and go at their whim.  However, an ad-hoc network connects multiple devices together without the need for structure.  If you are using the latter, which I assume is the case since it fits the description, how exactly are you creating the network to allow multiple-hop connections using WiFi?  In my experience, it is quite difficult to get multiple devices to connect to the same (truly) ad-hoc network programmatically, at least using Linux drivers.  Granted this application seems a little simpler: copy this data to all devices I see.

Also, someone mentioned using a frequency band other than 2.4GHz.  If you're interested, you might want to look into a DSSS (or other spread-spectrum modulation technique) that uses random modulation to secure the transmission. 802.11b uses DSSS, but its purpose is more to reduce interference than as a security measure.

  Are you sure? yes | no

mike wrote 08/16/2014 at 19:22 point
I like the premise of this project. Have you considered utilizing other frequencies other than the 2.4Ghz band? Once these are out in the wild it would be a simple thing to interfere with the band. However if the device used random frequencies - agreed by all parties ahead of time - then it would be improbable find the frequency and cause interference. Splitting out the camera from the trasceiver would provide a more modular design and add allow cameras to be confiscated but still allow a mesh network to continue transferring files.

  Are you sure? yes | no

Jasmine Brackett wrote 08/06/2014 at 20:10 point
Hello jason.gullickson, now is the time to add a few more details to your project to give it the best chance of going through to the next round of The Hackaday Prize.

By August 20th you must have the following:
- A video. It should be less than 2 minutes long describing your project. Put it on YouTube (or Youku), and add a link to it on your project page. This is done by editing your project (edit link is at the top of your project page) and adding it as an "External Link"
- At least 4 Project Logs
- A system design document
- Links to code repositories, and remember to mention any licenses or permissions needed for your project. For example, if you are using software libraries you need to document that information.

There is a couple of tutorial video's with more info here:

Good luck!

  Are you sure? yes | no

lami4ka wrote 04/14/2014 at 03:52 point
Neat project! It would be really cool if you could integrate this with phones as well. This way you will have a LOT more devices sharing photos. And you don't even need a camera on the base station - you can just hide it anywhere. People would take pictures with their phones, and even if the police takes them (which they are likely too), the photos remain! You can probably do it with a simple app a-la Dropbox style.

  Are you sure? yes | no

jason.gullickson wrote 04/14/2014 at 14:11 point
I considered building this as a phone app (and eventually will) but there's a couple issues, chief among them is that carriers can brick a phone or ban it from their network at the request of government or law enforcement, so they lack the resilience I'm looking for.

Also I have some hardware behaviors that won't be possible on existing phones, and I wanted to design something that could be put together outside of the regulated commercial manufacturing environment.

That said, eventually having a phone app can't hurt, so I can see a place for it, but it's just lower on my list :)

  Are you sure? yes | no

Mike Szczys wrote 04/09/2014 at 14:09 point
Oh, I see. So the Forban software shares the files across other devices, rather than phoning home to a server over the Internet. Do I have that right?

So if you were worried that someone was going to try and confiscate all of the cameras you just hide one some place and it will accumulate the collection of photos from all of the other units. Just come back at some point and retrieve it. Neat idea!

  Are you sure? yes | no

jason.gullickson wrote 04/09/2014 at 23:56 point
That's right Mike, the idea is that the cameras use a local ad-hoc WiFi network and then replicate everything captured to every other host on the network as quickly as possible. Other more easily hidden (or higher-capacity) devices can also participate in the network (a pirate box for example) to help disseminate media in the event of the cameras themselves being captured.

I'm also working on some physical interfaces that can trigger panic modes, for example a wrist strap that attaches to the SD card so that if the camera is swiped the card is pulled free and kept on person, or an alternative wrist strap which when pulled from the camera triggers a "constant capture" mode that keeps grabbing images and transmitting them to the network while the device is in custody.

  Are you sure? yes | no

tamberg wrote 04/11/2014 at 15:33 point
Maybe hide a WiFi capable CuBox-i ( in a 3D printed fake stone?

  Are you sure? yes | no

jason.gullickson wrote 03/12/2014 at 16:04 point
Thanks Chris, I'm definitely interested in ways to miniaturize the platform and I hadn't considered the sdcard-sized linux machines.

  Are you sure? yes | no

Chris Jones wrote 03/03/2014 at 23:50 point
I really like what your trying to do.. Cool project!
Hey some other options for possible embedded linux hardware, some of the wifi sd cards already run linux and are fairly easy to crack into. Might be a possible solution if you wanted to miniaturize them a bit. In addition, they are sd cards so they could be put right into existing digital cameras, and/or placed on a custom dev board.
Here is a openwrt article on them:

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates