TommyPROM VS ArduinoJson

Compare TommyPROM vs ArduinoJson and see what are their differences.

TommyPROM

Simple Arduino-based EEPROM programmer (by TomNisbet)

ArduinoJson

📟 JSON library for Arduino and embedded C++. Simple and efficient. (by bblanchon)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
TommyPROM ArduinoJson
34 24
139 6,581
- -
7.9 8.8
6 days ago 1 day ago
Logos C++
- MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

TommyPROM

Posts with mentions or reviews of TommyPROM. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-05.
  • Antique telecommunications device with keypad, speaker, and printout found at shop with a note attached
    1 project | /r/whatisthisthing | 1 Jul 2023
  • EEPROMs not working
    2 projects | /r/beneater | 5 Jun 2023
  • Cannot disable write protect on AT26C64B EEPROM
    2 projects | /r/beneater | 13 May 2023
    I have tried the script from u/nib85 from his github here (https://github.com/TomNisbet/TommyPROM/blob/master/unlock-ben-eater-hardware/unlock-ben-eater-hardware.ino) His code is for the 256k rather than the 64k version and I changed the sequence of writes as required by the datasheet for the 64k version as follows:
  • TommyPROM Help
    1 project | /r/beneater | 19 Apr 2023
    Oh ok. I did upload the sketch from the arduino ide, but I was following the documentation at https://tomnisbet.github.io/TommyPROM/.
  • New eeprom, different problem... All 'ff's...
    1 project | /r/beneater | 22 Mar 2023
    Which chip are you using? If it is the 28C256 and you built the Ben Eater programmer, try this sketch: https://github.com/TomNisbet/TommyPROM/tree/master/unlock-ben-eater-hardware
  • Problem with Arduino based EEPROM programmer
    1 project | /r/beneater | 22 Mar 2023
    Also, although not necessarily the root cause based on the symptoms you are describing, the AT28C256 comes with a software data protection feature which, if it was somehow enabled prior to shipping, needs to be disabled. Ben's EEPROM code does not unlock these chips. If your testing reveals that the EEPROM was in fact not written to, then one option would be to implement u/nib85's TommyPROM arduino programmer, which supports unlocking. It uses a few different chips, but you can make it work with Ben's hardware. There is a section somewhere in the hardware notes that speaks to that.
  • Continuous eeprom problems
    1 project | /r/beneater | 14 Mar 2023
    Here is one of th3m that works with your setup: https://github.com/TomNisbet/TommyPROM I will search for the other one and send. Also, read the README of the github repository
  • After writing my EEPROM I only read ff | ATMEL AT28C16 15PU 1701
    1 project | /r/beneater | 6 Mar 2023
    When I encountered the problem I tried to find the solution and found references to TommyRom. After trying I had the same behaviour then before. From the Datasheet I couldn't find mutch about extra steps to writing the Chip. I haven't build the first thing where Ben programmed the Chip manually, but I will recreate it next.
  • Buying the components in Europe
    1 project | /r/beneater | 8 Feb 2023
    Really not sure about that programmer... according to what I could read here it mostly supports micro-controllers and serial EEPROM chips. If you only run on Windows, then the XGecu T48 would be a safer bet, IMO. One of XGecu's official distributors has a store on AliExpress under the name of 'XGecu Official Store'. Most reliable source if you are willing to wait a bit. If you run Mac OS or Linux, then the older TL-866II-Plus model is best for compatibility as the minipro open source software works with it on these platforms. Still available out there, but good chance it will be a clone. A third option is a breadboard/arduino version like the TommyPROM from u/nib85.
  • Programming EEPROM
    1 project | /r/electronic_circuits | 21 Dec 2022
    I just added support for these chips to my programmer. Take a look at this project if you want to see some working code: https://github.com/TomNisbet/TommyPROM

ArduinoJson

Posts with mentions or reviews of ArduinoJson. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-12-22.
  • How can I obtain weather info?
    1 project | /r/esp8266 | 20 May 2023
  • Creating Pixel Art with Web Interface using ESP8266
    2 projects | dev.to | 22 Dec 2022
    I'm using the library ArduinoJson to storage arts in the ESP8266 memory at JSON format. But, i'm have difficult to storage more than 4 drawings, possibly because i don't know how scale, optimize and manager the memory space.
  • Question regarding ArduinoJson.h Connection
    2 projects | /r/esp32 | 12 Dec 2022
    /******************************************************************* A sample project for making a HTTP/HTTPS GET request on an ESP32 and parsing it from JSON It will connect to the given request, parse the JSON and print the body to serial monitor Parts: ESP32 Dev Board Aliexpress: * - https://s.click.aliexpress.com/e/_dSi824B Amazon: * - https://amzn.to/3gArkAY * * = Affilate If you find what I do useful and would like to support me, please consider becoming a sponsor on Github https://github.com/sponsors/witnessmenow/ Written by Brian Lough YouTube: https://www.youtube.com/brianlough Tindie: https://www.tindie.com/stores/brianlough/ Twitter: https://twitter.com/witnessmenow *******************************************************************/ // ---------------------------- // Standard Libraries // ---------------------------- #include #include // ---------------------------- // Additional Libraries - each one of these will need to be installed. // ---------------------------- #include // Library used for parsing Json from the API responses // Search for "Arduino Json" in the Arduino Library manager // https://github.com/bblanchon/ArduinoJson //------- Replace the following! ------ char ssid[] = "yourSSID"; // your network SSID (name) char password[] = "yourPassword"; // your network key // For Non-HTTPS requests // WiFiClient client; // For HTTPS requests WiFiClientSecure client; // Just the base of the URL you want to connect to #define TEST_HOST "api.openweathermap.org" // Root cert of server we are connecting to // Baltimore CyberTrust Root - Expires 12 May 2025 // (FYI, from a security point of view you should not trust certs from other people, including me!) /*const char *server_cert = "-----BEGIN CERTIFICATE-----\n" "MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ\n" "RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD\n" "VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX\n" "DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y\n" "ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy\n" "VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr\n" "mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr\n" "IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK\n" "mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu\n" "XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy\n" "dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye\n" "jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1\n" "BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3\n" "DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92\n" "9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx\n" "jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0\n" "Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz\n" "ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS\n" "R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\n" "-----END CERTIFICATE-----\n"; */ void setup() { Serial.begin(115200); // Connect to the WiFI WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); Serial.println(""); // Wait for connection while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.print("Connected to "); Serial.println(ssid); Serial.print("IP address: "); Serial.println(WiFi.localIP()); //-------- // Checking the cert is the best way on an ESP32 // This will verify the server is trusted. //client.setCACert(server_cert); // If you don't want to verify the server // Unlike the fingerprint method of the ESP8266 which expires frequently // the cert lasts years, so I don't see much reason to ever // use this on the ESP32 client.setInsecure(); } void makeHTTPRequest() { // Opening connection to server (Use 80 as port if HTTP) if (!client.connect(TEST_HOST, 443)) { Serial.println(F("Connection failed")); return; } // give the esp a breather yield(); // Send HTTP request client.print(F("GET ")); // This is the second half of a request (everything that comes after the base URL) client.print("/data/2.5/weather?q=London, UK&appid=[yourOpenWeatherAPI]&units=metric"); // %2C == , client.println(F(" HTTP/1.1")); //Headers client.print(F("Host: ")); client.println(TEST_HOST); client.println(F("Cache-Control: no-cache")); if (client.println() == 0) { Serial.println(F("Failed to send request")); return; } //delay(100); // Check HTTP status char status[32] = {0}; client.readBytesUntil('\r', status, sizeof(status)); if (strcmp(status, "HTTP/1.1 200 OK") != 0) { Serial.print(F("Unexpected response: ")); Serial.println(status); return; } // Skip HTTP headers char endOfHeaders[] = "\r\n\r\n"; if (!client.find(endOfHeaders)) { Serial.println(F("Invalid response")); return; } // This is probably not needed for most, but I had issues // with the Tindie api where sometimes there were random // characters coming back before the body of the response. // This will cause no hard to leave it in // peek() will look at the character, but not take it off the queue while (client.available() && client.peek() != '{') { char c = 0; client.readBytes(&c, 1); Serial.print(c); Serial.println("BAD"); } // // While the client is still availble read each // // byte and print to the serial monitor // while (client.available()) { // char c = 0; // client.readBytes(&c, 1); // Serial.print(c); // } //Use the ArduinoJson Assistant to calculate this: //StaticJsonDocument<192> doc; DynamicJsonDocument doc(1024); //For ESP32/ESP8266 you'll mainly use dynamic. DeserializationError error = deserializeJson(doc, client); if (!error) { float coord_lon = doc["coord"]["lon"]; float coord_lat = doc["coord"]["lat"]; JsonObject main = doc["main"]; float main_temp = main["temp"]; Serial.print("Temp: "); Serial.println(main_temp); Serial.print("Longitude: "); Serial.println(coord_lon); Serial.print("Latitude: "); Serial.println(coord_lat); } else { Serial.print(F("deserializeJson() failed: ")); Serial.println(error.f_str()); return; } } void loop() { makeHTTPRequest(); delay(1500); }
  • Converting an array of byte characters from an API into bytes using ArduinoJSON?
    1 project | /r/arduino | 16 Oct 2022
    I've logged a github issue, but I'm not convinced I've asked the right questions as I've never had to do anything like this before - am I missing something obvious?
  • Sending arrays through serial line between 2 arduinos
    3 projects | /r/arduino | 25 Sep 2022
    https://arduinojson.org
  • [looking for help] Config File in SD Card
    2 projects | /r/esp32 | 5 Jul 2022
    Also, if you want a nice way to encapsulate data, look at ArduinoJson (https://arduinojson.org/). All your information can be stored as easily identifiable strings in a JSON format. I use it all the time and it removes a lot of the mucking about with figuring out how to parse your data to/from file.
  • ESP32 HTML e-Paper
    1 project | /r/esp32 | 4 Jul 2022
  • Gamepad app with analog Joystick mode for your ESP32 projects to control your Robots using Websockets.
    1 project | /r/esp32 | 28 Jun 2022
    The format is simple JSON data and self explanatory, no binary coding, just simple text, which you can decode using https://arduinojson.org/.
  • #Beguiner how can i fill my json structure from an online or off life tool
    1 project | /r/json | 30 Apr 2022
  • Easiest method to get somewhat large array of information off an ESP8266
    1 project | /r/arduino | 18 Apr 2022

What are some alternatives?

When comparing TommyPROM and ArduinoJson you can also consider the following projects:

eeprom-programmer - Arduino EEPROM programmer

cJSON - Ultralightweight JSON parser in ANSI C

Xbox-EEPROM-Utility - Original Xbox EEPROM Dumper based on an ESP32 and ESP8266.

esp-idf-json - Example of JSON Serialize and Deserialize in ESP-IDF

eeprom-programmer - An Arduino Nano sketch and schematic for an Atmel 28cx programmer.

yaml-cpp - A YAML parser and emitter in C++

TommyPROM-PCB - PCB design files for the TommyPROM project (https://github.com/TomNisbet/TommyPROM)

json - JSON for Modern C++

flashrom - Send patches to https://review.coreboot.org: https://www.flashrom.org/Development_Guidelines#GitHub

RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API

qodem - Qodem Terminal Emulator

FlatBuffers - FlatBuffers: Memory Efficient Serialization Library