Git Product home page Git Product logo

ezdv's People

Contributors

amcdermond avatar tmiw avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ezdv's Issues

Add mounting holes for the dev board

v0.1 does not have any mounting holes. Adding some will eventually be needed for the final version or even future dev boards, so evaluate to determine what size/how many is appropriate.

Reporting page - add ability to report via reporter the current mode and frequency

A thought just came to me as I was using the module with my FTdx10 connected via rear port. The module doesn't report to FreeDV Reporter when being used as we have previously discussed when I was initially testing.
Could the module reporting page where Callsign and Locator are configured be updated to allow entry of Frequency and Mode currently being used? most people will be using their computer maybe to change modes or just keep an eye on battery levels so would be a useful way of enabling reporting via reporter at the same time for those where the rigs cannot communicate to the module their settings.

Fix silkscreen readability issues

The EMC vias added just prior to sending the board to JLCPCB are interfering with some of the sillkscreen items. Move or delete the vias as appropriate so that the text is readable.

Consider making R1 1k to increase mic bias current

Currently R1 is 2.7k (derived from the typical application schematic for the TLV320). However, this only allows 1mA of current to the microphone; the Android specs indicate 1.8-2.9 mA according to this post. A 1k resistor instead would result in 2.5mA of current @ 2.5V, which would be within spec.

Transition away from GitHub

As other FreeDV projects are transitioning away from GitHub, ezDV probably should too (context here). This issue is being created to track this task.

TODO:

  • Research Git hosting providers (GitLab, SFC's own, etc.)
  • Select Git hosting provider (w/vote by the Leadership Team)
  • Clone current repo at new provider
  • Re-enable/port CI tasks as appropriate
  • Add link from GitHub to new location
  • Make repository read-only mirror of new location
  • Determine future date when to delete GitHub repository entirely

Related issues on other projects: codec2 (https://github.com/drowe67/codec2/issues/354), LPCNet (drowe67/LPCNet#46), freedv-gui (drowe67/freedv-gui#281)

ezDV does not unregister itself from SmartSDR

Currently there is logic in ezDV (in FlexTcpTask.cpp) that unregisters itself from Flex radios when shutting down, and could presumably be run as well after a brief disconnection. However, when running this logic, the radio itself crashes. Thus, in the current FW, this logic is disabled.

The crash is being tracked by FlexRadio as SMART-9473 and this issue will be open until confirmed to be fixed (and the logic can be reenabled).

Evaluate and adjust resistor sizes for LEDs

The currents through each of the LEDs on v0.1 (R10, R14, R17 and R20) may produce dramatically different brightness levels. We can use PWM as a workaround but these should be readjusted based on the selected LEDs so that the brightness is approximately equal.

High power consumption while off

Measuring ~890uA on v0.4 when turned off and USB is not plugged in. Per component datasheets, we should be seeing about 1/4-1/3 of that amount of consumption.

Analog Mode Rx not working after Tx

In analog mode audio routing is ok after device reset. Transmit is also ok. However, It is not routing back the radio audio to the user audio.
Used firmware: ezdv-20231122-full

Evaluate size of I2C pullups

The I2C pullup resistors (R2 and R8) are currently 4.7K. This may be insufficient depending on how fast we drive the I2C bus. Investigate and increase the resistance if necessary.

Analog Bypass Feature

Analog Bypass
If we switch IN1_L and IN1_R in the future versions, it looks like we may have a low power analog bypass mode, which will reduce latency and we can put esp32 into sleep mode to save power.

We may add speaker amplifier to LOL line and internal mic to one of the available inputs, (preferably analog routable one). So, the device can be usable as an ordinary hand mike. I have added LM4871MX on my pcb and routed LOL to this pin, it works nice. We only need to implement some amplifier enable signal other than Sync output because this output flickers a lot and continuously turn amplifier on and off. I have tryed headphone detect interrupt to switch headphone/speaker channels however it is not working, probably allways connected radio channel is preventing that, not sure atm.

Just a few ideas, 73

More options for the FreeDV (int) Reporter

Since the QST article about FreeDV has been published it has become clear that the reporter needs to have more fine grained setting options.
It's great to see more stations on the bands, but on 20m especially the reporter is becoming difficult to read in use.
Suggestions:
1 A filter to remove calls that have not been updated in the last N mins.
2 An option to only display (or highlight?) calls who have received me in the last N mins).
3 Show my own call line in a different colour.
4 An option to switch the reporter band filter automatically to the currently reported band (but only when that changes). i.e. The reporter band selector would still over-ride.

Just few ideas for discussion ;)

Add vias around edges of the PCB

We have vias all over the middle of the board but not on the board edges. Investigate and verify whether these are needed (and add if so).

Move LED/PTT GPIO to RTC GPIO

