These days everyone talks about data “in the cloud.” However, before that phrase was fashionable, there were a few pioneers and one of the most famous of these is Dropbox — a service that let you store files on a remote server that dates back to 2007. [Vincent Berg] first noticed some odd network traffic on a hotel network, and figured out that it was a feature of Dropbox that allows computers on the same network to update each other. This led him to start investigating the undocumented Dropbox protocol and reverse engineering the Linux client.
We won’t ask why [Vincent] was poking around the hotel network to start with. However, a cursory glance at the Dropbox client gave away that it was using Python. The byte-compiled classes were — at the time — in a ZIP file added to the executable (which was nothing but a modified copy of Python). The files were encrypted, but [Vincent] used a clever technique. He built a shared object using normal Python and put a backdoor in it that gave him access to the Dropbox Python interpreter.
Continue reading “Reverse Engineering Dropbox”
Over the past 30 years the price of hardware has slowly but surely come down, and it’s now possible to buy all manner of widgets and gizmos online for less than the price of a fancy Italian dinner. By and large this is a good thing, but it’s not uncommon to find that your new tools are let down by the software side of things. Of course, you can always develop your own solution – and in [ThePhil]’s case, that’s exactly what he did.
The hardware in question was a PCE-174 luxmeter, which came with an uncooperative Windows application as standard. This simply wouldn’t do, so [ThePhil] set about developing a Linux version in Python. This was achieved through the aid of documentation, not of the PCE-174, but its sibling from another corporation – the Extech HD450. The two meters were similar enough that the Extech’s better documentation was able to fill in the gaps of [ThePhil]’s understanding.
[ThePhil] has diligently implemented the full feature set of the PCE-174, and has documented the project well. There are even notes on the version numbers of various dependencies, which will surely be a great help if someone’s trying to run the code five years down the track.
It’s a great lesson that one need not be at the mercy of the software one is given. For a great many cases, it’s possible to roll your own solutions that are robust and get the job done. This approach can be taken to great lengths – you can go so far as replacing an entire camera firmware, if you so wish.
Graphing calculators are an interesting niche market these days. They’re relatively underpowered, and usually come with cheap, low resolution screens to boot. They remain viable almost solely due to their use in education and the fact that their limited connectivity makes them suitable for use in exams. The market is starting to hot up, though – and TI have recently been doing some interesting work with Python on their TI-83.
Rumor has it that TI have been unable to get Python to run viably directly on the TI-83 Premium CE. This led to the development of the TI-Python peripheral, which plugs into the calculator’s expansion port. This allows users to program in Python, with the TI-Python doing the work and the calculator essentially acting as a thin client. The chip inside is an Atmel SAMD21E18A-U, and is apparently running Adafruit’s CircuitPython platform.
This discovery led to further digging, of course. With some hacking, the TI-Python can instead be replaced with other boards based on Atmel SAMD21 chips. For those of you that aren’t in Atmel’s sales team, that means it’s possible to use things like the Adafruit Trinket M0 and the Arduino Zero instead, when flashed with the appropriate CircuitPython firmware. It’s a tricky business, involving USB IDs and some other hacks, but it’s nothing that can’t be achieved in a few hours or so.
This is a hack in its early days, so it’s currently more about building a platform at this stage rather then building fully-fledged projects just yet. We’re fully expecting to see Twitter clients and multiplayer games hit the TI-83 platform before long, of course. When you’ve done it, chuck us a link on the tip line.
[Thanks to PT for the tip!]
Join us Wednesday at noon Pacific time for the Python and the Internet of Things Hack Chat!
Opinions differ about what the most-used programming language in right now is, but it’s hard to deny both the popularity and versatility of Python. In the nearly 30 years since it was invented it has grown from niche language to full-blown development environment that seems to be everywhere these days. That includes our beloved microcontrollers now with MicroPython, and Adafruit’s CircuitPython, greatly lowering the bar for entry-level hackers and simplifying and speeding development for old hands and providing a path to a Python-powered Internet of Things.
The CircuitPython team from Adafruit Industries – Dan Halbert, Kattni Rembor, Limor “Ladyada” Fried, Phillip Torrone, and Scott Shawcroft – will drop by the Hack Chat to answer all your questions about Python and the IoT. Join us as we discuss:
- How CircuitPython came to be;
- The range of IoT products that support Python;
- Getting started with Python on IoT devices; and
- What’s on the horizon for a Python-powered IoT?
And as extra enticement, we’ll be giving away five free one-year passes to Adafruit.io! We’ll draw five names at random from the list of Hack Chat attendees. Stop by for a chance to win. And, the Adafruit team will be streaming video live during the Hack Chat as well.
You are, of course, encouraged to add your own questions to the discussion. You can do that by leaving a comment on the Python and the Internet of Things Hack Chat and we’ll put that in the queue for the Hack Chat discussion.
Our Hack Chats are live community events on the Hackaday.io Hack Chat group messaging. This week we’ll be sitting down on Wednesday, April 3, at noon, Pacific time. If time zones have got you down, we have a handy time zone converter.
Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.
Want a quick peek at what’s possible with CircuitPython? Check out this PyPortal event countdown timer that just happens to be counting down the hours till the next Hack Chat.
The Rigol DS1054Zed is the oscilloscope you want. If you don’t have an oscilloscope, this is the scope that has the power and features you need, it’s cheap, and the people who do hardware hacks already have one. That means there’s a wealth of hardware hacks for this oscilloscope. One small problem with the ‘Zed is the fact that capturing an image from the screen is overly complicated, and the official documentation requires dedicated software and a lot of rigolmarole. Now there’s a simple python script that grabs a screen cap from a Rigol scope.
The usage of this python script is as simple as plugging the DS1054Z into your USB port and running the script. A PNG of whatever is on the screen then appears on your drive. Testing has been done on OS X, and it probably works on Linux and Windows. It’s a simple tool that does one job, glory and hallelujah, people are still designing tools this way.
This work was inspired by the efforts of [cibomahto], who spent some time controlling the Rigol with Linux and Python. This work will plot whatever is being captured by the scope in a window, in Linux, but sometimes you just need a screencap of whatever is on the scope; that’s why there were weird Polaroid adapters for HP scopes in the day.
Yes, it’s a simple tool that does one job, but if you need that tool, you really need that tool. [rdpoor] is looking for a few people to test it out, and of course pull requests are accepted.
March 14th is “Pi Day”, for reasons which should be obvious to our more mathematically inclined readers. As you are not reading this post on March 14th, that must mean we’re either fashionably late to Pi Day 2019, or exceptionally early for Pi Day 2020. But in either event, we’ve got a hack for you that celebrates the day using two things we have it on good authority most hackers overindulge in: food and needless complexity.
This project comes from [Mike MacHenry], and it’s just as straightforward as it looks. Put simply, he’s using a load cell connected to the Raspberry Pi to weigh an actual pie and monitor its change over time. As the pie is consumed by hungry hackers, a pie graph (what else?) is rendered on the attached screen to show you how much of the dessert is left.
One might say that this project takes a three dimensional pie and converts it to a two dimensional facsimile, but perhaps that’s over-analyzing it. In reality, it was a fun little hack [Mike] put together just because he thought it would be fun. Which is certainly enough of a motive for us. More practically though, if you’re looking for a good example for how to get a load cell talking to your non-edible Raspberry Pi, you could do worse than checking this out.
We’ve also got to give [Mike] extra credit for including the recipe and procedure for actually baking the apple pie used in the project. While we’re not 100% sure the MIT license [Mike] used is actually valid for foodstuffs, but believe it or not this isn’t the first time we’ve seen Git used in the production of baked goods.
Historically, microcontrollers’ limited computing power and storage space meant software had to be written in low-level languages out of necessity. In recent years small affordable chips grew powerful enough that they could theoretically run higher level languages, sparking numerous efforts to turn that theory into reality. MicroPython delivered on this promise in a big way when their Kickstarter-funded pyboard was delivered along with its open source software. Several years have since passed, and now it is time for an upgraded pyboard: the D-series.
We’ve talked with [Damien George] back when the original Kickstarter was still underway. Since the launch of pyboard and release of MicroPython source code, we’ve played with ports running on an ESP8266 and on a BBC micro:bit. The software ecosystem has continued to grow, most recently we looked at LittlevGL graphics library. But just because all the flashy action has been happening on the software side doesn’t mean the hardware side has been sitting stagnant.
Pyboard-D upgraded from original pyboard’s STM32F4 to more capable STM32F7 chips. Witnessing the popularity of MicroPython on networked darlings ESP8266 and ESP32, there will be a pyboard D variant with a Murata 1DX on board for WiFi and Bluetooth connectivity. The new pyboard will be extremely compact with limited edge connections so a fine-pitched connector is required to bring out all the pins. To bring the new pyboard back to its educational and tinkerer roots, a breakout board will take those pins and spread them out in a breadboard friendly form factor. These breakout boards can also host small (12 mm x 12 mm) “tiles” to add individual features.
The wireless pyboard D will obviously invite comparison tests with an ESP32 running MicroPython, and its hardware expansion tiles invites comparison with Adafruit’s Wings. It’ll be interesting to see how they fare once widely available and we can get our hands on them. If you’ve picked up an earlier release at FOSDEM 2019, we invite you to share your experience in comments.
[via Adafruit blog]