HNHacker News
TopNewBestAskShowJobs

pd0wm

676 karma · joined March 26, 2013

https://github.com/pd0wm https://blog.willemmelching.nl
submissionscomments
pd0wm··on Using 4G LTE wireless modems on a Raspberry Pi
With modemmanager you get a lot of nice stuff for "free", like automatic reconnect, DHCP, good logging, and an APN database (useful if you don't provide your own SIMs). It also allows you to easily set up correct priorities between WiFi and LTE, both for routing and DNS. Especially DNS is something I didn't think about at first, but the DNS server provided by your LTE connection is not always reachable over your WiFi/ethernet connection.

This is the config I'm using: https://github.com/commaai/agnos-builder/blob/master/userspa...

You can run modemmanager in debug mode, which allows you to send AT commands over dbus (or mmcli) in case you still want to configure some stuff manually or get debug info.

pd0wm··on Using 4G LTE wireless modems on a Raspberry Pi
Have you experimented with modemmanager/networkmanager to handle the configuration of the modem? For me that has worked quite reliably across a pretty large fleet of devices with a Quectel EG25 (qmi over usb).

Regarding FW updates, have you tried opening a support ticket with Quectel? For me they have been extremely responsive and helpful, providing extra documentation on special AT commands and stuff.

pd0wm··on Hacking a VW Golf Power Steering ECU
In this case the EPS already came stock with the functionality to request torque over CAN, that part of the code or the amount of torque was not touched. I agree it would not be a good idea to patch that functionality into an EPS that doesn't come with that from the factory.
pd0wm··on Hacking a VW Golf Power Steering ECU
Ghidra uses an intermediate language called p-code. When defining the CPU opcodes (and how to parse them), you also write a small snippet of p-code that represent that instruction. This makes the decompiler architecture agnostic.

Example: https://github.com/NationalSecurityAgency/ghidra/blob/master...

pd0wm··on Hacking a VW Golf Power Steering ECU
The XOR encryption was just for the update container. Newer update files usually employ some stronger forms of compression/encryption. However, it's usually some strange in-house crypto, so eventually people figure it out.

bri3d refers to using RSA signatures on the firmware once it's written to the flash. By ensuring the firmware is signed using the manufacturers private key it should (in theory) prevent messing with the firmware, even if all encryption/flashing steps have been reverse engineered.

Some interesting reading: https://github.com/bri3d/VW_Flash/blob/master/docs/docs.md https://github.com/jglim/UnsignedFlash

pd0wm··on Comma Three Devkit
At some point the values have no deeper meaning and are just whatever VW decided on as their API. DBC files have concepts of enums, but that’s really diminishing returns and wouldn’t make the code that much easier to understand.

Also sometimes there are fixed values in the message that we’ve only observed as static data. Ironically that makes it impossible to reverse engineer what they mean. So those just have to be labeled as hardcoded value.

Those are actually magic. Those are the ECU firmware identifiers from the manufacturer that are used by openpilot to recognize which car it’s connected to.

pd0wm··on Comma Three Devkit
See my other comment about Ford code being reference only.

Supported cars have most signals defined in a dbc file, the mapping from name to id and bytes. See https://github.com/commaai/opendbc

This results in much cleaner car abstraction layers: https://github.com/commaai/openpilot/blob/de0ce142ae51cf9c85...

pd0wm··on Comma Three Devkit
The file you referenced is related to Ford, which is not a supported car/brand. The code for Ford is provided as a reference and is forced into “read-only” both by openpilot and panda (the bridge between openpilot and the car).
pd0wm··on I’m Peter Roberts, immigration attorney who does work for YC and startups. AMA
Do you have any guess on when premium processing would be brought back?
pd0wm··on Hacking an Audi: performing a man-in-the-middle attack on FlexRay
Seems like the https://www.vector.com/int/en/products/products-a-z/hardware... has some similar functionality. I have never used it, but by reading the documentation I'm not sure if it would have been useful here. The frame with ID 65 which needs be overwritten, actually contains 4 different messages indicated by the last byte in the payload. To properly time the modification you need to sync up on that, which the Vector box can't do.

Also price on request, so probably not in the price range of our target audience.

pd0wm··on Comma Two Devkit
https://comma.ai/faq
pd0wm··on My Favorite Programming Problem to Teach: Digit Length
Funny fact: the python round implementation actually uses strings. https://github.com/python/cpython/blob/master/Objects/floato...
pd0wm··on Google’s Cloud TPU Pods are now publicly available in beta
It might have not been clear from my comment, but I was specifically referring to those ML as a service. The TPUs seem to fall under GCP which has a less restrictive ToS.

I do understand they don’t want to make it too easy to resell their research. But having access to all your source code, training data and documentation is a bit extreme. Why can’t they just tell you to stop selling your product?

pd0wm··on Google’s Cloud TPU Pods are now publicly available in beta
I wonder if they will apply the same terms of service as with their Cloud Machine Learning offerings (Auto ML, Cloud Vision, etc).

A snippet from https://cloud.google.com/terms/service-terms#12-google-cloud...:

  Customer will not, and will not allow third parties to: (i) use these Services
  to create, train, or improve (directly or indirectly) a similar or competing
  product or service or (ii) integrate these Services with any applications for
  any embedded devices such as cars, TVs, appliances, or speakers without Google's
  prior written permission. These Services can only be integrated with
  applications for the following personal computing devices: smartphones, tablets,
  laptops, and desktops. In addition to any other available remedies, Google may
  immediately suspend or terminate Customer's use of these Services based on any
  suspected violation of these terms, and violation of these terms is deemed
  violation of Google's Intellectual Property Rights. Customer will provide Google
  with any assistance Google requests to reasonably confirm compliance with these
  terms (including interviews with Customer employees and inspection of Customer
  source code, model training data, and engineering documentation). These terms
  will survive termination or expiration of the Agreement.
pd0wm··on Comma2k19 – A dataset of over 33 hours of commute in California's 280 highway
There is a microcontroller between the phone and the car that monitors all communication and enforces safety limits. This code is written in C++.
pd0wm··on Comma2k19 – A dataset of over 33 hours of commute in California's 280 highway
Can you buy them for $199 in quantity?

A phone is actually a very nice and reliable piece of hardware. It has everything you need CPU, GPU, DSP, two cameras (front and back), a backup battery, a screen and wifi/lte to upload your data.

pd0wm··on iTerm2 has a new drawing engine that uses Metal 2
You are probably referring to fish shell which has this feature (https://fishshell.com/).

However, I find that zsh + ohmyzsh works just as well. After typing the beginning of a command you can use the arrow keys to cycle through all commands in the history with the same beginning.

A third method for efficient history search is ctrl+r. Just press ctr+r and start typing part of the command. Then you press enter to execute or ctr+r to cycle through the history.

pd0wm··on Bringing Forward Collision Warnings to our open source self-driving car
The depth output of our vision stack is currently not accurate enough to reliably measure relative speed. However our ML team is currently working on new models. Maybe in the future this will be accurate enough to do this without a radar.
pd0wm··on Bringing Forward Collision Warnings to our open source self-driving car
The chffr team is now mostly working on improving the dashcam experience.

The grey panda is a panda where we replaced the wifi chip by a high precision ublox GPS module. We can use this to make high precision maps, and in the future this will allow us to stop at traffic lights and stop signs.

pd0wm··on Bringing Forward Collision Warnings to our open source self-driving car
Author here. Happy to answer any questions you might have about the post or openpilot in general.
pd0wm··on Apollo – An open autonomous driving platform
The exact same can be said about human drivers. Why do we demand that autonomous driving is 100% safe? I would be completely fine with autonomous cars that sometimes crash, but are still less likely to do so than with human drivers.
pd0wm··on Gitlab is down again
Gitlab status on twitter: "One of our NFS backends was rebooted unexpectedly, we are looking into the matter"

https://twitter.com/gitlabstatus/status/854252676678385664

pd0wm··on Ask HN: What are you working on?
Project: Designing my own cruise control

Currently I'm a MSc. student in Systems & Control. To put theory into practice I'm designing a cruise control for my car. Eventually this should become an open system to assist the driver. This allows for integration of things like following distance, speed limit, traffic density to improve safety and comfort.

Currently I'm working on parsing data from the GPS and other sensors. Read more about this on my blog: http://willemmelching.nl/. Code: https://gitlab.com/pd0wm/open-driver-assist

pd0wm··on Organ donation becomes opt-out in France
The title of the article is misleading. France has had an opt-out sytem for organ donation for years. The only thing that has changed is that it is no longer required to consult relatives for a second opinion.

> Until 1 January, when the legislation took effect, unless the person who had died had previously expressed a clear wish for or against donation, doctors were required to consult relatives who, in almost a third of cases, refused.

pd0wm··on Hard Disk Hacking (2013)
Previous thread: https://news.ycombinator.com/item?id=6148347
pd0wm··on Show HN: A database for browsing and discovering movies
Looks good!

I think you have a small issue with the Rotten Tomatoes API, for example with the movie Lucy (http://www.movieo.me/240832-lucy). The page shows a 96% audience score, while the Rotten Tomatoes website says 48% (http://www.rottentomatoes.com/m/lucy_2014/).

pd0wm··on Porsche: The Hedge Fund That Also Made Cars
The slogan of Volkswagen is "Das Auto". Or did you knew ;)
pd0wm··on Someone built xkcd's Virus Aquarium (xkcd #350)
http://xkcd.com/350/
pd0wm··on Google offering $1M prize for a much smaller power inverter
However, there is also a downside to a higher switching frequency. In the inverter transistors are used to generate the high frequency AC voltage.

A transistor generates no loss if it is in the full on or full off state (saturated). But every time a transistor switches from the on to off state (or back) it goes through its linear region. While in the linear region the transistor acts as a resistor and generates heat. If you increase the switching frequency the transistor switches more often and thus generates more heat.

The solution to this problem is to use more efficient transistors or decrease the switching time (the time it takes to switch from high to low, or back).

Of course higher switching frequencies also have lots of other problems such as radiation, skin effect, etc.

pd0wm··on 2048 in 4D

  8 3 4 
  1 5 9 
  6 7 2
Page 1 of 2Next →