Some LEDs are on dimly in sleep mode, which could be contributing to the high power consumption (see #15). For v0.5, we should switch the GPIOs around to avoid this issue.

Remove button pullup resistors

The ESP32-S3 has internal pullups which may make R9, R12, R13 and R15 unnecessary. Evaluate and remove if those internal pullups are usable.

Crypto support + PCB manufacturing procedure

Hi,
I've been following your project and loving all the work you've done.

This overlap perfectly with a project I was researching on: building a crypto transciever based on an ESP (something similar to what aarmono did here: https://github.com/aarmono/crypto_transceiver_instructions but cheaper and smaller).

I would then like to start contributing to your project, maybe trying to port the work aarmono did on top of codec2 to build encryption support. (Is this something you were already thinking about, maybe?)

First thing, though, I'd need to get some hardware to develop with.

Any chance there is a ready-to-go package or instructions to get a set of pcb manufactured by any PCBA provider?

README

It mentions to use N2R2 or N2R8 version, but on Tindie it has the N8R2 or N8R8 listed.

Not familiar with these boards, so I assume a typo??

ezDV build process document

Suggested starter for documenting the build process for the ezDV module based on HW Version 0.7 and my experience so far.
ezDV Build Process.pdf
I couldn't create a pull request to have it reviewed, possibly not authorised for this project
hope it is useful and review comments welcomed
I generated in Text Edit on the Mac and exported to PDF to add it here
Paul

System stuck if no MAX17048 is used

I planned to use this module without battery. Everything works however, if I try to connect web interface system reboots.
Library shouldn't try to read battery if ic is not found during boot process.
`
I (22945) ButtonArray: Button VolDown now 0
I (23925) SettingsTask: Committing pending settings to flash.
I (40405) wifi:new:<1,0>, old:<1,1>, ap:<1,1>, sta:<255,255>, prof:1
I (40405) wifi:station: 12:34:56:78:90:AB join, AID=1, bgn, 20
I (40405) WirelessTask: Wifi event: 14
I (40535) wifi:idx:2 (ifx:1, 12:75:8d:8e:1d:67), tid:0, ssn:0, winSize:64
I (40745) esp_netif_lwip: DHCP server assigned IP to a client, IP is: 192.168.4.2
I (40765) DVTask: Task FlexVitaTask started
I (57075) HttpServerTask: Sending file : /bootstrap.min.css.gz (27324 bytes)...
I (57195) HttpServerTask: File sending complete
I (57285) HttpServerTask: Sending file : /localstyle.css (3249 bytes)...
I (57295) HttpServerTask: File sending complete
I (57385) HttpServerTask: Sending file : /bootstrap.bundle.min.js.gz (23265 bytes)...
I (57485) HttpServerTask: File sending complete
I (57495) HttpServerTask: Sending file : /jquery-3.6.1.min.js.gz (30850 bytes)...
I (57625) HttpServerTask: File sending complete
I (57715) HttpServerTask: Sending file : /localscript.js (22156 bytes)...
I (57845) HttpServerTask: File sending complete
I (57885) HttpServerTask: Websocket connection opened
I (57885) HttpServerTask: Sending JSON message to socket 57
I (57885) HttpServerTask: Sending JSON message to socket 57
I (57885) HttpServerTask: Sending JSON message to socket 57
I (57895) HttpServerTask: Sending JSON message to socket 57
I (57895) HttpServerTask: Sending JSON message to socket 57
I (57895) HttpServerTask: Sending JSON message to socket 57
I (57905) HttpServerTask: Sending JSON message to socket 57

assert failed: void ezdv::driver::MAX17048::onRequestBatteryStateMessage_(ezdv::task::DVTask*, ezdv::driver::RequestBatteryStateMessage*) MAX17048.cpp:215 (success)

Backtrace: 0x40376016:0x3fca9000 0x40380f31:0x3fca9020 0x40388c26:0x3fca9040 0x42015eca:0x3fca9160 0x42127fca:0x3fca91e0 0x42016639:0x3fca9200 0x42016649:0x3fca9230 0x420162a9:0x3fca9250 0x420162bf:0x3fca9280 0x42022369:0x3fca92a0 0x420223d6:0x3fca92f0 0x42022415:0x3fca9310 0x4038459d:0x3fca9330


I (1202) MAX17048: Checking for device...
W (1302) MAX17048: Device not found; battery monitoring disabled.
I (1302) DVTask: Task MAX17048 started
I (1312) DVTask: Task LedArray started
I (1322) gpio: GPIO[4]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1322) gpio: GPIO[5]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1322) gpio: GPIO[6]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1322) gpio: GPIO[7]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1322) gpio: GPIO[0]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (1322) DVTask: Task ButtonArray started
I (1332) TLV320Driver: reset TLV320
I (1332) TLV320Driver: configure clocks
I (1342) TLV320Driver: configure processing blocks
I (1342) TLV320Driver: configure LDOs
I (1342) TLV320Driver: configure routing for ADC
I (1352) TLV320Driver: configure routing for DAC
I (1602) ButtonArray: Button UsbPower now 1
I (3182) TLV320Driver: configuring interrupts
I (3182) gpio: GPIO[12]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (3182) gpio: GPIO[14]| InputEn: 0| OutputEn: 0| OpenDrain: 0| Pullup: 1| Pulldown: 0| Intr:0
I (3182) TLV320Driver: all audio codec config complete
I (3182) DVTask: Task TLV320Driver started
W (3202) TLV320Driver: ADC overload! (Left/User = 1, Right/Radio = 0)
I (3292) DVTask: Task FreeDVTask started
I (3302) DVTask: Task AudioMixer started
I (3302) TLV320Driver: button state: 10
I (3312) DVTask: Task BeeperTask started
I (3322) VoiceKeyerTask: Starting VoiceKeyerTask
I (3322) DVTask: Task VoiceKeyerTask started
I (3332) UserInterfaceTask: Sending welcome message to beeper
I (3332) DVTask: Task UserInterfaceTask started
I (3332) BeeperTask: Got beeper message ANA
I (3342) DVTask: Task WirelessTask started
I (3342) DVTask: Task MainApp started
I (3352) SettingsTask: Initializing NVS.
I (3352) SoftwareUpdateTask: Starting SoftwareUpdateTask
I (3352) DVTask: Task SoftwareUpdateTask started
I (3352) SettingsTask: Opening NVS handle.
I (3352) SettingsTask: leftChannelVolume: 10
I (3352) SettingsTask: rightChannelVolume: -35
I (3352) SettingsTask: wifiEnabled: 0
I (3352) SettingsTask: wifiMode: 0
I (3352) SettingsTask: wifiSecurity: 0
I (3352) SettingsTask: wifiChannel: 1
I (3352) SettingsTask: wifiSsid:
I (3362) TLV320Driver: Volume control: setting volume on register 65 to 10
I (3362) SettingsTask: wifiPassword: ********
I (3362) SettingsTask: radioEnabled: 0
I (3362) SettingsTask: headsetPtt: 0
I (3362) SettingsTask: timeOutTimer: 120
I (3362) SettingsTask: radioType: 0
I (3362) SettingsTask: radioHostname:
I (3362) SettingsTask: radioPort: 0
I (3362) SettingsTask: radioUsername:
I (3362) SettingsTask: radioPassword: ********
I (3362) UserInterfaceTask: Disallowing headset button from toggling PTT.
I (3362) SettingsTask: enableVoiceKeyer: 0
I (3362) SettingsTask: voiceKeyerNumberTimesToTransmit: 10
I (3362) SettingsTask: voiceKeyerSecondsToWaitAfterTransmit: 5
I (3362) SettingsTask: callsign:
I (3362) SettingsTask: gridSquare: UN00KN
I (3362) SettingsTask: ledDutyCycle: 8192
I (3362) SettingsTask: lastMode: 3
I (3362) DVTask: Task SettingsTask started
I (3362) FreeDV: Setting FreeDV mode to 3
I (3362) BeeperTask: Got beeper message 1600
I (3372) TLV320Driver: Volume control: setting volume on register 66 to -35

`

Network LED much dimmer than the others

After desoldering R17 (see #15), I noticed that the network LED was much dimmer than the others. As a workaround, I enabled PWM on the LED GPIOs (b49d451) and set it to ~10% duty cycle to minimize the dimming. Needs more investigation to determine if there's a hardware problem.

60Hz noise getting into headset mic line

Testing of the v0.1 boards show that significant 60Hz noise is getting into the mic line on the headset jack. The radio jack is working properly, however. For v0.2, we need to reroute this trace to shorten it and provide more shielding.

Choose ESP32S3 part with PSRAM

During implementation of IC-705 support, it was discovered that the system is memory constrained. That is, it can't comfortably do both FreeDV encode/decode and Wi-Fi handling. For the next version, we'll need to use a different ESP32S3 part or development board that has additional built-in RAM.

Move I2C SCL to GPIO 45

v0.1 of the board has SCL on GPIO 48. However, the nanoESP32-S3 is apparently using that for its RGB LED. Cutting off the pin on the board for GPIO 45 and bodging the pin next to it to 45 allowed I2C to work properly.

revised enclosure top and buttons

Having had the enclosure built for me I discovered that when the module v0.7 was fitted, the top did not fit due to the headers fitted to the pcb, as a result I have adjusted the height of the top and the length of the buttons to cater for the new case height.
Attached are new scad files that I have created and successfully printed to fit this module.
enclosure-lid.scad
enclosure-button-v3.scad
enclosure-new-files.zip

WiFi unable to disable

Testing the ezDV module using two radios, one IC-705 the other a Yaesu FTdx10, Wifi enabled for the 705 which seems to be working ok, but when trying to focus efforts on the dx10, am unable to disable the WiFi connectivity for the radio.
Whenever i untick the option for WiFi connectivity and try to save, it reverts back to previous settings without unticking the WiFi option.
Have to disable WiFi on the 705 to force connectivity to work with the dx10
Have updated to latest version of code just released via ota but no change in the WiFi issue

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.